@charset "UTF-8";

/*==========================================================================
  Common
==========================================================================*/

body {
  font-family: 游ゴシック, YuGothic, メイリオ, Meiryo, sans-serif, Roboto,
    "Droid Sans", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro";
  font-size: 16px;
  font-weight: 500;
  color: #000;
}

.clear:after {
  content: "";
  display: block;
  clear: both;
}
a {
  text-decoration: none;
}
a:hover {
  opacity: 0.8;
}
.txt_center {
  text-align: center;
}
.txt_right {
  text-align: right;
}
/** フォームリセット **/
input,
button,
textarea,
select,
submit {
  border: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
@media screen and (min-width: 800px) {
  body {
    min-width: 1300px;
  }
}

.contests {
  max-width: 1250px;
  margin: 0 auto;
  width: 90%;
}

.btn {
/*   max-width: 340px;
  margin-inline: auto; */
  text-align: center;
}
.btn img {
  height: 85px;
  width: auto;
}
.btn a {
  display: block;
  transition: .4s;
}
.btn a:hover {
  opacity: .6;
}
.menu_btn {
  position: fixed;
  top: 30px;
  right: 10%;
  transition: .4s;
  z-index: 9;
}
.menu_btn:hover {
  transform: scale(1.1, 1.1);
  opacity: 1;
}
.menu_btn:active {
  transform: scale(0.8, 0.8);
}
.bg {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  background: rgb(0 0 0 / 40%);
  z-index: 10;
  visibility: hidden;
}
.bg.click {
  visibility: initial;
}
.open_menu {
  background-color: #fff;
  position: fixed;
  top: 0;
  right: 16.5%;
  width: 350px;
  z-index: 20;
  height: 100vh;
  opacity: 0;
  visibility: hidden;
  transition: .8s;
}
.open_menu.click {
  visibility: initial;
  opacity: 1;
}
.menu_wrap {
  /* background-color: #7caed6; */
  position: relative;
  margin-inline: auto;
  width: 90%;
  padding: 0 35px;
  height: 100vh;
  overflow-y: scroll;
}
.menu_wrap::-webkit-scrollbar {
  display:none;
}
.close_icon {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 30px;
}
.menu_cont {
  margin: 0 auto;
  /* width: 90%; */
  max-width: 210px;
}
.menu_link {
  margin: -20px auto 0;
  /* max-width: 400px; */
  max-width: 180px;
  width: 86%;
}
.menu_link.top_link {
  margin-top: 30px;
  margin-bottom: 35px;
}
.menu_link.kigyo_link {
  margin-bottom: 20px;
}
.menu_block {
  margin-bottom: 10px;
}
.menu_block:last-child {
  margin-bottom: 0;
}

@keyframes yurayura {
  0% , 100%{
    transform: rotate(3deg);
  }
  50%{
    transform: rotate(-3deg);
  }
}
@keyframes leftmove {
  0% {
    left: -50%;
  }
  100% {
    left: 0;
  }
}
@keyframes rightmove {
  0% {
    right: -50%;
  }
  100% {
    right: 0;
  }
}
@keyframes fade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* main_wrap */
.main_wrap {
  background-color: #006260;
  padding-bottom: 40px;
  padding-top: 90px;

  & .contests {
    position: relative;
  }
  & .main_img {
    position: absolute;
    top: 150px;
    right: 15.5%;
    z-index: 3;
    width: 18%;
    animation: main_img .7s linear forwards;
    max-width: 225px;
  }
  & .main_txt {
    width: 23%;
    width: 416px;
    margin: 0;
    padding-top: 20px;
    position: relative;
    z-index: 1;
    margin-right: -65px;
    transform-origin: center top;
    animation: yurayura 3s linear infinite, leftmove .8s ease-in;
  }
  & .main_txt02 {
    width: 16%;
    width: 290px;
    margin: 0;
    padding-top: 0px;
    position: relative;
    z-index: 1;
    margin-left: -65px;
    transform-origin: center top;
    animation: yurayura 3s linear infinite, rightmove .8s ease-in;
  }
  & .main_flex {
    position: relative;
    /* height: 214px; */
  }
  & .main_title_block {
    margin: 0 auto;
    max-width: 800px;
    width: 90%;
  }
  & .main_txt_sub {
    position: absolute;
    margin: 0;
    right: 0;
    bottom: 0;
    animation: main_txt_sub 0.9s ease 0s 1 normal forwards;
    width: 18%;
  }

  & .main_title02 {
    position: absolute;
    top: -15px;
    right: 0;
    animation: main_title02 0.9s ease 0s 1 normal forwards;
    width: 14%;
  }
  & .main_txt_sub01 {
    position: absolute;
    top: 0;
    left: 38%;
    width: 16%;
  }
  & .main_txt_sub02 {
    position: absolute;
    top: 48%;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    width: 35%;
    animation: fade 1s ease;
  }
  & .main_txt_wrap {
    position: relative;
    display: flex;
    justify-content: center;
    margin-bottom: 80px;
    overflow: hidden;
    padding-right: 5%;
  }
  & .sticky {
    z-index: 3;
    position: absolute;
    width: 10%;
    width: 188px;
  }
  & .sticky01 {
    bottom: 39%;
    left: 30%;
    animation: bounce 2s ease-in infinite 0.5s, sticky 2s ease-in;;
  }
  & .sticky02 {
    bottom: 9%;
    left: 33%;
    animation: bounce 2s ease-in infinite 0.3s, sticky 2s ease-in;;
  }
  & .sticky03 {
    bottom: 20%;
    left: 56%;
    animation: bounce 2s ease-in infinite, sticky 2s ease-in;
  }
}
@keyframes sticky { 
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes bounce { 
  0% {
    transform: scale(1, 1);
  }
  30% {
    transform: scale(1, 0.8);
  }
  35% {
    transform: scale(1.2, 1);
  }
  40% {
    transform: scale(1, 0.8);
  }
  45% {
    transform: scale(1.1, 1);
  }
  50% {
    transform: scale(1, 1);
  }
  100% {
    transform: scale(1,1);
  }
}
@keyframes main_txt {
  0% {
    transform: translateX(-20px);
  }
  20% {
    transform: translateX(20px);
  }
  40% {
    transform: translateX(-10px);
  }
  60% {
    transform: translateX(10px);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes main_img {
  0% {
    transform: translateY(-20px);
  }
  20% {
    transform: translateY(20px);
  }
  40% {
    transform: translateY(-10px);
  }
  60% {
    transform: translateY(10px);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes main_title {
  from {
    left: 0;
  }
  to {
    left: 28%;
  }
}
@keyframes main_title02 {
  from {
    right: 0;
  }
  to {
    right: 40.5%;
  }
}
@keyframes main_txt_sub {
  from {
    right: 0;
  }
  to {
    right: 19%;
  }
}


/* slide_wrap */
.slide_wrap {
  margin-bottom: 40px;

  & .swiper {
    max-width: 1400px;
  }
  & .swiper-wrapper {
    transition-timing-function: linear;
  }
  & .swiper-slide {
    padding: 0 20px;
  }
  & .swiper-slide img {
    border-radius: 20px;
    height: auto;
    width: 100%;
  }
}

.fade-in {
  opacity: 0;
  transition-duration: 800ms;
  transition-property: opacity, transform;
}
.fade-in-up {
  transform: translate(0, 10px);
}
.fade-in-up02 {
  transform: translate(0, 100px);
}
.fade-in.active {
  opacity: 1;
  transform: translate(0, 0);
}


.anim-box.poyoyon.is-animated {
  animation: poyon 1.1s linear 0s 1;
}

.anim-box.poyoyon2.is-animated {
  animation: poyon2 1.1s linear 0s 1;
}

@keyframes poyon {
  0% {
    transform: translate(0%, -30%);
    opacity: 0;
  }
  50% { transform: translate(0%, 30%); }
  60% { transform: translate(0%, 0%); }
  80% { transform: translate(0%, 10%); }
  100% { transform: translate(0%, 0%); }
}

@keyframes poyon2 {
  0% {
    transform: translate(0%, -10%);
    opacity: 0;
  }
  50% { transform: translate(0%, 10%); }
  60% { transform: translate(0%, 0%); }
  80% { transform: translate(0%, 5%); }
  100% { transform: translate(0%, 0%); }
}


/* movie_wrap */
.movie_wrap {
  background: #006260;
  padding-top: 40px;
  padding-bottom: 40px;

  & .movie_title {
    max-width: 453px;
    margin-inline: auto;
    margin-bottom: 30px;
  }
  & .movie_title span {
    position: relative;
    opacity: 0;
    transition: .5s;
    top: 30px;
  }
  & .movie_title span.active {
    opacity: 1;
    top: 0;
  }
  & .movie_block {
    aspect-ratio: 16 / 9;
    max-width: 650px;
    margin-inline: auto;
    margin-bottom: 10px;
    width: 100%;
  }
  & .movie_block iframe {
    width: 100%;
    height: 100%;
  }
  & .explanation_image_block {
    display: flex;
    justify-content: center;
    max-width: 650px;
    margin-inline: auto;
    margin-bottom: 20px;
    gap: 50px;
  }
  & .explanation_image {
    margin-bottom: 0;
    width: 38%;
  }
  & .explanation_image:nth-child(2) {
    width: 49%;
  }
  & .application_txt_block {
    font-size: 18px;
    max-width: 600px;
    margin-inline: auto;
    margin-bottom: 30px;
    text-align: center;
    width: 90%;
  }
  & .application_txt_block.txt-mb {
    margin-bottom: 120px;
  }
  & .application_txt {
    color: #fff;
    margin-bottom: 5px;
  }
  & .application_txt:last-child {
    margin-bottom: 0;
  }
  & .btn01 {
    margin-bottom: 30px;
  }
  & .slide_anime.active {
    transform-origin: center bottom;
    animation: slide_anime 1s forwards;
    transform: rotate(-60deg);
    opacity: 0;
  }
}
@keyframes slide_anime {
  80% {
    opacity: 1;
    transform: rotate(10deg);
  }
  100% {
    opacity: 1;
    transform: rotate(0deg);
  }
}


/* schedule_wrap */
.schedule_wrap {
  background-image: url(../img/bg-img.jpg);
  margin-bottom: 40px;

  & .schedule_cont {
    align-items: end;
    display: flex;
    justify-content: center;
    gap: 30px;
    margin-inline: auto;
    width: 90%;
    padding: 30px;
  }
  & .day {
    margin: 0;
    width: 400px;
  }
  & .place {
    margin: 0;
    width: 200px;
  }
}

/* student_wrap */
.student_wrap {
  background-image: url(../img/bg-img.jpg);
  color: #fff;
  padding: 80px 0 60px;

  & .student_title {
    font-size: 30px;
    position: relative;
    max-width: 780px;
    margin: 0 auto 40px;
    padding-left: 80px;
  }
  & .student_title::before {
    content: "対象";
    color: #000;
    position: absolute;
    top: 6px;
    left: 12px;
    z-index: 2;
    font-size: 22px;
  }
  & .student_title::after {
    content: "";
    background-color: #fff;
    border-radius: 50%;
    width: 63px;
    height: 63px;
    z-index: 1;
    position: absolute;
    top: -7px;
    left: 2px;
  }
  & .student_flex {
    align-items: center;
    display: flex;
    justify-content: center;
    max-width: 780px;
    margin: 0 auto 17px;
  }
  & .student_cont01 {
    margin-right: 6%;
    width: 47%;
  }
  & .student_cont02 {
    width: 47%;
  }
  & .dl_btn {
    margin: 0 auto;
    max-width: 430px;
  }
  & .dl_btn a {
    border: 1px solid;
    border-radius: 10px;
    color: #fff;
    display: block;
    line-height: 1.3;
    font-size: 30px;
    font-weight: bold;
    padding: 10px 0;
    transition: .4s;
    text-align: center;
  }
  & .dl_btn a:hover {
    background-color: #fff;
    color: #ed85a7;
    text-decoration: none;
  }
  & .dl_btn a span {
    font-size: 20px;
    position: relative;
    padding-right: 30px;
  }
  & .dl_btn a span::after {
    position: absolute;
    top: 4px;
    right: 4px;
    content: "";
    display: inline-block;
    border-style: solid;
    border-width: 8px 0 8px 16px;
    border-color: transparent transparent transparent #fff;
  }
  & .dl_btn a:hover span::after {
    border-color: transparent transparent transparent #ed85a7;
  }
}


/* flow_wrap */
.flow_wrap {
  background-color: #006260;
  padding: 60px 0 50px;
  margin-bottom: 60px;

  & .flow_txt {
    background: #e08ba7;
    color: #fff;
    font-weight: bold;
    margin: 0 auto;
    max-width: 780px;
    font-size: 20px;
    padding: 25px;
  }
  & .flow_img {
    margin-inline: auto;
    max-width: 780px;
  }
  & .flow_img img {
    width: 100%;
  }
}


/* info_wrap */
.info_wrap {

  & .info_cont01 {
    max-width: 530px;
    margin-inline: auto;
    margin-bottom: 40px;
  }
  & .info_txt {
    font-size: 19px;
    font-weight: bold;
    line-height: 1.6;
    max-width: 750px;
    margin: 0 auto 100px;
  }
  & .info_btn01 {
    margin-bottom: 60px;
  }
  & .info_btn02 {
    margin-bottom: 100px;
  }
}

.kigyou_wrap {
  background-image: url(../img/bg-img.jpg);
  padding: 60px 0 80px;
}

.kigyou_wrap .contests {
  max-width: 1194px;
}
.inner_wrap {
  background: #006260;
  padding-bottom: 30px;
  text-align: center;
}
.inner_wrap .contests {
  padding-top: 160px;
}
.logo {
  position: absolute;
  top: 20px;
  left: 4%;
}
.kigyou_info_wrap {
  align-items: center;
  background: #5a3835;
  border-radius: 50px;
  color: #fff;
  display: flex;
  font-weight: bold;
  line-height: 1.2;
  margin-bottom: 25px;
  padding: 20px;
  width: 100%;
}
.kigyou_info {
  align-items: center;
  display: flex;
  width: 390px;
}
.kigyou_title {
  font-size: 21px;
  flex: 1;
  margin: 0;
  position: relative;
  padding-left: 15px;
  padding-right: 30px;
}
.kigyou_cat::before,
.kigyou_link::before {
  content: "";
  width: 1px;
  height: 35px;
  background-color: #fff;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}
.kigyou_cat {
  font-size: 15px;
  margin: 0;
  width: 320px;
  position: relative;
  padding-left: 35px;
}
.kigyou_link {
  width: 70px;
  position: relative;
  padding-left: 15px;
  height: 25px;
}
.kigyou_link a {
  display: block;
  text-align: right;
  display: flex;
  align-items: unset;
  justify-content: center;
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}
.kigyou_link a img {
  width: 34px;
}
.inner_title {
  background: #fff;
  border: 7px solid #5a3835;
  display: inline-block;
  padding: 15px 50px;
  border-radius: 50px;
  color: #5a3835;
  font-size: 30px;
  position: relative;
  width: 100%;
  max-width: 500px;
}
.inner_title span {
  font-size: 25px;
}



/* footer */
.footer_wrap {
  padding-bottom: 40px;

  &.kigyou_footer .contests {
    border-top: none;
  }
  & .contests {
    border-top: 1px solid;
    padding-top: 40px;
  }
  & .footer_logo {
    max-width: 320px;
    margin: 0 auto 50px;
  }
  & .footer_address {
    text-align: center;
  }
  & .footer_info {
    display: flex;
    justify-content: center;
  }
  & .footer_info li {
    font-size: 25px;
    margin-right: 30px;
  }
  & .footer_info li:last-child {
    margin-right: 0;
  }
  & .footer_free_number {
    position: relative;
    padding-left: 30px;
  }
  & .footer_free_number::before {
    content: "";
    background-image: url(../img/tel_icon.svg);
    background-size: cover;
    width: 35px;
    height: 20px;
    position: absolute;
    top: 8px;
    left: -8px;
  }
}


/* レスポンシブ */
@media screen and (max-width:1400px) {
  .main_wrap {
    & .main_txt {
      /* margin-bottom: 180px; */
    }
  }
}

@media screen and (max-width:1300px) {
  .main_wrap {
    & .main_img {
      right: 7%;
    }
  }
}

@media screen and (max-width:1200px) {
  .main_wrap {
    & .main_img {
      right: -3%;
    }
  }
}

@media screen and (max-width:1100px) {
  .main_wrap {
    /* padding-bottom: 170px; */

    & .main_img {
      right: -13%;
      width: 30%;
    }
    & .main_title {
      width: 50%;
    }
    & .main_title02 {
      width: 21%;
    }
    & .main_txt_sub {
      bottom: -170px;
      right: 0;
      left: 0;
      margin: auto;
      width: 27%;
    }
  }
  @keyframes main_title {
    from {
      left: 0;
    }
    to {
      left: 20%;
    }
  }
  @keyframes main_title02 {
    from {
      right: 0;
    }
    to {
      right: 35%;
    }
  }
  @keyframes main_txt_sub {
    from {
      right: 0;
    }
    to {
      right: 0;
    }
  }
}

@media screen and (max-width:1000px) {
  .main_wrap {
    & .main_img {
      right: -23%;
    }
    & .main_txt_sub02 {
      left: 60%;
      width: 65%;
    }
  }
}

@media screen and (max-width:900px) {
  .main_wrap {
    & .main_img {
      right: -33%;
    }
  }
}

@media screen and (max-width:800px) {
  .main_wrap {
    & .main_title02 {
      width: 24%;
      top: -20px;
    }
    & .main_img {
      right: 3%;
      width: 20%;
    }
  }
  @keyframes main_title02 {
    from {
      right: 0;
    }
    to {
      right: 30%;
    }
  }
  .main_wrap {
    & .sticky01 {
      left: 20%;
    }
    & .sticky02 {
      left: 13%;
    }
    & .sticky03 {
      left: 66%;
    }
  }
}

@media screen and (max-width:768px) {
  .main_wrap {
    /* padding-top: 70px; */
    & .main_txt_sub {
      width: 45%;
    }
    & .main_txt_sub01 {
      top: 68px;
      left: 32%;
    }
    & .main_img {
      top: 110px;
    }
    & .main_title02 {
      width: 39%;
      top: -33px;
    }
    /* & .main_txt_sub02 {
      top: 38%;
    } */
  }
  @keyframes main_title02 {
    from {
      right: 0;
    }
    to {
      right: 10%;
    }
  }
  .schedule_wrap {
    & .schedule_cont {
      padding: 26px 10px;
    }
  }
  .movie_wrap {
    & .movie_title {
      font-size: 28px;
    }
    & .application_txt_block {
      font-size: 16px;
    }
    & .application_txt_block.txt-mb {
      margin-bottom: 60px;
    }
  }
  .student_wrap {
    padding: 60px 0 60px;
    & .dl_btn {
      max-width: 380px;
    }
    & .dl_btn a {
      font-size: 25px;
    }
    & .dl_btn a span {
      font-size: 18px;
    }
    & .dl_btn a span::after {
      top: 5px;
      right: 9px;
      border-width: 6px 0 6px 12px;
    }
  }
  .flow_wrap {
    & .flow_txt {
        font-size: 18px;
    }
  }
  .footer_wrap {
    & .footer_info li {
        font-size: 17px;
        margin-right: 20px;
    }
    & .footer_address {
      font-size: 13px;
    }
    & .footer_free_number::before {
      width: 32px;
      height: 17px;
      top: 4px;
      left: -8px;
    }
  }
  .main_wrap {
    /* padding-bottom: 130px; */
    & .main_img {
      right: 5%;
      width: 21%;
    }
    & .main_txt_sub {
      bottom: -90px;
    }
    & .sticky {
      width: 150px;
    }
  }
  .menu_btn {
    top: 10px;
    right: 10px;
    width: 120px;
  }
  .open_menu {
    right: 0;
    left: 0;
    margin: auto;
  }
  .main_wrap {
    & .main_title {
      width: 80%;
    }
  }
  @keyframes main_title {
    from {
      left: 0;
    }
    to {
      left: 10%;
    }
  }
  .inner_title {
    font-size: 23px;
  }
  .inner_title span {
    font-size: 18px;
  }
  .kigyou_info {
    width: 100%;
  }
  .kigyou_info_wrap {
    display: block;
    position: relative;
  }
  .kigyou_title {
    font-size: 18px;
    line-height: 1.3;
    padding-left: 10px;
    padding-right: 45px;
    margin-bottom: 5px;
  }
  .kigyou_cat {
    font-size: 14px;
    padding-left: 10px;
    padding-right: 45px;
  }
  .kigyou_link {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    width: 50px;
    padding-right: 10px;
  }
  .inner_wrap .contests {
    padding-top: 130px;
  }
  .logo {
    width: 150px;
  }
  .kigyou_link::before {
    left: -10px;
    height: 55px;
  }
  .kigyou_title::before,
  .kigyou_cat::before {
    content: none;
  }
}


@media screen and (max-width:600px) {
  .main_wrap {
    & .main_title02 {
      top: -20px;
      width: 39%;
    }
    & .main_txt {
      margin-right: -35px;
      width: 200px;
    }
    & .main_txt02 {
      margin-left: -35px;
      width: 140px;
    }
    & .main_txt_sub02 {
      left: 52%;
      top: 40%;
      width: 90%;
    }
    & .sticky {
      width: 100px;
    }
    & .sticky01 {
      left: 13%;
    }
  }
  .movie_wrap {
    & .application_txt span {
        display: block;
    }
  }
  :is(.page-register, .page-top) .register-footer__tel {
    flex-direction: column;
    gap: 6px;
  }
  .open_menu {
    width: 90%;
  }
  .main_wrap {
    & .main_img {
      width: 25%;
    }
  }
  .main_wrap {
    & .main_txt_sub {
      width: 65%;
    }
  }
  .btn img {
    height: 60px;
  }
}


.cancel {
  position: relative;
}
.cancel::before {
  border-radius: 50px;
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(66,57,54,0.84);;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  z-index: 1;
}
.cancel::after {
  content: "キャンセルになりました";
  font-size: 30px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  z-index: 2;
  width: 100%;
  text-align: center;
}
@media screen and (max-width:768px) {
  .cancel::after {
    font-size: 25px;
  }
}

/* ========================================================================
   Register page
   All rules are scoped to .page-register so they can coexist with the
   legacy site styles above.
======================================================================== */
.page-register {
  --register-green: #3b9617;
  --register-yellow: #fff000;
  --cta-yellow: var(--register-yellow);
  --register-orange: #ec7b3b;
  min-width: 0;
  background: var(--register-green);
  color: #fff;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-weight: 500;
  line-height: 1.6;
}

.page-register *,
.page-register *::before,
.page-register *::after {
  box-sizing: border-box;
}

.page-register img {
  display: block;
  height: auto;
  max-width: 100%;
}

.page-register .register-header {
  background: var(--register-green);
}

.page-register .register-header__inner {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 1440px;
  min-height: 146px;
  padding: 9px 88px 0;
}

.page-register .register-header__logo {
  display: block;
  width: 132px;
}

.page-register .register-header__menu {
  background: transparent;
  border: 0;
  color: #342321;
  cursor: pointer;
  font-family: Georgia, serif;
  font-size: 29px;
  line-height: 1;
  padding: 0;
  position: relative;
  text-align: center;
  transform: scale(1);
  transition: transform 0.6s ease;
  width: 110px;
}

@media (hover: hover) and (pointer: fine) {
  .page-register .register-header__menu:hover {
    transform: scale(1.05);
  }
}

.page-register .register-header__menu:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 5px;
}

.page-register .register-header__menu img {
  width: 100%;
}

.page-register .register-header__menu span {
  left: 0;
  position: absolute;
  right: 0;
  top: 37%;
}

/* Register page menu */
.page-register.register-menu-open {
  overflow: hidden;
}

.page-register .register-menu {
  inset: 0;
  position: fixed;
  transition: visibility 0s linear 0.5s;
  visibility: hidden;
  z-index: 100;
}

.page-register .register-menu.is-open {
  transition-delay: 0s;
  visibility: visible;
}

.page-register .register-menu__backdrop {
  background: rgba(0, 0, 0, 0.55);
  border: 0;
  cursor: pointer;
  inset: 0;
  opacity: 0;
  padding: 0;
  position: absolute;
  transition: opacity 0.5s ease;
  width: 100%;
}

.page-register .register-menu__panel {
  background: #fff;
  color: #000;
  height: 100%;
  opacity: 0;
  overflow-y: auto;
  padding: 92px 52px 52px;
  position: absolute;
  right: 10vw;
  top: 0;
  transition: opacity 0.5s ease;
  width: 400px;
}

.page-register .register-menu.is-open .register-menu__backdrop,
.page-register .register-menu.is-open .register-menu__panel {
  opacity: 1;
}

.page-register .register-menu__close {
  align-items: center;
  background: transparent;
  border: 0;
  color: #000;
  cursor: pointer;
  display: flex;
  font-size: 42px;
  font-weight: 400;
  height: 52px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  position: absolute;
  right: 18px;
  top: 18px;
  width: 52px;
}

.page-register .register-menu__close:hover {
  opacity: 0.65;
}

.page-register .register-menu__close:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
}

.page-register .register-menu__list {
  list-style: none;
  margin: 0;
  padding: 0 9px 9px 0;
}

.page-register .register-menu__list li + li {
  margin-top: 19px;
}

.page-register .register-menu__item {
  align-items: center;
  background: #fff;
  border: 3px solid #000;
  box-shadow: 8px 8px 0 var(--register-yellow);
  color: #000;
  display: flex;
  font-size: 18px;
  font-weight: 700;
  justify-content: space-between;
  line-height: 1.3;
  min-height: 63px;
  padding: 14px 18px;
  position: relative;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.page-register .register-menu__item::after {
  content: "→";
  font-size: 34px;
  line-height: 1;
  margin-left: 16px;
}

.page-register .register-menu__item:hover,
.page-register .register-menu__item:focus-visible {
  background: var(--register-yellow);
  color: #000;
  opacity: 1;
}

.page-register .register-menu__item:focus-visible {
  outline: 3px solid #000;
  outline-offset: 4px;
}

.page-register .register-menu__item--disabled {
  background: #746f6c;
  color: #555;
  cursor: not-allowed;
  justify-content: flex-start;
}

.page-register .register-menu__item--disabled::after {
  display: none;
}

.page-register .register-menu__coming-soon {
  color: #fff;
  display: grid;
  font-size: 30px;
  font-weight: 400;
  inset: 0;
  place-items: center;
  pointer-events: none;
  position: absolute;
  white-space: nowrap;
}

@media screen and (max-width: 768px) {
  .page-register .register-menu__panel {
    max-width: none;
    padding: 84px 32px 40px;
    right: 16px;
    width: min(88vw, 520px);
  }

  .page-register .register-menu__close {
    right: 12px;
    top: 12px;
  }

  .page-register .register-menu__item {
    font-size: 16px;
    min-height: 58px;
    padding: 12px 15px;
  }

  .page-register .register-menu__coming-soon {
    font-size: 24px;
  }
}

@media screen and (max-width: 420px) {
  .page-register .register-menu__panel {
    padding-inline: 24px;
    width: calc(100% - 32px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-register .register-header__menu,
  .page-register .register-menu__backdrop,
  .page-register .register-menu__panel,
  .page-register .register-menu__item {
    transition-duration: 0.01ms;
  }
}

.page-register .register-container {
  margin: 0 auto;
  width: min(90%, 780px);
}

.page-register .register-container--narrow {
  max-width: 720px;
}

.page-register .register-hero {
  background: var(--register-green);
  padding: 10px 0 44px;
}

.page-register .register-hero__inner {
  text-align: center;
}

.page-register .register-page-title {
  border: 2px solid #fff;
  border-radius: 999px;
  display: inline-block;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.25;
  margin: 0 0 30px;
  padding: 8px 49px;
}

.page-register .register-overview-flow {
  align-items: center;
  display: grid;
  grid-template-columns: 110px minmax(320px, 370px) 140px;
  justify-content: center;
  margin: 0 auto;
  max-width: 620px;
}

.page-register .register-overview-flow__person--left {
  align-self: end;
  justify-self: end;
  margin: 0 -13px -11px 0;
  width: 75px;
}

.page-register .register-overview-flow__person--right {
  align-self: end;
  justify-self: start;
  margin: 0 0 -13px -21px;
  width: 112px;
}

.page-register .register-overview-flow__steps {
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-register .register-overview-flow__steps li {
  background: var(--register-yellow);
  color: #151515;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  margin: 0;
  padding: 9px 14px;
}

.page-register .register-overview-flow__steps li + li {
  margin-top: 24px;
  position: relative;
}

.page-register .register-overview-flow__steps li + li::before {
  border-color: var(--register-yellow) transparent transparent;
  border-style: solid;
  border-width: 11px 15px 0;
  content: "";
  left: 50%;
  position: absolute;
  top: -20px;
  transform: translateX(-50%);
}

.page-register .register-content {
  background: var(--register-green);
  padding: 0 0 45px;
}

.page-register .register-section {
  padding: 33px 0;
}

.page-register .register-section--application {
  padding-bottom: 50px;
  padding-top: 18px;
}

.page-register .register-section--application .register-container {
  max-width: 780px;
}

.page-register .register-section--visitor {
  border-top: 0;
  margin-top: 5px;
  padding-bottom: 45px;
  padding-top: 42px;
  position: relative;
}

.page-register .register-section--visitor::before {
  background: rgb(255 255 255 / 80%);
  content: "";
  height: 2px;
  left: 50%;
  max-width: 680px;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 100%;
}

.page-register .register-section-title {
  color: #fff;
  font-size: 31px;
  font-weight: 700;
  letter-spacing: .03em;
  line-height: 1.35;
  margin: 0 0 18px;
}

.page-register .register-section-title span {
  background: var(--register-yellow);
  color: #171717;
  display: inline-block;
  font-size: 21px;
  letter-spacing: 0;
  line-height: 1.2;
  margin-right: 12px;
  padding: 8px 14px;
  vertical-align: .11em;
}

.page-register .register-lead {
  font-size: 20px;
  font-weight: 500;
  letter-spacing: .025em;
  line-height: 1.55;
  margin: 0;
}

.page-register .register-lead--second {
  margin-top: 29px;
}

.page-register .register-cta-wrap {
  margin: 27px auto 23px;
  max-width: 395px;
}

.page-register .register-cta,
.page-top .register-cta {
  align-items: center;
  background: #fff;
  border: 3px solid #232323;
  box-shadow: 7px 7px 0 var(--cta-yellow);
  color: #222;
  display: flex;
  font-weight: 700;
  justify-content: space-between;
  line-height: 1.2;
  padding: 15px 20px 15px 25px;
  text-decoration: none;
  transition: box-shadow .2s, transform .2s;
  font-size: 26px;
  padding: 26px 17px 26px 21px;
}

.page-register .register-cta:hover,
.page-register .register-cta:focus-visible,
.page-top .register-cta:hover,
.page-top .register-cta:focus-visible {
  box-shadow: 1px 1px 0 var(--cta-yellow);
  opacity: 0.7;
  transform: translate(3px, 3px);
  text-decoration: none;
}

.page-register .register-cta span,
.page-top .register-cta span {
  font-size: 34px;
  line-height: .7;
}

.page-register .register-note {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.55;
  margin: 0;
}

.page-register .register-emphasis {
  color: var(--register-yellow);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.45;
  margin: 0 0 10px;
}

.page-register .register-cards {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  margin: 21px auto 0;
  max-width: 720px;
  padding: 0;
}

.page-register .register-cards li {
  margin: 0;
}

.page-register .register-cards img {
  margin: 0 auto;
  width: 100%;
}

.page-register .register-section--details {
  padding-bottom: 46px;
  padding-top: 50px;
}

.page-register .register-information {
  background: #fff;
  color: #222;
  margin: 0 auto;
  max-width: 690px;
  padding: 24px 27px 22px;
}

.page-register .register-information h2 {
  color: var(--register-orange);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 14px;
  text-align: center;
}

.page-register .register-information__item {
  padding: 12px 0 10px;
}

.page-register .register-information__item h3,
.page-register .register-information__item p,
.page-register .register-information__trademark {
  font-weight: 500;
  line-height: 1.55;
  margin: 0;
}

.page-register .register-information__item h3 {
  border-bottom: 1px solid #b6b6b6;
  margin-bottom: 5px;
  padding-bottom: 2px;
}

.page-register .register-information__item p + p {
  margin-top: 6px;
}

.page-register .register-information__trademark {
  padding-top: 10px;
}

.page-register .register-section--booth {
  padding-top: 58px;
}

.page-register .register-section--booth .register-lead {
  max-width: 780px;
}

.page-register .register-section--visitor .register-container,
.page-register .register-section--booth .register-container {
  max-width: 780px;
}

.page-register .register-note--privacy {
  margin-top: 15px;
}

:is(.page-register, .page-top) .register-footer {
  background: #fff;
  color: #272727;
  padding: 54px 24px 48px;
  text-align: center;
}

:is(.page-register, .page-top) .register-footer__inner {
  margin: 0 auto;
  max-width: 720px;
}

:is(.page-register, .page-top) .register-footer__jobcafe {
  margin: 0 auto 16px;
  width: 195px;
}

:is(.page-register, .page-top) .register-footer address {
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.75;
  margin: 0 0 4px;
}

:is(.page-register, .page-top) .register-footer address a {
  color: inherit;
  text-decoration: none;
}

:is(.page-register, .page-top) .register-footer__tel {
  align-items: center;
  display: flex;
  font-size: 22px;
  font-weight: 700;
  gap: 16px;
  justify-content: center;
  line-height: 1.4;
  margin: 0 0 18px;
}

:is(.page-register, .page-top) .register-footer__tel-item {
  align-items: center;
  color: inherit;
  display: inline-flex;
  gap: 4px;
  text-decoration: none;
}

:is(.page-register, .page-top) .register-footer__tel-item > a {
  color: #272727;
  text-decoration: none;
}

:is(.page-register, .page-top) .register-footer__tel-icon {
  flex-shrink: 0;
  height: auto;
  width: 28px;
  margin-top: 4px;
}

:is(.page-register, .page-top) .register-footer__credits-wrap {
  display: flex;
  justify-content: center;
  width: 100%;
}

:is(.page-register, .page-top) .register-footer__credits {
  flex: 0 1 510px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.7;
  margin: 0;
  max-width: 440px;
  text-align: left;
  width: 100%;
}

:is(.page-register, .page-top) .register-footer__credits div {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  margin-bottom: 6px;
}

:is(.page-register, .page-top) .register-footer__credits dt::after {
  content: "：";
}

:is(.page-register, .page-top) .register-footer__credits dt {
  text-align: right;
  white-space: nowrap;
}

:is(.page-register, .page-top) .register-footer__credits dd {
  margin: 0;
  text-align: left;
}

:is(.page-register, .page-top) .register-footer__credit-nowrap {
  white-space: nowrap;
}

:is(.page-register, .page-top) .register-footer__partners {
  align-items: center;
  display: flex;
  gap: 32px;
  justify-content: center;
  margin-top: 30px;
}

:is(.page-register, .page-top) .register-footer__partners img:first-child {
  width: 95px;
}

:is(.page-register, .page-top) .register-footer__partners img:last-child {
  width: 142px;
}

@media screen and (max-width: 768px) {
  .page-register .register-header__inner {
    min-height: 122px;
    padding: 7px 0 0;
  }

  .page-register .register-header__logo {
    width: 115px;
  }

  .page-register .register-header__menu {
    font-size: 23px;
    width: 91px;
  }

  .page-register .register-container,
  .page-register .register-container--narrow {
    width: min(92%, 720px);
  }

  .page-register .register-hero {
    padding-top: 0;
  }

  .page-register .register-page-title {
    font-size: 23px;
    margin-bottom: 27px;
    padding: 7px 40px;
  }

  .page-register .register-overview-flow {
    grid-template-columns: 82px minmax(280px, 350px) 102px;
  }

  .page-register .register-overview-flow__person--left {
    margin-right: -8px;
    width: 56px;
  }

  .page-register .register-overview-flow__person--right {
    margin-left: -14px;
    width: 81px;
  }

  .page-register .register-overview-flow__steps li {
    font-size: 19px;
    padding: 8px 10px;
  }

  .page-register .register-section-title {
    font-size: 28px;
  }

  .page-register .register-section-title span {
    font-size: 18px;
    margin-right: 8px;
    padding: 6px 10px;
  }

  .page-register .register-lead,
  .page-register .register-emphasis {
    font-size: 19px;
  }

  .page-register .register-cards {
    gap: 15px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 680px;
  }

  .page-register .register-information {
    padding: 17px;
  }
}

@media screen and (max-width: 430px) {
  .page-register .register-header__inner {
    min-height: 93px;
    padding: 5px 13px 0;
  }

  .page-register .register-header__logo {
    width: 86px;
  }

  .page-register .register-header__menu {
    font-size: 18px;
    width: 71px;
  }

  .page-register .register-container,
  .page-register .register-container--narrow {
    width: calc(100% - 32px);
  }

  .page-register .register-hero {
    padding-bottom: 26px;
  }

  .page-register .register-page-title {
    font-size: 18px;
    margin-bottom: 18px;
    padding: 6px 28px;
  }

  .page-register .register-overview-flow {
    grid-template-columns: 37px minmax(0, 1fr) 45px;
  }

  .page-register .register-overview-flow__person--left {
    margin: 0 -3px -5px 0;
    width: 31px;
  }

  .page-register .register-overview-flow__person--right {
    margin: 0 0 -5px -7px;
    width: 43px;
  }

  .page-register .register-overview-flow__steps li {
    font-size: 14px;
    padding: 6px 4px;
  }

  .page-register .register-overview-flow__steps li + li {
    margin-top: 17px;
  }

  .page-register .register-overview-flow__steps li + li::before {
    border-width: 8px 11px 0;
    top: -14px;
  }

  .page-register .register-content {
    padding-bottom: 35px;
  }

  .page-register .register-section {
    padding: 22px 0;
  }

  .page-register .register-section-title {
    font-size: 22px;
    margin-bottom: 12px;
  }

  .page-register .register-section-title span {
    font-size: 14px;
    margin-right: 5px;
    padding: 5px 7px;
  }

  .page-register .register-lead,
  .page-register .register-emphasis {
    font-size: 16px;
    line-height: 1.55;
  }

  .page-register .register-lead br {
    display: none;
  }

  .page-register .register-cta-wrap {
    margin: 20px auto 16px;
    max-width: 280px;
  }

  .page-register .register-cta {
    font-size: 18px;
    padding: 12px 14px 12px 18px;
  }

  .page-register .register-cta span {
    font-size: 27px;
  }

  .page-register .register-note {
    font-size: 12px;
  }

  .page-register .register-lead--second {
    margin-top: 22px;
  }

  .page-register .register-cards {
    gap: 9px;
    margin-top: 15px;
  }

  .page-register .register-information {
    padding: 14px 12px;
  }

  .page-register .register-information h2 {
    font-size: 17px;
  }

  .page-register .register-information__item h3,
  .page-register .register-information__item p,
  .page-register .register-information__trademark {
    font-size: 12px;
  }

  :is(.page-register, .page-top) .register-footer {
    padding: 35px 16px 30px;
  }

  :is(.page-register, .page-top) .register-footer__jobcafe {
    margin-bottom: 18px;
    width: 210px;
  }

  :is(.page-register, .page-top) .register-footer address {
    font-size: 12px;
  }

  :is(.page-register, .page-top) .register-footer__credits {
    font-size: 10px;
  }

  :is(.page-register, .page-top) .register-footer__credits div {
    display: block;
  }

  :is(.page-register, .page-top) .register-footer__credits dt,
  :is(.page-register, .page-top) .register-footer__credits dd {
    display: inline;
  }
}

@media screen and (max-width: 340px) {
  .page-register .register-cards {
    grid-template-columns: minmax(0, 234px);
    justify-content: center;
  }
}

/* ========================================================================
   Register page - desktop design calibration
   Reference: docs/register/design.png (1920px design scaled to 1440px viewport)
   Tablet / mobile rules above remain untouched.
======================================================================== */
@media screen and (min-width: 769px) {
  .page-register .register-header__inner {
    max-width: 1200px;
    min-height: 179px;
    padding: 15px 0 0;
  }

  .page-register .register-header__logo {
    width: 132px;
  }

  .page-register .register-header__menu {
    font-size: 27px;
    width: 111px;
  }

  .page-register .register-container,
  .page-register .register-container--narrow,
  .page-register .register-section--application .register-container,
  .page-register .register-section--visitor .register-container,
  .page-register .register-section--booth .register-container {
    width: 680px;
    max-width: 680px;
  }

  .page-register .register-hero {
    padding: 17px 0 65px;
  }

  .page-register .register-page-title {
    font-size: 21px;
    margin-bottom: 32px;
    padding: 7px 41px;
  }

  .page-register .register-overview-flow {
    grid-template-columns: 72px 270px 84px;
    max-width: 426px;
  }

  .page-register .register-overview-flow__person--left {
    margin: 0 -8px -9px 0;
    width: 62px;
  }

  .page-register .register-overview-flow__person--right {
    margin: 0 0 -10px -13px;
    width: 83px;
  }

  .page-register .register-overview-flow__steps li {
    font-size: 14px;
    padding: 7px 9px;
  }

  .page-register .register-overview-flow__steps li + li {
    margin-top: 18px;
  }

  .page-register .register-overview-flow__steps li + li::before {
    border-width: 8px 11px 0;
    top: -15px;
  }

  .page-register .register-content {
    padding-bottom: 69px;
  }

  .page-register .register-section--application {
    padding-top: 0;
    padding-bottom: 128px;
  }

  .page-register .register-section--visitor {
    margin-top: 0;
    padding-top: 54px;
    padding-bottom: 59px;
  }

  .page-register .register-section-title {
    font-size: 24px;
    line-height: 1.35;
    margin-bottom: 20px;
  }

  .page-register .register-section-title span {
    font-size: 17px;
    margin-right: 9px;
    padding: 6px 11px;
  }

  .page-register .register-lead {
    font-size: 28px;
    line-height: 1.55;
  }

  .page-register .register-lead--second {
    margin-top: 46px;
  }

  .page-register .register-cta-wrap {
    margin: 29px auto 30px;
    max-width: 308px;
  }

  .page-register .register-cta {
    border-width: 2px;
    box-shadow: 7px 7px 0 var(--register-yellow);
    font-size: 17px;
    padding: 14px 17px 14px 21px;
  }

  .page-register .register-cta span {
    font-size: 26px;
  }

  .page-register .register-note {
    font-size: 21px;
    line-height: 1.6;
  }

  .page-register .register-emphasis {
    font-size: 28px;
    line-height: 1.5;
  }

  .page-register .register-cards {
    gap: 14px;
    grid-template-columns: repeat(4, 101px);
    justify-content: center;
    margin-top: 26px;
    max-width: none;
  }

  .page-register .register-cards img {
    width: 101px;
  }

  .page-register .register-section--details {
    padding-top: 29px;
    padding-bottom: 69px;
  }

  .page-register .register-information {
    max-width: 480px;
    padding: 21px 23px 20px;
  }

  .page-register .register-information h2 {
    font-size: 17px;
    margin-bottom: 14px;
  }

  .page-register .register-information__item {
    padding: 11px 0 10px;
  }

  .page-register .register-information__item h3,
  .page-register .register-information__item p,
  .page-register .register-information__trademark {
    font-size: 11px;
    line-height: 1.65;
  }

  .page-register .register-information__trademark {
    padding-top: 8px;
  }

  .page-register .register-section--booth {
    padding-top: 69px;
    padding-bottom: 41px;
  }

  .page-register .register-section--booth .register-lead {
    max-width: 680px;
  }

  .page-register .register-note--privacy {
    margin-top: 15px;
  }

  :is(.page-register, .page-top) .register-footer {
    padding: 53px 18px 50px;
  }

  :is(.page-register, .page-top) .register-footer__inner {
    max-width: 525px;
  }

  :is(.page-register, .page-top) .register-footer__jobcafe {
    margin-bottom: 20px;
    width: 165px;
  }

  :is(.page-register, .page-top) .register-footer address {
    font-size: 10px;
    line-height: 1.75;
    margin-bottom: 17px;
  }

  :is(.page-register, .page-top) .register-footer__credits {
    font-size: 8px;
    line-height: 1.75;
    max-width: 525px;
  }

  :is(.page-register, .page-top) .register-footer__partners {
    gap: 15px;
    margin-top: 23px;
  }

  :is(.page-register, .page-top) .register-footer__partners img:first-child {
    width: 63px;
  }

  :is(.page-register, .page-top) .register-footer__partners img:last-child {
    width: 95px;
  }
}

/* ========================================================================
   Register page - 1440px design alignment pass
   Calibrated against docs/register/design.png using relative screen occupancy.
======================================================================== */
@media screen and (min-width: 769px) {
  .page-register {
    --register-green: #46971e;
  }

  .page-register .register-header__logo {
    width: 194px;
  }

  .page-register .register-header__menu {
    width: 140px;
  }

  .page-register .register-overview-flow {
    grid-template-columns: 72px 232px 84px;
    max-width: 388px;
  }

  .page-register .register-overview-flow__steps li {
    font-size: 14px;
    padding: 7px 9px;
  }

  .page-register .register-overview-flow__steps li + li {
    margin-top: 28px;
  }

  .page-register .register-overview-flow__steps li + li::before {
    top: -20px;
  }

  .page-register .register-section--application {
    padding-bottom: 80px;
  }

  .page-register .register-section--visitor {
    padding-top: 54px;
    padding-bottom: 35px;
  }

  .page-register .register-section-title {
    font-size: 36px;
    margin-bottom: 18px;
  }

  .page-register .register-section-title span {
    font-size: 25px;
    margin-right: 12px;
    padding: 10px 20px;
  }

  .page-register .register-cta-wrap {
    margin-top: 20px;
    margin-bottom: 50px;
    max-width: 359px;
  }

  .page-register .register-cta {
    font-size: 26px;
    padding: 26px 17px 26px 21px;
  }

  .page-register .register-cards {
    gap: 15px;
    grid-template-columns: repeat(4, 150px);
    margin-top: 26px;
  }

  .page-register .register-cards img {
    width: 100%;
  }

  .page-register .register-section--details {
    padding-top: 8px;
    padding-bottom: 25px;
  }

  .page-register .register-information {
    max-width: 680px;
    padding: 20px 24px 21px;
  }

  .page-register .register-information h2 {
    font-size: 22px;
    margin-bottom: 11px;
  }

  .page-register .register-information__item {
    padding: 8px 0 7px;
  }

  .page-register .register-information__item h3,
  .page-register .register-information__item p,
  .page-register .register-information__trademark {
    font-size: 17px;
    line-height: 1.55;
  }

  .page-register .register-information__item p + p {
    margin-top: 4px;
  }

  .page-register .register-information__trademark {
    padding-top: 7px;
  }

  .page-register .register-section--booth {
    padding-top: 28px;
    padding-bottom: 20px;
  }

  .page-register .register-note--privacy {
    margin-top: 11px;
  }

  .page-register .register-content {
    padding-bottom: 32px;
  }

  :is(.page-register, .page-top) .register-footer {
    padding: 48px 18px 46px;
  }

  :is(.page-register, .page-top) .register-footer__inner {
    max-width: 700px;
  }

  :is(.page-register, .page-top) .register-footer__jobcafe {
    margin-bottom: 24px;
    width: 300px;
  }

  :is(.page-register, .page-top) .register-footer address {
    font-size: 16px;
    line-height: 1.7;
    margin-bottom: 9px;
  }

  :is(.page-register, .page-top) .register-footer__credits {
    font-size: 15px;
    line-height: 1.65;
    max-width: 700px;
  }

  :is(.page-register, .page-top) .register-footer__partners {
    gap: 30px;
    margin-top: 25px;
  }

  :is(.page-register, .page-top) .register-footer__partners img:first-child {
    width: 140px;
  }

  :is(.page-register, .page-top) .register-footer__partners img:last-child {
    width: 160px;
  }
}

/* ========================================================================
   Register page - overview flow fine tuning
   Target: docs/register design hero flow only
======================================================================== */
@media screen and (min-width: 769px) {
  .page-register .register-page-title {
    font-size: 24px;
    line-height: 1.2;
    margin-bottom: 33px;
    padding: 8px 47px;
  }

  .page-register .register-overview-flow {
    grid-template-columns: 78px 232px 90px;
    max-width: 400px;
  }

  .page-register .register-overview-flow__person--left {
    margin: 0 -11px -10px 0;
    width: 70px;
  }

  .page-register .register-overview-flow__person--right {
    margin: 0 0 -11px -16px;
    width: 86px;
  }

  .page-register .register-overview-flow__steps li {
    font-size: 14px;
    line-height: 1.2;
    padding: 7px 9px;
  }

  .page-register .register-overview-flow__steps li + li {
    margin-top: 28px;
  }

  .page-register .register-overview-flow__steps li + li::before {
    border-width: 9px 12px 0;
    top: -20px;
  }
}

/* ========================================================================
   Register page - overview flow exact tuning v2
   Target: top flow section only (desktop)
======================================================================== */
@media screen and (min-width: 769px) {
  .page-register .register-hero {
    padding-top: 20px;
  }

  .page-register .register-page-title {
    align-items: center;
    box-sizing: border-box;
    display: inline-flex;
    font-size: 28px;
    justify-content: center;
    line-height: 1;
    margin-bottom: 42px;
    padding: 12px;
    width: 370px;
  }

  .page-register .register-overview-flow {
    grid-template-columns: 90px 300px 136px;
    max-width: 385px;
    gap: 30px;
  }

  .page-register .register-overview-flow__person--left {
    margin: 0 -10px -8px 0;
    width: 137px;
  }

  .page-register .register-overview-flow__person--right {
    margin: 0 0 -9px -15px;
    width: 136px;
  }

  .page-register .register-overview-flow__steps li {
    font-size: 20px;
    line-height: 1.2;
    padding: 9px;
  }

  .page-register .register-overview-flow__steps li + li {
    margin-top: 34px;
  }

  .page-register .register-overview-flow__steps li + li::before {
    border-width: 13px 12px 0;
    top: -22px;
  }
}

/* ========================================================================
   Top page - first view
   Desktop layout is calibrated to docs/top/design.png at 1440px.
======================================================================== */
.page-top {
  --top-blue: #13a7dc;
  --top-yellow: #feda2a;
  --cta-yellow: var(--top-yellow);
  background: #fff;
  color: #231815;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  min-width: 1300px;
}

.page-top *,
.page-top *::before,
.page-top *::after {
  box-sizing: border-box;
}

.page-top img {
  display: block;
  height: auto;
  max-width: none;
}

.page-top.top-menu-open {
  overflow: hidden;
}

.page-top .top-fv {
  background: #00a0e4;
  min-height: 1030px;
  overflow: hidden;
  position: relative;
}

.page-top .top-header {
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 5;
}

.page-top .top-header__inner {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  padding-top: 15px;
  width: 1200px;
}

.page-top .top-header__logo {
  display: block;
  width: 194px;
  visibility: hidden !important;
}

.page-top .top-header__menu {
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 0;
  transform: scale(1);
  transition: transform 0.6s ease;
  width: 140px;
}

.page-top .top-header__menu:hover {
  transform: scale(1.05);
}

.page-top .top-header__menu:focus-visible,
.page-top .top-menu__close:focus-visible,
.page-top .top-menu__item:focus-visible,
.page-top .top-fv__entry:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 5px;
}

.page-top .top-header__menu img {
  width: 100%;
}

.page-top .top-fv__visual {
  height: 710px;
  left: calc(50% - 420px);
  position: absolute;
  top: 30px;
  width: 660px;
}

.page-top .top-fv__island,
.page-top .top-fv__flag,
.page-top .top-fv__ship,
.page-top .top-fv__adventure {
  position: absolute;
}

.page-top .top-fv__island {
  left: 48px;
  top: 175px;
  width: 570px;
}

.page-top .top-fv__flag {
  left: 0;
  top: 0;
  width: 255px;
}

.page-top .top-fv__ship {
  left: 272px;
  top: 10px;
  width: 155px;
}

.page-top .top-fv__adventure {
  left: 507px;
  top: 74px;
  width: 82px;
}

.page-top .top-fv__event {
  align-items: flex-end;
  bottom: 78px;
  color: var(--top-yellow);
  display: flex;
  left: calc(50% - 350px);
  position: absolute;
  z-index: 2;
}

.page-top .top-fv__date {
  font-family: Arial, sans-serif;
  font-weight: 700;
  line-height: .82;
  margin: 0 28px 0 0;
  white-space: nowrap;
}

.page-top .top-fv__date span,
.page-top .top-fv__date b {
  display: block;
}

.page-top .top-fv__date span {
  font-size: 19px;
  margin-bottom: 3px;
}

.page-top .top-fv__date strong {
  font-size: 62px;
  letter-spacing: -.06em;
}

.page-top .top-fv__date b {
  font-family: inherit;
  font-size: 16px;
  margin-left: 139px;
  margin-top: -10px;
}

.page-top .top-fv__details {
  margin-bottom: 2px;
}

.page-top .top-fv__time,
.page-top .top-fv__venue,
.page-top .top-fv__audience {
  font-weight: 700;
  margin: 0;
}

.page-top .top-fv__time {
  font-family: Arial, sans-serif;
  font-size: 17px;
  letter-spacing: .04em;
  line-height: 1.1;
  margin-bottom: 6px;
}

.page-top .top-fv__venue {
  font-size: 19px;
  line-height: 1;
  white-space: nowrap;
}

.page-top .top-fv__venue span {
  font-size: 10px;
  margin-left: 7px;
}

.page-top .top-fv__audience {
  bottom: 43px;
  font-size: 10px;
  left: calc(50% - 350px);
  line-height: 1.2;
  position: absolute;
  white-space: nowrap;
  z-index: 2;
}

.page-top .top-fv__entry {
  align-items: center;
  background: var(--top-yellow);
  color: #231815;
  display: flex;
  font-size: 18px;
  font-weight: 700;
  height: 335px;
  justify-content: center;
  letter-spacing: .05em;
  position: absolute;
  right: 35px;
  text-decoration: none;
  top: 250px;
  transition: opacity .2s ease;
  width: 82px;
  writing-mode: vertical-rl;
  z-index: 3;
}

.page-top .top-fv__entry:hover {
  opacity: .76;
}

.page-top .top-fv__wave {
  bottom: -1px;
  height: 59px;
  left: 0;
  position: absolute;
  width: 100%;
  z-index: 1;
}

.page-top .top-company {
  align-items: flex-start;
  background: #fff;
  display: flex;
  height: 260px;
  justify-content: center;
  overflow: hidden;
  padding-top: 90px;
  position: relative;
}

/* Curved transitions around the company-list band.
   The oversized ellipses keep the center of each boundary gently bowed. */
.page-top .top-company::before,
.page-top .top-company::after {
  border-radius: 50%;
  content: "";
  height: 220px;
  left: 50%;
  pointer-events: none;
  position: absolute;
  transform: translateX(-50%);
  width: 145%;
  z-index: 0;
}

.page-top .top-company::before {
  background: #00a0e4;
  top: -170px;
}

.page-top .top-company::after {
  background: #3d971b;
  bottom: -170px;
}

.page-top .top-company__cta-wrap {
  margin: 0;
  position: relative;
  z-index: 1;
}

/* Shared menu behavior; the visual rules remain scoped to the top page. */
.page-top .top-menu {
  inset: 0;
  position: fixed;
  transition: visibility 0s linear .5s;
  visibility: hidden;
  z-index: 100;
}

.page-top .top-menu.is-open {
  transition-delay: 0s;
  visibility: visible;
}

.page-top .top-menu__backdrop {
  background: rgb(0 0 0 / 55%);
  border: 0;
  cursor: pointer;
  inset: 0;
  opacity: 0;
  padding: 0;
  position: absolute;
  transition: opacity .5s ease;
  width: 100%;
}

.page-top .top-menu__panel {
  background: #fff;
  color: #000;
  height: 100%;
  opacity: 0;
  overflow-y: auto;
  padding: 92px 52px 52px;
  position: absolute;
  right: 10vw;
  top: 0;
  transition: opacity .5s ease;
  width: 400px;
}

.page-top .top-menu.is-open .top-menu__backdrop,
.page-top .top-menu.is-open .top-menu__panel {
  opacity: 1;
}

.page-top .top-menu__close {
  align-items: center;
  background: transparent;
  border: 0;
  color: #000;
  cursor: pointer;
  display: flex;
  font-size: 42px;
  font-weight: 400;
  height: 52px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  position: absolute;
  right: 18px;
  top: 18px;
  width: 52px;
}

.page-top .top-menu__list {
  list-style: none;
  margin: 0;
  padding: 0 9px 9px 0;
}

.page-top .top-menu__list li + li {
  margin-top: 19px;
}

.page-top .top-menu__item {
  align-items: center;
  background: #fff;
  border: 3px solid #000;
  box-shadow: 8px 8px 0 var(--top-yellow);
  color: #000;
  display: flex;
  font-size: 18px;
  font-weight: 700;
  justify-content: space-between;
  line-height: 1.3;
  min-height: 63px;
  padding: 14px 18px;
  position: relative;
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease;
}

.page-top .top-menu__item::after {
  content: "→";
  font-size: 24px;
  line-height: 1;
  margin-left: 16px;
}

.page-top .top-menu__item:hover,
.page-top .top-menu__item:focus-visible {
  background: var(--top-yellow);
  color: #000;
  opacity: 1;
}

.page-top .top-menu__item--disabled {
  background: #746f6c;
  color: #555;
  cursor: not-allowed;
  justify-content: flex-start;
}

.page-top .top-menu__item--disabled::after {
  display: none;
}

.page-top .top-menu__coming-soon,
.page-top .top-cta--company-disabled .top-menu__coming-soon {
  color: #fff;
  display: grid;
  font-family: Arial, sans-serif;
  font-size: 30px;
  font-weight: 400;
  inset: 0;
  place-items: center;
  pointer-events: none;
  position: absolute;
  white-space: nowrap;
}

.page-top .top-cta--company-disabled {
  cursor: not-allowed;
  pointer-events: none;
  position: relative;
}

.page-top .top-cta--company-disabled .top-menu__coming-soon {
  background: rgb(116 111 108 / 82%);
}

/* Top page - green content area */
.page-top .top-green-area {
  background: #3d971b;
  color: #fff;
  padding: 62px 0 104px;
}

.page-top .top-about {
  margin: 0 auto;
  width: 450px;
}

.page-top .top-about img {
  width: 100%;
}

.page-top .top-video {
  margin: 62px auto 0;
  max-width: 100%;
  text-align: center;
  width: 705px;
}

.page-top .top-section-label {
  height: 1px;
  margin: -1px;
  overflow: hidden;
  position: absolute;
  width: 1px;
}

.page-top .top-movie__video {
  aspect-ratio: 16 / 9;
  margin-inline: auto;
  max-width: 100%;
  width: 705px;
}

.page-top .top-movie__video iframe {
  border: 0;
  display: block;
  height: 100%;
  width: 100%;
}

.page-top .top-video__entry-wrap {
  display: inline-block;
  margin-top: 34px;
  position: relative;
}

.page-top .top-video__finger {
  bottom: -42px;
  position: absolute;
  right: -46px;
  transform: rotate(-14deg);
  width: 64px;
}

.page-top .top-publications {
  display: flex;
  gap: 42px;
  justify-content: center;
  margin: 112px auto 0;
  width: 850px;
}

.page-top .top-publication {
  width: 400px;
}

.page-top .top-publication__link {
  display: block;
  text-decoration: none;
}

.page-top .top-publication__link img {
  width: 100%;
}

/* Top page - blue information area */
.page-top .top-blue-area {
  background: var(--top-blue);
  color: #fff;
  padding: 90px 0 96px;
  text-align: center;
}

.page-top .top-pill-title {
  border: 3px solid #fff;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 28px;
  font-weight: 700;
  justify-content: center;
  line-height: 1;
  margin: 0;
  padding: 12px 42px;
  text-align: center;
  width: 380px;
}

.page-top .top-type {
  margin: 0 auto;
  width: 620px;
}

.page-top .top-type img {
  margin: 58px auto 0;
  width: 570px;
}

.page-top .top-schedule {
  margin: 118px 0 0;
  margin-inline: auto;
  text-align: left;
  width: 530px;
}

.page-top .top-schedule__title {
  color: #fff;
  font-size: 42px;
  letter-spacing: .04em;
  margin: 0 0 58px;
  text-align: center;
}

.page-top .top-schedule__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-top .top-schedule__item {
  border-bottom: 2px solid rgb(255 255 255 / 70%);
  padding: 0 0 54px;
}

.page-top .top-schedule__item + .top-schedule__item {
  padding-top: 54px;
}

.page-top .top-schedule__item:last-child {
  border-bottom: 0;
}

.page-top .top-schedule__meta {
  align-items: center;
  display: flex;
  gap: 20px;
}

.page-top .top-schedule__meta span {
  align-items: center;
  background: #fff002;
  color: var(--top-blue);
  display: flex;
  font-family: Arial, sans-serif;
  font-size: 36px;
  font-weight: 700;
  height: 54px;
  justify-content: center;
  width: 58px;
}

.page-top .top-schedule__meta b {
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 46px;
}

.page-top .top-schedule__meta time {
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 26px;
  font-weight: 500;
  margin-top: 16px;
}

.page-top .top-schedule__item h3 {
  color: #fff002;
  font-size: 35px;
  line-height: 1.25;
  margin: 5px 0 10px;
}

.page-top .top-schedule__item h3 span {
  font-size: 25px;
}

.page-top .top-schedule__description {
  color: #fff;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.5;
  margin: 0;
}

.page-top .top-service {
  margin: 92px auto 0;
  width: 620px;
}

.page-top .top-service__illustration {
  margin: 43px auto 28px;
}

.page-top .top-service__illustration--bus {
  width: 380px;
}

.page-top .top-service__illustration--support {
  width: 340px;
}

.page-top .top-parents {
  margin: 93px auto 0;
  width: 620px;
}

.page-top .top-parents__card {
  background: #1c4d64;
  height: 380px;
  margin: 43px auto 0;
  overflow: hidden;
  position: relative;
  width: 400px;
}

.page-top .top-parents__card img {
  bottom: -4px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 350px;
}

.page-top .top-parents__card > span {
  align-items: flex-start;
  background: rgb(0 0 0 / 48%);
  box-sizing: border-box;
  color: #fff;
  display: flex;
  font-family: Arial, sans-serif;
  font-size: 28px;
  inset: 0;
  justify-content: center;
  line-height: 1;
  padding-top: 145px;
  pointer-events: none;
  position: absolute;
  z-index: 3;
}

.page-top .top-parents__card b {
  align-items: center;
  background: #fff;
  border: 3px solid #231815;
  bottom: 18px;
  box-sizing: border-box;
  color: #231815;
  display: flex;
  font-size: 26px;
  font-weight: 700;
  justify-content: space-between;
  left: 25px;
  line-height: 1.2;
  min-height: 82px;
  padding: 15px 20px 15px 25px;
  position: absolute;
  text-align: left;
  width: 350px;
  z-index: 2;
}

.page-top .top-parents__card i {
  font-family: Arial, sans-serif;
  font-size: 34px;
  font-style: normal;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
}

/* The CTA base is shared with register.html; these rules only place it on top. */
.page-top .register-cta-wrap {
  margin: 0;
}

.page-top .top-cta--company {
  min-width: 359px;
}

.page-top .top-video__entry-wrap .register-cta-wrap {
  margin: 0;
}

.page-top .top-cta--entry {
  min-width: 304px;
}

.page-top .top-cta--compact {
  min-width: 264px;
}

.page-top .top-schedule__cta-wrap {
  margin: 38px auto 0;
  width: 350px;
}

.page-top .top-schedule .top-cta--compact {
  min-width: 350px;
}

.page-top .top-schedule .register-cta {
  font-size: 26px;
  padding: 20px 26px 20px 32px;
}

.page-top .top-schedule .register-cta span {
  font-size: 42px;
}

.page-top .top-service__cta-wrap {
  margin: 0 auto;
  width: 350px;
}

.page-top .top-service .top-cta--compact {
  min-width: 350px;
}

/* Top page - curved transition from green area to blue area */
.page-top .top-green-area {
  position: relative;
  z-index: 1;
}

.page-top .top-green-area::after {
  background: #3d971b;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  bottom: -42px;
  content: "";
  height: 84px;
  left: 0;
  pointer-events: none;
  position: absolute;
  width: 100%;
  z-index: 2;
}

.page-top .top-blue-area {
  position: relative;
  z-index: 0;
}

/* =========================================================
   Top page FV refinement - design match (1440px PC)
   Scope: FV only. Other top sections remain unchanged.
   ========================================================= */
@media (min-width: 900px) {
  .page-top .top-fv {
    min-height: 970px;
  }

  /* The large flag in the FV artwork is the logo in the supplied design.
     Hide the duplicated common header logo on the top page only. */
  .page-top .top-header__logo {
    visibility: hidden;
  }

  .page-top .top-header__inner {
    padding-top: 20px;
    width: min(1200px, calc(100% - 48px));
  }

  .page-top .top-header__menu {
    width: 145px;
  }

  /* Main visual: island is the coordinate base, with flag / ship / copy layered independently. */
  .page-top .top-fv__visual {
    height: 720px;
    left: calc(50% - 395px);
    top: 18px;
    width: 720px;
  }

  .page-top .top-fv__island {
    left: 24px;
    top: 138px;
    width: 660px;
  }

  .page-top .top-fv__flag {
    left: 0;
    top: 8px;
    width: 300px;
  }

  .page-top .top-fv__ship {
    left: 365px;
    top: 10px;
    width: 165px;
  }

  .page-top .top-fv__adventure {
    left: 560px;
    top: 78px;
    width: 72px;
  }

  /* Event information is intentionally much larger in the supplied artwork. */
  .page-top .top-fv__event {
    align-items: flex-end;
    bottom: 92px;
    left: calc(50% - 355px);
  }

  .page-top .top-fv__date {
    line-height: .82;
    margin-right: 34px;
  }

  .page-top .top-fv__date span {
    font-size: 26px;
    margin-bottom: 6px;
  }

  .page-top .top-fv__date strong {
    font-size: 92px;
    letter-spacing: -.065em;
  }

  .page-top .top-fv__date b {
    display: inline-block;
    font-size: 24px;
    margin: 0 0 7px 9px;
    vertical-align: bottom;
  }

  .page-top .top-fv__details {
    margin-bottom: 10px;
  }

  .page-top .top-fv__time {
    font-size: 24px;
    margin-bottom: 7px;
  }

  .page-top .top-fv__venue {
    font-size: 27px;
    line-height: 1.08;
  }

  .page-top .top-fv__venue span {
    display: block;
    font-size: 15px;
    margin: 6px 0 0;
  }

  .page-top .top-fv__audience {
    bottom: 34px;
    font-size: 14px;
    left: calc(50% - 355px);
    line-height: 1.35;
  }

  /* Vertical application banner: nearly flush to the right edge in the design. */
  .page-top .top-fv__entry {
    border-radius: 22px 0 0 22px;
    font-size: 20px;
    height: 300px;
    right: 28px;
    top: 235px;
    width: 88px;
  }

  /* wave.svg is the small sea-wave illustration, not the section boundary. */
  .page-top .top-fv__wave {
    bottom: auto;
    height: auto;
    left: calc(50% - 390px);
    top: 585px;
    width: 290px;
    z-index: 2;
  }
}

/* Top page overflow safety: keep decorative curves inside the viewport. */
.page-top {
  overflow-x: clip;
}

@supports not (overflow: clip) {
  .page-top {
    overflow-x: hidden;
  }
}

/* =========================================================
   Top page FV - 1440/desktop design re-alignment
   Final override. Scope: first blue FV only.
   ========================================================= */
@media (min-width: 900px) {
  .page-top .top-fv {
    background: #00a0e4;
    min-height: 1380px;
  }

  .page-top .top-header__inner {
    padding-top: 18px;
    width: min(1460px, calc(100% - 56px));
  }

  .page-top .top-header__menu {
    width: 172px;
  }

  .page-top .top-fv__visual {
    height: 980px;
    left: calc(50% - 610px);
    top: 18px;
    width: 980px;
  }

  .page-top .top-fv__island {
    left: 70px;
    top: 190px;
    width: 820px;
  }

  .page-top .top-fv__flag {
    left: 0;
    top: 4px;
    width: 350px;
  }

  .page-top .top-fv__ship {
    left: 388px;
    top: 10px;
    width: 205px;
  }

  .page-top .top-fv__adventure {
    left: 725px;
    top: 88px;
    width: 108px;
  }

  .page-top .top-fv__wave {
    left: calc(50% - 590px);
    top: 820px;
    width: 450px;
  }

  .page-top .top-fv__event {
    bottom: 178px;
    left: calc(50% - 535px);
  }

  .page-top .top-fv__date {
    margin-right: 46px;
  }

  .page-top .top-fv__date span {
    font-size: 36px;
    margin-bottom: 8px;
  }

  .page-top .top-fv__date strong {
    font-size: 174px;
    letter-spacing: -.065em;
  }

  .page-top .top-fv__date b {
    display: inline-block;
    font-size: 40px;
    margin: 0 0 10px 18px;
    vertical-align: bottom;
  }

  .page-top .top-fv__details {
    margin-bottom: 13px;
  }

  .page-top .top-fv__time {
    font-size: 38px;
    margin-bottom: 10px;
  }

  .page-top .top-fv__venue {
    font-size: 41px;
    line-height: 1.05;
  }

  .page-top .top-fv__venue span {
    display: block;
    font-size: 22px;
    margin: 9px 0 0;
  }

  .page-top .top-fv__audience {
    bottom: 72px;
    font-size: 21px;
    left: calc(50% - 535px);
    line-height: 1.3;
  }

  .page-top .top-fv__entry {
    border-radius: 26px 0 0 26px;
    font-size: 23px;
    height: 430px;
    right: 16px;
    top: 330px;
    width: 104px;
  }
}

/* =========================================================
   Top page FV - layout correction after scale-up
   2026-10-07 / desktop only
   Keep the visual order: island -> sea waves -> event info.
   ========================================================= */
@media (min-width: 900px) {
  .page-top .top-fv {
    min-height: 1180px;
  }

  /* Keep menu as-is. Rebuild the visual group independently. */
  .page-top .top-fv__visual {
    height: 820px;
    left: calc(50% - 535px);
    top: 42px;
    width: 820px;
  }

  .page-top .top-fv__island {
    left: 58px;
    top: 166px;
    width: 725px;
  }

  .page-top .top-fv__flag {
    left: 0;
    top: 5px;
    width: 315px;
  }

  .page-top .top-fv__ship {
    left: 340px;
    top: 10px;
    width: 178px;
  }

  .page-top .top-fv__adventure {
    left: 615px;
    top: 86px;
    width: 88px;
  }

  /* Sea-wave artwork must stay between the island and event information. */
  .page-top .top-fv__wave {
    bottom: auto;
    height: auto;
    left: calc(50% - 475px);
    top: 690px;
    width: 305px;
    z-index: 1;
  }

  /* Event information: restore the compact horizontal layout from the design. */
  .page-top .top-fv__event {
    align-items: flex-end;
    bottom: 118px;
    left: calc(50% - 455px);
    z-index: 3;
  }

  .page-top .top-fv__date {
    line-height: .82;
    margin-right: 34px;
  }

  .page-top .top-fv__date span {
    font-size: 27px;
    margin-bottom: 5px;
  }

  .page-top .top-fv__date strong {
    font-size: 124px;
    letter-spacing: -.055em;
  }

  .page-top .top-fv__date b {
    display: inline-block;
    font-size: 28px;
    margin: 0 0 8px 12px;
    vertical-align: bottom;
  }

  .page-top .top-fv__details {
    margin-bottom: 8px;
  }

  .page-top .top-fv__time {
    font-size: 27px;
    margin-bottom: 6px;
  }

  .page-top .top-fv__venue {
    font-size: 31px;
    line-height: 1.05;
    white-space: nowrap;
  }

  .page-top .top-fv__venue span {
    display: inline;
    font-size: 14px;
    margin-left: 8px;
  }

  .page-top .top-fv__audience {
    bottom: 52px;
    font-size: 15px;
    left: calc(50% - 455px);
    line-height: 1.3;
    white-space: nowrap;
    z-index: 3;
  }

  .page-top .top-fv__entry {
    height: 330px;
    right: 26px;
    top: 240px;
    width: 88px;
  }
}

/* =========================================================
   Top page FV - fine positioning pass
   2026-10-07 / desktop only
   Adjust only the FV composition: visual group, event info and sea waves.
   ========================================================= */
@media (min-width: 900px) {
  .page-top .top-fv {
    min-height: 1150px;
  }

  /* Shift the whole illustration group slightly right and down. */
  .page-top .top-fv__visual {
    left: calc(50% - 455px);
    top: 68px;
    width: 790px;
    height: 800px;
  }

  .page-top .top-fv__island {
    left: 52px;
    top: 200px;
    width: 800px;
    z-index: 1;
  }

  .page-top .top-fv__flag {
    left: 5px;
    top: -38px;
    width: 410px;
  }

  .page-top .top-fv__ship {
    left: 372px;
    top: 10px;
    width: 210px;
  }

  .page-top .top-fv__adventure {
    left: 670px;
    top: -15px;
    width: 130px;
  }

  /* Keep the sea-wave artwork clearly between the island and the event block. */
  .page-top .top-fv__wave {
    left: 520px;
    top: 710px;
    width: 160px;
    height: auto;
  }

  /* Treat the date and the right-side information as one horizontal unit. */
  .page-top .top-fv__event {
    align-items: flex-end;
    bottom: 92px;
    left: calc(50% - 395px);
    gap: 24px;
  }

  .page-top .top-fv__date {
    display: grid;
    grid-template-columns: auto auto;
    grid-template-rows: auto auto;
    column-gap: 10px;
    align-items: end;
    margin: 0;
    line-height: 1;
  }

  .page-top .top-fv__date span {
    grid-column: 1 / -1;
    grid-row: 1;
    font-size: 25px;
    line-height: 1;
    margin: 0 0 3px 2px;
  }

  .page-top .top-fv__date strong {
    grid-column: 1;
    grid-row: 2;
    font-size: 112px;
    line-height: .82;
    letter-spacing: -.055em;
  }

  .page-top .top-fv__date b {
    grid-column: 2;
    grid-row: 2;
    align-self: end;
    display: block;
    font-size: 25px;
    line-height: 1;
    margin: 0 0 7px;
  }

  .page-top .top-fv__details {
    min-width: 390px;
    margin: 0 0 3px;
  }

  .page-top .top-fv__time {
    font-size: 27px;
    line-height: 1.05;
    margin-bottom: 7px;
  }

  .page-top .top-fv__venue {
    font-size: 30px;
    line-height: 1.1;
  }

  .page-top .top-fv__venue span {
    display: block;
    font-size: 15px;
    line-height: 1.25;
    margin: 5px 0 0;
  }

  .page-top .top-fv__audience {
    bottom: 40px;
    left: calc(50% - 395px);
    font-size: 15px;
    line-height: 1.25;
  }
}

/* =========================================================
   Top page FV - event information layout refinement
   2026-10-07 / desktop only
   Keep date, venue details and audience as one coherent block.
   ========================================================= */
@media (min-width: 900px) {
  .page-top .top-fv__event {
    display: grid;
    grid-template-columns: 300px 1fr;
    grid-template-rows: auto auto;
    column-gap: 34px;
    row-gap: 12px;
    align-items: end;
    width: 760px;
    left: calc(50% - 380px);
    bottom: 58px;
  }

  .page-top .top-fv__date {
    grid-column: 1;
    grid-row: 1;
    display: grid;
    grid-template-columns: auto auto;
    grid-template-rows: auto auto;
    column-gap: 12px;
    align-items: end;
    margin: 0;
    line-height: 1;
  }

  .page-top .top-fv__date span {
    grid-column: 1 / -1;
    grid-row: 1;
    font-size: 27px;
    line-height: 1;
    margin: 0 0 5px 3px;
  }

  .page-top .top-fv__date strong {
    grid-column: 1;
    grid-row: 2;
    font-size: 118px;
    line-height: .82;
    letter-spacing: -.055em;
  }

  .page-top .top-fv__date b {
    grid-column: 2;
    grid-row: 2;
    align-self: end;
    display: block;
    font-size: 28px;
    line-height: 1;
    margin: 0 0 7px;
  }

  .page-top .top-fv__details {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    margin: 0 0 4px;
    align-self: end;
  }

  .page-top .top-fv__time {
    font-size: 31px;
    line-height: 1;
    margin: 0 0 8px;
    letter-spacing: .02em;
  }

  .page-top .top-fv__venue {
    font-size: 34px;
    line-height: 1.05;
    white-space: nowrap;
  }

  .page-top .top-fv__venue span {
    display: block;
    font-size: 17px;
    line-height: 1.25;
    margin: 7px 0 0;
    white-space: nowrap;
  }

  .page-top .top-fv__audience {
    grid-column: 1 / -1;
    grid-row: 2;
    position: static;
    width: 100%;
    margin: 0;
    font-size: 18px;
    line-height: 1.35;
    white-space: nowrap;
  }
}

/* =========================================================
   Top page FV - event information fine tuning
   2026-10-07 / desktop only
   ========================================================= */
@media (min-width: 900px) {
  .page-top .top-fv__event {
    grid-template-columns: 300px minmax(0, 1fr);
    column-gap: 42px;
    row-gap: 14px;
    width: 840px;
    left: calc(50% - 420px);
    bottom: 78px;
  }

  .page-top .top-fv__date strong {
    font-size: 112px;
  }

  .page-top .top-fv__date b {
    font-size: 29px;
    margin-bottom: 8px;
  }

  .page-top .top-fv__details {
    margin-bottom: 5px;
  }

  .page-top .top-fv__time {
    font-size: 35px;
    margin-bottom: 9px;
  }

  .page-top .top-fv__venue {
    font-size: 38px;
    line-height: 1.04;
  }

  .page-top .top-fv__venue span {
    font-size: 19px;
    line-height: 1.25;
    margin-top: 8px;
  }

  .page-top .top-fv__audience {
    font-size: 22px;
    line-height: 1.3;
  }
}


/* =========================================================
   Top page FV - SVG event information
   2026-10-07
   Date and venue artwork are fixed SVGs; audience remains live text.
   ========================================================= */
@media (min-width: 900px) {
  .page-top .top-fv__event {
    align-items: end;
    bottom: 72px;
    column-gap: 30px;
    display: grid;
    grid-template-columns: 326px 567px;
    grid-template-rows: auto auto;
    justify-content: center;
    left: 50%;
    row-gap: 14px;
    transform: translateX(-50%);
    width: 1020px;
  }

  .page-top .top-fv__date-image {
    align-self: end;
    grid-column: 1;
    grid-row: 1;
    width: 326px;
  }

  .page-top .top-fv__venue-image {
    align-self: end;
    grid-column: 2;
    grid-row: 1;
    width: 567px;
  }

  .page-top .top-fv__audience {
    color: #fff;
    font-size: 23px;
    font-weight: 700;
    grid-column: 1 / -1;
    grid-row: 2;
    left: auto;
    line-height: 1.35;
    margin: 0;
    position: static;
    text-align: center;
    white-space: nowrap;
    width: 100%;
  }
}


/* =========================================================
   Top page - fixed entry banner
   2026-10-07
   Use supplied SVG artwork and keep it fixed while scrolling.
   ========================================================= */
.page-top .top-fv__entry {
  background: transparent;
  border-radius: 0;
  display: block;
  height: auto;
  left: auto;
  padding: 0;
  position: fixed;
  right: 0;
  top: 200px;
  transform: none;
  width: 110px;
  writing-mode: initial;
  z-index: 80;
}

.page-top .top-fv__entry img {
  display: block;
  height: auto;
  width: 100%;
}

.page-top .top-fv__entry:hover {
  opacity: 1;
}

@media (max-width: 899px) {
  .page-top .top-fv__entry {
    right: 10px;
    top: 110px;
    width: 68px;
  }
}

/* =========================================================
   Top page - 375px mobile layout
   Keep desktop rules intact and place only top-page content here.
   ========================================================= */
@media (max-width: 480px) {
  .page-top {
    min-width: 0;
  }

  .page-top .top-header {
    z-index: 5;
  }

  .page-top .top-header__inner {
    padding: 12px 14px 0;
    width: 100%;
  }

  .page-top .top-header__logo {
    width: 112px;
  }

  .page-top .top-header__menu {
    display: block;
    flex: 0 0 auto;
    position: relative;
    width: 72px;
    z-index: 1;
  }

  .page-top .top-menu__panel {
    height: auto;
    max-height: calc(100dvh - 24px);
    padding: 58px 24px 26px;
    right: 14px;
    top: 12px;
    width: min(74vw, 280px);
  }

  .page-top .top-menu__close {
    font-size: 34px;
    height: 40px;
    right: 4px;
    top: 7px;
    width: 40px;
  }

  .page-top .top-menu__list {
    padding: 0 7px 7px 0;
  }

  .page-top .top-menu__list li + li {
    margin-top: 12px;
  }

  .page-top .top-menu__item {
    font-size: 15px;
    min-height: 50px;
    padding: 9px 12px;
  }

  .page-top .top-menu__item::after {
    font-size: 20px;
    margin-left: 10px;
  }

  .page-top .top-menu .top-menu__coming-soon {
    font-size: 22px;
  }

  .page-top .top-fv {
    min-height: 590px;
  }

  .page-top .top-fv__visual {
    height: 440px;
    left: 50%;
    top: 36px;
    transform: translateX(-50%) scale(.94);
    transform-origin: top center;
    width: 355px;
  }

  .page-top .top-fv__island {
    left: 20px;
    top: 128px;
    width: 315px;
  }

  .page-top .top-fv__flag {
    left: 6%;
    top: 40px;
    width: 142px;
    z-index: -1;
  }

  .page-top .top-fv__ship {
    left: 160px;
    top: 54px;
    width: 90px;
  }

  .page-top .top-fv__adventure {
    left: 277px;
    top: 48px;
    width: 48px;
  }

  .page-top .top-fv__wave {
    bottom: auto;
    height: auto;
    left: 30px;
    top: 372px;
    transform: none;
    width: 110px;
  }

  .page-top .top-fv__event {
    align-items: end;
    bottom: 30px;
    column-gap: 6px;
    display: grid;
    grid-template-columns: minmax(0, 124px) minmax(0, 1fr);
    grid-template-rows: auto auto;
    justify-content: center;
    left: 50%;
    row-gap: 8px;
    transform: translateX(-50%);
    width: calc(100% - 40px);
  }

  .page-top .top-fv__date-image {
    grid-column: 1;
    grid-row: 1;
    width: 124px;
  }

  .page-top .top-fv__venue-image {
    grid-column: 2;
    grid-row: 1;
    max-width: 100%;
    width: 205px;
  }

  .page-top .top-fv__audience {
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    grid-column: 1 / -1;
    grid-row: 2;
    left: auto;
    line-height: 1.45;
    margin: 0;
    position: static;
    text-align: center;
    white-space: normal;
    width: 100%;
  }

  .page-top .top-fv__entry {
    right: 0;
    top: 196px;
    width: 48px;
  }

  .page-top .top-company {
    height: 232px;
    padding-top: 62px;
  }

  .page-top .top-company::before,
  .page-top .top-company::after {
    height: 150px;
    width: 180%;
  }

  .page-top .top-company::before {
    top: -115px;
  }

  .page-top .top-company::after {
    bottom: -115px;
  }

  .page-top .top-cta--company {
    min-width: 280px;
  }

  .page-top .top-cta--company-disabled .top-menu__coming-soon {
    font-size: 23px;
  }

  .page-top .top-green-area {
    padding: 28px 0 72px;
  }

  .page-top .top-green-area::after {
    bottom: -30px;
    height: 60px;
  }

  .page-top .top-about {
    width: calc(100% - 40px);
  }

  .page-top .top-video {
    margin-top: 42px;
    width: calc(100% - 40px);
  }

  .page-top .top-movie__video {
    aspect-ratio: 16 / 9;
    max-width: 100%;
    width: 100%;
  }

  .page-top .top-movie__video iframe {
    height: 100%;
    max-width: 100%;
    width: 100%;
  }

  .page-top .top-video__entry-wrap {
    margin-top: 28px;
  }

  .page-top .top-video__finger {
    bottom: -29px;
    right: -28px;
    width: 45px;
  }

  .page-top .top-publications {
    align-items: center;
    flex-direction: column;
    gap: 46px;
    margin-top: 74px;
    width: calc(100% - 40px);
  }

  .page-top .top-publication {
    max-width: 100%;
    width: 300px;
  }

  .page-top .top-blue-area {
    padding: 66px 0 70px;
  }

  .page-top .top-pill-title {
    font-size: 21px;
    max-width: calc(100% - 40px);
    padding: 10px 22px;
    width: 300px;
  }

  .page-top .top-type {
    width: 100%;
  }

  .page-top .top-type img {
    margin-top: 38px;
    max-width: calc(100% - 40px);
    width: 335px;
  }

  .page-top .top-schedule {
    margin-top: 76px;
    width: calc(100% - 56px);
  }

  .page-top .top-schedule__title {
    font-size: 28px;
    margin-bottom: 38px;
  }

  .page-top .top-schedule__item {
    padding-bottom: 34px;
  }

  .page-top .top-schedule__item + .top-schedule__item {
    padding-top: 34px;
  }

  .page-top .top-schedule__meta {
    flex-wrap: wrap;
    gap: 8px 11px;
  }

  .page-top .top-schedule__meta span {
    font-size: 28px;
    height: 42px;
    width: 46px;
  }

  .page-top .top-schedule__meta b {
    font-size: 32px;
  }

  .page-top .top-schedule__meta time {
    font-size: 17px;
    margin-top: 0;
  }

  .page-top .top-schedule__item h3 {
    font-size: 25px;
    margin: 10px 0 8px;
  }

  .page-top .top-schedule__item h3 span {
    font-size: 17px;
  }

  .page-top .top-schedule__description {
    font-size: 16px;
    line-height: 1.62;
  }

  .page-top .top-schedule__cta-wrap,
  .page-top .top-service__cta-wrap {
    margin-top: 28px;
    max-width: 100%;
    width: 290px;
  }

  .page-top .top-schedule .top-cta--compact,
  .page-top .top-service .top-cta--compact {
    min-width: 0;
    width: 100%;
  }

  .page-top .top-schedule .register-cta,
  .page-top .top-service .register-cta,
  .page-top .top-video .register-cta {
    font-size: 18px;
    min-height: 58px;
    padding: 14px 18px 14px 21px;
  }

  .page-top .top-schedule .register-cta span,
  .page-top .top-service .register-cta span,
  .page-top .top-video .register-cta span {
    font-size: 29px;
  }

  .page-top .top-service {
    margin-top: 68px;
    width: 100%;
  }

  .page-top .top-service__illustration {
    margin: 32px auto 22px;
    max-width: calc(100% - 56px);
  }

  .page-top .top-service__illustration--bus {
    width: 290px;
  }

  .page-top .top-service__illustration--support {
    width: 265px;
  }

  .page-top .top-service__cta-wrap {
    margin-top: 0;
    width: 265px;
  }

  .page-top .top-service .register-cta {
    font-size: 17px;
    min-height: 54px;
    padding: 12px 17px 12px 19px;
  }

  .page-top .top-service .register-cta span {
    font-size: 27px;
  }

  .page-top .top-parents {
    margin-top: 70px;
    width: 100%;
  }

  .page-top .top-parents__card {
    height: 318px;
    margin-top: 32px;
    transform: scale(.9);
    transform-origin: top center;
    width: 335px;
  }

  .page-top .top-parents__card img {
    bottom: -4px;
    width: 292px;
  }

  .page-top .top-parents__card > span {
    font-size: 24px;
    padding-top: 121px;
  }

  .page-top .top-parents__card b {
    bottom: 14px;
    font-size: 20px;
    left: 18px;
    min-height: 67px;
    padding: 11px 16px 11px 20px;
    width: 299px;
  }

  .page-top .top-parents__card i {
    font-size: 27px;
    right: 10px;
  }
}

/* =========================================================
   Top page - tablet layout (481px to 899px)
   Keep the mobile and desktop compositions independent.
   ========================================================= */
@media (min-width: 481px) and (max-width: 899px) {
  .page-top {
    min-width: 0;
  }

  .page-top .top-header {
    z-index: 5;
  }

  .page-top .top-header__inner {
    padding: 16px 20px 0;
    width: 100%;
  }

  .page-top .top-header__menu {
    display: block;
    flex: 0 0 auto;
    opacity: 1;
    position: relative;
    visibility: visible;
    width: clamp(88px, 13vw, 118px);
    z-index: 1;
  }

  .page-top .top-fv {
    min-height: clamp(680px, calc(45vw + 430px), 820px);
  }

  .page-top .top-fv__visual {
    height: 620px;
    left: 50%;
    top: 32px;
    transform: translateX(-50%);
    width: min(680px, calc(100% - 40px));
  }

  .page-top .top-fv__island {
    left: 10%;
    top: 150px;
    width: 78%;
  }

  .page-top .top-fv__flag {
    left: 68px;
    top: -2px;
    width: 36%;
    z-index: -1;
  }

  .page-top .top-fv__ship {
    left: 50%;
    top: 43px;
    width: 20%;
  }

  .page-top .top-fv__adventure {
    left: 79%;
    top: 73px;
    width: 11%;
  }

  .page-top .top-fv__wave {
    bottom: auto;
    height: auto;
    left: max(18px, calc(50% - 320px));
    top: clamp(415px, 58vw, 520px);
    width: clamp(110px, 18vw, 155px);
  }

  .page-top .top-fv__event {
    align-items: end;
    bottom: 40px;
    column-gap: clamp(10px, 2vw, 18px);
    display: grid;
    grid-template-columns: clamp(155px, 28vw, 230px) minmax(0, 1fr);
    grid-template-rows: auto auto;
    justify-content: center;
    left: 50%;
    row-gap: 10px;
    transform: translateX(-50%);
    width: min(650px, calc(100% - 64px));
  }

  .page-top .top-fv__date-image {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
  }

  .page-top .top-fv__venue-image {
    grid-column: 2;
    grid-row: 1;
    max-width: 100%;
    width: 100%;
  }

  .page-top .top-fv__audience {
    color: #fff;
    font-size: clamp(13px, 1.8vw, 16px);
    font-weight: 700;
    grid-column: 1 / -1;
    grid-row: 2;
    left: auto;
    line-height: 1.45;
    margin: 0;
    position: static;
    text-align: center;
    white-space: normal;
    width: 100%;
  }

  .page-top .top-fv__entry {
    right: 0;
    top: 180px;
    width: clamp(58px, 8vw, 76px);
  }

  .page-top .top-company {
    height: 250px;
    padding-top: 80px;
  }

  .page-top .top-cta--company {
    min-width: 340px;
  }

  .page-top .top-green-area {
    padding: 60px 0 92px;
  }

  .page-top .top-about {
    width: min(450px, calc(100% - 64px));
  }

  .page-top .top-video {
    margin-top: 56px;
    width: 100%;
  }

  .page-top .top-movie__video {
    aspect-ratio: 16 / 9;
    margin-inline: auto;
    max-width: 100%;
    width: min(705px, calc(100% - 80px));
  }

  .page-top .top-movie__video iframe {
    height: 100%;
    width: 100%;
  }

  .page-top .top-video__entry-wrap {
    margin-top: 30px;
  }

  .page-top .top-publications {
    gap: clamp(24px, 5vw, 38px);
    margin-top: 94px;
    width: min(720px, calc(100% - 80px));
  }

  .page-top .top-publication {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
  }

  .page-top .top-blue-area {
    padding: 82px 0 86px;
  }

  .page-top .top-pill-title {
    font-size: 25px;
    max-width: calc(100% - 64px);
    width: 380px;
  }

  .page-top .top-type {
    width: min(680px, calc(100% - 64px));
  }

  .page-top .top-type img {
    margin-top: 48px;
    max-width: 100%;
    width: min(92%, 570px);
  }

  .page-top .top-schedule {
    margin-top: 98px;
    width: min(510px, calc(100% - 80px));
  }

  .page-top .top-schedule__title {
    font-size: 34px;
    margin-bottom: 46px;
  }

  .page-top .top-schedule__item {
    padding-bottom: 42px;
  }

  .page-top .top-schedule__item + .top-schedule__item {
    padding-top: 42px;
  }

  .page-top .top-schedule__meta {
    gap: 14px;
  }

  .page-top .top-schedule__meta span {
    font-size: 32px;
    height: 48px;
    width: 52px;
  }

  .page-top .top-schedule__meta b {
    font-size: 38px;
  }

  .page-top .top-schedule__meta time {
    font-size: 20px;
    margin-top: 8px;
  }

  .page-top .top-schedule__item h3 {
    font-size: 29px;
    margin: 8px 0 10px;
  }

  .page-top .top-schedule__item h3 span {
    font-size: 20px;
  }

  .page-top .top-schedule__description {
    font-size: 18px;
    line-height: 1.55;
  }

  .page-top .top-schedule__cta-wrap {
    margin-top: 32px;
    width: 320px;
  }

  .page-top .top-schedule .top-cta--compact {
    min-width: 320px;
  }

  .page-top .top-schedule .register-cta {
    font-size: 21px;
    padding: 17px 22px 17px 26px;
  }

  .page-top .top-schedule .register-cta span {
    font-size: 34px;
  }

  .page-top .top-service {
    margin-top: 84px;
    width: min(680px, calc(100% - 64px));
  }

  .page-top .top-service__illustration {
    margin: 38px auto 26px;
    max-width: 100%;
  }

  .page-top .top-service__illustration--bus {
    width: 360px;
  }

  .page-top .top-service__illustration--support {
    width: 320px;
  }

  .page-top .top-service__cta-wrap {
    width: 320px;
  }

  .page-top .top-service .top-cta--compact {
    min-width: 320px;
  }

  .page-top .top-service .register-cta {
    font-size: 21px;
    padding: 17px 22px 17px 26px;
  }

  .page-top .top-service .register-cta span {
    font-size: 34px;
  }

  .page-top .top-parents {
    margin-top: 86px;
    width: min(680px, calc(100% - 64px));
  }

  .page-top .top-parents__card {
    height: 350px;
    margin-top: 38px;
    width: 370px;
  }

  .page-top .top-parents__card img {
    width: 322px;
  }

  .page-top .top-parents__card > span {
    font-size: 26px;
    padding-top: 133px;
  }

  .page-top .top-parents__card b {
    bottom: 16px;
    font-size: 22px;
    left: 24px;
    min-height: 74px;
    padding: 13px 18px 13px 23px;
    width: 322px;
  }

  .page-top .top-parents__card i {
    font-size: 30px;
    right: 11px;
  }
}

/* =========================================================
   Top page - first-view ambient animation
   Decorative elements move independently of their layout coordinates.
   ========================================================= */
@keyframes top-fv-flag-sway {
  0% {
    transform: translate(0, 0) rotate(0deg);
  }

  30% {
    transform: translate(7px, -2px) rotate(1.2deg);
  }

  65% {
    transform: translate(-7px, 2px) rotate(-1.2deg);
  }

  100% {
    transform: translate(0, 0) rotate(0deg);
  }
}

@keyframes top-fv-ship-float {
  0% {
    transform: translate(0, 0) rotate(0deg);
  }

  30% {
    transform: translate(6px, -5px) rotate(1deg);
  }

  65% {
    transform: translate(-6px, 4px) rotate(-1deg);
  }

  100% {
    transform: translate(0, 0) rotate(0deg);
  }
}

@keyframes top-fv-adventure-float {
  0% {
    transform: translate(0, 0) rotate(0deg);
  }

  30% {
    transform: translate(3px, -3px) rotate(2.5deg);
  }

  65% {
    transform: translate(-3px, 3px) rotate(-2.5deg);
  }

  100% {
    transform: translate(0, 0) rotate(0deg);
  }
}

@keyframes top-fv-wave-drift {
  0% {
    transform: translate(0, 0);
  }

  35% {
    transform: translate(8px, -2px);
  }

  70% {
    transform: translate(-7px, 2px);
  }

  100% {
    transform: translate(0, 0);
  }
}

.page-top .top-fv__flag {
  animation: top-fv-flag-sway 3.8s ease-in-out infinite;
  transform-origin: 8% 58%;
  will-change: transform;
}

.page-top .top-fv__ship {
  animation: top-fv-ship-float 3.2s ease-in-out infinite -0.4s;
  transform-origin: center;
  will-change: transform;
}

.page-top .top-fv__adventure {
  animation: top-fv-adventure-float 3.7s ease-in-out infinite -1.1s;
  transform-origin: 50% 75%;
  will-change: transform;
}

.page-top .top-fv__wave {
  animation: top-fv-wave-drift 4.5s ease-in-out infinite -0.7s;
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .page-top .top-fv__flag,
  .page-top .top-fv__ship,
  .page-top .top-fv__adventure,
  .page-top .top-fv__wave {
    animation: none !important;
  }
}
