@charset "UTF-8";

/* ====================================
	共通スタイル
 ==================================== */
/* メインセクション */
.main-title {
	font-weight: bold;
	text-align: center;
}

.main-copy {
	font-weight: bold;
	line-height: 1.8;
}

.main-movie {
	margin-top: 2em;
	font-weight: 500;
	text-align: center;
}

/* 概要 */
.about-section {
	color: #fff;
}

.about-text em {
	color: #6cf5f7;
	text-decoration: underline;
}

/* サブセクション */
.sub-num {
	font-weight: bold;
	color: #fff;
	text-align: center;
}

.sub-title {
	font-weight: bold;
	text-align: center;
}

/* 製品 */
.products-inner {
	background: #c8e5e3;
}

.product-about {
	margin-bottom: 1em;
	font-weight: bold;
	background: #92d1d2;
	text-align: center;
	box-shadow: 0px 0px 9px 2px rgba(0, 74, 90, 0.4);
}

.products-title {
	font-weight: bold;
	color: #149597;
	text-align: center;
}

.product-name {
	color: #fff;
}

.product-category {
	width: 5em;
	margin: 0 auto .5em;
	background: #fff;
	color: #149597;
}

.product-link {
	display: inline-block;
	margin-top: .5em;
	text-decoration: underline;
}

.product-link:hover {
	text-decoration: none;
}

/* 氷 */
#ice {
	max-width: 900px;
	margin: 0 auto;
	color: #149597;
}

.ice-title {
	padding: .5em 0;
	font-size: 3.6vw;
	background: #deefee;
	box-shadow:0px 0px 8px 0px #9dcddb;
	text-align: center;
}

.counter-num-container {
	margin-top: 3rem;
	margin-bottom: .8em;
	font-size: 10vw;
	line-height : 1;
	text-align : center;
	vertical-align: middle;
	position: relative;
}

.ice-lead {
	font-size: 2.6vw;
	font-weight: bold;
	text-align: center;
}

.counter-num-container .shitsuon {
	font-size: 2vw;
	font-weight: bold;
	position: absolute;
	top: .5em;
	right: 50%;
	margin-right: 8em;
}

.counter-num {
	display: inline-block;
	width: 2.7em;
	height: 1.4em;
	padding: .15em 0 0;
	font-weight: bold;
	color : #fff;
	vertical-align: inherit;
	position: relative;
}

.counter-num-bk {
	width: 100%;
	height: 100%;
	background-image: url(images/bg-ice-counter1.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	position: absolute;
	top: 0;
	left: 0;
}

.counter-num span {
	position: relative;
}

.counter-num-bk * {
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: left top;
	background-size: 100% auto;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	transition: all 2s cubic-bezier(0.190, 1.000, 0.220, 1.000);
}

.counter-status1 {
	background-image: url(images/bg-ice-counter1.png);
}

.counter-status2 {
	background-image: url(images/bg-ice-counter2.png);
}

.counter-status3 {
	background-image: url(images/bg-ice-counter3.png);
}

.counter-status4 {
	background-image: url(images/bg-ice-counter4.png);
}

.counter-status5 {
	background-image: url(images/bg-ice-counter5.png);
}

.status5 .counter-status5,
.status4 .counter-status4,
.status3 .counter-status3,
.status2 .counter-status2 {
	opacity: 1;
}

.status5 .counter-status4,
.status4 .counter-status3,
.status3 .counter-status2,
.status2 .counter-status1 {
	opacity: 0;
}

.tani {
	display: block;
	font-size: .7em;
	font-weight: 500;
	position: absolute;
	top: .5em;
	left: 50%;
	margin-left: 2.5em;
}

.ice-units {
	display: flex;
	justify-content: space-between;
}

.ice-unit {
	width: 32%;
}

.ice-img {
	width: 100%;
	padding-top: 83.338%;
	position: relative;
}

.ice-img * {
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: left top;
	background-size: 100% auto;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}

/* 氷画像 */
.ice-img .ice-ase1 {
	background-image: url(images/ice-ase1.png);
}

.ice-img .ice-ase2 {
	background-image: url(images/ice-ase2.png);
}

#ice1 .ice-status1 {
	background-image: url(images/ice1-1.png);
}

#ice1 .ice-status2 {
	background-image: url(images/ice1-2.png);
}

#ice1 .ice-status3 {
	background-image: url(images/ice1-3.png);
}

#ice2 .ice-status1 {
	background-image: url(images/ice2-1.png);
}

#ice2 .ice-status2 {
	background-image: url(images/ice2-2.png);
}

#ice2 .ice-status3 {
	background-image: url(images/ice2-3.png);
}

#ice3 .ice-status1 {
	background-image: url(images/ice3-1.png);
}

#ice3 .ice-status2 {
	background-image: url(images/ice3-2.png);
}

#ice3 .ice-status3 {
	background-image: url(images/ice3-3.png);
}

/* 氷：汗 */
@keyframes ase1 {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}

@keyframes ase2 {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.ice-ase1 {
	animation: ase1 .6s linear 0s infinite alternate;
}
.ice-ase2 {
	animation: ase2 .6s linear 0s infinite alternate;
}

.ice-status1,
.ice-status2,
.ice-status3 {
	transition: all 2s cubic-bezier(0.190, 1.000, 0.220, 1.000);
}

/* 氷ステータス：状態0 */
.ice-img .ice-ase .ice-ase1 {
	opacity: 1;
}
.ice-img .ice-ase .ice-ase2 {
	opacity: 0;
}

.ice-status1 {
	opacity: 1;
}

/* 氷ステータス：状態1 */
.status1 .ice-status1 {
	opacity: 0;
}

.status1 .ice-status2 {
	opacity: 1;
}

/* 氷ステータス：状態2 */
.status2 .ice-img .ice-ase {
	opacity: 1;
}

/* 氷ステータス：状態3 */
.status3 .ice-img .ice-ase {
	opacity: 0;
}

.status3 .ice-status2 {
	opacity: 0;
}

.status3 .ice-status3 {
	opacity: 1;
}

.ice-text {
	margin-bottom: 2.5em;
	font-size: 2.6vw;
	line-height: 1;
	text-align: center;
	vertical-align: middle;
}

.ice-text .num {
	display: inline-block;
	width: 3em;
	padding: .3em 0;
	background: url(images/bg-ice-num1.png) no-repeat center center;
	background-size: contain;
	color: #fff;
}

.ice-text .num.num2 {
	background-image: url(images/bg-ice-num2.png);
}

.ice-text .num.num3 {
	background-image: url(images/bg-ice-num3.png);
}

.ice-text .text {
	display: inline-block;
	margin-left: .25em;
}

/* ====================================
	スマートフォン専用スタイル
===================================== */
@media only screen and (max-width: 767px) {
	/* メインセクション */
	.main-section {
		height: 143vw;
		padding: 12vw 0 0;
		text-align: center;
		background-image: url(images/main-visual_sp.png);
		background-repeat: no-repeat;
		background-position: center top;
		background-size: 100% auto;
	}
	.main-logo {
		width: 48vw;
		margin: 0 auto 9vw;
	}
	.main-title {
		margin-bottom: 7vw;
		font-size: 6.4vw;
		line-height: 1.6;
	}
	.main-copy {
		font-size: 3.3vw;
		line-height: 2.3;
	}

	/* 概要 */
	.parallax-about {
		background-image: url(images/bg-about-cover_sp.jpg);
		background-repeat: repeat;
		background-position: center center;
		background-size: cover;
	}
	.about-section {
		padding: 12vw 0 26vw;
		background-image: url(images/bg-about_sp.png);
		background-repeat: no-repeat;
		background-position: center bottom;
		background-size: contain;
	}
	.about-title {
		margin-bottom: 3rem;
		font-size: 2.2rem;
	}
	.about-text {
		font-size: 1.4rem;
		line-height: 2;
	}
	.about-text em {
		font-size: 1.8rem;
	}
	.about-img {
		max-width: 480px;
		margin: 2rem auto 0;
	}

	/* サブセクション */
	.sub-section {
		padding: 4rem 0;
	}
	.sub-num {
		width: 60px;
		margin: 0 auto 3rem;
	}
	.sub-title {
		max-width: 320px;
		margin: 0 auto 3rem;
		font-size: 2rem;
	}
	.text-container {
		font-size: 1.4rem;
		line-height: 1.8;
	}
	.text-container .text+.text {
		margin-top: 2em;
	}
	.img-container {
		max-width: 480px;
		margin: 2rem auto 0;
	}

	/* 製品 */
	.products {
		max-width: 480px;
		margin: 5rem auto 0;
		padding: 4px;
		background: url(images/bg-products.jpg) no-repeat center center;
		background-size: cover;
	}
	.products-inner {
		padding: 2rem 8%;
	}
	.products-title {
		margin-bottom: 4rem;
		font-size: 1.8rem;
	}
	.products .flex-item {
		margin-top: 3rem;
	}
	.products .flex-item:first-of-type {
		margin-top: 0;
	}
	.product-about {
		padding: 5% 2% 2%;
	}
	.product-name {
		font-size: 1.4rem;
		line-height: 1.4;
	}
	.product-img {
		max-width: 140px;
		margin: 0 auto;
	}
	.product-category {
		font-size: 1.3rem;
	}
	.products .text {
		font-size: 1.2rem;
	}
	.products .btn-link {
		max-width: 320px;
		margin: 3rem auto 0;
	}

	/* 個別スタイル */
	#sub01 ul.star {
		margin-top: 2rem;
	}
	#sub01 em {
		font-size: 1.6rem;
	}
	#ice {
		margin-top: 4rem;
	}
	.ice-title {
		margin-bottom: 2em;
	}
	.counter-num-container .shitsuon {
		margin-bottom: 1em;
	}
	#sub01 .text-container {
		margin-top: 3rem;
	}
	#sub01 .graph {
		margin: 3rem 0 0;
	}
	#sub02.sub-section {
		padding-top: 100px;
		position: relative;
	}
	#sub02.sub-section::before {
		content: '';
		display: block;
		width: 100%;
		height: 100px;
		background-image: url(images/line01_sp.png);
		background-repeat: no-repeat;
		background-position: center center;
		background-size: 100% auto;
		position: absolute;
		top: 0;
		left: 0;
	}
	#sub03 .btn-link {
		max-width: 640px;
		margin: 4rem auto 0;
	}
}

/* ====================================
	PC&タブレット、印刷専用スタイル
===================================== */
@media print , screen and (min-width: 768px) {
	/* メインセクション */
	.main-section {
		height: 1000px;
		padding: 24rem 0 0;
		text-align: center;
		background-image: url(images/main-visual.png);
		background-repeat: no-repeat;
		background-position: center top;
	}
	.main-logo {
		width: 500px;
		margin: 0 auto 9rem;
	}
	.main-title {
		margin-bottom: 6rem;
		font-size: 6rem;
	}
	.main-copy {
		font-size: 2rem;
		line-height: 2;
	}

	/* 概要 */
	.about-section {
		padding: 12rem 0 30rem;
		background-image: url(images/bg-about.png);
		background-repeat: no-repeat;
		background-position: center bottom;
	}
	.about-title {
		margin-bottom: 6rem;
		font-size: 4rem;
	}
	.about-text {
		line-height: 2;
	}
	.about-text em {
		font-size: 2.4rem;
	}
	.about-text+.about-text {
		margin-top: 2em;
	}

	/* サブセクション */
	.sub-section {

	}
	.sub-num {
		width: 96px;
		margin: 0 auto 4rem;
	}
	.sub-title {
		margin-bottom: 7rem;
		font-size: 4.2rem;
	}
	.text-container {
		line-height: 2;
	}
	.text-container .text+.text {
		margin-top: 2em;
	}

	/* 製品 */
	.products {
		margin-top: 10rem;
		padding: 10px;
		background: url(images/bg-products.jpg) no-repeat center center;
		background-size: cover;
	}
	.products-inner {
		padding: 5rem 5% 6rem;
	}
	.products-title {
		margin-bottom: 6rem;
		font-size: 2.4rem;
	}
	.products .flex-container {
		justify-content: space-between;
	}
	.products .flex-item {
		width: 30%;
	}
	.product-about {
		padding: 8% 4% 4%;
	}
	.product-name {
		margin-bottom: .5em;
		font-size: 1.7rem;
		line-height: 1.4;
	}
	.product-img {
		max-width: 260px;
		margin: 0 auto;
	}
	.products .text {
		font-size: 1.3rem;
		line-height: 1.8;
	}
	.products .btn-link {
		width: 574px;
		margin: 5rem auto 0;
	}

	/* 個別スタイル */
	#sub01.sub-section {
		padding: 0 0 0;
	}
	#sub01 .text {
		text-align: center;
	}
	#sub01 ul.star {
		margin-top: 2rem;
		text-align: center;
	}
	#sub01 em {
		font-size: 2rem;
	}
	#ice {
		margin-top: 12rem;
	}
	.ice-title {
		margin-bottom: 7rem;
		font-size: 2.4rem;
	}
	#sub01 .text-container {
		margin-top: 6rem;
	}
	#sub01 .graph {
		max-width: 900px;
		margin: 6rem auto 0;
	}
	#sub02.sub-section {
		padding-top: 320px;
		position: relative;
	}
	#sub02.sub-section::before {
		content: '';
		display: block;
		width: 100%;
		height: 320px;
		background-image: url(images/line01.png);
		background-repeat: no-repeat;
		background-position: center center;
		position: absolute;
		top: 0;
		left: 0;
	}
	#sub02 .flex-container.inner .flex-item {
		display: flex;
		align-items: center;
	}
	#sub02 .flex-text {
		flex: 1;
	}
	#sub02 .order-0 {
		order: 0;
	}
	#sub02 .order-1 {
		order: 1;
	}
	#sub02 .flex-img-r {
		width: 50%;
		margin-left: 4%;
	}
	#sub02 .flex-img-l {
		width: 50%;
		margin-right: 4%;
	}
	#sub03.sub-section {
		padding-top: 320px;
		padding-bottom: 8rem;
		position: relative;
	}
	#sub03.sub-section::before {
		content: '';
		display: block;
		width: 100%;
		height: 320px;
		background-image: url(images/line02.png);
		background-repeat: no-repeat;
		background-position: center center;
		position: absolute;
		top: 0;
		left: 0;
	}
	#sub03 .flex-container.inner .flex-item {
		display: flex;
		align-items: center;
	}
	#sub03 .flex-text {
		flex: 1;
	}
	#sub03 .flex-img-r {
		width: 50%;
		margin-left: 4%;
	}
	#sub03 .btn-link {
		max-width: 805px;
		margin: 16rem auto 0;
	}
}

/* ====================================
	タブレット、印刷専用スタイル
===================================== */
@media print , screen and (min-width: 768px) and (max-width: 1079px) {
	/* メインセクション */
	.main-section {
		height: 143vw;
		padding: 15vw 0 0;
		text-align: center;
		background-image: url(images/main-visual_sp.png);
		background-repeat: no-repeat;
		background-position: center top;
		background-size: 100% auto;
	}
	.main-logo {
		width: 48vw;
		margin: 0 auto 9vw;
	}
	.main-title {
		margin-bottom: 7vw;
		font-size: 6.4vw;
		line-height: 1.6;
	}
	.main-copy {
		font-size: 3.3vw;
		line-height: 2.3;
	}
	.parallax-about {
		background-image: url(images/bg-about-cover_sp.jpg);
		background-repeat: repeat;
		background-position: center center;
		background-size: cover;
	}
	.about-img {
		max-width: 580px;
		margin: 4rem auto 0;
	}
	.counter-num-container {
		margin-top: 5rem;
	}
	.counter-num-container .shitsuon {
		margin-bottom: 1em;
	}
	#sub03 .btn-link {
		margin: 8rem auto 0;
	}
}

/* ====================================
	PC専用スタイル
===================================== */
@media only screen and (min-width: 1080px) {
	/* 概要 */
	.parallax-about {
		background-image: url(images/bg-about-cover.jpg);
		background-repeat: no-repeat;
		background-position: center center;
		background-size: cover;
		background-attachment: fixed;
	}
	.ua-ipad .parallax-about {
		background-attachment: scroll;
	}
	.parallax-about-inner {
		background-image: url(images/about-illust.png);
		background-repeat: no-repeat;
		background-position: center center;
		background-attachment: fixed;
	}
	.ua-ipad .parallax-about-inner {
		background-position: center bottom 240px;
		background-attachment: scroll;
	}
	.about-text {
		width: 480px;
	}

	/* 氷 */
	.ice-lead {
		font-size: 2.4rem;
	}
	.counter-num-container {
		margin-top: 5rem;
		font-size: 10rem;
	}
	.counter-num-container .shitsuon {
		font-size: 1.5rem;
		position: absolute;
		top: .5em;
		right: 50%;
		margin-right: 11em;
	}
	.counter-num-container .ice-lead {
		font-size: 2.4rem;
	}
	.ice-text {
		font-size: 2.4rem;
	}
}

/* ====================================
	IE専用スタイル
===================================== */
@media all and (-ms-high-contrast: none) {
	/* 概要 */
	.parallax-about {
		background-attachment: scroll;
	}
	.parallax-about-inner {
		background-position: center bottom 220px;
		background-attachment: scroll;
	}
}