@charset 'utf-8';
figure.mainimg {
	display: block;
  width: 100%;
  padding-top: 100%;
  position: relative;
  overflow: hidden;
}
figure.mainimg > img {
	display: block;
	width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
@media (min-width: 576px){
	figure.mainimg {
		padding-top: 50%;
	}
}


section {
	position: relative;
	z-index: 1;
}

.obj-square {
	color: var(--border1);
	display: block;
	width: max(24em, 30.8vw);
	height: max(35.2em, 45.6vw);
	border: 1px solid currentColor;
	position: absolute;
	z-index: -1;
	opacity: .7;
}
.obj-square::before {
	content: '';
	display: block;
	border: 1px solid currentColor;
	position: absolute;
	top: 3em;
	right: 3em;
	bottom: 3em;
	left: 3em;
}


.obj-circle{
	color: var(--border1);
	display: block;
	width: max(35em, 65vw);
	height: max(35em, 65vw);
	border-radius: 100%;
	border: 1px solid currentColor;
	position: absolute;
	z-index: -1;
	opacity: .7;
}



/* ============================
   MV
=============================== */
#mv {
	height: 50vh !important;
	background-repeat: no-repeat;
	background-position: center right;
	background-size: cover;
	position: relative;
	z-index: 2;
	color: var(--white);
}
#mv::before {
	content: '';
	background: rgba(0,0,0,0.2);
	mix-blend-mode: multiply;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}
#mv .bg-video {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	z-index: -1;
	overflow: hidden;
}
#mv .bg-video video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
#mv .mv__inner {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
}
#mv .mv__inner .display-txt {
	padding-top: 1.5em;
	text-align: center;
	font-size: 5.1em;
	line-height: 0.9;
}
#mv .mv__inner .display-txt .txt2 {
	font-size: 55%;
}
#mv .mv__inner .mv-txt {
	font-size: .923em;
	letter-spacing: .1em;
	margin-top: .75em;
}
@media (min-width: 576px){
	#mv {
	height: 100vh !important;
}
	#mv .mv__inner .display-txt {
		font-size: 8em;
	}
	#mv .mv__inner .mv-txt {
		font-size: 1.308em;
	}
}



.scrolldown{
	width: 70px;
	height: 73px;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}
.scrolldown::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
	transform: translateX(-50%);
	animation:
	 scrolldownmove 2s ease-in-out infinite,
	 scrolldownhide 2s ease-out infinite;
}
@keyframes scrolldownmove {
	0%,40% { bottom: 66px; }
	100% { bottom: -7px; }
}
@keyframes scrolldownhide {
	0% { opacity: 0; }
	40%,100% { opacity: 1; }
}

.scrolldown::after{
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 1px;
	height: 70px;
	background: currentColor;
	transform: translateX(-50%);
}
/* ============================
   Intro
=============================== */
#intro .container {
	position: relative;
}
#intro .display-txt {
	font-size: 4.9em;
	text-align: center;
	position: absolute;
	right: -8%;
	left: -8%;
	z-index: 3;
	/*mix-blend-mode: color-dodge;*/
}
#intro .display-txt .txt1 {
	margin-bottom: -3.2%;
}
#intro .imgBox {
	padding-top: 9em;
}
@media (max-width: 575px) {
	#intro .imgBox figure {
		margin-right: 0 !important;
	}
}
@media (max-width: 767px) {
	#intro .txtBox p br {
		display: none;
	}
}
@media (min-width: 576px) {
	#intro .display-txt {
		font-size: 6em;
		text-align: left;
		right: auto;
		left: 1.75%;
	}
	#intro .display-txt .txt2 {
		margin-left: 4.5%;
	}
	#intro .imgBox {
		padding-top: 0;
		min-height: 100%;
	}
	#intro .imgBox div,
	#intro .imgBox figure {
		height: calc(100% - 1.5em);
	}
	#intro .imgBox figure img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	#intro .txtBox {
		padding-top: 10em;
	}
}
@media (min-width: 992px) {
	#intro .display-txt {
		font-size: 9em;
		top: .2em;
	}
	#intro .txtBox {
		padding-top: 18em;
		padding-left: 7%;
	}
	#intro .imgBox {
		padding-left: 0;
	}
}
@media (min-width: 1200px) {
	#intro .display-txt {
		font-size: 12em;
		left: -3%;
	}
	#intro .txtBox {
		padding-top: 26em;
	}
}


/* ============================
   About
=============================== */
#about {
	position: relative;
	z-index: 1;
}
#about .img2 figure {
	border: .4em solid var(--white);
	margin-top: -15%;
}



#about .obj-square {
	right: 0;
	bottom: 0;
	transform: translate(50%,50%);
}
@media (min-width: 576px) {
	#about .obj-square {
		transform: translate(20%,50%);
	}
}

/* ============================
   Campaign
=============================== */
#campaign {
    padding: 4em 0 0 0;
}
#campaign .content {
    margin: 4em auto 0;
}
#campaign .section__header .en_ttl {
	line-height: 1;
	position: relative;
	z-index: 2;
}
#campaign .section__header .en_ttl::after {
	content: '';
	display: block;
	height: 1px;
	background: var(--border1);
	position: absolute;
	top: 92%;
	left: 0;
	z-index: -1;
	right: calc(((100vw - 100%)/2)*-1);
}

#campaign .splide__track {
	padding-right: 10% !important;
}
#campaign .splide__pagination {
	padding: 0;
	right: auto;
	bottom: -2.75em;
}
#campaign .splide__arrow {
  top: 40vw;
}

@media (min-width: 576px) {
	#campaign .splide__track {
		padding-right: 18% !important;
	}
	#campaign .splide__arrow {
	  top: 19vw;
	}
}
@media (min-width: 768px) {
	#campaign .splide__track {
		padding-right: 6% !important;
	}
	#campaign .splide__arrow {
	  top: 14vw;
	}
}
@media (min-width: 992px) {
	#campaign .splide__track {
		padding-right: 20% !important;
	}
	#campaign .splide__arrow {
	  top: 12vw;
	}
}
@media (min-width: 1200px) {
	#campaign .splide__track {
		padding-right: 25% !important;
	}
	#campaign .splide__arrow {
	  top: 10.5vw;
	}
}


/* ============================
   Plan
=============================== */
#plan {
    margin: 10em auto 0;
}
#plan .section__header .en_ttl {
	line-height: 1;
	transform: translateY(-50%);
}

#plan .splide__pagination {
  bottom: -2.75em;
}
#plan .splide__arrow {
  top: 40vw;
}
@media (min-width: 576px) {
	#plan .splide__arrow {
	  top: 16vw;
	}
}
@media (min-width: 768px) {
	#plan .splide__arrow {
	  top: 10.5vw;
	}
}
@media (min-width: 1200px) {
	#plan .splide__arrow {
	  top: 128px;
	}
}
@media (min-width: 1440px) {
	#plan .splide__arrow {
	  top: 140px;
	}
}


/* ============================
   Studio photo
=============================== */
#studiophoto {
	position: relative;
	z-index: 1;
}
#studiophoto::before {
	content: '';
	display: block;
	background: var(--white);
	position: absolute;
	top: 10vw;
	right: 5%;
	bottom: 0;
	left: 0;
	z-index: -1;
}
@media (min-width: 576px) {
	#studiophoto::before {
		right: 2.5%;
	}
}




#studiophoto .obj-circle {
	top: 0;
	left: 0;
	transform: translate(-35%,35%);
}
@media (min-width: 576px) {
	#studiophoto .obj-circle {
		transform: translate(-35%,20%);
	}
}


#studiophoto .video {
	width: 100%;
	padding-top: 45%;
	position: relative;
}
#studiophoto video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	top: 0;
	left: 0;
}

/* ============================
   Location photo
=============================== */
#locationphoto {
	position: relative;
	z-index: 1;
}
#locationphoto::before {
	content: '';
	display: block;
	height: 16em;
	border-radius: 0 0 10vw 0;
	background: var(--white);
	position: absolute;
	top: 0;
	right: 5%;
	left: 0;
	z-index: -1;
}
#locationphoto .container {
	position: relative;
}
#locationphoto .display-txt {
	position: absolute;
	right: 0;
	z-index: 2;
}
#locationphoto .display-txt span + span {
	margin-top: -.35em;
}
#locationphoto .imgBox figure {
    border: .4em solid var(--white);
    margin-top: -15%;
}
@media (max-width: 575px) {
	#locationphoto .display-txt {
		text-align: right;
		margin-top: 37%;
	}
}
@media (min-width: 576px) {
	#locationphoto::before {
		right: 2.5%;
	}
	#locationphoto .mainimg-wrap {
		max-width: 86%;
	}
	#locationphoto .display-txt {
		margin-top: -1.125em;
	}
	#locationphoto .display-txt span + span {
		margin-left: 1.25em;
	}
}

/* ============================
   Costume
=============================== */
#costume {
	background: var(--l-gray);
	padding-bottom: 12vw;
	position: relative;
}
#costume::after {
	content: '';
	display: block;
	height: 20em;
	background: var(--color3);
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: -2;
}
#costume::before {
	content: '';
	display: block;
	border-radius: 0 0 0 10vw;
	background: var(--white);
	position: absolute;
	top: 5em;
	right: 0;
	bottom: 5vw;
	left: 5%;
	z-index: -1;
}
#costume .row {
	position: relative;
}
#costume .row3 {
	margin-top: -1.5em;
}
#costume .txtBox {
	padding-left: 4%;
}
#costume .txtBox .display-txt {
	position: relative;
	left: -17%;
}
#costume .txtBox .display-txt span + span {
	margin-top: -.25em;
	margin-left: 1.3em;
}
#costume .txtBox .ttl {
	font-size: .875rem;
	font-family: inherit;
}
#costume .txtBox .ttl span.font1 {
	font-size: 1.923em;
	letter-spacing: .08em;
	display: inline-block;
	margin-right: .5em;
}
#costume .splide__pagination {
	position: static;
	justify-content: flex-start;
	padding: 0;
	margin-top: .75em;
}
@media (max-width: 575px) {
	#costume .imgBox figure {
		display: block;
	  width: 100%;
	  padding-top: 100%;
	  position: relative;
	  overflow: hidden;
	}
	#costume .imgBox figure > img {
		display: block;
		width: 100%;
	  height: 100%;
	  object-fit: cover;
	  position: absolute;
	  top: 0;
	  left: 0;
	}
}
@media (min-width: 576px) {
	#costume {
		padding-bottom: 5vw;
	}
	#costume::before {
		top: 6em;
		left: 2.5%;
		bottom: 10vw;
	}
	#costume figure.mainimg {
		padding-top: 75%;
	}
	#costume .txtBox {
		padding-right: 4%;
	}

	#costume .row1 {
		margin-top: 6em;
	}	
	#costume .row2 {
		margin-top: 6em;
	}	
	#costume .row3 {
		margin-top: -3em;
	}	
	#costume .row4 {
		margin-top: 6em;
	}	
}
@media (min-width: 992px) {
	#costume::before {
		top: 7em;
		bottom: 12vw;
	}
	#costume .txtBox {
		padding-right: 7.5%;
		padding-left: 7.5%;
	}
	#costume .txtBox .ttl span.font1 {
		font-size: 2.154em;
	}
}


#costume .row1 .obj-circle {
	width: max(27.4em, 42vw);
	height: max(27.4em, 42vw);
	top: 0;
	left: 0;
	transform: translate(-25%,35%);
}
#costume .row4 .obj-circle {
	width: max(27.4em, 28vw);
	height: max(27.4em, 28vw);
	top: 0;
	right: 0;
	transform: translate(35%,-40%);
}
@media (min-width: 576px) {
	#costume .row1 .obj-circle {
		transform: translate(-25%,90%);
	}
	#costume .row4 .obj-circle {
		transform: translate(-80%,-40%);
	}
}




/* ============================
   Photographer Hair Makeup
=============================== */
#photographer_hairmake .container {
	padding-top: 5.25em;
	position: relative;
}
#photographer_hairmake figure {
	border-top: .4em solid var(--white);
	border-left: .4em solid var(--white);
	border-bottom: .4em solid var(--white);
}
#photographer_hairmake .display-txt {
	position: absolute;
	top: 0;
	left: -4%;
}
#photographer_hairmake .display-txt span + span {
	padding-left: .5em;
}
@media (max-width: 575px) {
	#photographer_hairmake .display-txt {
		font-size: 4.3em;
	}
}
@media (min-width: 992px) {
	#photographer_hairmake .container {
		padding-top: 2em;
	}
}



#photographer_hairmake .obj-square {
	color: var(--white);
	left: 0;
	bottom: 0;
	transform: translate(-50%,30%);
}
#photographer_hairmake .obj-circle {
	color: var(--white);
	top: 0;
	right: 0;
	transform: translate(45%,-20%);
}
@media (min-width: 576px) {
	#photographer_hairmake .obj-square {
		transform: translate(-40%,10%);
	}
	#photographer_hairmake .obj-circle {
		transform: translate(35%,-20%);
	}
}



/* ============================
   Gallery
=============================== */
#gallery .display-txt {
	position: relative;
	left: -4%;
	bottom: -.3125em;
	z-index: 2;
}

/* ============================
   Support
=============================== */
#support {
	overflow: hidden;
}
ul.support-list {
	list-style-type: none;
	margin: 0 -1.25em;
	font-size: .875em;
}
ul.support-list li {
	padding: .5em 1.25em;
}
ul.support-list li a {
	display: block;
	font-family: var(--font1);
	font-size: 1.231em;
	line-height: 1.5;
	letter-spacing: .08em;
	padding: 1.5em 10% 2em;
	border-radius: 0;
	border: 0;
	background: var(--dd-gray);
	color: var(--white);
	cursor: pointer;
	position: relative;
	transition: background .2s;
}
ul.support-list li a span {
	display: block;
}
ul.support-list li a span.en_ttl {
	font-size: 2em;
}
ul.support-list li a::before {
	content: '';
	width: 35%;
	height: 1px;
	background: var(--d-gray);
	position: absolute;
	top: 50%;
	right: 10%;
}
ul.support-list li a::after {
	content: '';
	width: .5em;
	height: .5em;
	border-radius: 100%;
	background: var(--d-gray);
	position: absolute;
	top: 50%;
	right: 10%;
	margin-top: -.25em;
}
ul.support-list li a:hover::after {
	animation:
   	supporthover 1.2s ease-in-out forwards,
   	supporthover2 1.2s ease-out forwards;
}
@media (min-width: 576px) {
	ul.support-list li a {
		padding: 3.5em 10% 4em;
	}
}
@keyframes supporthover{
  0%{right:10%;}
  10%{right:10%;}
  30%{right:40%;}
  40%{right:40%;}
  100%{right:10%;}
}
@keyframes supporthover2{
  0%{opacity:1}
  10%{opacity:0;}
  50%{opacity:0;}
  80%{opacity:1;}
}

/* --- 202504 Add --- */
@font-face{
	font-display: swap;
	font-family: 'Noto Sans JP';
	font-style: normal;
	font-weight: 400;
	src: url('./fonts/noto-sans-jp-v53-japanese-regular.woff2') format('woff2');
}
@font-face{
	font-display: swap; 
	font-family: 'Noto Sans JP';
	font-style: normal;
	font-weight: 600;
	src: url('./fonts/noto-sans-jp-v53-japanese-600.woff2') format('woff2');
}
@font-face{
	font-display: swap; 
	font-family: 'Oswald';
	font-style: normal;
	font-weight: 400;
	src: url('./fonts/oswald-v53-latin-regular.woff2') format('woff2');
}
@font-face{
	font-display: swap; 
	font-family: 'Oswald';
	font-style: normal;
	font-weight: 500;
	src: url('./fonts/oswald-v53-latin-500.woff2') format('woff2');
}
img{
	width: 100%;
	height: auto;
}
.grid-item figure img{
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	object-fit: cover;
}
.grid-item > img{
	width: auto;
	height: 100%;
	object-fit: cover;
}
figure.mainimg img{
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	object-fit: cover;
}
.topHeading{
	width: 50vw;
	position: absolute;
	top: 20px;
	left: 27.5vw;
	line-height: 1.25;
	font-size: 8px;
	color: white;
}
@media screen and (min-width:992px){
	.topHeading{
		left: 20vw;
		font-size: 10px;
	}
}
@media screen and (min-width:1200px){
	.topHeading{
		top: 50px;
	}
}
@media (max-width: 575px){
	#costume .imgBox figure img{
		width: 100%;
		height: 100%;
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		object-fit: cover;
	}
	#mv{
		max-height: 500px;
	}
	.topHeading{
		width: 40vw;
		top: 20px;
		left: 42.5vw;
	}
}

