@charset "UTF-8";

.image-section {
  margin: 40px 0;
}

.content-text__title {
  font-family: "canvas-script", sans-serif;
  text-align: left;
  line-height: 1.5;
  margin-bottom: 40px;
  font-size: 4rem;
}

.terrace-title {
  display: flex;
  flex-direction: column;
  align-items: flex-start; 
  gap: 5px; 
  font-family: sans-serif; 
  line-height: 1.2;
}

.terrace-title .en {
  font-family: "canvas-script", sans-serif; 
  font-size: 4rem;
  color: #009AAE; 
}

.terrace-title .jp {
  font-family: "Noto Sans JP", sans-serif; 
  font-size: 1.6rem;
  font-weight: 300; 
  letter-spacing: 0.05em;
}

@media (max-width: 959px) {
  .content-text__title {
    font-size: 3.4rem;
    margin-bottom: 30px;
  }
  .terrace-title .en { font-size: 3.4rem; }
  .terrace-title .jp { font-size: 1.5rem; }
}
@media (max-width: 639px) {
  .content-text__title {
    font-size: 2.8rem;
    margin-bottom: 20px;
  }
  .terrace-title .en { font-size: 2.8rem; }
  .terrace-title .jp { font-size: 1.4rem; }
}

.sec-sunset-terrace .content-text__jp p {
  font-size: 1.4rem;
  letter-spacing: 0.05em;
  line-height: 2;
  color: #44828E;
}

.sec-sunset-terrace .plan-description p,
.sec-sunset-terrace li,
.sec-sunset-beach .content-text p,
.sec-sunset-beach .content-text li {
  font-size: 1.3rem;
  letter-spacing: 0.05em;
  line-height: 2;
}

.sec-sunset-terrace .content-text__en {
  margin-top: 20px;
  color: #009AAE;
  font-size: 1.2rem;
  line-height: 2;
}

.plan-item {
  margin-top: 30px;
}

.plan-accordion .plan-title {
  border: 1px solid #009AAE;
  padding: 15px 50px 15px 20px;
  position: relative;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.plan-accordion .plan-title .sub-jp {
  display: block;
  font-size: 1.2rem;
  font-weight: normal;
  margin-top: 5px;
}

.plan-accordion .plan-title:hover {
  background-color: rgba(0, 154, 174, 0.1);
}

.plan-accordion .plan-title::after {
  font-family: "Font Awesome 6 Pro";
  content: '\f067'; 
  font-weight: 900;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  color: #009AAE;
  transition: transform 0.3s ease;
}

.plan-accordion .plan-title.is-active::after {
  transform: translateY(-50%) rotate(45deg);
}

.plan-accordion .plan-description {
  display: none; 
  padding: 20px;
  border: 1px solid #ddd;
  border-top: none;
}

.plan-accordion .plan-description .plan-image {
  margin-bottom: 20px;
}

.plan-accordion .plan-description .plan-lead {
  margin-bottom: 15px;
}

.plan-accordion .plan-description .plan-price-list {
  margin: 20px 0;
  border-top: 1px dashed #ccc;
  border-bottom: 1px dashed #ccc;
  padding: 15px 0;
}

.plan-accordion .plan-description .plan-price-item {
  display: flex;
  justify-content: space-between;
  padding: 5px 0;
}

.plan-accordion .plan-description .plan-includes {
  margin-bottom: 20px;
}

.plan-notes li {
  padding-top: 15px;
  font-size: 1.1rem;
}

.sec-sunset-beach .plan-notes li {
  padding-top: 15px;
  font-size: 1.1rem;
}

@media (max-width: 767px) {
  .sec-sunset-terrace .inner {
    display: flex;
    flex-direction: column-reverse;
  }
}

@media (min-width: 768px) { 
  .sec-sunset-terrace .inner,
  .sec-sunset-beach .inner {
    display: flex;
    gap: 30px; 
    align-items: flex-start; 
  }
  .sec-sunset-terrace .content-text,
  .sec-sunset-terrace .image-section,
  .sec-sunset-beach .content-text,
  .sec-sunset-beach .image-section {
    flex: 1; 
    min-width: 0; 
    margin: 0; 
  }

  .sec-sunset-terrace .image-section { order: 1; }
  .sec-sunset-terrace .content-text { order: 2; }

  .sec-sunset-beach .image-section { order: 2; }
  .sec-sunset-beach .content-text { order: 1; }

  .sec-sunset-terrace .image-section,
  .sec-sunset-beach .image-section {
    position: -webkit-sticky; 
    position: sticky;
    top: 120px; 
  }

  .sec-sunset-beach .image,
  .sec-sunset-terrace .image {
    aspect-ratio: 1 / 1; 
  }
}