@charset "utf-8";

/* ===================================================================

CSS information
file name  :  style.css
 
=================================================================== */

/* ===================================================================
SETTING
=================================================================== */

/* RESET
--------------------*/

html, body, 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, center,
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, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font-family: inherit;
	background: transparent;
	vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}

body * {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

input[type="text"],
input[type="password"],
input[type="submit"],
input[type="button"],
input[type="email"],
input[type="tel"],
input[type="date"],
button, 
textarea, 
select {
	-webkit-appearance: none;
	-moz-appearance: none; 
	appearance: none; 
	text-overflow: '';
	border-radius: 0;
	border: none; 
	outline: none;
	resize: none;
}

input[type="submit"],
input[type="button"] {
	-webkit-appearance: none;
	border-radius: 0;
	outline: none;
}

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
  display: none;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

input[type="number"] {
	-moz-appearance: textfield;
}

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}

select::-ms-expand {
	display: none;
}

* a {
    text-decoration: none;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    font-family: inherit;
    text-align: inherit;
    line-height: inherit;
    outline: 0;
    cursor: pointer;
}

* a img {
	border-style: none;
	outline: none;
	cursor: pointer;
}

img {
	width: 100%;
	height: auto;
	vertical-align: middle;
}

.cf:after {
	content: "";
	display: block;
	clear: both;
}

/* FONT
--------------------*/

/* Noto Sans JP */
@font-face {
    font-family: 'Noto Sans JP';
    src: url('/font/NotoSansJP-Light.otf') format('opentype');
	font-weight: 300;
	font-style: normal;
}

@font-face {
    font-family: 'Noto Sans JP';
    src: url('/font/NotoSansJP-Regular.otf') format('opentype');
	font-weight: 400;
	font-style: normal;
}

@font-face {
    font-family: 'Noto Sans JP';
    src: url('/font/NotoSansJP-Medium.otf') format('opentype');
	font-weight: 500;
	font-style: normal;
}

@font-face {
    font-family: 'Noto Sans JP';
    src: url('/font/NotoSansJP-Bold.otf') format('opentype');
	font-weight: 700;
	font-style: normal;
}

/* BODY
--------------------*/

body {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 100vh;
	color: #555555;
	font-size: 14px;
	font-family: 'Noto Sans JP',sans-serif;
	overflow-x: hidden;
}

/* DISPLAY
--------------------*/

.sp {
	display: none !important;
}

.pc {
	display: block !important;
}

.br-sp,
.in-sp {
	display: none !important;
}

.br-pc,
.in-pc {
	display: inline !important;
}

@media screen and (max-width: 1023px) {

	.sp {
		display: block !important;
	}
	
	.pc {
		display: none !important;
	}

	.br-sp,
	.in-sp {
		display: inline !important;
	}
	
	.br-pc,
	.in-pc {
		display: none !important;
	}
	
}

/* WRAPPER
--------------------*/

.wrapper {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	width: 100%;
}

/* CONTAINER
--------------------*/

.container-header {
	position: relative;
	width: 100%;
	max-width: 1920px;
	margin: 0 auto;
}

.container-1000 {
	position: relative;
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
}

.container-all {
	position: relative;
	width: 100%;
	max-width: none;
	margin: 0 auto;
}

@media screen and (max-width: 1023px) {

	/* CONTAINER
	--------------------*/

	.container-header {
		width: 100%;
		max-width: 768px;
		padding: 0;
	}

	.container-1000,
	.container-all {
		width: 100%;
		max-width: 520px;
		padding: 0 10px;
	}
	
}

/* ===================================================================
SCROLL
=================================================================== */

.fadein {
    opacity: 0;
    transform: translate(0, 40px);
    transition: all .5s ease-out 0s;
}

.fadein.active {
    opacity: 1;
    transform: translate(0, 0);
}

/* ===================================================================
HEADER
=================================================================== */

header {
	position: relative;
	margin: 0 0 40px;
	background: #9ACDD8;
	overflow: hidden;
}

header:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 0);
    width: 100%;
    height: 110px;
	background: url(/img/kv/snow.png) 50% 50% / 1920px 110px repeat-x transparent;
	z-index: 20;
}

.h-back-left {
	position: absolute;
	top: 0;
	left: 20px;
	z-index: 10;
}

.h-back-right {
	position: absolute;
	top: 0;
	right: 20px;
	z-index: 10;
}

.h-kv-inner {
	position: relative;
	padding: 30px 0 100px;
}

.h-kv-main {
	position: relative;
	z-index: 30;
}

.h-kv-chara {
	position: absolute;
	left: 50%;
	transform: translate(-50%, 0);
	bottom: 10px;
	z-index: 40;
}

/* ===================================================================
COMMON
=================================================================== */

.c-title {
	position: relative;
	margin: 0 0 40px;
	padding: 0 0 2px;
	border-top-left-radius: 10px;
	border-top-right-radius: 10px;
}

.c-title:before,
.c-title:after {
	content: '';
	position: absolute;
	bottom: 5px;
	z-index: 10;
}

.c-title:before {
	left: 15px;
	width: 62px;
	height: 65px;
	background: url(/img/common/sobacchi.png) 50% 50% / contain no-repeat, transparent;
}

.c-title:after {
	right: 15px;
	width: 53px;
	height: 70px;
	background: url(/img/common/amabie.png) 50% 50% / contain no-repeat, transparent;
}

.c-title .c-title-inner {
    position: relative;
    padding: 3.5px 0;
    text-align: center;
    font-size: 40px;
	font-weight: 500;
	letter-spacing: 2px;
}

.c-title.c-title-b {
	background: #9ACDD8;
}

.c-title.c-title-w {
	background: #fff;
}

.c-title.c-title-b .c-title-inner {
	color: #fff;
	border-bottom: 6px solid #fff;
}

.c-title.c-title-w  .c-title-inner {
	color: #9ACDD8;
	border-bottom: 6px solid #9ACDD8;
}

/* ===================================================================
OVERVIEW
=================================================================== */

.sec-overview {
    margin: 0 0 60px;
}

.o-detail {
	padding: 10px 0;
}

.o-detail-main {
	margin: 0 0 50px;
	font-size: 24px;
	font-weight: 500;
	text-align: center;
	line-height: 2.4;
    letter-spacing: 1px;
}

.o-detail-sub {
	font-size: 18px;
	font-weight: 500;
	text-align: center;
	line-height: 2;
    letter-spacing: 1px;
}

.o-detail-main span,
.o-detail-sub span {
	color: #CC4736;
}

/* ===================================================================
LIST - SEARCH
=================================================================== */

.sec-list {
	margin: 0 0 75px;
	padding: 80px 0 40px;
	background: #9ACDD8;
}

.search {
	margin: 0 0 70px;
}

.search-inner {
	position: relative;
	padding: 35px 30px 55px;
	background: #fff;
}

.search-inner:after {
	content: '';
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, 0);
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 30px 35px 0 35px;
	border-color: #fff transparent transparent transparent;
}

/* TITLE
--------------------*/

.s-area-title,
.s-cities-title {
	margin: 0 0 20px;
	font-size: 20px;
	font-weight: 500;
}

/* LAYOUT
--------------------*/

.s-area {
	margin: 0 0 30px;
}

.s-area .s-area-inner {
	display: flex;
	justify-content: space-between;
}

.s-area input[name^=area_] {
	display: none;
}

.s-area label[for^=area_] {
    display: flex;
    justify-content: center;
	align-items: flex-end;
	width: 19%;
	padding: 20px 0;
	color: #fff;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 2px;
	background: #C6C6C6;
	cursor: pointer;
	transition: all .3s ease-out 0s;
}

.s-area label[for^=area_] span {
	margin: 0 0 0 2px;
    font-size: 14px;
}

.s-area label[for^=area_]:hover {
	opacity: .75;
}

.s-area input[name^=area_]:checked + label[for^=area_] {
	background: #CC4736;
}

.s-cities .s-cities-inner {
	position: relative;
}

.s-cities .s-cities-inner:before {
    content: '';
    position: absolute;
    top: 12px;
    transform: rotate(45deg);
    left: 16px;
    width: 8px;
    height: 8px;
    border-right: 2px solid #555555;
    border-bottom: 2px solid #555555;
    pointer-events: none;
}

.s-cities select[name^=cities_] {
	display: block;
	width: 100%;
	padding: 10px 20px 10px 40px;
	background: #fff;
	border: 1px solid #C6C6C6;
}

/* ===================================================================
LIST - PLAN
=================================================================== */

.p-contents {
	position: relative;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

.p-contents:after {
	content: '';
	display: block;
	width: 32%;
}

.p-content {
	display: flex;
    flex-direction: column;
    justify-content: space-between;
	width: 32%;
	margin: 0 0 40px;
}

.p-content-none {
	display: none;
	width: 100%;
	margin: 0 0 40px;
	text-align: center;
}

.p-img {
	position: relative;
	width: 100%;
    height: 0;
	padding: 56.25% 0 0;
}

.p-img img {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: auto;
    max-width: 100%;
    max-height: 100%;
    margin: auto;
}

/* PLAN DETAIL
--------------------*/

.p-detail {
	display: flex;
    flex-direction: column;
	flex: auto;
}

.p-detail-inner {
	display: flex;
    flex-direction: column;
	flex: auto;
    padding: 20px 12px 12px;
	background: #fff;
}

.p-title {
	width: 100%;
	margin: 0 0 10px;
	font-size: 20px;
	font-weight: 500;
}
.p-desc,
.p-address,
.p-tel {
	margin: 0 0 5px;
	font-weight: 300;
}

.p-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: auto 0 0;
    padding: 10px;
	color: #fff;
	font-size: 18px;
    background: #CC4736;
    letter-spacing: 2px;
    cursor: pointer;
	transition: all .3s ease-out 0s;
}

.p-btn:hover {
	opacity: .75;
}

/* ===================================================================
LINK
=================================================================== */

.link-area a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
	padding: 15px;
	color: #fff;
	font-weight: 500;
    background: #CC4736;
    letter-spacing: 2px;
    cursor: pointer;
	transition: all .3s ease-out 0s;
}

.link-area a:hover {
	opacity: .75;
}

/* ===================================================================
CONTACT
=================================================================== */

.sec-contact {
	margin: 0 0 65px;
}

.con-detail-small {
	margin: 0 0 30px;
	font-weight: 300;
	text-align: center;
}

.con-detail-main {
    margin: 0 0 30px;
    font-size: 30px;
    font-weight: 500;
    text-align: center;
}

.con-detail-sub {
    font-size: 18px;
    font-weight: 300;
    text-align: center;
    line-height: 1.8;
}

/* ===================================================================
IZIMODAL
=================================================================== */

.iziModal * {
	-webkit-font-smoothing: auto;
}

.modal-contents {
	position: relative;
    padding: 60px 25px 60px 60px;
}

.modal-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 60vh;
	padding: 0 35px 0 0;
}

/* DETAIL LAYOUT
--------------------*/

.modal-detail {
	display: grid;
    display: -ms-grid;
    grid-template-rows: 130px 50px;
    -ms-grid-rows: 130px 50px;
    grid-template-columns: 320px 35px 1fr;
    -ms-grid-columns: 320px 35px 1fr;
    grid-row-gap: 0;
    grid-column-gap: 0;
}

.modal-detail-img {
	position: relative;
    grid-row: 1/3;
    -ms-grid-row: 1;
    -ms-grid-row-span: 2;
    grid-column: 1/2;
    -ms-grid-column: 1;
    -ms-grid-column-span: 1;
}

.modal-detail-text {
	position: relative;
    grid-row: 1/2;
    -ms-grid-row: 1;
    -ms-grid-row-span: 1;
    grid-column: 3/4;
    -ms-grid-column: 3;
    -ms-grid-column-span: 1;
}

.modal-detail-btn {
	position: relative;
    grid-row: 2/3;
    -ms-grid-row: 2;
    -ms-grid-row-span: 1;
    grid-column: 3/4;
    -ms-grid-column: 3;
    -ms-grid-column-span: 1;
}

/* DETAIL TEXT
--------------------*/

.modal-detail-text .p-title {
	font-size: 30px;
}

/* DETAIL BUTTON
--------------------*/

.modal-link a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
	padding: 15px;
	color: #fff;
	font-weight: 500;
    background: #CC4736;
    letter-spacing: 2px;
    cursor: pointer;
	transition: all .3s ease-out 0s;
}

.modal-link.end {
    margin: auto 0 0;
}

.modal-link.end a {
	margin: 45px 0 0;
}

.modal-link a:hover {
	opacity: .75;
}

/* CONTENT
--------------------*/

.modal-content {
	position: relative;
}

.modal-content .modal-title {
	margin: 30px 0 0;
	padding: 15px 20px;
	color: #fff;
	font-size: 24px;
	font-weight: 500;
	background: #9ACDD8;
	border-top-left-radius: 10px;
	border-top-right-radius: 10px;
	line-height: 1;
}

/* CONTENT ITEM
--------------------*/

.modal-content .item-0 {
    margin: 20px 0 0;
	font-size: 18px;
	font-weight: 500;
    padding: 0 0 2px;
    border-bottom: 2px solid #9ACDD8;
}

.modal-content .item-price {
	display: flex;
	justify-content: flex-start;
	align-items: center;
}

.modal-content .item-1,
.modal-content .item-2 {
    margin: 20px 0 0;
    color: #CC4736;
    font-weight: 500;
    line-height: 1;
}

.modal-content .item-1 {
    padding: 2px 5px 0 0;
	font-size: 16px;
}

.modal-content .item-2 {
	font-size: 24px;
}

.modal-content .item-3 {
	display: inline-block;
	margin: 20px 0 0;
	padding: 3px 10px;
	color: #fff;
	font-size: 12px;
	font-weight: 500;
	background: #CC4736;
	border-radius: 20px;
	letter-spacing: .5px;
}

.modal-content .item-4 {
	margin: 20px 0 0;
	font-weight: 300;
}

.modal-content .item-5 {
	margin: 20px 0 0;
	color: #CC4736;
	font-weight: 300;
}

/* CLOSE
--------------------*/

.modal-contents .modal-close {
	position: absolute;
    top: 15px;
    right: 15px;
    padding: 5px 30px 5px 5px;
    color: #9ACDD8;
	font-weight: 500;
	line-height: 1;
    cursor: pointer;
}

.modal-contents .modal-close:after {
	content: '';
	position: absolute;
	top: 50%;
	transform: translate(0, -50%);
	right: 0;
	width: 25px;
	height: 25px;
	background: url(/img/common/close.svg) 50% 50% / contain no-repeat, transparent;
}

/* ===================================================================
FOOTER
=================================================================== */

footer {
	margin: auto 0 0;
	padding: 30px 0;
	font-weight: 300;
	text-align: center;
	border-top: 1px solid #9ACDD8;
}

@media screen and (max-width: 1023px) {

	/* ===================================================================
	HEADER
	=================================================================== */

	header {
		margin: 0 0 20px;
	}

	header:after {
		height: 66px;
		background: url(/img/kv/snow.png) 20% 50% / 1152px 66px repeat-x transparent;
	}

	.h-back-left {
		top: 5px;
		left: 0;
		width: 21.25%;
		max-width: 110px;
	}

	.h-back-right {
		top: 5px;
		right: -10px;
		width: 21.25%;
		max-width: 110px;
	}

	.h-kv-inner {
		padding: 5px 0 60px;
	}

	.h-kv-chara {
		bottom: 15px;
		width: 120px;
	}

	/* ===================================================================
	COMMON
	=================================================================== */

	.c-title {
		margin: 0 0 25px;
		padding: 0 0 1px;
		border-top-left-radius: 5px;
		border-top-right-radius: 5px;
	}

	.c-title:before,
	.c-title:after {
		bottom: 2.5px;
	}

	.c-title:before {
		left: 10px;
		width: 31.5px;
		height: 32.5px;
	}

	.c-title:after {
		right: 10px;
		width: 26.5px;
		height: 35px;
	}

	.c-title .c-title-inner {
		font-size: 20px;
		letter-spacing: 1px;
	}

	.c-title.c-title-b .c-title-inner {
		border-bottom: 3px solid #fff;
	}

	.c-title.c-title-w  .c-title-inner {
		border-bottom: 3px solid #9ACDD8;
	}

	/* ===================================================================
	OVERVIEW
	=================================================================== */

	.sec-overview {
		margin: 0 0 25px;
	}

	.o-detail {
		padding: 0;
	}

	.o-detail-main {
		margin: 0 0 25px;
		font-size: 13px;
		font-weight: 500;
		text-align: center;
		line-height: 2;
		letter-spacing: .5px;
	}

	.o-detail-sub {
		font-size: 10px;
		letter-spacing: 0;
	}

	/* ===================================================================
	LIST - SEARCH
	=================================================================== */

	.sec-list {
		margin: 0 0 25px;
		padding: 25px 0 10px;
	}
	
	.search {
		margin: 0 0 35px;
	}

	.search-inner {
		padding: 15px 15px 20px;
	}
	
	.search-inner:after {
		border-width: 24px 28px 0 28px;
	}

	/* TITLE
	--------------------*/

	.s-area-title,
	.s-cities-title {
		margin: 0 0 7.5px;
		font-size: 12px;
	}

	/* LAYOUT
	--------------------*/

	.s-area {
		margin: 0 0 20px;
	}

	.s-area label[for^=area_] {
		padding: 7.5px 0;
		font-size: 10px;
		letter-spacing: 0;
	}

	.s-area label[for^=area_] span {
		font-size: 7px;
	}

	.s-cities .s-cities-inner:before {
		top: 12px;
		left: 12px;
		width: 5px;
		height: 5px;
		border-right: 1px solid #555555;
		border-bottom: 1px solid #555555;
	}
	
	.s-cities select[name^=cities_] {
		padding: 7.5px 10px 7.5px 30px;
		font-size: 10px;
	}

	/* ===================================================================
	LIST - PLAN
	=================================================================== */

	.p-contents:after {
		width: 48.5%;
	}

	.p-content {
		width: 48.5%;
		margin: 0 0 15px;
	}

	.p-content-none {
		margin: 0 0 15px;
		font-size: 12px;
	}

	/* PLAN DETAIL
	--------------------*/

	.p-detail-inner {
		padding: 10px 7.5px;
	}

	.p-title {
		font-size: 10.5px;
	}

	.p-desc,
	.p-address,
	.p-tel {
		font-size: 9px;
	}

	.p-btn {
		padding: 7.5px;
		font-size: 9.5px;
		letter-spacing: 1px;
	}

	/* ===================================================================
	LINK
	=================================================================== */

	.link-area a {
		margin: 0 0 5px;
		padding: 7.5px 10px;
		font-size: 10px;
	}

	/* ===================================================================
	CONTACT
	=================================================================== */

	.sec-contact {
		margin: 0 0 20px;
	}

	.con-detail-small {
		margin: 0 0 15px;
		font-size: 11px;
	}

	.con-detail-main {
		margin: 0 0 15px;
		font-size: 22px;
	}

	.con-detail-sub {
		font-size: 14px;
	}

	/* ===================================================================
	IZIMODAL
	=================================================================== */

	.iziModal {
		margin: auto 20px;
	}

	.modal-contents {
		position: relative;
		padding: 35px 10px 25px 25px;
	}

	.modal-inner {
		max-width: 400px;
    	margin: 0 auto;
		padding: 0 15px 0 0;
	}

	/* DETAIL LAYOUT
	--------------------*/

	.modal-detail {
		display: block;
	}

	.modal-detail-text {
		margin: 0 0 10px;
	}

	.modal-detail-img {
		margin: 0 0 20px;
	}

	/* DETAIL TEXT
	--------------------*/

	.modal-detail-text .p-title {
		font-size: 18px;
	}

	/* DETAIL BUTTON
	--------------------*/

	.modal-link a {
		padding: 7.5px 10px;
		font-size: 10px;
	}

	.modal-link.end a {
		margin: 30px 0 0;
	}

	/* CONTENT
	--------------------*/

	.modal-content {
		position: relative;
	}

	.modal-content .modal-title {
		margin: 20px 0 0;
		padding: 7.5px 10px;
		font-size: 15px;
		border-top-left-radius: 5px;
		border-top-right-radius: 5px;
		line-height: 1.4;
	}

	/* CONTENT ITEM
	--------------------*/

	.modal-content .item-0 {
		margin: 10px 0 0;
		font-size: 12px;
		padding: 0 0 1px;
		border-bottom: 1px solid #9ACDD8;
	}

	.modal-content .item-price {
		display: block;
	}

	.modal-content .item-1,
	.modal-content .item-2 {
		margin: 7.5px 0 0;
		line-height: 1.4;
	}

	.modal-content .item-1 {
		padding: 0;
		font-size: 10px;
	}

	.modal-content .item-2 {
		font-size: 15px;
	}

	.modal-content .item-3 {
		margin: 10px 0 0;
		font-size: 11px;
	}

	.modal-content .item-4,
	.modal-content .item-5 {
		margin: 10px 0 0;
		font-size: 9px;
	}

	/* CLOSE
	--------------------*/

	.modal-contents .modal-close {
		top: 7.5px;
		right: 7.5px;
		padding: 3px 20px 3px 3px;
		font-size: 9px;
	}

	.modal-contents .modal-close:after {
		width: 16px;
		height: 16px;
	}

	/* ===================================================================
	FOOTER
	=================================================================== */

	footer {
		padding: 20px 0;
		font-size: 9px;
		line-height: 1;
	}

}