@charset "utf-8";


.document {
	margin-top:0;
}
@media screen and (min-width: 1080px) {
	.document {
		margin-top:0;
	}
	.mainMenu a {
		color:#000000dd;
	}
	.mainMenu a[unlink] {
    	color:#00000044;
	}
}
header {
	transition-property:background-color,box-shadow;
}
header[act] {
	background:#ffffff00;
}
header:not([act]) {
	#background-color:#ffffff;
}

.flx0[sec01] {
	#background-image:url(sec01.02.jpg);
	background-size:cover;
	background-position:34% center;
	margin-bottom:50px;
}
@media screen and (min-width:840px) {
	.flx0[sec01] {
		background-position:center center;
	}
}
.flx0[sec01][act] {
	#background-image:url(sec01.01.jpg);
}
.flx0[sec01] .inner {
	max-width:1300px;
	font-size:6vw;
	font-weight:700;
	line-height:1.2;
	color:#dddddd;
	vertical-align:bottom;
	pointer-events:none;
}
.flx0[sec01] .inner > div {
	position:relative;
	#height:calc(100vh - (8vw * 2));
	height:var(--sec01Height);
}
.flx0[sec01] .inner > div > div {
	position:absolute;
	right:0;
	bottom:-4vw;
	#padding-bottom:calc(2em + 7vh);
	color:#ffffff;
	text-shadow:0 .2em .3em #000000;
}
.flx0[sec01] .inner .round {
	margin-left:auto;
	border-radius:50%;
	font-size:60%;
	padding:1em;
	background-image:radial-gradient(circle at 25% 25%, #fedc00, #fdd000 90%);
	box-shadow:0 .2em .3em #000000;
}
.flx0[sec01] .inner .round h2 {
	width:6em;
	height:6em;
	font-size:inherit;
	border-radius:50%;
	background-image:radial-gradient(circle at 25% 25%, #fedc00, #29ada0 50%, #168773 90%);
	box-shadow:0 .1em .3em #00000088;
	margin:0;
	display:flex;
	place-items:center;
	place-content:center;
}
.flx0[sec01] .inner .round span {
	display:block;
	width:fit-content;
	height:fit-content;
}
@media screen and (min-width:840px) {
	.flx0[sec01] .inner .round {
		font-size:20px;
	}
	.flx0[sec01] .inner > div > div {
		bottom:0;
	}
}
.flx0[sec01] .topBk {
	position:absolute;
	inset:0;
	transition-duration:1s;
	transition-property:all;
	transition-timing-function:ease;
}
.flx0[sec01] .ani:not([st2]) + .topBk {
	opacity:0;
}
.flx0[sec01] .bk {
	position:absolute;
	inset:0;
	margin:auto;
}
.flx0[sec01] .bk .green {
	background-image:linear-gradient(#29ada0 20%, #168773 75%);
	height:70%;
}
.flx0[sec01] .bk .yellow {
	background-color:#fdd000;
	background-image:radial-gradient(circle at 25% 60%, #fedc00, #fdd000 90%);
	position:absolute;
	inset:50% 0 -10%;
	transform-origin:top center;
	transform:skewY(-10deg);
}
.flx0[sec01] .front {
	position:absolute;
	inset:0;
	max-width:1200px;
	height:fit-content;
	margin:auto;
}
.flx0[sec01] .logo {
	display:block;
	max-width:40%;
	margin:10% auto 5% 5%;
}
.flx0[sec01] .izumi {
	display:block;
	max-width:100%;
	margin:0 0 -10% auto;
}
.flx0[sec01] .newBk {
	display:none;
	position:absolute;
	inset:0;
}
@media screen and (min-width:840px) {
	.flx0[sec01] .logo {
		max-width:45%;
		margin:10% auto -5% 5%;
	}
	.flx0[sec01] .izumi {
		max-width:80%;
		margin:0 0 -10% auto;
	}
}
@media screen and (min-width:1080px) {
	.flx0[sec01] .front {
		width:70%;
	}
}
/*
.flx0[sec01] .newBk input {
	display:none;
}
.flx0[sec01] .newBk label {
	position:absolute;
	display:block;
	inset:0;
	background-size:cover;
	background-position:34% center;
	#margin-bottom:50px;
	display:none;
}
*/
.flx0[sec01] .ani {
	position:absolute;
	top:0;
	left:0;
	bottom:0;
	right:0;
	z-index:2;
	background:#ffffff;
	pointer-events:none;
}
.flx0[sec01] .ani svg {
	width:100%;
	height:100%;
	margin:0;
}
.flx0[sec01] .ani #FTLOGO_RND {
	fill:url(#FTLOGO_FT);
}
.flx0[sec01] .ani #FTLOGO_RND,
.flx0[sec01] .ani #FTLOGO_TXT,
.flx0[sec01] .ani #FTLOGO_F,
.flx0[sec01] .ani #FTLOGO_T {
	transition-property:transform,opacity;
	transition-duration:1s;
	transition-timing-function:ease-out;
	transform:translate(13vw, 0) scale(8);
	opacity:0;
}
.flx0[sec01] .ani #FTLOGO_F {
	transition-delay:0.99s;
	transition-duration:0.01s;
}
.flx0[sec01] .ani + .inner > div > div {
	transition-property:transform,opacity;
	transition-duration:1s;
	transition-delay:1s;
	transition-timing-function:ease-out;
	transform:translate(-10px, 0);
	text-shadow:0 0 10px #000000;
	opacity:0;
}
.flx0[sec01] .ani[st0] #FTLOGO_RND,
.flx0[sec01] .ani[st0] #FTLOGO_TXT,
.flx0[sec01] .ani[st0] #FTLOGO_F,
.flx0[sec01] .ani[st0] #FTLOGO_T {
	transform:translate(15vw, 0) scale(8);
	opacity:1;
}
.flx0[sec01] .ani[ed0] #FTLOGO_F {
	transition-delay:0s;
	transition-duration:1s;
}
.flx0[sec01] .ani[st1] #FTLOGO_TXT,
.flx0[sec01] .ani[st1] #FTLOGO_F,
.flx0[sec01] .ani[st1] #FTLOGO_T {
	transform:translate(5vw, 0) scale(.5);
}
.flx0[sec01] .ani[st1] #FTLOGO_RND,
.flx0[sec01] .ani[st2] #FTLOGO_RND {
	transform:translate(100vw, 0) scale(0);
}
.flx0[sec01] .ani[ed1] #FTLOGO_TXT,
.flx0[sec01] .ani[ed1] #FTLOGO_F,
.flx0[sec01] .ani[ed1] #FTLOGO_T {
	transform:translate(4.8vw, 0) scale(.495);
	transition-duration:2s;
}
.flx0[sec01] .ani[ed1] {
	transition-property:transform,opacity;
	transition-duration:2s;
	transition-timing-function:ease-out;
}
.flx0[sec01] .ani[st2] #FTLOGO_TXT,
.flx0[sec01] .ani[st2] #FTLOGO_F,
.flx0[sec01] .ani[st2] #FTLOGO_T {
	transform:translate(3vw, 0) scale(.485);
}
.flx0[sec01] .ani[st2] {
	opacity:0;
}
.flx0[sec01] .ani[st2] + .inner > div > div {
	transform:translate(0, 0);
	opacity:1;
}
.flx0[sec01] .ani[st2][ed2] + .inner > div > div {
	transition-delay:0s;
}
.flx0[sec01] .ani[st2][st3] + .inner > div > div {
	transform:translate(0, -30vh);
	opacity:0;
}

@media screen and (min-width:840px) {
	.flx0[sec01] .inner {
		font-size:48px;
	}
	.flx0[sec01] .inner > div {
		height:calc(100vh - (48px * 2));
	}
	.flx0[sec01] .ani[st1] #FTLOGO_RND,
	.flx0[sec01] .ani[st2] #FTLOGO_RND {
		transform:translate(30vw, 0) scale(0);
	}
}

.flx0[sech1] {
	margin:auto;
	max-width:800px;
	padding:0 2em;
}
.flx0[sech1] h1 {
	margin:auto;
	width:fit-content;
	max-width:100%;
}

.flx[sec02] {
	margin-bottom:50px;
	background-repeat: no-repeat;
	background-position:center center, right center;
	overflow:hidden;
}
.flx[sec02] h2 {
	font-size:140%;
	text-align:left;
	margin:0;
}
.flx[sec02] b {
	font-size:170%;
	text-align:left;
	padding:.5em 0;
	display:block;
	word-break:keep-all;
}
.flx[sec02] ol {
	font-size:110%;
}
.flx[sec02] ol li {
	margin-bottom:.5em;
	word-break:keep-all;
}
.flx[sec02] ol > li > span {
	display:block;
	font-size:80%;
}
.flx[sec02] .inner {
	max-width:100%;
}
.flx[sec02] .inner > div > div {
	width:100%;
}
.flx[sec02] .inner > div:nth-child(1) > div:before {
	content:'';
	display:block;
	padding-top:75%;
	background-size:cover;
    background-position:right center;
	#background-image:url(sec02.01.jpg);
}
.flx[sec02][act] .inner > div:nth-child(1) > div:before {
	background-image:url(sec02.01.jpg);
}
@media screen and (min-width:840px) {
	.flx[sec02] {
		#background-size:cover, max(100vw, 100vh);
	}
	.flx[sec02][act] {
		#background-image:linear-gradient(to left, #ffffffff, #ffffffff 50%, #ffffff00 50%), url(sec02.01.jpg);
	}
	.flx[sec02][act] .inner > div:nth-child(1) > div:before {
		#background:none;
	}
}

.flx[sec03] {
	background-color:#000000;
	background:linear-gradient(to bottom, #cccccc, #eeeeee);
	background:linear-gradient(to bottom, #29ada099, #29ada000);
	color:#ffffff;
}
.flx[sec03] h2 {
	font-size:170%;
	text-align:left;
	padding:0 2em;
}
.flx[sec03] h3 {
	font-size:120%;
	font-weight:700;
	text-align:left;
	padding:1em 0;
}
.flx[sec03] .inner a > h3 {
	padding-top:5px;
	padding-left:35%;
}
.flx[sec03] .inner a > h3 + div {
	padding-left:35%;
}
.flx[sec03] .inner a > .img {
	position:relative;
	background-size:cover;
	background-repeat:no-repeat;
	background-position:center center;
	transition-property:all;
	transition-duration:.2s;
	transition-timing-function:linear;
	border:5px solid transparent;
	float:left;
	width:30%;
	margin-right:10px;
}
.flx[sec03][act] .inner > div:nth-child(1) a > .img {
	background-image:url(sustainability/sec01.01.jpg);
}
.flx[sec03][act] .inner > div:nth-child(2) a > .img {
	background-image:url(sustainability/sec02.01.jpg);
}
.flx[sec03][act] .inner > div:nth-child(3) a > .img {
	background-image:url(sustainability/sec03.01.jpg);
}
.flx[sec03] .inner a > .img:before {
	content:'';
	display:block;
	padding-top:100%;
}
.flx[sec03] .inner a > .img > svg {
	position:absolute;
	top:-1px;
	left:-1px;
	right:-1px;
	bottom:-1px;
	width:100%;
	height:100%;
}
.flx[sec03] .inner a:hover > .img {
	border-width:0;
}
.flx[sec03] .inner a:after {
	display:block;
	width:fit-content;
	margin-left:auto;
	font-size:90%;
	clear:both;
}
@media screen and (min-width:840px) {
	.flx[sec03] .inner > div {
		width:calc((100% / 4) - 12px);
		align-items:flex-start;
	}
	.flx[sec03] .inner a > h3,
	.flx[sec03] .inner a > h3 + div {
		padding-left:0;
	}
	.flx[sec03] .inner a > .img {
		float:none;
		width:auto;
		margin-right:0;
	}
	.flx[sec03] .inner a:after {
		padding-top:1em;
	}
}

@keyframes sdgani {
   0% { transform: translate(-260px, -120px) translate(-70px, -35px) scale(.7); }
 0.1% { transform: translate(-260px, -120px) translate(-70px, -35px) scale(.7); }
  10% { transform: translate(-120px, -120px) translate(-35px, -35px) scale(.7); }
  20% { transform: translate(   0px, -120px) translate(  0px, -35px) scale(.7); }
  30% { transform: translate( 120px, -120px) translate( 35px, -35px) scale(.7); }
  40% { transform: translate( 120px,    0px) translate( 35px,   0px) scale(.8); }
  50% { transform: translate(   0px,    0px) translate(  0px,   0px) scale(1.6); }
  60% { transform: translate(-120px,    0px) translate(-35px,   0px) scale(.8); }
  70% { transform: translate(-120px,  120px) translate(-35px,  35px) scale(.7); }
  80% { transform: translate(   0px,  120px) translate(  0px,  35px) scale(.7); }
  90% { transform: translate( 120px,  120px) translate( 35px,  35px) scale(.7); }
99.5% { transform: translate( 260px,  120px) translate( 70px,  35px) scale(.7); }
99.7% { transform: translate( 260px, -260px) translate( 70px, -70px) scale(.7); }
99.9% { transform: translate(-260px, -260px) translate(-70px, -70px) scale(.7); }
 100% { transform: translate(-260px, -120px) translate(-70px, -35px) scale(.7); }
}
#sg1,
#sg2,
#sg3,
#sg4,
#sg5,
#sg6,
#sg7,
#sg8,
#sg9 {
	animation-name:sdgani;
	animation-duration:18s;
	animation-timing-function:ease;
	animation-iteration-count:infinite;
}
#sg1 { animation-delay: 0s; }
#sg2 { animation-delay:-2s; }
#sg3 { animation-delay:-4s; }
#sg4 { animation-delay:-6s; }
#sg5 { animation-delay:-8s; }
#sg6 { animation-delay:-10s; }
#sg7 { animation-delay:-12s; }
#sg8 { animation-delay:-14s; }
#sg9 { animation-delay:-16s; }

:where(#sg1,
#sg2,
#sg3,
#sg4,
#sg5,
#sg6,
#sg7,
#sg8,
#sg9) .lang {
	display:none;
}

.flx[sec03] .inner a:hover > .img > svg :is(#sg1,
#sg2,
#sg3,
#sg4,
#sg5,
#sg6,
#sg7,
#sg8,
#sg9) { animation-duration:9s; }
.flx[sec03] .inner a:hover > .img > svg > #sg1 { animation-delay: 0s; }
.flx[sec03] .inner a:hover > .img > svg > #sg2 { animation-delay:-1s; }
.flx[sec03] .inner a:hover > .img > svg > #sg3 { animation-delay:-2s; }
.flx[sec03] .inner a:hover > .img > svg > #sg4 { animation-delay:-3s; }
.flx[sec03] .inner a:hover > .img > svg > #sg5 { animation-delay:-4s; }
.flx[sec03] .inner a:hover > .img > svg > #sg6 { animation-delay:-5s; }
.flx[sec03] .inner a:hover > .img > svg > #sg7 { animation-delay:-6s; }
.flx[sec03] .inner a:hover > .img > svg > #sg8 { animation-delay:-7s; }
.flx[sec03] .inner a:hover > .img > svg > #sg9 { animation-delay:-8s; }

.flx[sec06] .outer {
	padding:0 0 8vw;
}
.flx[sec06] .outer:first-child {
	padding:0 0 1vw;
	background-image:radial-gradient(ellipse at top, #29ada0, #29ada006 40%, #29ada000 90%);
}
.flx[sec06] h2 {
    font-size: 200%;
    font-weight: 600;
    text-align: left;
    padding:1em 2em 0;
}
.flx[sec06] .inner > div {
	#border:1px solid #000000;
	display:flex;
	align-items:start;
	justify-content:center;
}
.flx .inner > div > div {
	width:100%;
	max-width:400px;
}
.flx[sec06] .inner a,
.flx[sec06] .inner a:hover,
.flx[sec06] .inner a:visited {
	display:block;
	color:#000000;
}
.flx[sec06] .inner p {
	position:relative;
	overflow:hidden;
	background-color:#00000055;
}
.flx[sec06] .inner p .thumb {
	position:absolute;
	background-position:center;
	background-repeat:no-repeat;
	background-size:cover;
	top:-5px;
	left:-5px;
	right:-5px;
	bottom:-5px;
	transition-property:all;
	transition-duration:0.2s;
	transition-timing-function:linear;
}
.flx[sec06] .inner a:hover > p .thumb {
	top:-10px;
	left:-10px;
	right:-10px;
	bottom:-10px;
	filter:blur(3px) grayscale(80%);
}
.flx[sec06] .inner p[style]:before {
	padding-top:100%;
}
.flx[sec06] .inner p:before {
	content:'';
	display:block;
	line-height:1;
	text-align:center;
}
.flx[sec06] .inner a > p[style]:after {
	position:relative;
	content:'詳細へ';
	display:block;
	#padding-top:100%;
	opacity:0;
	transition-property:all;
	transition-duration:0.2s;
	transition-timing-function:ease;
	text-align:center;
	line-height:1;
	padding:calc(50% - .5em) 0;
	z-index:3;
}
.flx[sec06] .inner a:visited:hover > p[style]:after,
.flx[sec06] .inner a:hover > p[style]:after {
	font-size:150%;
	opacity:1;
	color:#ffffff;
}
.flx[sec06] .inner a > p[style]:before {
	position:absolute;
	content:'';
	display:block;
	top:-150%;
	left:0;
	right:0;
	height:150%;
	transition-property:all;
	transition-duration:0.5s;
	transition-timing-function:ease;
	background-image:linear-gradient(to bottom, #000000aa, #00000044 66%, #00000000);
	z-index:2;
}
.flx[sec06] .inner a:hover > p[style]:before {
	top:0;
}
.flx[sec06] .inner a > span {
	font-size:80%;
	line-height:1;
}
.flx[sec06] .inner p .label {
	position:absolute;
	display:block;
	right:2px;
	bottom:2px;
	width:fit-content;
	padding:.5em 1em .5em 2em;
	background-image:linear-gradient(to right, #00000000, #00000088 2em, #00000088);
	line-height:1;
	font-size:11px;
	color:#ffffff;
}
.flx[sec06] .inner h3 {
	font-size:6vw;
	text-overflow:ellipsis;
    overflow:hidden;
    white-space:nowrap;
}
@media screen and (min-width:440px) {
	.flx[sec06] .inner h3 {
		font-size:19px;
	}
}
@media screen and (min-width:840px) {
	.flx[sec06] .outer {
		padding:0 0 48px;
	}
	.flx[sec06] .outer:first-child {
		padding:0 0 6px;
	}
	.flx[sec06] .inner > div {
		width:calc((100% - 48px) / 3);
	}
	.flx[sec06] .inner p:not([style]):before {
		content:'Coming soon';
		padding:calc(50% - 0.5em) 0;
		color:#ffffff;
	}
}

.flx[sec05] .inner {
	padding:0;
}
.flx[sec05] .inner > div {
	padding:8vw;
	position:relative;
	height:100vh;
	overflow:hidden;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	background-position:center;
	background-repeat:no-repeat;
	background-size:cover;
}
.flx[sec05][act] .inner > div:nth-child(1) {
	background-image:linear-gradient(#16877388, #29ada088), url(sec05.01.jpg);
}
.flx[sec05][act] .inner > div:nth-child(2) {
	background-image:linear-gradient(#16877388, #29ada088), url(sec05.02.jpg);
	background-position:25% center;
}
.flx[sec05] .inner > div > video {
	position:absolute;
	top:-600px;
	left:-600px;
	right:-600px;
	bottom:-600px;
	visibility: visible;
	width:auto;
	height:100%;
	opacity: 1;
	margin:auto;
}
.flx[sec05] .inner > div > div {
	position:relative;
	color:#ffffff;
	text-align:center;
	text-shadow:0 0 20px #000000,0 0 20px #000000;
}
.flx[sec05] h2 {
	font-size:200%;
}
.flx[sec05] a {
	color:#ffffff;
	border-bottom:2px solid #ffffff;
}
@media screen and (min-width:840px) {
	.flx[sec05] .inner {
		max-width:100%;
	}
	.flx[sec05] .inner > div {
		width:50%;
		padding:48px;
	}
	.flx[sec05][act] .inner > div:nth-child(2) {
		background-position:center center;
	}
}
