@charset "utf-8";

/* top page
 * ========================================================================== */
.is-loading {
  overflow: hidden!important;
  height: 100%;
}

/**
/* Mainvisual
 * ========================================================================== */
/*↓↓↓変更不可*/
#mainvisual {position: relative;width: 100%;overflow: hidden;}
@media screen and (max-width:1200px) {
    #mainvisual {overflow: initial;margin-bottom: 93px!important;}
}
/*↑↑↑変更不可*/

.mainvisualText { position: absolute; top: 21.296296%; left: 7.291666%; z-index: 10; max-width: 36.458333%;}

/* @media
 * ========================================================================== */
@media screen and (max-width: 1024px) {
}
@media screen and (max-width: 619px) {
}
@media screen and (max-width: 320px) {
}
/**
/* intro
 * ========================================================================== */
#intro {
  display: grid;
  grid-template-columns: 40%;
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 200;
  width: 100%;
  height: 100%;
  background: #fff;
  overflow: hidden;
  opacity: 1;
  visibility: visible;
}
#intro .introBg {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -6%;
  right: -6%;
  z-index: 0;
  opacity: 0;
  background: url("../img/top/intro_bg.webp") no-repeat center / cover;
  transform: translateX(3%);
}
#intro.is-ready .introBg {
  opacity: 1;
}
#intro.is-anim .introBg {
  animation: scaleDown 6.5s ease-in-out forwards;
}
#intro .introRead {
  position: relative;
  z-index: 1;
	opacity: 0;
  filter: blur(2vw);
}
#intro._state1 .introRead {
  opacity: 1;
  filter: blur(0vw);
  transition:
    opacity 2s,
    filter 2s;
}
#intro._state2 {
	opacity: 0;
  transition: opacity 1.6s ease;
}
#intro._state2 .introRead {
  opacity: 0;
  transition: opacity 1.4s ease-out;
}
#intro._hidden {
  visibility: hidden;
}
/* @media
 * ========================================================================== */
@media screen and (max-width: 1024px) {
}

@media screen and (max-width: 619px) {
	#intro {
	  grid-template-columns: 60%;
	}
  #intro .introBg {
    left: -20%;
    right: -20%;
  }
}

@media screen and (max-width: 320px) {
}

/**
/* mainvisual
 * ========================================================================== */
#yt {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 177.778vh;
  height: 56.25vw;
  min-height: 100%;
  min-width: 100%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.mainvisual {
  overflow: visible;
}
.mainvisual .mainvisualInner {
  clip-path: inset(0 0 0 0);
}
.mainvisual .mainvisualMovie {
  overflow: hidden;
  position: sticky;
  top: 0;
  height: 100vh;
}
.mainvisual .mainvisualMovie video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mainvisual .mainvisualMovie .sound,
.mainvisual .mainvisualMovie .txt-note {
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease;
}
.mainvisual.is-playing .mainvisualMovie .sound,
.mainvisual.is-playing .mainvisualMovie .txt-note {
  opacity: 1;
  visibility: visible;
}
.mainvisual .mainvisualMovie .sound {
  position: absolute;
  bottom: 20px;
  left: 4.1%;
  display: block;
  width: 24px;
  height: 0;
  padding-bottom: 24px;
  z-index: 90;
}
.mainvisual .mainvisualMovie .sound > span {
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 100%;
  height: 100%;
  cursor: pointer;
}
.mainvisual .mainvisualMovie .sound .on {
  background-image: url('../img/top/ico_sound_on.svg');
  display: none;
}
.mainvisual .mainvisualMovie .sound .off {
  background-image: url('../img/top/ico_sound_off.svg');
}
.mainvisual .mainvisualMovie .txt-note {
  position: absolute;
  bottom: 18px;
  left: calc(4.1% + 30px);
  font-size: 13px;
  color: #fff;
  z-index: 90;
}
.mainvisual .mainvisualMovie .mvPoster {
  position: absolute;
  inset: 0;
  opacity :0;
  pointer-events: none;
  transition: opacity .4s ease;
  z-index: 2; 
}
.mainvisual .mainvisualMovie .mvPoster .copy {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  z-index: 10;
}
.mainvisual .mainvisualMovie .mvPoster .copy img {
  margin-left: 4.1%;
  width: auto;
  max-height: 75%;
}
.mainvisual .mainvisualMovie .mvPoster picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mainvisual.is-poster .mainvisualMovie .mvPoster {
  opacity: 1;
  pointer-events: auto;
}
.mainvisual .mainvisualMovie .mvControls {
  position: absolute;
  left: 4.1%;
  bottom: 25px;
  z-index: 3;
  display: none; 
  gap: 20px;
}
.mainvisual.is-controls-visible .mainvisualMovie .mvControls {
  display: flex;
}
.mainvisual.is-playing .mainvisualMovie .mvControls {
  display: none;
}
.mainvisual .mainvisualMovie .mvBtn {
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid #fff;
  background: rgba(0,0,0,.5);
  width: 110px;
  height: 25px;
  cursor: pointer;
  transition: opacity .4s ease;
}
.mainvisual .mainvisualMovie .mvBtn:hover {
  opacity: .7;
}
.mainvisual .mainvisualMovie .caption {
  position: absolute;
  right: 10px;
  bottom: 60px;
  color: #fff;
  font-size: 14px;
  text-shadow: black 1px 1px 10px, black -1px 1px 10px, black 1px -1px 10px, black -1px -1px 10px;
  z-index: 3;
}
/* @media
 * ========================================================================== */
@media screen and (max-width: 1024px) {
}

@media screen and (max-width: 619px) {
	.mainvisual .mainvisualMovie {
		position: relative;
		height: 100vw;
	}
  .mainvisual .mainvisualMovie .sound {
    bottom: 10px;
    left: 20px;
    width: 20px;
    padding-bottom: 20px;
  }
  .mainvisual .mainvisualMovie .txt-note {
    bottom: 10px;
    left: 48px;
    font-size: 11px;
  }
  .mainvisual .mainvisualMovie .mvPoster .copy {
    justify-content: center;
  }
  .mainvisual .mainvisualMovie .mvPoster .copy img {
    margin-top: 5%;
    margin-left: 0;
    max-height: 55%;
  }
  .mainvisual .mainvisualMovie .mvControls {
    left: 20px;
    bottom: 10px;
    width: calc(100% - 40px);
  }
  .mainvisual .mainvisualMovie .mvBtn {
    width: 36%;
    height: 30px;
  }
  .mainvisual .mainvisualMovie .mvBtn img {
    width: auto;
    height: 10px;
  }
  .mainvisual .mainvisualMovie .caption {
    position: absolute;
    left: 15px;
    right: auto;
    bottom: 50px;
    color: #fff;
    font-size: 12px;
  }
}
@media screen and (max-width: 320px) {
}


/**
/* actionproposal
 * ========================================================================== */
/* @media
 * ========================================================================== */
@media screen and (max-width: 1024px) {
}

@media screen and (max-width: 619px) {
  #actionproposal {
    padding: 18px 0;
  }
}
@media screen and (max-width: 320px) {
}

/**
/* meritItems
 * ========================================================================== */
.meritItems .meritItem figure::before {
	top: 0;
	background: linear-gradient(to bottom,  rgba(0,0,0,0.3) 0%,rgba(0,0,0,0.5) 100%);
}
.meritItems .meritItem figure::after {
	position: absolute;
	content: 'image';
	right: 8px;
	bottom: 3px;
	font-size: 12px;
	z-index: 1;
}
.meritItems .meritItem:nth-child(1) figure::after {
	content: '航空写真';
}

/* @media
 * ========================================================================== */
@media screen and (max-width: 1024px) {
}

@media screen and (max-width: 619px) {
}
@media screen and (max-width: 320px) {
}

/**
/* concept
 * ========================================================================== */
#concept {
  position: relative;
  overflow: hidden;
}
#concept .bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  aspect-ratio: 1366 / 3190;
}
#concept .concept_content {
  position: relative;
  padding-top: 130px;
  text-align: center;
  z-index: 1;
  aspect-ratio: 1366 / 2753;
}
#concept .concept_collage {
  position: absolute;
  inset: 0;
}
#concept .piece {
  position: absolute;
  left: calc(var(--x) * 1%);
  top:  calc(var(--y) * 1%);
  width:  calc(var(--w) * 1%);
  height: calc(var(--h) * 1%);
}
#concept .piece .img{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transition: opacity 2s ease;
}
#concept .piece .gold{ opacity:0; }
#concept .piece.is-gold .gold { opacity:1; }
#concept .piece.is-gold .color { opacity:0; }
#concept .txt-access img {
  width: 40.12vw;
}
#concept .txt-catch {
  position: relative;
  margin-top: 40px;
  padding-top: 30px;
  font-size: clamp(20px, 2.56vw, 35px);
  line-height: 1.5;
  letter-spacing: 2px;
}
#concept .txt-catch::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 44px;
  height: 2px;
  background: #fff;
  content: "";
}
#concept .txt-catch span {
  font-size: clamp(16px, 2.05vw, 28px);
}
#concept .txt-lead {
  position: relative;
  margin-top: 28%;
  font-size: clamp(18px, 3.25vw, 55px);
  letter-spacing: 2px;
  z-index: 3;
}
#concept .txt-groove {
  position: relative;
  margin-top: -22%;
  z-index: 1;
}
#concept .txt-groove img {
  width: 62vw;
}
#concept figure {
  position: absolute;
  bottom: 0;
  z-index: 2;
}
#concept figure .caption {
  position: absolute;
  right: 15px;
  bottom: 5px;
  color: #fff;
  font-size: 14px;
}
#concept .concept_link {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 50px;
  padding: 20px;
  text-align: center;
  z-index: 1;
  aspect-ratio: 1366 / 427;
}
#concept .concept_link .caption {
  position: absolute;
  right: 15px;
  bottom: 5px;
  color: #fff;
  font-size: 14px;
}
#concept .ttl {
  width: 100%;
}
#concept .btn-read a {
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 75px;
  height: 75px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transition: all .5s;
}
#concept .btn-read a:hover {
  background: rgba(255, 255, 255, 0);
}
/* @media
 * ========================================================================== */
@media screen and (max-width: 1024px) {
  #concept .concept_link {
    gap: 10px;
  }
  #concept .ttl img {
    max-height: 60px;
  }
}
@media screen and (max-width: 619px) {
  #concept .bg {
    aspect-ratio: 751 / 2350;
  }
  #concept .concept_content {
    padding-top: 40px;
    aspect-ratio: 751 / 1784;
  }
  #concept .piece .img {
    transition: opacity .5s ease;
  }
  #concept .txt-access img {
    width: 76.27vw;
  }
  #concept .txt-catch {
    margin-top: 20px;
    padding-top: 10px;
    font-size: 16px;
    letter-spacing: 1px;
  }
  #concept .txt-catch::before {
    width: 22px;
  }
  #concept .txt-catch span {
    font-size: 13px;
  }
  #concept .txt-lead {
    margin-top: 30%;
    font-size: 18px;
    letter-spacing: 1px;
  }
  #concept .txt-groove {
    margin-top: -30%;
  }
  #concept .txt-groove img {
    width: 83.73vw;
  }
  #concept figure .caption {
    font-size: 11px;
  }
  #concept .concept_link {
    gap: 25px;
    aspect-ratio: 751 / 560;
  }
  #concept .concept_link .caption {
    font-size: 11px;
  }
  #concept .ttl img {
    max-height: 90px;
  }
  #concept .btn-read a {
    width: 100px;
    height: 100px;
  }
  #concept .btn-read img {
    width: 60px;
  }
}
@media screen and (max-width: 320px) {
}


/**
/* plan
 * ========================================================================== */
#plan {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  aspect-ratio: 1366 / 768;
}
#plan .bg {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: -12%;
  z-index: 0;
  background: url('../../assets/img/top/plan_bg_pc.jpg') no-repeat center / cover;
}
#plan.is-bg-anim .bg {
  animation: fadeInUp 1.5s ease-in-out forwards;
}
#plan .caption {
  position: absolute;
  right: 15px;
  bottom: 5px;
  color: #fff;
  font-size: 14px;
}
.plan_content {
  position: relative;
  padding: 50px 20px;
  text-align: center;
  color: #fff;
  z-index: 1;
}
.plan_content p {
  padding: 120px 0 30px;
  font-size: 25px;
  letter-spacing: 1px;
  line-height: 1.5;
}
.plan_content .btn-read a {
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 75px;
  height: 75px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transition: all .5s;
}
.plan_content .btn-read a:hover {
  background: rgba(255, 255, 255, 0);
}
/* @media
 * ========================================================================== */
@media screen and (max-width: 1024px) {
  .plan_content {
    padding: 30px 20px;
  }
  .plan_content .ttl img {
    max-height: 60px;
  }
  .plan_content p {
    padding: 40px 0 20px;
    font-size: 22px;
  }
}
@media screen and (max-width: 619px) {
  #plan {
    aspect-ratio: 37 / 54;
  }
  #plan .bg {
    right: -12%;
    bottom: 0;
    background: url('../../assets/img/top/plan_bg_sp.jpg') no-repeat center / cover;
  }
  #plan.is-bg-anim .bg {
    animation: fadeInLeft 1.5s ease-in-out forwards;
  }
  #plan .caption {
    font-size: 11px;
  }
  .plan_content .ttl img {
    max-height: 90px;
  }
  .plan_content p {
    padding: 60px 0 20px;
    font-size: 20px;
  }
  .plan_content .btn-read a {
    width: 100px;
    height: 100px;
  }
  .plan_content .btn-read img {
    width: 60px;
  }
}
@media screen and (max-width: 320px) {
}

/**
/* brand
 * ========================================================================== */
#brand {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  aspect-ratio: 1366 / 768;
}
#brand .bg {
  position: absolute;
  left: -12%;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 0;
  background: url('../../assets/img/top/brand_bg_pc.jpg') no-repeat center / cover;
}
#brand.is-bg-anim .bg {
  animation: fadeInRight 1.5s ease-in-out forwards;
}
#brand .caption {
  position: absolute;
  right: 15px;
  bottom: 5px;
  color: #fff;
  font-size: 14px;
}
.brand_content {
  position: relative;
  padding: 50px 20px;
  text-align: center;
  color: #fff;
  z-index: 1;
}
.brand_content p {
  padding: 120px 0 30px;
  font-size: 25px;
  letter-spacing: 1px;
  line-height: 1.5;
}
.brand_content .btn-read a {
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 75px;
  height: 75px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transition: all .5s;
}
.brand_content .btn-read a:hover {
  background: rgba(255, 255, 255, 0);
}
/* @media
 * ========================================================================== */
@media screen and (max-width: 1024px) {
  .brand_content {
    padding: 30px 20px;
  }
  .brand_content .ttl img {
    max-height: 60px;
  }
  .brand_content p {
    padding: 40px 0 20px;
    font-size: 22px;
  }
}
@media screen and (max-width: 619px) {
  #brand {
    aspect-ratio: 37 / 54;
  }
  #brand .bg {
    background: url('../../assets/img/top/brand_bg_sp.jpg') no-repeat center / cover;
  }
  #brand .caption {
    font-size: 11px;
  }
  .brand_content .ttl img {
    max-height: 90px;
  }
  .brand_content p {
    padding: 60px 0 20px;
    font-size: 20px;
  }
  .brand_content .btn-read a {
    width: 100px;
    height: 100px;
  }
  .brand_content .btn-read img {
    width: 60px;
  }
}
@media screen and (max-width: 320px) {
}
