main {
  padding-top: calc(var(--header-height) + var(--header-top) + 1.25rem);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

  main .page-title {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

  @media (min-width: 768px) {

  main .page-title {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}

  @media (min-width: 1200px) {

  main .page-title {
    margin-left: auto;
    margin-right: auto;
    padding-left: 0px;
    padding-right: 0px;
      max-width: 70rem;
  }
}

  @media (min-width: 1440px) {

  main .page-title {
      max-width: 75rem
  }
    }

  @media (min-width: 1920px) {

  main .page-title {
      max-width: 90rem
  }
    }

  main .page-banner {
  width: 100%;
}

  @media (min-width: 768px) {

  main .page-banner {
    padding: 1.25rem;
  }
}

  @media (min-width: 1440px) {

  main .page-banner {
    margin-left: auto;
    margin-right: auto;
      max-width: 85rem;
  }
}

  @media (min-width: 1920px) {

  main .page-banner {
      max-width: 90rem
  }
    }

  @media (min-width: 1200px) {

  main .page-banner .swiper-pagination {
    display: none;
  }
}

  main .contacts-info {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

  @media (min-width: 1024px) {

  main .contacts-info {
    flex-direction: row;
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}

  @media (min-width: 1200px) {

  main .contacts-info {
    flex-direction: row-reverse;
  }
}

  @media (min-width: 1024px) {

  main .info-img {
    width: 18.75rem;
    flex-shrink: 0;
  }
}

  @media (min-width: 1200px) {

  main .info-img {
    width: auto;
  }
}

  main .tab-wrapper {
  width: 100%;
}

  @media (min-width: 1200px) {

  main .tab-wrapper {
    padding-top: 5.5rem;
  }
}

  main .tab-item {
  flex: 1 1 0%;
}

  @media (min-width: 1200px) {

  main .tab-item {
    flex: 0 1 auto;
  }
}

  main .tab-item .tab-link {
  width: 100%;
}

  @media (min-width: 1200px) {

  main .tab-item .tab-link {
    width: 10rem;
  }
}

  main .contact-group {
  --tw-text-opacity: 1;
  color: rgb(61 61 61 / var(--tw-text-opacity, 1));
}

  main .contact-group .item-title {
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  --tw-text-opacity: 1;
  color: rgb(147 149 152 / var(--tw-text-opacity, 1));
}

  main .contacts-form {
  padding-top: 1.25rem;
  padding-bottom: 2.5rem;
}

  main .contacts-form.cus-container {
      max-width: 75rem;
      margin: 0 auto;
    }

  main .contacts-form form {
  border-radius: 8px;
  --tw-bg-opacity: 1;
  background-color: rgb(250 250 250 / var(--tw-bg-opacity, 1));
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

  @media (min-width: 1024px) {

  main .contacts-form form {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}

.contacts-swiper .swiper-slide {
  height: auto;
  overflow: hidden;
}

@media (min-width: 768px) {

  .contacts-swiper .swiper-slide {
    border-radius: 8px;
  }
}

.contacts-swiper .swiper-slide {

    aspect-ratio: 375 / 400;
  }

@media (min-width: 768px) {

.contacts-swiper .swiper-slide {
      aspect-ratio: 164 / 87
  }
    }

.contacts-swiper .swiper-slide picture {
  height: 100%;
  width: 100%;
}

@media (min-width: 1200px) {

  .contacts-swiper .swiper-slide picture {
    height: auto;
  }
}

.contacts-swiper .swiper-slide img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@media (min-width: 1200px) {

  .contacts-swiper .swiper-slide img {
    height: auto;
  }
}

/* 桌機 banner 動態設定 */

@media (min-width: 1200px) {
  .banner-container {
    display: flex;
    gap: 1.25rem;
    height: 44rem;
    max-height: 65dvh;
    width: 100%;
  }

  .img-box {
    flex: 1 1 0%;
    height: 100%;
    will-change: flex-grow;
  }

  .img-box picture,
  .img-box img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* 為三張圖套用不同的動畫 */
  [data-banner="1"] {
    display: flex;
    align-items: flex-start;
  }
  [data-banner="2"] {
    display: flex;
    align-items: flex-start;
  }
  [data-banner="3"] {
    display: flex;
    align-items: flex-end;
  }

  /* 核心：三張圖動畫長度相同，且同時開始 */
  [data-banner="1"] {
    animation: ani-1 9s infinite cubic-bezier(0.4, 0, 0.2, 1);
  }
  [data-banner="2"] {
    animation: ani-2 9s infinite cubic-bezier(0.4, 0, 0.2, 1);
  }
  [data-banner="3"] {
    animation: ani-3 9s infinite cubic-bezier(0.4, 0, 0.2, 1);
  }

  /* 第一張圖：0-33% 是它的表演時間 */
  @keyframes ani-1 {
    0%,
    25% {
      flex-grow: 2;
    } /* 週期開始就放大 */
    33.3%,
    91.6% {
      flex-grow: 1;
    } /* 讓位給 2 號與 3 號 */
    100% {
      flex-grow: 2;
    } /* 關鍵：100% 必須回到放大的起始點 */
  }

  /* 第二張圖：33-66% 是它的表演時間 */
  @keyframes ani-2 {
    0%,
    25% {
      flex-grow: 1;
    }
    33.3%,
    58.3% {
      flex-grow: 1.33;
    }
    66.6%,
    100% {
      flex-grow: 1;
    }
  }

  /* 第三張圖：66-100% 是它的表演時間 */
  @keyframes ani-3 {
    0%,
    58.3% {
      flex-grow: 1;
    }
    66.6%,
    91.6% {
      flex-grow: 1.33;
    }
    100% {
      flex-grow: 1;
    } /* 100% 回到縮小，準備銜接 1 號放大 */
  }
}

/*# sourceMappingURL=contacts.css.map */
