@charset "UTF-8";
@import url(./reset.css);
@import url(./common.css);
.noto {
		font-family: "Noto Sans JP", sans-serif;
}

.primg {
		transition-timing-function: ease-out !important;
}

.s1_slider {
		margin: 0 auto;
		width: 100%;
		position: relative;
		z-index: 103;
}

.s1_slider #swiper1 .swiper-wrapper {
		transition-timing-function: linear;
}

.s1_slider #swiper1 .swiper-slide {
		display: flex;
		flex-direction: column;
		width: 272px !important;
		margin: 0;
}

.s1_slider #swiper1 .swiper-slide .swiper1_img {
		max-width: 100%;
}

.kv {
		width: 100%;
		max-width: 100%;
		height: 467px;
		background-image: url(../img/brand_kv.webp);
		background-image: image-set(url(../img/brand_kv.webp) 1x, url(../img/brand_kv@2x.webp) 2x);
		background-image: -webkit-image-set(url(../img/brand_kv.webp) 1x, url(../img/brand_kv@2x.webp) 2x);
		background-repeat: no-repeat;
		background-size: auto;
		background-position: center;
}

.kv .inner {
		width: 100%;
		max-width: 960px;
		margin: 0 auto;
		position: relative;
		height: 467px;
}

.kv .inner .ttl_bg {
		background-image: url(../img/brand_ttl_bg.webp);
		background-repeat: no-repeat;
		background-size: contain;
		position: absolute;
		top: 100px;
		right: -66px;
		width: 462px;
		height: 217px;
}

.kv .inner h1 {
		position: absolute;
		top: 275px;
		right: 0;
		font-size: 42px;
		line-height: 1;
		color: #fff;
		font-weight: 400;
		display: inline-block;
}

.s1 {
		width: 100%;
		margin: 0 auto;
		position: relative;
		padding-bottom: 260px;
}

.s1 .pr01 {
		position: absolute;
		top: -401px;
		left: 0;
		width: 590px;
		opacity: 0.05;
}

.s1 .pr02 {
		position: absolute;
		top: 70px;
		right: 40px;
		width: 431px;
		opacity: 0.05;
}

.s1 .inner {
		width: 100%;
		max-width: 960px;
		height: 632px;
		margin: 0 auto;
		position: relative;
}

.s1 .inner .s1_img {
		position: absolute;
		top: -55px;
		left: -398px;
}

.s1 .inner p {
		position: absolute;
		left: 285px;
		top: 55px;
		font-size: 16px;
		font-weight: 400;
		line-height: 2.75;
		color: #505050;
}

.s1:after {
		content: "";
		background-image: url(../img/brand_s1_after.svg);
		background-repeat: no-repeat;
		background-position: center;
		background-size: auto;
		width: 100%;
		height: 831px;
		position: absolute;
		left: 0;
		bottom: 0;
		opacity: 0.08;
}

.s2 {
		width: 100%;
		margin: 0 auto;
		height: auto;
		position: relative;
		padding-bottom: 230px;
}

.s2 .pr01 {
		position: absolute;
		top: 769px;
		left: 0;
		width: 590px;
		opacity: 0.05;
}

.s2 .pr02 {
		position: absolute;
		top: 1242px;
		right: 40px;
		width: 431px;
		opacity: 0.05;
}

.s2 .slide-text {
		position: absolute;
		z-index: 101;
		top: 400px;
		left: 0;
		width: 100%;
		height: 83px;
		background-image: url(../img/brand_s2_typo.svg);
		opacity: 0.13;
		mix-blend-mode: multiply;
		background-repeat: repeat-x;
		background-size: auto 83px;
		/* 画像の高さ */
		animation: textPCloop_r 40s linear infinite;
}

@keyframes textPCloop_r {
		from {
				background-position: 0 0;
		}
		to {
				background-position: 1920px 0;
				/* 画像のマイナス幅 */
		}
}

.s2 .inner {
		width: 100%;
		max-width: 960px;
		margin: 0 auto;
}

.s2 .inner .ttl {
		background-image: url(../img/brand_s2_ttl_bg.webp);
		background-repeat: no-repeat;
		background-size: contain;
		position: relative;
		top: -48px;
		left: 197px;
		width: 476px;
		height: 212px;
}

.s2 .inner .ttl h2 {
		font-size: 32px;
		line-height: 1;
		color: #505050;
		position: absolute;
		top: 110px;
		left: 151px;
}

.s2 .inner .sdgs {
		display: flex;
		justify-content: space-between;
		width: 100%;
		align-items: flex-start;
		margin: 0 auto 134px;
}

.s2 .inner .sdgs li:first-child {
		flex-basis: 544px;
}

.s2 .inner .sdgs li:first-child img {
		max-width: 480px;
		margin-top: 17px;
}

.s2 .inner .sdgs li:last-child {
		flex-basis: 416px;
}

.s2 .inner .sdgs li:last-child p {
		font-size: 16px;
		line-height: 2.7;
		color: #505050;
}

.s2 .inner .voice {
		display: flex;
		justify-content: space-between;
		margin: 0 auto;
}

.s2 .inner .voice li:first-child {
		flex-basis: 547px;
}

.s2 .inner .voice li:first-child h6 {
		font-size: 16px;
		color: #505050;
		line-height: 1;
		position: relative;
		padding-left: 40px;
		margin-bottom: 10px;
}

.s2 .inner .voice li:first-child h6:before {
		content: "";
		background-image: url(../img/brand_s2_voice_icon.svg);
		background-repeat: no-repeat;
		background-size: contain;
		width: 26px;
		height: 25px;
		position: absolute;
		top: 0;
		left: 0;
}

.s2 .inner .voice li:first-child p {
		font-size: 16px;
		line-height: 2.7;
		color: #505050;
		margin-bottom: 30px;
}

.s2 .inner .voice li:last-child {
		flex-basis: 413px;
		text-align: right;
}

.s2 .inner .voice li:last-child img {
		max-width: 368px;
}

.s2 .inner p {
		font-size: 16px;
		line-height: 2.7;
		color: #505050;
		margin-bottom: 86px;
}

.s2:before {
		content: "";
		background-image: url(../img/brand_s2_before.svg);
		background-repeat: no-repeat;
		background-position: center;
		background-size: auto;
		width: 100%;
		height: 715px;
		position: absolute;
		top: 0;
		left: 0;
		opacity: 0.08;
}

.s2:after {
		content: "";
		background-image: url(../img/brand_s2_after.svg);
		background-repeat: no-repeat;
		background-position: center;
		background-size: auto;
		width: 100%;
		height: 831px;
		position: absolute;
		bottom: 0;
		left: 0;
}

.s3 {
		width: 100%;
		background-color: #F8F2EF;
		margin: 0 auto;
		padding-bottom: 100px;
		height: auto;
		position: relative;
}

.s3 .slide-text {
		position: absolute;
		z-index: 101;
		top: 680px;
		left: 0;
		width: 100%;
		height: 83px;
		background-image: url(../img/brand_s3_typo.svg);
		opacity: 0.13;
		mix-blend-mode: multiply;
		background-repeat: repeat-x;
		background-size: auto 83px;
		/* 画像の高さ */
		animation: textPCloop 40s linear infinite;
}

@keyframes textPCloop {
		from {
				background-position: 0 0;
		}
		to {
				background-position: -1920px 0;
				/* 画像のマイナス幅 */
		}
}

.s3 .s3_pr01 {
		position: absolute;
		bottom: -200px;
		left: calc(50% + 240px);
		z-index: 3;
}

.s3 .inner {
		width: 100%;
		max-width: 960px;
		margin: 0 auto;
}

.s3 .inner .ttl {
		background-image: url(../img/brand_s3_ttl_bg.webp);
		background-repeat: no-repeat;
		background-size: contain;
		width: 476px;
		height: 212px;
		margin-left: -137px;
}

.s3 .inner .ttl h2 {
		font-size: 32px;
		font-weight: 400;
		color: #505050;
		margin-left: 137px;
		padding-top: 117px;
		white-space: nowrap;
}

.s3 .inner p {
		font-size: 16px;
		line-height: 2.75;
		margin-bottom: 55px;
}

.s3 .inner .history_bx {
		margin-right: calc(50% - 50vw);
		overflow: auto;
}

.s3 .inner .history_bx .history_bg {
		height: 290px;
		background: linear-gradient(transparent 9%, #505050 9%, #505050 9.4%, transparent 9.4%);
		width: 1984px;
		padding-bottom: 20px;
}

.s3 .inner .history_bx ul {
		display: flex;
		width: 1984px;
		margin: 0 0 0;
}

.s3 .inner .history_bx li {
		flex-basis: 448px;
		margin-right: 64px;
		position: relative;
}

.s3 .inner .history_bx li .year {
		font-size: 21px;
		font-weight: 400;
		line-height: 1;
		color: #CFB19B;
		margin-bottom: 20px;
		position: absolute;
		top: 100px;
		left: 30px;
}

.s3 .inner .history_bx li p {
		font-size: 14px;
		line-height: 2;
		color: #505050;
		position: absolute;
		top: 140px;
		left: 30px;
		right: 30px;
}

.s3 .inner .history_bx li:last-child {
		margin-right: 0;
}

.s3 .inner .history_bx .h01 {
		background-image: url(../img/brand_history_bx01.svg);
		width: 448px;
		height: 290px;
		background-repeat: no-repeat;
		background-size: contain;
}

.s3 .inner .history_bx .h02 {
		background-image: url(../img/brand_history_bx02.svg);
		width: 448px;
		height: 290px;
		background-repeat: no-repeat;
		background-size: contain;
}

.s3 .inner .history_bx .h03 {
		background-image: url(../img/brand_history_bx03.svg);
		width: 448px;
		height: 290px;
		background-repeat: no-repeat;
		background-size: contain;
}

.s3 .inner .history_bx .h04 {
		background-image: url(../img/brand_history_bx04.svg);
		width: 448px;
		height: 290px;
		background-repeat: no-repeat;
		background-size: contain;
}

.s3 .inner .license {
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		width: 100%;
		margin: 80px auto 0;
}

.s3 .inner .license .license_bx {
		flex-basis: 288px;
		text-align: center;
}

.s3 .inner .license .license_bx .ico {
		margin: 0 auto;
}

.s3 .inner .license .license_bx .ico img {
		max-width: 112px;
}

.s3 .inner .license .license_bx .ico .ttls {
		font-size: 16px;
		font-weight: 500;
		line-height: 1;
		display: block;
		margin: 15px auto;
		color: #505050;
}

.s3 .inner .license .license_bx p {
		font-size: 13px;
		font-weight: 400;
		line-height: 2.2;
		text-align: left;
		color: #505050;
}

.s3:after {
		content: "";
		background-image: url(../img/brand_s3_after.svg);
		background-repeat: no-repeat;
		background-position: center;
		background-size: auto;
		width: 100%;
		height: 148px;
		position: absolute;
		bottom: -148px;
		left: 0;
		z-index: 2;
}

.s4 {
		width: 100%;
		margin: 0 auto;
		height: 2000px;
		position: relative;
}

.s4 .pr01 {
		position: absolute;
		top: 731px;
		left: 0;
		width: 590px;
		opacity: 0.05;
}

.s4 .pr02 {
		position: absolute;
		top: 1200px;
		right: 40px;
		width: 431px;
		opacity: 0.05;
}

.s4 .inner {
		width: 100%;
		max-width: 960px;
		margin: 0 auto;
		padding-top: 193px;
		position: relative;
		z-index: 5;
}

.s4 .inner .ttl {
		background-image: url(../img/brand_s4_ttl_bg.webp);
		background-repeat: no-repeat;
		background-size: contain;
		width: 475px;
		height: 212px;
		position: absolute;
		top: 193px;
		left: 242px;
}

.s4 .inner .ttl h2 {
		font-size: 32px;
		line-height: 1;
		color: #505050;
		position: absolute;
		top: 110px;
		left: 151px;
}

.s4 .inner .s4_img {
		position: absolute;
		top: 222px;
		left: -398px;
}

.s4 .inner p {
		position: absolute;
		left: 285px;
		top: 415px;
		font-size: 16px;
		font-weight: 400;
		line-height: 2.75;
		color: #505050;
}

.s4 .inner .area {
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		width: 100%;
		max-width: 960px;
		margin: 0 auto;
		position: absolute;
		top: 740px;
		left: 0;
}

.s4 .inner .area .area_bx {
		flex-basis: 288px;
		text-align: center;
}

.s4 .inner .area .area_bx .ico {
		margin: 0 auto;
}

.s4 .inner .area .area_bx .ico img {
		max-width: 112px;
}

.s4 .inner .area .area_bx .ico .ttls {
		font-size: 16px;
		font-weight: 500;
		line-height: 1;
		display: block;
		margin: 15px auto;
		color: #505050;
}

.s4 .inner .area .area_bx p {
		font-size: 13px;
		font-weight: 400;
		line-height: 2.2;
		text-align: left;
		color: #505050;
		position: static;
}

.s4 .inner .ttl02 {
		background-image: url(../img/brand_s4_ttl02_bg.webp);
		background-repeat: no-repeat;
		background-size: contain;
		width: 475px;
		height: 212px;
		position: absolute;
		top: 1100px;
		left: 235px;
}

.s4 .inner .ttl02 h2 {
		font-size: 32px;
		line-height: 1;
		color: #505050;
		position: absolute;
		top: 110px;
		left: 151px;
}

.s4 .inner .message {
		display: flex;
		justify-content: space-between;
		width: 100%;
		position: absolute;
		top: 1330px;
		left: 0;
}

.s4 .inner .message .summary {
		flex-basis: 538px;
}

.s4 .inner .message .summary p {
		font-size: 16px;
		line-height: 2.7;
		color: #505050;
		position: static;
}

.s4 .inner .message .photo {
		flex-basis: 422px;
		text-align: right;
}

.s4 .inner .message .photo img {
		margin-top: 10px;
		max-width: 368px;
}

.s4 .inner .bnr {
		position: absolute;
		top: 1820px;
		left: 208px;
		width: 544px;
		margin: 0 auto;
		overflow: hidden;
		transition: 1s all;
		border-radius: 10px;
}

.s4 .inner .bnr img {
		max-width: 100%;
		transition: transform .6s ease;
}

.s4 .inner .bnr:hover img {
		transform: scale(1.1, 1.1);
		transition: transform .6s ease;
}

.s4:before {
		content: "";
		background-image: url(../img/brand_s4_before.svg);
		background-repeat: no-repeat;
		background-position: center;
		background-size: auto;
		width: 100%;
		height: 620px;
		position: absolute;
		top: 0;
		left: 0;
		z-index: 4;
}

.s4:after {
		content: "";
		background-image: url(../img/common_footer_before.svg);
		background-repeat: no-repeat;
		background-position: center;
		background-size: auto;
		width: 100%;
		height: 831px;
		position: absolute;
		bottom: 0;
		left: 0;
		z-index: 2;
}

footer {
		padding-top: 0 !important;
}

@media (max-width: 780px) {
		.s1_slider {
				margin: 0 auto;
				width: 100%;
				position: relative;
				z-index: 103;
		}
		.s1_slider #swiper1 .swiper-wrapper {
				transition-timing-function: linear;
		}
		.s1_slider #swiper1 .swiper-slide {
				display: flex;
				flex-direction: column;
				width: 40vw !important;
				margin: 0;
		}
		.s1_slider #swiper1 .swiper-slide .swiper1_img {
				max-width: 100%;
		}
		.s1_slider #swiper1 .swiper-slide .swiper1_img img {
				max-width: 40vw !important;
		}
		.kv {
				width: 100%;
				max-width: 100%;
				height: 70.25vw;
				background-image: url(../img/brand_kv-s.webp);
				background-repeat: no-repeat;
				background-size: contain;
				background-position: center;
				margin-top: -14vw;
		}
		.kv .inner {
				width: 100%;
				max-width: 100%;
				margin: 0 auto;
				position: relative;
				height: 70.25vw;
		}
		.kv .inner .ttl_bg {
				background-image: url(../img/brand_ttl_bg.webp);
				background-repeat: no-repeat;
				background-size: contain;
				position: absolute;
				top: 13.8vw;
				right: 3vw;
				width: 59.23vw;
				height: 27.82vw;
		}
		.kv .inner h1 {
				position: absolute;
				top: 35.128vw;
				right: 5vw;
				font-size: 5.89744vw;
				line-height: 1;
				color: #fff;
				font-weight: 400;
				display: inline-block;
		}
		.s1 {
				width: 100%;
				margin: 0 auto;
				position: relative;
				padding-bottom: 14vw;
		}
		.s1 .pr01 {
				position: absolute;
				top: -56.6vw;
				left: -30.256vw;
				width: 75.64vw;
				opacity: 0.05;
		}
		.s1 .pr01 img {
				max-width: 100%;
		}
		.s1 .pr02 {
				position: absolute;
				top: 72.05vw;
				right: -25.64vw;
				width: 55.25641vw;
				opacity: 0.05;
		}
		.s1 .pr02 img {
				max-width: 100%;
		}
		.s1 .inner {
				width: 100%;
				max-width: 80vw;
				margin: 10vw auto;
				height: auto;
		}
		.s1 .inner p {
				position: static;
				font-size: 3.33333vw;
				font-weight: 400;
				line-height: 2.15;
				color: #505050;
		}
		.s1:after {
				content: "";
				background-image: url(../img/brand_s1_after-s.svg);
				background-repeat: no-repeat;
				background-position: center;
				background-size: contain;
				width: 100%;
				height: 38.846vw;
				position: absolute;
				left: 0;
				bottom: 0;
				opacity: 1;
		}
		.s2 {
				width: 100%;
				margin: 0 auto;
				height: auto;
				position: relative;
				padding-bottom: 2vw;
		}
		.s2 .pr01 {
				position: absolute;
				top: 146vw;
				left: -30.256vw;
				width: 75.64vw;
				opacity: 0.05;
		}
		.s2 .pr01 img {
				max-width: 100%;
		}
		.s2 .pr02 {
				position: absolute;
				top: 380.256vw;
				right: -25.64vw;
				width: 55.25641vw;
				opacity: 0.05;
		}
		.s2 .pr02 img {
				max-width: 100%;
		}
		.s2 .slide-text {
				position: absolute;
				z-index: 101;
				top: 128vw;
				left: 0;
				width: 100%;
				height: 10.64vw;
				background-image: url(../img/brand_s2_typo.svg);
				opacity: 0.13;
				mix-blend-mode: multiply;
				background-repeat: repeat-x;
				background-size: auto 10.64vw;
				/* 画像の高さ */
				animation: textPCloop_r 40s linear infinite;
		}
		@keyframes textPCloop_r {
				from {
						background-position: 0 0;
				}
				to {
						background-position: 1920px 0;
						/* 画像のマイナス幅 */
				}
		}
		.s2 .inner {
				width: 80vw;
				max-width: 80vw;
				margin: -10vw auto 0;
		}
		.s2 .inner .ttl {
				background-image: url(../img/brand_s2_ttl_bg.webp);
				background-repeat: no-repeat;
				background-size: contain;
				position: relative;
				top: 21vw;
				left: 3vw;
				width: 60.89vw;
				height: 27.17vw;
		}
		.s2 .inner .ttl h2 {
				font-size: 5.38462vw;
				line-height: 1;
				color: #505050;
				position: absolute;
				top: 14.1vw;
				left: 16.9vw;
				white-space: nowrap;
		}
		.s2 .inner .sdgs {
				display: flex;
				justify-content: space-between;
				flex-wrap: wrap;
				width: 100%;
				align-items: flex-start;
				margin: 25vw auto 0;
		}
		.s2 .inner .sdgs li:first-child {
				flex-basis: 100%;
				text-align: center;
				margin-bottom: 9vw;
		}
		.s2 .inner .sdgs li:first-child img {
				max-width: 62vw;
				margin-top: 0;
		}
		.s2 .inner .sdgs li:last-child {
				flex-basis: 100%;
		}
		.s2 .inner .sdgs li:last-child p {
				font-size: 3.33333vw;
				line-height: 2.2;
				color: #505050;
		}
		.s2 .inner .voice {
				display: flex;
				justify-content: space-between;
				flex-wrap: wrap;
				margin: 13vw auto 0;
		}
		.s2 .inner .voice li:first-child {
				flex-basis: 100%;
		}
		.s2 .inner .voice li:first-child h6 {
				font-size: 3.84615vw;
				color: #505050;
				line-height: 1;
				position: relative;
				padding-left: 8vw;
				margin-bottom: 4vw;
		}
		.s2 .inner .voice li:first-child h6:before {
				content: "";
				background-image: url(../img/brand_s2_voice_icon.svg);
				background-repeat: no-repeat;
				background-size: contain;
				width: 5vw;
				height: 5vw;
				position: absolute;
				top: 0;
				left: 0;
		}
		.s2 .inner .voice li:first-child p {
				font-size: 3.33333vw;
				line-height: 2.2;
				color: #505050;
				margin-bottom: 8vw;
		}
		.s2 .inner .voice li:last-child {
				flex-basis: 100%;
				text-align: left;
				margin-bottom: 8vw;
		}
		.s2 .inner .voice li:last-child img {
				max-width: 80vw;
				margin-left: -10vw;
		}
		.s2 .inner p {
				font-size: 3.33333vw;
				line-height: 2.2;
				color: #505050;
				margin-bottom: 86px;
		}
		.s2:before {
				content: "";
				background-image: url(../img/brand_s2_before-s.svg);
				background-repeat: no-repeat;
				background-position: center;
				background-size: contain;
				width: 100%;
				height: 74.1025vw;
				position: absolute;
				top: 0;
				left: 0;
				opacity: 1;
				z-index: -1;
		}
		.s2:after {
				content: "";
				background-image: url(../img/brand_s2_after-s.svg);
				background-repeat: no-repeat;
				background-position: center;
				background-size: contain;
				width: 100%;
				height: 38.846vw;
				position: absolute;
				bottom: 0;
				left: 0;
		}
		.s3 {
				width: 100%;
				background-color: #F8F2EF;
				margin: 0 auto;
				padding-bottom: 30vw;
				height: auto;
				position: relative;
		}
		.s3 .slide-text {
				position: absolute;
				z-index: 101;
				top: 175vw;
				left: 0;
				width: 100%;
				height: 10.64vw;
				background-image: url(../img/brand_s3_typo.svg);
				opacity: 0.13;
				mix-blend-mode: multiply;
				background-repeat: repeat-x;
				background-size: auto 10.64vw;
				/* 画像の高さ */
				animation: textPCloop 40s linear infinite;
		}
		@keyframes textPCloop {
				from {
						background-position: 0 0;
				}
				to {
						background-position: -1920px 0;
						/* 画像のマイナス幅 */
				}
		}
		.s3 .s3_pr01 {
				position: absolute;
				bottom: -13vw;
				left: 50vw;
				z-index: 3;
		}
		.s3 .s3_pr01 img {
				max-width: 60vw;
		}
		.s3 .inner {
				width: 80vw;
				max-width: 80vw;
				margin: 0 auto;
				padding-top: 20vw;
		}
		.s3 .inner .ttl {
				background-image: url(../img/brand_s3_ttl_bg.webp);
				background-repeat: no-repeat;
				background-size: contain;
				width: 60.89vw;
				height: 27.19vw;
				margin-left: -18vw;
		}
		.s3 .inner .ttl h2 {
				font-size: 5.38462vw;
				font-weight: 400;
				color: #505050;
				margin-left: 18vw;
				padding-top: 10vw;
				white-space: nowrap;
		}
		.s3 .inner p {
				font-size: 3.33333vw;
				line-height: 2.1;
				margin-bottom: 8vw;
		}
		.s3 .inner .history_bx {
				margin-right: calc(50% - 50vw);
				overflow: auto;
		}
		.s3 .inner .history_bx .history_bg {
				height: 66.66vw;
				background: linear-gradient(transparent 9%, #505050 9%, #505050 9.4%, transparent 9.4%);
				width: 215vw;
				padding-bottom: 4vw;
		}
		.s3 .inner .history_bx ul {
				display: flex;
				width: 215vw;
				margin: 0 0 0;
		}
		.s3 .inner .history_bx li {
				flex-basis: 50vw;
				margin-right: 5vw;
				position: relative;
		}
		.s3 .inner .history_bx li .year {
				font-size: 3.58974vw;
				font-weight: 400;
				line-height: 1;
				color: #CFB19B;
				margin-bottom: 20px;
				position: absolute;
				top: 21.02vw;
				left: 5vw;
		}
		.s3 .inner .history_bx li p {
				font-size: 2.82051vw;
				line-height: 2;
				color: #505050;
				position: absolute;
				top: 27.3vw;
				left: 5vw;
				right: 5vw;
		}
		.s3 .inner .history_bx li:last-child {
				margin-right: 5vw;
		}
		.s3 .inner .history_bx .h01 {
				background-image: url(../img/brand_history_bx01-s.svg);
				width: 50vw;
				height: 66.66vw;
				background-repeat: no-repeat;
				background-size: contain;
		}
		.s3 .inner .history_bx .h02 {
				background-image: url(../img/brand_history_bx02-s.svg);
				width: 50vw;
				height: 66.66vw;
				background-repeat: no-repeat;
				background-size: contain;
		}
		.s3 .inner .history_bx .h03 {
				background-image: url(../img/brand_history_bx03-s.svg);
				width: 50vw;
				height: 66.66vw;
				background-repeat: no-repeat;
				background-size: contain;
		}
		.s3 .inner .history_bx .h04 {
				background-image: url(../img/brand_history_bx04-s.svg);
				width: 50vw;
				height: 66.66vw;
				background-repeat: no-repeat;
				background-size: contain;
		}
		.s3 .inner .license {
				display: flex;
				justify-content: space-between;
				flex-wrap: wrap;
				width: 90vw;
				margin: 23vw -5vw 0;
		}
		.s3 .inner .license .license_bx {
				flex-basis: 90vw;
				text-align: center;
				display: flex;
				justify-content: space-between;
		}
		.s3 .inner .license .license_bx .ico {
				flex-basis: 30vw;
				margin: 0 auto;
		}
		.s3 .inner .license .license_bx .ico img {
				max-width: 14vw;
		}
		.s3 .inner .license .license_bx .ico .ttls {
				font-size: 3.07692vw;
				font-weight: 500;
				line-height: 2;
				display: block;
				margin: 2vw auto;
				color: #505050;
		}
		.s3 .inner .license .license_bx p {
				flex-basis: 52.5vw;
				font-size: 2.5641vw;
				font-weight: 400;
				line-height: 2.2;
				text-align: left;
				color: #505050;
				margin-bottom: 5vw;
		}
		.s3:after {
				content: none;
		}
		.s4 {
				width: 100%;
				margin: 0 auto;
				height: 461vw;
				position: relative;
		}
		.s4 .pr01 {
				position: absolute;
				top: 210.254vw;
				left: -30.256vw;
				width: 75.64vw;
				opacity: 0.95;
		}
		.s4 .pr01 img {
				max-width: 100%;
		}
		.s4 .pr02 {
				position: absolute;
				top: 392.820vw;
				right: -25.64vw;
				width: 55.25641vw;
				opacity: 0.95;
		}
		.s4 .pr02 img {
				max-width: 100%;
		}
		.s4 .inner {
				width: 100%;
				max-width: 80vw;
				margin: 0 auto;
				padding-top: 10vw;
				position: relative;
				z-index: 5;
		}
		.s4 .inner .ttl {
				background-image: url(../img/brand_s4_ttl_bg.webp);
				background-repeat: no-repeat;
				background-size: contain;
				width: 60.89744vw;
				height: 27.17949vw;
				position: absolute;
				top: 12vw;
				left: 5vw;
		}
		.s4 .inner .ttl h2 {
				font-size: 5.38462vw;
				line-height: 1;
				color: #505050;
				position: absolute;
				top: 15vw;
				left: 10vw;
		}
		.s4 .inner .s4_img {
				position: absolute;
				top: 105vw;
				left: -30vw;
		}
		.s4 .inner .s4_img img {
				max-width: 99vw;
		}
		.s4 .inner p {
				position: absolute;
				left: 0;
				top: 40vw;
				font-size: 3.33333vw;
				font-weight: 400;
				line-height: 2.1;
				color: #505050;
		}
		.s4 .inner .area {
				display: flex;
				justify-content: space-between;
				flex-wrap: wrap;
				width: 90vw;
				max-width: 90vw;
				margin: 0 -5vw 0;
				position: absolute;
				top: 184vw;
				left: 0;
		}
		.s4 .inner .area .area_bx {
				flex-basis: 90vw;
				text-align: center;
				display: flex;
				justify-content: space-between;
				margin-bottom: 5vw;
		}
		.s4 .inner .area .area_bx .ico {
				flex-basis: 30vw;
				margin: 0 auto;
		}
		.s4 .inner .area .area_bx .ico img {
				max-width: 14vw;
		}
		.s4 .inner .area .area_bx .ico .ttls {
				font-size: 3.07692vw;
				font-weight: 500;
				line-height: 1;
				display: block;
				margin: 2vw auto;
				color: #505050;
		}
		.s4 .inner .area .area_bx p {
				flex-basis: 52.5vw;
				font-size: 2.5641vw;
				font-weight: 400;
				line-height: 2.2;
				text-align: left;
				color: #505050;
				margin-bottom: 5vw;
		}
		.s4 .inner .ttl02 {
				background-image: url(../img/brand_s4_ttl02_bg.webp);
				background-repeat: no-repeat;
				background-size: contain;
				width: 60.89744vw;
				height: 27.17949vw;
				position: absolute;
				top: 284vw;
				left: 10vw;
		}
		.s4 .inner .ttl02 h2 {
				font-size: 4.10256vw;
				line-height: 1;
				color: #505050;
				position: absolute;
				top: 15vw;
				left: 15vw;
				white-space: nowrap;
		}
		.s4 .inner .message {
				display: flex;
				justify-content: space-between;
				flex-wrap: wrap;
				width: 80vw;
				position: absolute;
				top: 315vw;
				left: 0;
		}
		.s4 .inner .message .summary {
				flex-basis: 80vw;
				margin-bottom: 5vw;
		}
		.s4 .inner .message .summary p {
				font-size: 3.33333vw;
				line-height: 2.1;
				color: #505050;
				position: static;
		}
		.s4 .inner .message .photo {
				flex-basis: 80vw;
				text-align: right;
		}
		.s4 .inner .message .photo img {
				margin-top: 0;
				margin-right: -10vw;
				margin-left: -5vw;
				max-width: 95vw;
		}
		.s4 .inner .bnr {
				position: absolute;
				top: 460vw;
				left: -5vw;
				width: 90vw;
				margin: 0 auto;
		}
		.s4 .inner .bnr img {
				max-width: 90vw;
		}
		.s4:before {
				content: "";
				background-image: url(../img/brand_s4_before-s.svg);
				background-repeat: no-repeat;
				background-position: center;
				background-size: contain;
				width: 100%;
				height: 75.769vw;
				position: absolute;
				top: -9vw;
				left: 0;
				z-index: 4;
		}
		.s4:after {
				content: "";
				background-image: url(../img/common_footer_before-s.svg);
				background-repeat: no-repeat;
				background-position: center;
				background-size: contain;
				width: 100%;
				height: 59.10256vw;
				position: absolute;
				bottom: -1px;
				left: 0;
				z-index: 2;
		}
		footer {
				padding-top: 30vw !important;
		}
}
