@charset "UTF-8";

/* flex */
.block_flex {
	width:100%;
	display:flex;
	flex-wrap: wrap;
	justify-content: space-between;
}


/* top page */
.container {
	width:90%;
	max-width:768px;
	height:100%;
	margin:30px auto 100px;
	position:relative;
}


@keyframes floating-y {
  0% {
    transform: translateY(-10%);
  }
  100% {
    transform: translateY(10%);
  }
}


@keyframes floating-y-r {
  0% {
    transform: translateY(10%);
  }
  100% {
    transform: translateY(-10%);
  }
}


.item01 {
	width:250px;
	position:absolute;
	top:-30px;
	left:-30px;
	transform:rotate(-25deg);
	z-index:-1;
	animation: floating-y-r 1.6s ease-in-out infinite alternate-reverse;
}

.item02 {
	width:220px;
	position:absolute;
	top:-50px;
	right:-120px;
	z-index:-1;
	animation: floating-y 1.5s ease-in-out infinite alternate-reverse;
}

.item03 {
	width:250px;
	position:absolute;
	bottom:-250px;
	left:-100px;
	z-index:-1;
	transform:rotate(-25deg);
	animation: floating-y 1.9s ease-in-out infinite alternate-reverse;
}

.item04 {
	width:200px;
	position:absolute;
	bottom:-250px;
	right:-30px;
	z-index:-1;
	animation: floating-y-r 1.8s ease-in-out infinite alternate-reverse;
}

.item05 {
	width:250px;
	position:absolute;
	bottom:-330px;
	left:200px;
	z-index:-1;
	animation: floating-y-r 1.7s ease-in-out infinite alternate-reverse;
}

.item06 {
	width:180px;
	position:absolute;
	top:-80px;
	right:60px;
	z-index:-1;
	transform:rotate(-25deg);
	animation: floating-y 1.4s ease-in-out infinite alternate-reverse;
}


@media all and (max-width:560px) {
.item01 {
	width:150px;
	position:absolute;
	top:-30px;
	left:-30px;
	transform:rotate(-25deg);
	z-index:-1;
}

.item02 {
	width:200px;
	position:absolute;
	top:-50px;
	right:-120px;
	z-index:-1;
}

.item03 {
	width:150px;
	position:absolute;
	bottom:-100px;
	left:-50px;
	z-index:-1;
}

.item04 {
	width:130px;
	position:absolute;
	bottom:-120px;
	right:-30px;
	z-index:-1;
}

.item05 {
	width:130px;
	position:absolute;
	bottom:-150px;
	left:100px;
	z-index:-1;
}
	
.item06 {
	width:150px;
	position:absolute;
	top:-130px;
	right:30px;
	z-index:-1;
}
}


.item01 img,
.item02 img,
.item03 img,
.item04 img,
.item05 img,
.item06 img {
	width:100%;
}




/* special offer */
.block_sp_offer {
	width:96%;
	max-width:768px;
	margin:0 auto;
	background:url("../../images/front/bg_offer.jpg") no-repeat center center;
	background-size:cover;
	color:#FFF;
	padding:2em 0 0;
	border-radius: 10px;
	box-shadow: 0px 5px 5px rgba(0,0,0,.3);
	overflow:hidden;
}


.block_sp_offer .ttl_h3 {
	font-size:3rem;
	text-shadow: 0px 3px 3px rgba(0,0,0,.8);
	transform:rotate(-5deg);
	margin:0 0 30px;
}

.block_offer_content {
	padding:1.5em;
	text-align:center;
}

.tbl_expiry {
	width:100%;
	border:none;
	border-collapse: collapse;
	font-weight:600;
	margin:0 0 20px;
}


.tbl_expiry th {
	width:40%;
	padding:0.5em;
	text-align:center;
	vertical-align: middle;
	background:#FFF;
	color:#000;
	font-weight:300;
	font-size:1.4rem;
}


.tbl_expiry td {
	width:60%;
	padding:0.5em;
	text-align:center;
	vertical-align: middle;
	background:#900;
	color:#FFF;
	font-size:1.8rem;
	
}


.title_offer {
	font-size:2.4rem;
	text-shadow: 0px 2px 3px rgba(0,0,0,.8);
	line-height:1.4;
	font-family: "Raleway", sans-serif;
	font-optical-sizing: auto;
	font-weight: 600;
	font-style: normal;
}

.block_showstaff {
	width:100%;
	padding:1em;
	background-color:tomato;
	font-size:1.6rem;
	font-weight:600;
}

/* タブ切り替え用 */
.lang_tab {
	width: 100%;
	margin: 0 auto;
	border:none;
}

.tab_menu {
	display:inline-block;
	font-size:1.6rem;
	padding:7px 10px 0;
	height: 40px;
	background-color: #d9d9d9;
	transition: all 0.2s ease;
	font-weight:500;
	border-radius: 5px;
}

.tab_menu:hover {
  opacity: 0.75;
}

input[name="tab_menu"] {
  display: none;
}

.tab_contents {
  display: none;
  clear: both;
  overflow: hidden;
  transition: .5s opacity;
	padding:20px 0 0;
}

#menu_jp:checked ~ #content_jp,
#menu_en:checked ~ #content_en,
#menu_hn:checked ~ #content_hn,
#menu_kn:checked ~ #content_kn,
#menu_kr:checked ~ #content_kr {
  display: block;
}

.lang_tab input:checked + .tab_menu {
  background-color: #b3d465;
  color: #fff;
}


/* shop info */
.block_shopinfo {
	width:96%;
	max-width:768px;
	margin:0 auto;
	background:#FFF;
	padding:0 0 3em;
	border-radius: 10px;
	box-shadow: 0px 5px 5px rgba(0,0,0,.3);
	overflow:hidden;
}


.area_text {
	font-size:1.6rem;
	padding:1.5em;
}


.area_text h4 {
	font-size:2rem;
}


.genre {
	font-size:1.3rem;
	color:gray;
}


.list_shopInfo {
	border-top:1px solid #CCC;
}


.list_shopInfo li {
	padding:0.5em 0.5em 0.5em 50px;
	border-bottom:1px solid #CCC;
	position:relative;
}


.list_shopInfo li.ico_address::before {
	content:"\f3c5";
	font-family: "Font Awesome 6 Pro";
	color:#FFF;
	display:block;
	box-sizing: border-box;
	width:30px;
	height:30px;
	border-radius: 50%;
	text-align:center;
	background-color:steelblue;
	position:absolute;
	padding:3px 0 0;
	top:5px;
	left:5px;
}


.list_shopInfo li.ico_phone::before {
	content:"\f8d3";
	font-family: "Font Awesome 6 Pro";
	color:#FFF;
	display:block;
	box-sizing: border-box;
	width:30px;
	height:30px;
	border-radius: 50%;
	text-align:center;
	background-color:steelblue;
	position:absolute;
	padding:3px 0 0;
	top:5px;
	left:5px;
}


.list_shopInfo li.ico_wifi::before {
	content:"\f1eb";
	font-family: "Font Awesome 6 Pro";
	color:#FFF;
	display:block;
	box-sizing: border-box;
	width:30px;
	height:30px;
	border-radius: 50%;
	text-align:center;
	background-color:steelblue;
	position:absolute;
	padding:3px 0 0;
	top:5px;
	left:5px;
}


/* information */
.block_info {
	width:96%;
	max-width:768px;
	margin:0 auto;
	background:#FFF;
	padding:1.5em 1.5em 3em;
	border-radius: 10px;
	box-shadow: 0px 5px 5px rgba(0,0,0,.3);
	overflow:hidden;
	font-size:1.6rem;
}

@media all and (max-width:560px) {
.block_info {
	width:96%;
	max-width:768px;
	margin:0 auto;
	background:#FFF;
	padding:1.5em 1em 3em;
	border-radius: 10px;
	box-shadow: 0px 5px 5px rgba(0,0,0,.3);
	overflow:hidden;
	font-size:1.6rem;
}	
}


.tbl_taxi {
	width:100%;
	border:none;
	border-collapse: collapse;
	border-top:1px solid #CCC;
}


.tbl_taxi th, .tbl_taxi td {
	padding:.7em;
	border-bottom:1px solid #CCC;
	text-align:center;
}


.tbl_taxi th {
	background:#e9f8ff;
}


.tbl_taxi tr:nth-child(even) {
	background:#F5f6f6;
}


.bus_info {
	width:100%;
	background:#fffadd;
	padding:1.5em;
}


.bus_info h5 {
	font-size:1.8rem;
}


.txt_info {
	width:96%;
	max-width:768px;
	margin:0 auto 30px;
	font-size:1.6rem;
}


.list_mall {
	width:100%;
	max-width:768px;
	margin:0 auto;
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
}


.list_mall li {
	width:48%;
	padding:0;
	margin:0 0 30px;
	border-radius: 10px;
	box-shadow: 0px 5px 5px rgba(0,0,0,.2);
	overflow:hidden;
	background:#FFF;
}

@media all and (max-width:560px) {
.list_mall li {
	width:100%;
	padding:0;
	margin:0 0 30px;
	border-radius: 10px;
	box-shadow: 0px 5px 5px rgba(0,0,0,.2);
	overflow:hidden;
	background:#FFF;
}
}


.list_mall li a {
	display:block;
	border-radius: 10px;
	overflow:hidden;
	background:#FFF;
}

.text_area {
	font-size:1.6rem;
	padding:1em 1.5em 1.5em;
}


.ttl_mall {
	color:#000;
	font-size:2rem;
	font-weight:500;
}


.ttl_sub {
	font-size:1.4rem;
	color:gray;
}


.list_offer {
	width:96%;
	max-width:768px;
	margin:0 auto;
}


.list_offer li {
	width:100%;
	font-size:1.6rem;
	padding:1em;
	margin:0 0 15px;
	border-radius: 10px;
	box-shadow: 0px 5px 5px rgba(0,0,0,.2);
	background:#FFF;
}


.txt_offer {
	font-size:2rem;
	color:tomato;
	font-weight:500;
	margin:0 0 5px;
	line-height:1.4;
}


.shop_name {
	color:#000;
	margin:0 0 10px;
}


.shop_name span {
	font-size:1.3rem;
}


/* フロー */
.flow {
	width:100%;
	display:flex;
	flex-wrap:wrap;
	flex-direction: row-reverse;
	justify-content: space-between;
	background:#F5F6F6;
	color:#000;
	font-size:1.8rem;
	border-radius: 10px;
	overflow:hidden;
	box-shadow:0px 3px 5px rgba(0,0,0,.2);
}


.flow dl {
	width:66%;
	padding:15px 30px;
}


.flow dl dt {
	font-size:2.4rem;
	padding:10px 0 10px 60px;
	position:relative;
	color:#1155C4;
}


.flow dl dt::before {
	content:attr(data-number);
	display:inline-block;
	font-family: "Montserrat", sans-serif;
	color:#1155C4;
	font-size:4rem;
	font-weight:600;
	position:absolute;
	top:-5px;
	left:0;
}


.flow .block_image {
    width:34%;
    position:relative;
    background:#EEE;
	border-radius: 0;
	margin:0;
}


.flow .block_image::before {
    padding-top:75%;
    content:"";
    display:block;
}


.flow .block_image img {
    width:100%;
    height:100%;
    position:absolute;
    top:0;
    left:0;
    object-fit:cover;
}


@media all and (max-width:560px) {
.flow {
	width:100%;
	display:block;
	flex-wrap:wrap;
	justify-content: space-between;
	background:#F5F6F6;
	color:#000;
	font-size:1.4rem;
	border-radius: 10px;
	overflow:hidden;
	box-shadow:0px 3px 5px rgba(0,0,0,.2);
}
	
.flow dl {
	width:100%;
	padding:15px;
}
	
.flow dl dt {
	font-size:1.6rem;
	padding:0 0 10px 40px;
	position:relative;
	color:#1155C4;
}
	
.flow dl dt::before {
	content:attr(data-number);
	display:inline-block;
	font-family: "Montserrat", sans-serif;
	color:#1155C4;
	font-size:2.6rem;
	font-weight:600;
	position:absolute;
	top:-8px;
	left:0;
}
	
.flow .block_image {
    width:100%;
    position:relative;
    background:#EEE;
	border-radius: 0;
	margin:0 0 10px;
}
}


.ship_info {
	width:90%;
	margin:0 auto;
	position:relative;
}


.ship_name {
	line-height:60px;
	position: relative;
	height: 60px;
	margin: -3em 50px 1em;
	padding: 0 2rem;
	text-align: center;
	color: #fff;
	background: #fa4141;
	font-size:2.1rem;
	font-weight:bold;
}


@media all and (max-width:560px) {
.ship_info {
	width:90%;
	margin:0 auto;
	position:relative;
}
	
	
.ship_name {
	line-height:60px;
	position: relative;
	height: 60px;
	margin: -3em 50px 1em;
	padding: 0 2rem;
	text-align: center;
	color: #fff;
	background: #fa4141;
	font-size:1.6rem;
	font-weight:bold;
}	
}


.ship_name:before,
.ship_name:after {
	position: absolute;
	top: 0;
	display: block;
	width: 0;
	height: 0;
	content: "";
	border: 30px solid #fa4141;
}

.ship_name:before {
  left: -40px;
  border-left-width: 15px;
  border-left-color: transparent;
}

.ship_name:after {
  right: -40px;
  border-right-width: 15px;
  border-right-color: transparent;
}

.ship_name span {
  position: relative;
  display: block;
}


.arrivalDate {
	width:100px;
	height:100px;
	background:#FA0;
	color:#FFF;
	border-radius: 50%;
	text-align:center;
	font-size:2.4rem;
	font-weight:bold;
	line-height:1.2;
	padding:10px 0 0;
	position:absolute;
	top:-20px;
	right:0;
}


@media all and (max-width:560px) {
.arrivalDate {
	width:100px;
	height:100px;
	background:#FA0;
	color:#FFF;
	border-radius: 50%;
	text-align:center;
	font-size:2.4rem;
	font-weight:bold;
	line-height:1.2;
	padding:10px 0 0;
	position:absolute;
	top:-20px;
	right:-10px;
}
}


.arrivalDate span {
	display:block;
	font-weight:normal;
	font-size:1.8rem;
}


ul.flow_usage {
	counter-reset: number;
	font-size:1.6rem;
}


ul.flow_usage li {
	counter-increment: number;
	padding:15px 0 15px 50px;
	position: relative;
}


ul.flow_usage li::before {
	content:counter(number);
	display:block;
	width:30px;
	height:30px;
	color:#FFF;
	background-color:steelblue;
	text-align:center;
	padding:3px;
	border-radius: 50%;
	font-size:2rem;
	font-weight:bold;
	position:absolute;
	top:8px;
	left:0;
}