/*
========================================================
  - COMPONENT
========================================================

-------------------------------
-- .comp_hero
-------------------------------
*/
.comp_hero {
	position: relative;
	z-index: 1;
	border-bottom: 10px solid #006ec8;
}

@media only screen and (max-width: 640px) {
	.comp_hero {
		margin-right: -3.75%;
		margin-left: -3.75%;
	}
}
.comp_hero > div {
	overflow: hidden;
}
@media print { 
	.comp_hero {
		width: 1040px !important;
	}
	.comp_hero .swiper-wrapper
	{
		transform: translate3d(0, 0, 0) !important;
	}
	.comp_hero .swiper-wrapper .swiper-slide:not(.swiper-slide-active)
	{
		display: none !important;
	}
}

.comp_hero .swiper-container {
	overflow: visible;
	margin: 0 auto;
}

.comp_hero .swiper-container .swiper-slide {
	width: 100% !important;
}

.comp_hero .swiper-hero-button-prev {
	position: absolute;
	z-index: 3;
	top: 50%;
	cursor: pointer;
	background: no-repeat 50% 50% url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MCA2MCI+PGNpcmNsZSBmaWxsPSIjZmZmIiBjeD0iMzAiIGN5PSIzMCIgcj0iMjkiLz48cGF0aCBmaWxsPSIjMTkyRjYwIiBkPSJNMzAgMmMxNS40MzkgMCAyOCAxMi41NjEgMjggMjhTNDUuNDM5IDU4IDMwIDU4IDIgNDUuNDM5IDIgMzAgMTQuNTYxIDIgMzAgMm0wLTJDMTMuNDMxIDAgMCAxMy40MzEgMCAzMHMxMy40MzEgMzAgMzAgMzAgMzAtMTMuNDMxIDMwLTMwUzQ2LjU2OSAwIDMwIDB6Ii8+PHBhdGggZmlsbD0iIzE5MmY2MCIgZD0iTTIyLjg1NCAzMGw5Ljk1NCA5Ljk1NCAyLjMzOS0yLjMzOUwyNy41NDggMzBsNy41OTgtNy42MTUtMi4zMzktMi4zMzlMMjIuODU0IDMweiIvPjwvc3ZnPg==);
	background-size: cover;
	touch-action: manipulation;
}

@media print, screen and (min-width: 641px) {
	.comp_hero .swiper-hero-button-prev {
		left: 45px;
		width: 60px;
		height: 60px;
	}
}

@media only screen and (max-width: 640px) {
	.comp_hero .swiper-hero-button-prev {
		left: 3.75%;
		width: 45px;
		width: 13vw;
		height: 45px;
		height: 13vw;
		top: 63%;
	}
}

.comp_hero .swiper-hero-button-next {
	position: absolute;
	z-index: 3;
	top: 50%;
	cursor: pointer;
	background: no-repeat 50% 50% url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MCA2MCI+PGNpcmNsZSBmaWxsPSIjZmZmIiBjeD0iMzAiIGN5PSIzMCIgcj0iMjkiLz48cGF0aCBmaWxsPSIjMTkyZjYwIiBkPSJNMzAgMmMxNS40MzkgMCAyOCAxMi41NjEgMjggMjhTNDUuNDM5IDU4IDMwIDU4IDIgNDUuNDM5IDIgMzAgMTQuNTYxIDIgMzAgMm0wLTJDMTMuNDMxIDAgMCAxMy40MzEgMCAzMHMxMy40MzEgMzAgMzAgMzAgMzAtMTMuNDMxIDMwLTMwUzQ2LjU2OSAwIDMwIDB6Ii8+PHBhdGggZmlsbD0iIzE5MkY2MCIgZD0iTTI3LjE5MyAyMC4wNDZsLTIuMzM5IDIuMzM5TDMyLjQ1MiAzMGwtNy41OTggNy42MTUgMi4zMzkgMi4zMzlMMzcuMTQ2IDMwbC05Ljk1My05Ljk1NHoiLz48L3N2Zz4=);
	background-size: cover;
	touch-action: manipulation;
}

@media print, screen and (min-width: 641px) {
	.comp_hero .swiper-hero-button-next {
		right: 45px;
		width: 60px;
		height: 60px;
	}
}

@media only screen and (max-width: 640px) {
	.comp_hero .swiper-hero-button-next {
		right: 3.75%;
		width: 45px;
		width: 13vw;
		height: 45px;
		height: 13vw;
		top: 63%;
	}
}

.comp_hero .swiper-slide [role="img"] {
	background: 50% 50% no-repeat;
	background-size: cover;
}

@media only screen and (min-width: 641px)  {
	.comp_hero .swiper-slide [role="img"] {
		height: 538px;
	}
}

@media only screen and (max-width: 640px) {
	.comp_hero .swiper-slide [role="img"] {
		height: 131.25vw;
	}
}

.comp_hero .comp_hero_control_btns {
	position: absolute;
	z-index: 3;
	display: flex;
}

@media print, screen and (min-width: 641px)
{
	.comp_hero .comp_hero_control_btns
	{
		bottom: 30px;
		left: 45px;
	}
}

@media only screen and (max-width: 640px)
{
	.comp_hero .comp_hero_control_btns
	{
		bottom: 18px;
		bottom: 5.625vw;
		left: 3.75%;
	}
}

.comp_hero .comp_hero_control_btn {
	width: 36px;
	height: 36px;
}

.comp_hero .comp_hero_control_btn img[aria-hidden="true"] {
	display: none;
	speak: none;
}

.comp_hero .comp_hero_control_btn + .comp_hero_control_btn {
	margin-left: 10px;
}

.comp_hero_overlay {
	position: absolute;
	z-index: 2;
	top: 50%;
	left: 0;
	height: 100%;
	transform: translate(0, -50%);
}
@media only screen and (max-width: 640px) {
	.comp_hero_overlay {
		display: none;
	}
}
.comp_hero_overlay img {
	height: 100%;
}

.comp_hero_link {
	display: block;
	transition: opacity .25s ease;
	opacity: 1;
}
.comp_hero_link:hover img {
	opacity: 1;
}
.comp_hero_link[data-active="true"] .swiper-container {
	cursor: pointer !important;
}
.comp_hero_link[data-active="true"]:hover {
	transition: opacity .25s ease;
	opacity: .9;
}

.comp_hero_heading {
	position: absolute;
	z-index: 4;
	width: 100%;
	pointer-events: none;
}
@media print, screen and (min-width: 641px){
	.comp_hero_heading {
		top: 50%;
		right: 50%;
		transform: translate(50%, -50%);
	}
}
@media only screen and (max-width: 640px) {
	.comp_hero_heading {
		top: 5%;
		left: 0;
	}
}

.comp_hero_heading[data-active="true"] {
	transition: opacity .15s ease;
	opacity: 1;
}
.comp_hero_heading[data-active="false"] {
	transition: opacity .15s ease;
	opacity: 0;
}

.comp_hero_heading > div {
	height: inherit;
	margin: 0 auto;
}
@media print, screen and (min-width: 641px){
	.comp_hero_heading > div {
		max-width: 1000px;
	}
}

@media only screen and (max-width: 640px) {
	.comp_hero_heading > div {
		padding: 0 3.75%;
	}
}

.comp_hero_heading h1 {
	font-weight: 700;
	color: #fff;
}
.comp_hero_heading h1.var_black {
	color: #000;
}
.comp_hero_heading h1.var_red {
	color: #CF0000;
}
.comp_hero_heading h1.var_letter_spacing {
	letter-spacing: -5px;
}
.comp_hero_heading h1.var_weight_900 {
	font-weight: 900;
}
.comp_hero_heading h1.var_letter_spacing.var_weight_900 {
	letter-spacing: -4px;
}
.comp_hero_heading h1.var_weight_800 {
	font-weight: 800;
}
.comp_hero_heading h1.var_weight_700 {
	font-weight: 700;
}
.comp_hero_heading h1.var_weight_600 {
	font-weight: 600;
}

@media print, screen and (min-width: 641px) {
	.comp_hero_heading h1 {
		font-size: 50px;
		line-height: 1.2;		
		text-shadow: 0 1.5px 1.5px #192f60,
		0 0 1.5px #192f60,
		1.5px 0 1.5px #192f60,
		0 -1.5px 1.5px #192f60,
		-1.5px -1.5px 1.5px #192f60,
		-1.5px 0 1.5px #192f60;
	}
	.comp_hero_heading h1.var_black, .comp_hero_heading h1.var_red {
		text-shadow: 0 1.5px 1.5px #fff,
		0 0 1.5px #fff,
		1.5px 0 1.5px #fff,
		0 -1.5px 1.5px #fff,
		-1.5px -1.5px 1.5px #fff,
		-1.5px 0 1.5px #fff;
	}
}

@media only screen and (max-width: 640px) {
	.comp_hero_heading h1 {
		font-size: 30px;
		font-size: 8vw;
		line-height: 1.2;
		padding-top: 20px;
		text-shadow: 0 1px 1px #192f60,
		0 0 1px #192f60,
		1px 0 1px #192f60,
		0 -1px 1px #192f60,
		-1px -1px 1px #192f60,
		-1px 0 1px #192f60;
		padding-top: 20px;
	}
	.comp_hero_heading h1.var_black, .comp_hero_heading h1.var_red {
		text-shadow: 0 1px 1px #fff,
		0 0 1px #fff,
		1px 0 1px #fff,
		0 -1px 1px #fff,
		-1px -1px 1px #fff,
		-1px 0 1px #fff;
	}
}

.comp_hero_heading h1::after {
	display: block;
	margin-top: 20px;
	content: "";
	background-color: #fff;
}
.comp_hero_heading h1.var_black::after {
	background-color: #000;
}

@media print, screen and (min-width: 641px) {
	.comp_hero_heading h1::after {
		width: 129px;
		height: 4px;
	}
}
@media only screen and (max-width: 640px) {
	.comp_hero_heading h1::after {
		width: 60px;
		height: 4px;
	}
}
.comp_hero_heading .text {
	font-weight: 700;
	color: #fff;
	padding-top: 30px;
}
.comp_hero_heading .text.var_black {
	color: #000;
}

@media print, screen and (min-width: 641px) {
	.comp_hero_heading .text {
		font-size: 32px;
		line-height: 1.5;
		text-shadow: 0 1.5px 1.5px #192f60,
		0 0 1.5px #192f60,
		1.5px 0 1.5px #192f60,
		0 -1.5px 1.5px #192f60,
		-1.5px -1.5px 1.5px #192f60,
		-1.5px 0 1.5px #192f60;
	}
	.comp_hero_heading .text.var_black {
		text-shadow: 0 3px 3px #fff,
		0 0 3px #fff,
		3px 0 3px #fff,
		0 -3px 3px #fff,
		-3px -3px 3px #fff,
		-3px 0 3px #fff;
	}
}

@media only screen and (max-width: 640px) {
	.comp_hero_heading .text
	{
		font-size: 18px;
		font-size: 6vw;
		line-height: 1.2;
		text-shadow: 0 1px 1px #192f60,
		0 0 1px #192f60,
		1px 0 1px #192f60,
		0 -1px 1px #192f60,
		-1px -1px 1px #192f60,
		-1px 0 1px #192f60;
    	letter-spacing: -1px;
	}
	.comp_hero_heading .text.var_black {
		text-shadow: 0 1px 1px #fff,
		0 0 1px #fff,
		1px 0 1px #fff,
		0 -1px 1px #fff,
		-1px -1px 1px #fff,
		-1px 0 1px #fff;
	}
}
.comp_hero_heading .promo {
	font-weight: 700;
	color: #fff;
	padding-top: 30px;
}
.comp_hero_heading .promo span {
	background: #000;
	padding: 5px 8px;
}
@media print, screen and (min-width: 641px) {
	.comp_hero_heading .promo {
		font-size: 24px;
		line-height: 1.2;
	}
}
@media only screen and (max-width: 640px) {
	.comp_hero_heading ,promo {
		font-size: 16px;
		font-size: 5.5vw;
		line-height: 1.5;
	}
}
.comp_hero_heading .promo span.var_red {
	background: #CF0000;
}
@media only screen and (max-width: 640px) {
  .comp_hero_heading .promo span.sp_w250 {
	display: block;
	width: 250px;
  }
}
.comp_hero_heading .info {
	padding-top: 30px;
}
@media only screen and (max-width: 640px) {
  .comp_hero_heading .info {
	padding-top: 20px;
  }
}
.comp_hero_heading .info p, .comp_hero_heading .info li {
	font-weight: 700;
	color: #fff;
	line-height: 1.2em;
	text-shadow: 0 1.5px 1.5px #192f60,
	0 0 1.5px #192f60,
	1.5px 0 1.5px #192f60,
	0 -1.5px 1.5px #192f60,
	-1.5px -1.5px 1.5px #192f60,
	-1.5px 0 1.5px #192f60;
}
.comp_hero_heading .info.var_black p, .comp_hero_heading .info.var_black li {
	color: #000;
	text-shadow: 0 3px 3px #fff,
	0 0 3px #fff,
	3px 0 1.5px #fff,
	0 -3px 3px #fff,
	-3px -3px 1.5px #fff,
	-3px 0 3px #fff;
}
@media only screen and (max-width: 640px) {
  .comp_hero_heading .sp_width80r {
     width: 80%;
  }
}

.elem_text_list ul li {
    margin: 0 0 5px;
    background: url(/library/new/common/img/ico_dotted.png) no-repeat left 0.4em;
    padding: 0 0 0 15px;
    line-height: 1.5;
}
.elem_text_list > ul > li  ul.var_nodot > li {
  background: none;
  padding-left: 0;
}
/*-----------bizMenuBox-------------*/
#bizMenuBox {
    padding: 30px 10px 30px 24px;
    background-color: #e6f1f9;
    margin: 25px auto 25px;
    /*border-top: 6px solid #006ec8;*/
}
#bizMenuBox .ttl {
  display: inline-block;
  width: 22%;
  vertical-align: top;
  box-sizing: border-box;
}

#bizMenuBox .ttl h2 {
  font-size: 1.5em;
  font-weight: bold;
  text-align: left;
}

#bizMenuBox .ttl .btnMore a {
   background: #006ec8 none repeat scroll 0 0;
   color: #fff;
   border-radius: 15px;
   display: block;
   font-size: 1.0rem;
   font-weight: bold;
   margin: 10px 0 0;
   padding: 6px 12px 6px 28px;
   position: relative;
   text-decoration: none;
}
#bizMenuBox .ttl .btnMore a:hover{
   background: #0033a8;
}
#bizMenuBox .ttl .btnMore a:focus-visible {
   outline: 2px solid #000;
}
#bizMenuBox .ttl .btnMore a::before {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  content: "";
  position: absolute;
  top: 9px;
  left: 8px;
  background: #fff;
}
#bizMenuBox .ttl .btnMore a::after {
   border-right: 2px solid #fff;
   border-top: 2px solid #fff;
   content: "";
   display: block;
   height: 6px;
   left: auto;
   margin-top: -4px;
   position: absolute;
   right: 12px;
   top: 50%;
   transform: rotate(45deg);
   width: 6px;
}
#bizMenuBox .biz_baloon {
  position: relative;
  display: inline-block;
  margin: 13px 0;
  padding: 7px 10px;
  min-width: 120px;
  max-width: 100%;
  color: #000;
  background: #FFF;
  box-sizing: border-box;
  border-radius: 15px;
}
#bizMenuBox .biz_baloon:before {
  content: "";
  position: absolute;
  top: -24px;
  left: 50%;
  margin-left: -14px;
  border: 12px solid transparent;
  border-bottom: 12px solid #FFF;
  z-index: 2;
}
#bizMenuBox .biz_baloon p {
  margin: 0;
  padding: 0;
}
#bizMenuBox .ttl .event {
  background: #fff;
  padding: 10px 8px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

#bizMenuBox .ttl .event .apply {
  background: #CF0000;
  position: relative;
  color: #fff;
  min-width:47px;
  padding:3px;
}
#bizMenuBox .ttl .event .apply:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: -10px;
    margin-top: -13px;
    border: 13px solid transparent;
    border-left: 16px solid #CF0000;
    border-right-width: 0px;
}

#bizMenuBox .cont {
   display: inline-block;
   width: 77%;
   box-sizing: border-box;
}
#bizMenuBox .cont ul {
    padding: 0 0 0 12px;
}

#bizMenuBox .cont > ul  > li {
    display: inline-block;
    width: 48%;
    font-size: 0.875rem;
    vertical-align: top;
    line-height: 1.3;
    margin: 0px 0.5% 0 0px;
    padding: 0px 0px 0px 15px;
    border-left: 3px solid #006ec8;
    box-sizing: border-box;
}
#bizMenuBox .cont li p.title {
    line-height: 1.3;
    overflow: hidden;
}
#bizMenuBox .cont li p.title .cate.tag {
    display: inline-block;
    margin-bottom: 10px;
}

#bizMenuBox .cont li .title {
    font-weight: bold;
}
#bizMenuBox .cont li .text {
    line-height: 1.5;
    overflow: hidden;
    margin: 0 0 0 71px;
}
#bizMenuBox .cont li .image {
    float: left;
    width: 65px;
    text-align: center;
    margin: 0 10px 8px 0px;
}
#bizMenuBox .cont li a {
   color: #000;
}
#bizMenuBox .cont li a.link {
   color: #006ec8;
}
#bizMenuBox .cont li a:hover {
   color: #0033a8;
   text-decoration: none;
}
@media screen and (max-width: 640px) {

#bizMenuBox {
    padding: 15px 3% 10px 3%;
}
#bizMenuBox .ttl {
    display: block;
    width: auto;
    vertical-align: top;
    text-align: center;
}
#bizMenuBox .ttl h2 {
    text-align: center;
    font-size:  1.25em;
    display: inline-block;
    vertical-align: top;
   margin: 0 24px 0 0;
}
#bizMenuBox .ttl h2 br {
   display: none;
}
#bizMenuBox .ttl .btnMore  {
    display: inline-block;
    vertical-align: top;
}

#bizMenuBox .ttl .btnMore a {
    margin: 0;
    padding: 6px 36px 4px 30px;
}
#bizMenuBox .ttl .elem_flex_justify {
   justify-content: normal;
}
#bizMenuBox .cont {
    display: block;
    width: auto;
    margin-top: 15px;
}
#bizMenuBox .cont ul {
    padding: 0px;
}
#bizMenuBox .cont > ul > li {
    display: block;
    width: 100%;
    margin: 0px 0 10px 0;
    padding: 12px 0px 0px 0px;
    border-left: none;
    border-top: 1px solid #006ec8;
}
#bizMenuBox .cont li[style*="height: 184px;"] {
  height: auto !important;
}
}

/*-----------Main Menu-------------*/
.bmenu_title {
  background-color : #434343;
  color : #FFFFFF;
  padding : 20px 5px 16px;
}
.bmenu_title h2, .bmenu_title h3{
  text-align : center;
  font-size : 1.125em;
  line-height : 1.2;
}

.bmenu_title h2 a,
.bmenu_title h2 a:hover,
.bmenu_title h2 a:visited,
.bmenu_title h2 a:active,
.bmenu_title h3 a,
.bmenu_title h3 a:hover,
.bmenu_title h3 a:visited,
.bmenu_title h3 a:active{
  color : #FFFFFF;
}

.bmenu_items{
  padding:10px;
  background-color: #F0F0F0;
}
.bmenu_items .elem_linkBox_list li.full {
  display: block;
}
.bmenu_items .elem_linkBox_list li.w_half {
  width: 50%;
  box-sizing: border-box;
}
.bmenu_items .elem_linkBox_list li .linkBox {
    padding: 0 0 3px 0;
}
.bmenu_items .elem_text_list ul.col2 li {
    padding-right: 15px;
}
