/* ===== トロピカル装飾（セクション境界重なり版・両側装飾） ===== */

/* 1. Registration infoセクション装飾 */
.registration-info {
  position: relative;
  overflow: visible; /* セクション境界を越えるため */
}

.registration-info::before {
  content: '';
  position: absolute;
  top: -60px; /* さらに上に移動 */
  left: 150px;
  width: 220px;
  height: 132px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.7;
  z-index: 1;
  transform: rotate(15deg);
}

.registration-info::after {
  content: '';
  position: absolute;
  top: -40px;
  right: 120px;
  width: 180px;
  height: 108px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.5;
  z-index: 1;
  transform: rotate(-20deg);
}

/* 2. Welcomeセクション装飾 */
#welcome {
  position: relative;
  overflow: visible;
}

#welcome::before {
  content: '';
  position: absolute;
  top: -70px; /* さらに上に移動 */
  left: 120px;
  width: 280px;
  height: 168px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.5;
  z-index: 1;
  transform: rotate(25deg);
}

#welcome::after {
  content: '';
  position: absolute;
  top: -50px;
  right: 100px;
  width: 200px;
  height: 120px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.4;
  z-index: 1;
  transform: rotate(-15deg);
}

/* 3. Programsセクション装飾 */
#programs {
  position: relative;
  overflow: visible;
}

#programs::before {
  content: '';
  position: absolute;
  top: -80px; /* さらに上に移動 */
  left: 180px;
  width: 250px;
  height: 150px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.5;
  z-index: 1;
  transform: rotate(-15deg);
}

#programs::after {
  content: '';
  position: absolute;
  top: -60px;
  right: 140px;
  width: 190px;
  height: 114px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.4;
  z-index: 1;
  transform: rotate(20deg);
}

/* 4. Important Datesセクション装飾 */
#dates {
  position: relative;
  overflow: visible;
}

#dates::before {
  content: '';
  position: absolute;
  top: -65px; /* さらに上に移動 */
  left: 140px;
  width: 270px;
  height: 162px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.45;
  z-index: 1;
  transform: rotate(10deg);
}

#dates::after {
  content: '';
  position: absolute;
  top: -45px;
  right: 110px;
  width: 210px;
  height: 126px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.35;
  z-index: 1;
  transform: rotate(-25deg);
}

/* 5. Topicsセクション装飾 */
#topics {
  position: relative;
  overflow: visible;
}

#topics::before {
  content: '';
  position: absolute;
  top: -90px; /* さらに上に移動 */
  left: 200px;
  width: 300px;
  height: 180px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.4;
  z-index: 1;
  transform: rotate(-10deg);
}

#topics::after {
  content: '';
  position: absolute;
  top: -70px;
  right: 160px;
  width: 220px;
  height: 132px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.3;
  z-index: 1;
  transform: rotate(18deg);
}

/* 6. Organizationセクション装飾 */
#organization {
  position: relative;
  overflow: visible;
}

#organization::before {
  content: '';
  position: absolute;
  top: -75px; /* さらに上に移動 */
  left: 150px;
  width: 260px;
  height: 156px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.45;
  z-index: 1;
  transform: rotate(-20deg);
}

#organization::after {
  content: '';
  position: absolute;
  top: -55px;
  right: 130px;
  width: 200px;
  height: 120px;
  background-image: url("../img/hibiscus-decoration.png");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.35;
  z-index: 1;
  transform: rotate(22deg);
}



@media (max-width: 1200px) {
  /* モバイル：セクション境界重なりを維持・ハンバーガーメニューを阻害しない */
  .registration-info::before {
    left: 15px;
    top: -35px; /* モバイルでもセクション境界に重なる */
    width: 140px;
    height: 84px;
    opacity: 0.4;
    transform: rotate(10deg);
  }
  .registration-info::after {
    right: 10px;
    top: -25px;
    width: 100px;
    height: 60px;
    opacity: 0.3;
    transform: rotate(-15deg);
  }
  
  #welcome::before {
    left: 20px;
    top: -40px;
    width: 160px;
    height: 96px;
    opacity: 0.4;
    transform: rotate(15deg);
  }
  #welcome::after {
    right: 15px;
    top: -30px;
    width: 110px;
    height: 66px;
    opacity: 0.3;
    transform: rotate(-12deg);
  }
  
  #programs::before {
    left: 15px;
    top: -45px;
    width: 150px;
    height: 90px;
    opacity: 0.4;
    transform: rotate(-10deg);
  }
  #programs::after {
    right: 12px;
    top: -35px;
    width: 105px;
    height: 63px;
    opacity: 0.3;
    transform: rotate(18deg);
  }
  
  #dates::before {
    left: 20px;
    top: -35px;
    width: 155px;
    height: 93px;
    opacity: 0.35;
    transform: rotate(8deg);
  }
  #dates::after {
    right: 15px;
    top: -25px;
    width: 115px;
    height: 69px;
    opacity: 0.25;
    transform: rotate(-20deg);
  }
  
  #topics::before {
    left: 25px;
    top: -50px;
    width: 170px;
    height: 102px;
    opacity: 0.35;
    transform: rotate(-8deg);
  }
  #topics::after {
    right: 20px;
    top: -40px;
    width: 120px;
    height: 72px;
    opacity: 0.25;
    transform: rotate(15deg);
  }
  
  #organization::before {
    left: 15px;
    top: -40px;
    width: 145px;
    height: 87px;
    opacity: 0.35;
    transform: rotate(-12deg);
  }
  #organization::after {
    right: 12px;
    top: -30px;
    width: 108px;
    height: 65px;
    opacity: 0.25;
    transform: rotate(20deg);
  }
}

@media (max-width: 480px) {
  /* 極小画面：セクション境界重なりを少し控えめに */
  .registration-info::before {
    width: 110px;
    height: 66px;
    left: 10px;
    top: -30px;
    opacity: 0.35;
  }
  .registration-info::after {
    width: 80px;
    height: 48px;
    right: 8px;
    top: -20px;
    opacity: 0.25;
  }
  
  #welcome::before {
    width: 120px;
    height: 72px;
    left: 12px;
    top: -32px;
    opacity: 0.35;
  }
  #welcome::after {
    width: 85px;
    height: 51px;
    right: 10px;
    top: -22px;
    opacity: 0.25;
  }
  
  #programs::before {
    width: 115px;
    height: 69px;
    left: 10px;
    top: -35px;
    opacity: 0.35;
  }
  #programs::after {
    width: 82px;
    height: 49px;
    right: 8px;
    top: -25px;
    opacity: 0.25;
  }
  
  #dates::before {
    width: 118px;
    height: 71px;
    left: 12px;
    top: -28px;
    opacity: 0.3;
  }
  #dates::after {
    width: 88px;
    height: 53px;
    right: 10px;
    top: -18px;
    opacity: 0.2;
  }
  
  #topics::before {
    width: 125px;
    height: 75px;
    left: 15px;
    top: -38px;
    opacity: 0.3;
  }
  #topics::after {
    width: 92px;
    height: 55px;
    right: 12px;
    top: -28px;
    opacity: 0.2;
  }
  
  #organization::before {
    width: 112px;
    height: 67px;
    left: 10px;
    top: -32px;
    opacity: 0.3;
  }
  #organization::after {
    width: 85px;
    height: 51px;
    right: 8px;
    top: -22px;
    opacity: 0.2;
  }
}

/* 印刷時は装飾を非表示 */
@media print {
  .registration-info::before,
  .registration-info::after,
  #welcome::before,
  #welcome::after,
  #programs::before,
  #programs::after,
  #dates::before,
  #dates::after,
  #topics::before,
  #topics::after,
  #organization::before,
  #organization::after {
    display: none !important;
  }
}

/* アクセシビリティ: 動きを減らす設定の場合 */
@media (prefers-reduced-motion: reduce) {
  .registration-info::before,
  .registration-info::after,
  #welcome::before,
  #welcome::after,
  #programs::before,
  #programs::after,
  #dates::before,
  #dates::after,
  #topics::before,
  #topics::after,
  #organization::before,
  #organization::after {
    animation: none;
    transition: none;
  }
}