@charset "utf-8";



/* Common
------------------------------------------------------------- */

#contents_box {
	width: 100%;
	margin: 0;
	padding-top: 60px;
	line-height: 1.8;
	position: relative;
}

.contents_box::after {
	content:"";
	display:block;
	clear:both;
}

.contents_inner_box {
	width: auto;
	max-width: 1320px;
	margin: 0 auto;
	padding: 32px 15px 24px 15px;
	position: relative;
	font-size: 1.5rem;
	line-height: 1.66;
}

.contents_inner_box::after {
	content:"";
	display:block;
	clear:both;
}

.wrapper_gray {
	background-color: #f5f5f5;
}

.wrapper_red {
	background-color: #c21632;
	background: -moz-linear-gradient(top right, #c21632, #7a1829); 
	background: -webkit-linear-gradient(top right, #c21632, #7a1829); 
	background: linear-gradient(to bottom left, #c21632, #7a1829);
}

.wrapper_gray::after, .wrapper_red::after {
	content:"";
	display:block;
	clear:both;
}


.fancybox-bg {
	opacity: 0.7 !important;
}






/* Navigation on Left side
------------------------------------------------------------- */

.contents_navi_box {
	display: none;
}

.contents_main_box {
	padding-bottom: 32px;
}




/* Scroll Fadein Fadeout
------------------------------------------------------------- */

.fadein {
	opacity: 0;
	transform : translate(0, 50px);
	transition : all 1500ms;
}

.fadein.scrollin{
	opacity: 1;
	transform: translate(0, 0);
}



/* Footer Fix
------------------------------------------------------------- */

#page_wrapper {
	position: relative;
	min-height: 100%;
}

#contents_box {
	padding-bottom: 400px;
	min-height: auto;
}

footer {
	position: absolute;
	bottom: 70px;
	left: 0;
}

p.btn_pagetop {
	position: absolute;
	bottom: 0;
	left: 0;
}



/* Modal Window
------------------------------------------------------------- */

body.no-scroll {
	overflow: hidden;
}

.modal_bg {
	display: none;
	z-index: 22222 !important;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.7);
}

.modal_box {
	display: none;
	position: fixed;
	z-index: 33333 !important;
	width: calc(100% - 60px);
	max-width: 858px;
	max-height: 95vh;
	margin: 0;
	overflow: auto;
	background-color: #fff;
	border-radius: 4px;
	box-shadow: 0 0 8px 8px rgba(0,0,0,0.15);
}

.modal_close {
	display: block;
	width: 24px;
	height: 24px;
	text-align: center;
	font-size: 0;
	background-color: rgba(255,255,255,0.5);
	position: absolute;
	top: 20px;
	right: 20px;
	cursor: pointer;
	z-index: 33334;
	line-height: 1;
}

.modal_close::before,
.modal_close::after {
	content: "";
	display: inline-block;
	width: 24px;
	height: 4px;
	background-color: #cacaca;
	position: absolute;
	left: 0;
	top: 10px;
}

.modal_close::before {
	transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
}

.modal_close::after {
	transform: rotate(-45deg);
	-webkit-transform: rotate(-45deg);
}


/*Modal Contents*/

.modal_box > h3 {
	margin: 0;
	padding: 20px 60px 16px 12px;
	font-size: 2rem;
	min-height: 64px;
}

.modal_contents_box {
	width: 100%;
	margin: 64px 0 0 0;
	padding: 12px;
	border-top: 1px solid #cacaca;
	min-height: 35vh;
}

.modal_box > h3 + .modal_contents_box {
	margin-top: 0;
}



/* Title
------------------------------------------------------------- */

/*h1,*/
.page_title {
	margin-bottom: 24px;
	font-size: 3.9rem;
	line-height: 1.3;
	font-weight: 700;
	position: relative;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	color: #000;
}

/*h2,*/
.section_title {
	margin-bottom: 20px;
	font-size: 3.1rem;
	line-height: 1.3;
	font-weight: 700;
	position: relative;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	color: #000;
}

/*h3,*/
.article_title {
	margin-bottom: 16px;
	font-size: 2.5rem;
	line-height: 1.3;
	font-weight: 700;
	position: relative;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	color: #000;
}

/*h4,*/
.column_title {
	margin-bottom: 8px;
	font-size: 2rem;
	line-height: 1.3;
	font-weight: 700;
	position: relative;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	color: #000;
}

/*h5,*/
.sub_title {
	margin-bottom: 16px;
	font-size: 2.3rem;
	line-height: 1.66;
	font-weight: 400;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	color: #000;
}

/*h6,*/
.mini_title {
	margin-bottom: 8px;
	font-size: 1.6rem;
	line-height: 1.66;
	font-weight: 700;
	font-family: "Noto Sans", Roboto, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	color: #000;
}

/*h3.h3_line,*/
.article_title.ti_line {
	border-top: 2px solid #000;
	padding-top: 5px;
}

.h2_box, .h3_box, .h4_box, .h5_box, .h6_box {
	padding-bottom: 16px;
	position: relative;
}

.h2_box::after, .h3_box::after, .h4_box::after, .h5_box::after, .h6_box::after {
	content:"";
	display:block;
	clear:both;
}

.body_paragraph {
	margin-bottom: 8px;
	font-family: "Noto Sans", Roboto, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

.lead_paragraph {
	margin-bottom: 16px;
	font-size: 2.3rem;
	line-height: 1.3;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.body_paragraph + h3,
.body_paragraph + h4,
.body_paragraph + h5,
.body_paragraph + h6 {
	margin-top: 20px;
}





/* Footer
------------------------------------------------------------- */

footer {
	width: 100%;
	border-top: 1px solid #cacaca;
	background-color: #fff;
}

.footer_inner {
	width: 100%;
	max-width: 1320px;
	margin: 0 auto;
	padding: 10px 15px;
	position: relative;
}

.footer_inner .inner_border {
	margin: 4px auto;
}

.footer_logo {
	display: inline-block;
	width: 170px;
	height: 34px;
	margin-bottom: 10px;
}

.footer_logo span, .footer_logo a {
	display: block;
	width: 100%;
	height: 100%;
	font-size: 0;
	background-image: url(../img/logo_ymmt.png);
	background-position: left top;
	background-repeat: no-repeat;
	background-size: contain;
}

.footer_inner address {
	margin: 5px 0 20px 0;
	font-size: 1.5rem;
}

.footer_inner address p {
	margin-bottom: 5px;
	line-height: 1.66;
}

.footer_inner address p a {
	color: #000;
}

.footer_inner address p a:hover,
.footer_inner address p a:active,
.footer_inner address p a:focus {
	text-decoration: none;
	color: #000;
	background-color: transparent;
}

.footer_inner address p.name {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 1.6rem;
	text-transform: uppercase;
}


/*Footer Menu*/

ul.footer_menu, ul.footer_submenu {
	margin: 0;
	padding: 0;
}

ul.footer_menu li a, ul.footer_submenu li a {
	color: #000;
}

ul.footer_menu li a, ul.footer_submenu li a,
ul.footer_menu li a:visited, ul.footer_submenu li a:visited {
	color: #000;
	text-decoration: none;
}

ul.footer_menu li a:hover, ul.footer_submenu li a:hover,
ul.footer_menu li a:active, ul.footer_submenu li a:active,
ul.footer_menu li a:focus, ul.footer_submenu li a:focus {
	color: #c21632;
	text-decoration: none;
	background-color: transparent;
}

.footer_menu_container {
	display: none;
}

ul.footer_submenu {
	margin: 0;
	padding: 10px 0;
}

ul.footer_submenu::after {
	content:"";
	display:block;
	clear:both;
}

ul.footer_submenu li {
	float: left;
	margin-right: 40px;
	font-size: 1.5rem;
}

ul.footer_submenu li.menu_contact,
ul.footer_submenu li.menu_partner,
ul.footer_submenu li.menu_news,
ul.footer_submenu li.menu_faq {
	display: none;
}


/*Copyright*/

.copyright {
	clear: both;
	margin: 0;
	padding: 15px 0 20px 0;
	font-size: 1.5rem;
}



/* PageTop Button
------------------------------------------------------------- */

p.btn_pagetop {
	width: 100%;
	height: 70px;
	margin: 0;
}

p.btn_pagetop a {
	display: block;
	height: 100%;
	margin: 0;
	color: #fff;
	background-color: #000;
	text-align: center;
	position: relative;
}

p.btn_pagetop a:hover {
	text-decoration: none;
	background-color: #c21632;
}

p.btn_pagetop a span {
	display: block;
	padding: 40px 0 10px 0;
	font-size: 1.2rem;
	color: #fff;
	font-weight: 400;
}

p.btn_pagetop a::after {
	display: block;
	content: "";
	position: absolute;
	margin-left: -12px;
	top: 20px;
	left: 50%;
	width: 20px;
	height: 20px;
	border-top: 3px solid #fff;
	border-left: 3px solid #fff;
	transform: rotate(45deg);
}



/* Youtube Movie (add202503)
------------------------------------------------------------- */

.contents_inner_box:has(.youtube_box) {
	margin-top: -60px;
}

.movie_box {
	position: relative;
	width: 100%;
	margin: 12px 0 36px 0;
}

.movie_box .youtube_box {
	position: relative;
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
}

.youtube_box::before {
	content:"";
	display: block;
	padding-top: 56.25%;
}

.youtube_box::after {
	display: block;
	content: "";
	width: 80px;
	height: 80px;
	position: absolute;
	left: 50%;
	top: 50%;
	margin: -40px 0 0 -40px;
	background-image: url(../img/icon_youtube_gray.png);
	background-size: contain;
	background-position: center center;
	z-index: 10;
	pointer-events: none;
}

.youtube_box:hover::after {
	background-image: url(../img/icon_youtube_red.png);
}

.youtube_box img {
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.movie_box .movie_title {
	max-width: 800px;
	margin: 0 auto 12px auto;
	padding: 0;
	text-align: left;
}