.gallery-page{
  margin:0;
  background:#0B251A;
  color:#F4F1DE;
  font-family:'Noto Sans JP','Montserrat',sans-serif;
}

.gallery-header{
  position:sticky;
  top:0;
  z-index:20;

  height:76px;
  padding:0 28px;

  display:flex;
  align-items:center;
  justify-content:space-between;

  background:rgba(11,37,26,.9);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(244,241,222,.15);
}

.gallery-header__back{
  color:#74C69D;
  font-weight:900;
  letter-spacing:.12em;
  text-decoration:none;
}

.gallery-header__brand{
  display:flex;
  align-items:center;
  gap:10px;

  font-weight:900;
  letter-spacing:.08em;
}

.gallery-header__brand img{
  width:38px;
  height:38px;
  object-fit:contain;
}

.insta-gallery{
  max-width:980px;
  margin:0 auto;
  padding:48px 20px 100px;
}

.insta-profile{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:48px;
  align-items:center;

  padding-bottom:44px;
  border-bottom:1px solid rgba(244,241,222,.16);
}

.insta-profile__avatar{
  width:150px;
  height:150px;

  border-radius:50%;
  padding:6px;

  background:
    linear-gradient(135deg,#74C69D,#F4F1DE,#457B9D);
}

.insta-profile__avatar img{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:50%;
  background:#0B251A;
}

.insta-profile__info h1{
  margin:0 0 18px;
  font-size:32px;
  font-weight:900;
  letter-spacing:.04em;
}

.insta-profile__stats{
  display:flex;
  gap:28px;
  margin-bottom:18px;
  color:rgba(244,241,222,.9);
}

.insta-profile__stats strong{
  color:#74C69D;
}

.insta-profile__info p{
  margin:0;
  max-width:520px;
  line-height:1.8;
  font-weight:700;
  color:rgba(244,241,222,.82);
}

.insta-tabs{
  display:flex;
  justify-content:center;
  gap:48px;

  height:58px;
  border-bottom:1px solid rgba(244,241,222,.12);
}

.insta-tabs button{
  border:none;
  background:none;
  color:rgba(244,241,222,.45);

  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
}

.insta-tabs button.active{
  color:#F4F1DE;
  border-top:2px solid #74C69D;
}

.insta-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:4px;
  margin-top:4px;
}

.insta-post{
  position:relative;
  aspect-ratio:1/1;
  overflow:hidden;
  background:#1B4332;
}

.insta-post img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.45s ease;
}

.insta-post::after{
  content:"VIEW";
  position:absolute;
  inset:0;

  display:flex;
  align-items:center;
  justify-content:center;

  background:rgba(11,37,26,.55);
  color:#F4F1DE;

  font-size:13px;
  font-weight:900;
  letter-spacing:.2em;

  opacity:0;
  transition:.3s ease;
}

.insta-post:hover img{
  transform:scale(1.08);
}

.insta-post:hover::after{
  opacity:1;
}

@media(max-width:640px){
  .gallery-header{
    height:64px;
    padding:0 16px;
  }

  .gallery-header__brand span{
    font-size:13px;
  }

  .insta-gallery{
    padding:28px 0 80px;
  }

  .insta-profile{
    grid-template-columns:92px 1fr;
    gap:18px;
    padding:0 16px 28px;
  }

  .insta-profile__avatar{
    width:86px;
    height:86px;
  }

  .insta-profile__info h1{
    font-size:21px;
    margin-bottom:10px;
  }

  .insta-profile__stats{
    gap:12px;
    font-size:12px;
    flex-wrap:wrap;
    margin-bottom:10px;
  }

  .insta-profile__info p{
    font-size:12px;
    line-height:1.7;
  }

  .insta-tabs{
    gap:34px;
  }

  .insta-grid{
    gap:3px;
  }
}

.gallery-header__actions{
  display:flex;
  align-items:center;
  gap:12px;
}

.gallery-header__reserve,
.gallery-header__menu{
  height:42px;
  padding:0 18px;

  display:flex;
  align-items:center;
  justify-content:center;

  border:2px solid #74C69D;
  background:rgba(116,198,157,.08);

  color:#F4F1DE;
  text-decoration:none;

  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;

  transition:.25s ease;
}

.gallery-header__reserve:hover,
.gallery-header__menu:hover{
  background:#74C69D;
  color:#0B251A;
}

.insta-post{
  border:0;
  padding:0;
  cursor:pointer;
}

.gallery-modal{
  position:fixed;
  inset:0;
  z-index:20000;

  display:flex;
  align-items:center;
  justify-content:center;

  padding:24px;

  background:rgba(11,37,26,.92);
  backdrop-filter:blur(14px);

  opacity:0;
  visibility:hidden;
  pointer-events:none;

  transition:.28s ease;
}

.gallery-modal.active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.gallery-modal img{
  max-width:min(92vw,900px);
  max-height:86vh;

  object-fit:contain;

  border:6px solid #F4F1DE;
  box-shadow:18px 18px 0 #1B4332;
}

.gallery-modal__close{
  position:absolute;
  top:22px;
  right:22px;

  padding:12px 18px;

  border:2px solid #74C69D;
  background:#F4F1DE;
  color:#0B251A;

  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;

  transform:rotate(3deg);
  box-shadow:6px 6px 0 #1B4332;
}

.gallery-tag{
  position:absolute;
  top:24px;
  left:24px;

  z-index:10;

  padding:8px 14px;

  border:2px solid #74C69D;

  background:#0B251A;

  color:#F4F1DE;

  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
}

#galleryModalVideo{

  max-width:min(92vw,900px);
  max-height:86vh;

  border:6px solid #F4F1DE;

  box-shadow:18px 18px 0 #1B4332;

}

.price-item__photo-btn{
  margin-top:14px;
  padding:10px 16px;
  border:2px solid #74C69D;
  background:#F4F1DE;
  color:#0B251A;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  cursor:pointer;
  box-shadow:5px 5px 0 rgba(0,0,0,.28);
  transform:rotate(-1.5deg);
  transition:.2s ease;
}

.price-item__photo-btn:hover{
  background:#74C69D;
  transform:rotate(1deg) translateY(-2px);
}

.plant-modal{
  position:fixed;
  inset:0;
  z-index:30000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(11,37,26,.92);
  backdrop-filter:blur(14px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.28s ease;
}

.plant-modal.active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.plant-modal img{
  max-width:90vw;
  max-height:84vh;
  object-fit:contain;
  border:6px solid #F4F1DE;
  background:#1B4332;
  box-shadow:18px 18px 0 #1B4332;
}

.plant-modal__close{
  position:absolute;
  top:22px;
  right:22px;
  padding:12px 18px;
  border:2px solid #74C69D;
  background:#F4F1DE;
  color:#0B251A;
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
  transform:rotate(3deg);
  box-shadow:6px 6px 0 #1B4332;
  cursor:pointer;
}