@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+TC:wght@100..900&display=swap");
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video, img {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

a {
  text-decoration: none; }

.container {
  width: 95%;
  max-width: 1280px;
  margin: 0 auto;
  z-index: 2;
  position: relative; }

.largeContainer {
  width: 95%;
  max-width: 1098px;
  margin: 0 auto; }

.mediumContainer {
  max-width: 874px;
  margin: 0 auto;
  width: 92%; }

.pb-4rem {
  padding-bottom: 4rem; }

.textCenter {
  text-align: center; }

.textRight {
  text-align: right; }

.textLeft {
  text-align: left; }

.textUnderline {
  text-decoration: underline; }

.positionR {
  position: relative; }

.dFlex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.dBlock {
  display: block; }

.flexColumn {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.alignCenter {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.justifyCenter {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.justifyBetween {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.justifyStart {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.justifyEnd {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.textCenter {
  text-align: center; }

.marginX {
  margin: auto; }

.perspective {
  -webkit-perspective: 1000;
          perspective: 1000; }

:root {
  --header-h: 132px; }

*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s; }

body,
html {
  font-family: "Montserrat","Noto Sans TC", "Sono", sans-serif;
  background-image: url(../../assets/images/layout/newGrayBbackground.png);
  width: 100%;
  min-height: 100%;
  letter-spacing: 1px;
  line-height: 1.5;
  scroll-behavior: smooth; }

body {
  min-height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-top: 0; }
  body.hasInnerHeader {
    padding-top: 72px; }

.minHeight100 {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto; }

.footer {
  -ms-flex-negative: 0;
      flex-shrink: 0; }

img {
  max-width: 100%;
  height: auto;
  image-rendering: -webkit-optimize-contrast;
  vertical-align: top; }

a {
  text-decoration: none; }

button {
  -webkit-text-size-adjust: none;
  -moz-text-size-adjust: none;
   -ms-text-size-adjust: none;
       text-size-adjust: none; }

.btn--red {
  display: inline-block;
  font-weight: 400;
  border-radius: 2px;
  border: none;
  background: #b91c1c;
  color: #fff;
  text-align: center;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  text-decoration: none;
  line-height: 1;
  font-size: 1rem;
  padding: 15px 24px; }
  @media screen and (max-width: 767px) {
    .btn--red {
      font-size: 0.875rem;
      padding: 14px 24px; } }
  .btn--red:hover {
    background: #dc2626;
    color: #fff; }

.btn--purple {
  display: inline-block;
  font-weight: 400;
  border-radius: 2px;
  border: 1px solid transparent;
  background: #83176C;
  color: #E2CCA6;
  text-align: center;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  text-decoration: none;
  line-height: 1;
  font-size: 1rem;
  padding: 15px 24px; }
  @media screen and (max-width: 767px) {
    .btn--purple {
      font-size: 0.875rem;
      padding: 14px 24px; } }
  .btn--purple:hover {
    background: #AD2324;
    color: #E2CCA6; }

.btn--white-outline {
  display: inline-block;
  font-weight: 400;
  border-radius: 2px;
  border: 1px solid #fff;
  background: transparent;
  color: #fff;
  text-align: center;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  text-decoration: none;
  line-height: 1;
  font-size: 1rem;
  padding: 15px 24px; }
  @media screen and (max-width: 767px) {
    .btn--white-outline {
      font-size: 0.875rem;
      padding: 14px 24px; } }
  .btn--white-outline:hover {
    background: #83176C;
    color: #E2CCA6; }

.btn--white {
  display: inline-block;
  font-weight: 400;
  border-radius: 2px;
  border: 1px solid #231815;
  background: #fff;
  color: #231815;
  text-align: center;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  text-decoration: none;
  line-height: 1;
  font-size: 1rem;
  padding: 15px 24px; }
  @media screen and (max-width: 767px) {
    .btn--white {
      font-size: 0.875rem;
      padding: 14px 24px; } }
  .btn--white:hover {
    background: #83176C;
    color: #E2CCA6; }
  .btn--white:hover {
    border: 1px solid transparent; }

.btn--gray {
  display: inline-block;
  font-weight: 400;
  border-radius: 2px;
  border: none;
  background: #a3a3a3;
  color: #fff;
  text-align: center;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  text-decoration: none;
  line-height: 1;
  font-size: 1rem;
  padding: 15px 24px; }
  @media screen and (max-width: 767px) {
    .btn--gray {
      font-size: 0.875rem;
      padding: 14px 24px; } }
  .btn--gray:hover {
    background: #8e8e8e;
    color: #fff; }

.btn--full {
  display: block;
  width: 100%; }

.btn--sm {
  padding: 10px 20px; }

.btn--lg {
  padding: 16px 32px; }

.articleBackBtn {
  border-top: 1px solid #231815AB;
  padding: 24px 0; }
  .articleBackBtn a {
    display: block;
    font-size: 0.875rem;
    color: #231815AB;
    -webkit-transition: .3s;
    -o-transition: .3s;
    transition: .3s; }
    .articleBackBtn a:hover {
      color: #83176C; }
    .articleBackBtn a i {
      margin-right: 10px; }

.headerContainer {
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 0 48px;
  height: 72px; }
  @media screen and (max-width: 1280px) {
    .headerContainer {
      padding: 0 24px; } }
  @media screen and (max-width: 768px) {
    .headerContainer {
      padding: 0 24px; } }

.logo a {
  background-repeat: no-repeat;
  background-size: contain;
  width: 144px;
  aspect-ratio: 144/48;
  display: block;
  text-indent: 101%;
  overflow: hidden;
  white-space: nowrap; }
  @media screen and (max-width: 1280px) {
    .logo a {
      width: 120px; } }
  @media screen and (max-width: 767px) {
    .logo a {
      width: 96px; } }

.headerMenuRight {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  @media screen and (max-width: 768px) {
    .headerMenuRight .headerBuyTicketBtn {
      display: none; } }

.switchLanguage {
  position: relative;
  /* ------- 桌機 */
  /* ------- 手機 */ }
  @media (min-width: 769px) {
    .switchLanguage:hover ul {
      opacity: 1;
      visibility: visible;
      -webkit-transform: translateY(0) translateX(-50%);
          -ms-transform: translateY(0) translateX(-50%);
              transform: translateY(0) translateX(-50%); } }
  .switchLanguage.active ul {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translateY(0) translateX(-50%);
        -ms-transform: translateY(0) translateX(-50%);
            transform: translateY(0) translateX(-50%); }
  .switchLanguage .switchLanguageNow {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    cursor: pointer;
    padding: 0 12px;
    height: 72px;
    margin-right: 12px; }
    @media screen and (max-width: 1024px) {
      .switchLanguage .switchLanguageNow {
        margin-right: 4px; } }
    @media screen and (max-width: 450px) {
      .switchLanguage .switchLanguageNow {
        margin-right: 0; } }
    .switchLanguage .switchLanguageNow .switchLanguageNowImg {
      width: 20px;
      height: 20px;
      margin-right: 6px;
      background-image: url(../../assets/images/layout/language.svg); }
    .switchLanguage .switchLanguageNow .languageNowText {
      font-size: 0.875rem; }
    .switchLanguage .switchLanguageNow .languageNavIcon {
      font-size: 0.875rem;
      margin-left: 10px; }
      @media screen and (max-width: 1024px) {
        .switchLanguage .switchLanguageNow .languageNavIcon {
          margin-left: 4px; } }
  .switchLanguage ul {
    position: absolute;
    top: 100%;
    left: 50%;
    z-index: 11;
    min-width: 120px;
    list-style: none;
    -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    opacity: 0;
    visibility: hidden;
    -webkit-transform: translateY(-10px) translateX(-50%);
        -ms-transform: translateY(-10px) translateX(-50%);
            transform: translateY(-10px) translateX(-50%); }
    .switchLanguage ul li a {
      display: block;
      padding: 12px 28px;
      text-decoration: none;
      font-size: 0.875rem; }

.headerBuyTicketBtn {
  padding: 10px 20px;
  font-size: 0.875rem;
  line-height: 1;
  height: 44px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.mobileMenuToggle {
  display: none;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  cursor: pointer;
  padding: 10px 0 10px 10px;
  gap: 4px; }
  @media screen and (max-width: 768px) {
    .mobileMenuToggle {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      padding: 10px 0 10px 4px; } }
  .mobileMenuToggle span {
    width: 24px;
    height: 1.25px;
    background-color: #333;
    border-radius: 2px; }
  .mobileMenuToggle.active span:nth-child(1) {
    -webkit-transform: rotate(35deg) translate(4px, 4px);
        -ms-transform: rotate(35deg) translate(4px, 4px);
            transform: rotate(35deg) translate(4px, 4px); }
  .mobileMenuToggle.active span:nth-child(2) {
    opacity: 0; }
  .mobileMenuToggle.active span:nth-child(3) {
    -webkit-transform: rotate(-35deg) translate(4px, -4px);
        -ms-transform: rotate(-35deg) translate(4px, -4px);
            transform: rotate(-35deg) translate(4px, -4px); }

.mobileBuyTicketBtn {
  display: none; }
  @media screen and (max-width: 768px) {
    .mobileBuyTicketBtn {
      margin: 20px 0;
      display: block; } }

.mobileLanguageSwitch {
  display: none; }
  @media screen and (max-width: 768px) {
    .mobileLanguageSwitch {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      gap: 8px;
      padding: 16px 0;
      border-bottom: 1px solid #f0f0f0; }
      .mobileLanguageSwitch img {
        width: 20px;
        height: 20px; } }

.mobileMenuOverlay {
  position: fixed;
  top: 72px;
  left: 0;
  width: 100%;
  height: calc(100vh - 72px);
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  z-index: 9; }
  .mobileMenuOverlay.active {
    opacity: 1;
    visibility: visible; }

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 20; }
  .header .headerNav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    z-index: 10; }
    @media screen and (max-width: 768px) {
      .header .headerNav {
        position: fixed;
        top: 72px;
        left: 0;
        width: 100%;
        height: calc(100vh - 72px);
        background: #fff;
        -webkit-transform: translateX(-100%);
            -ms-transform: translateX(-100%);
                transform: translateX(-100%);
        overflow-y: auto;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: 24px; }
        .header .headerNav.active {
          -webkit-transform: translateX(0);
              -ms-transform: translateX(0);
                  transform: translateX(0); } }
  @media screen and (max-width: 768px) and (max-width: 768px) {
    .header .headerNav {
      padding: 16px; } }
    .header .headerNav .headerMenuUl {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; }
      @media screen and (max-width: 768px) {
        .header .headerNav .headerMenuUl {
          -webkit-box-orient: vertical;
          -webkit-box-direction: normal;
              -ms-flex-direction: column;
                  flex-direction: column;
          -webkit-box-align: stretch;
              -ms-flex-align: stretch;
                  align-items: stretch; } }
      .header .headerNav .headerMenuUl > li {
        position: relative; }
        .header .headerNav .headerMenuUl > li > a {
          text-decoration: none;
          font-size: 0.875rem;
          height: 72px;
          padding: 0px 28px;
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-align: center;
              -ms-flex-align: center;
                  align-items: center;
          -webkit-box-pack: center;
              -ms-flex-pack: center;
                  justify-content: center; }
          @media screen and (max-width: 1280px) {
            .header .headerNav .headerMenuUl > li > a {
              padding: 0 20px; } }
          @media screen and (max-width: 1024px) {
            .header .headerNav .headerMenuUl > li > a {
              padding: 0 10px; } }
          @media screen and (max-width: 820px) {
            .header .headerNav .headerMenuUl > li > a {
              padding: 0 8px; } }
          @media screen and (max-width: 768px) {
            .header .headerNav .headerMenuUl > li > a {
              -webkit-box-pack: start;
                  -ms-flex-pack: start;
                      justify-content: flex-start;
              padding: 0px 8px;
              height: 48px; } }
        .header .headerNav .headerMenuUl > li.hasSubmenuLi i {
          margin-left: 5px; }
        .header .headerNav .headerMenuUl > li.hasSubmenuLi:hover .submenuUl {
          opacity: 1;
          visibility: visible;
          -webkit-transform: translateY(0) translateX(-50%);
              -ms-transform: translateY(0) translateX(-50%);
                  transform: translateY(0) translateX(-50%);
          -webkit-transition: opacity 0.2s ease, -webkit-transform 0.2s ease;
          transition: opacity 0.2s ease, -webkit-transform 0.2s ease;
          -o-transition: opacity 0.2s ease, transform 0.2s ease;
          transition: opacity 0.2s ease, transform 0.2s ease;
          transition: opacity 0.2s ease, transform 0.2s ease, -webkit-transform 0.2s ease; }
          @media screen and (max-width: 768px) {
            .header .headerNav .headerMenuUl > li.hasSubmenuLi:hover .submenuUl {
              max-height: 800px;
              /* 足夠容納全部項目即可 */
              opacity: 1;
              visibility: visible;
              -webkit-transform: none;
                  -ms-transform: none;
                      transform: none; } }
        @media screen and (max-width: 768px) {
          .header .headerNav .headerMenuUl > li.hasSubmenuLi > a::after {
            content: "\f107";
            font-family: "Font Awesome 6 Free";
            font-weight: 900;
            float: right;
            margin-left: 5px;
            display: none; }
          .header .headerNav .headerMenuUl > li.hasSubmenuLi.active > a::after {
            -webkit-transform: rotate(180deg);
                -ms-transform: rotate(180deg);
                    transform: rotate(180deg); }
          .header .headerNav .headerMenuUl > li.hasSubmenuLi.active .submenuUl {
            max-height: 9999px; } }
        @media screen and (max-width: 767px) {
          .header .headerNav .headerMenuUl > li.hasSubmenuLi > a {
            font-size: 0.75rem;
            color: rgba(35, 24, 21, 0.67); } }
    .header .headerNav .submenuUl {
      opacity: 0;
      visibility: hidden;
      -webkit-transform: translateY(-10px) translateX(-50%);
          -ms-transform: translateY(-10px) translateX(-50%);
              transform: translateY(-10px) translateX(-50%);
      -webkit-transition: opacity 0.2s ease, visibility 0s linear 0.2s, -webkit-transform 0.2s ease;
      transition: opacity 0.2s ease, visibility 0s linear 0.2s, -webkit-transform 0.2s ease;
      -o-transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
      transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
      transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s, -webkit-transform 0.2s ease;
      position: absolute;
      top: 100%;
      left: 50%;
      min-width: 156px;
      -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
              box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); }
      @media screen and (max-width: 768px) {
        .header .headerNav .submenuUl {
          position: static;
          /* 佔滿文件流 */
          left: auto;
          top: auto;
          -webkit-transform: none;
              -ms-transform: none;
                  transform: none;
          -webkit-box-shadow: none;
                  box-shadow: none;
          opacity: 1;
          visibility: visible;
          max-height: none;
          overflow: visible;
          -webkit-transition: none;
          -o-transition: none;
          transition: none;
          margin-left: 20px;
          padding: 0; } }
      .header .headerNav .submenuUl li a {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        width: 100%;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        padding: 12px 0px;
        text-decoration: none;
        font-size: 0.875rem;
        text-align: center; }
        .header .headerNav .submenuUl li a i {
          width: 0;
          overflow: hidden; }
        @media screen and (max-width: 768px) {
          .header .headerNav .submenuUl li a {
            -webkit-box-pack: start;
                -ms-flex-pack: start;
                    justify-content: flex-start; } }

.header.headerInnerPage {
  background-color: #fff; }
  .header.headerInnerPage::after {
    content: "";
    position: absolute;
    width: 100%;
    left: 0;
    right: 0;
    top: calc(100% + 0px);
    height: 1px;
    background-color: #23181524;
    pointer-events: none;
    z-index: 20; }
  .header.headerInnerPage .logo a {
    background-image: url(../../assets/images/layout/logo/TaipeiEYELogo.png); }
  .header.headerInnerPage .headerMenuUl > li.hasSubmenuLi {
    color: #231815; }
    .header.headerInnerPage .headerMenuUl > li.hasSubmenuLi:hover {
      color: #83176C; }
  .header.headerInnerPage .headerMenuUl > li > a {
    color: #231815; }
    .header.headerInnerPage .headerMenuUl > li > a:hover {
      color: #83176C; }
  .header.headerInnerPage .submenuUl {
    background-color: #fff;
    border: 1px solid #eee; }
    @media screen and (max-width: 768px) {
      .header.headerInnerPage .submenuUl {
        border: none; } }
    .header.headerInnerPage .submenuUl li {
      border-bottom: 1px solid #eee; }
      .header.headerInnerPage .submenuUl li:last-of-type {
        border-bottom: 1px solid transparent; }
      @media screen and (max-width: 768px) {
        .header.headerInnerPage .submenuUl li {
          border-bottom: none; } }
    .header.headerInnerPage .submenuUl li a {
      color: #231815; }
      .header.headerInnerPage .submenuUl li a:hover {
        color: #83176C;
        background-color: #83176c12; }
        @media screen and (max-width: 768px) {
          .header.headerInnerPage .submenuUl li a:hover {
            background-color: transparent; } }
  .header.headerInnerPage .switchLanguage .switchLanguageNow:hover {
    color: #83176C; }
    .header.headerInnerPage .switchLanguage .switchLanguageNow:hover .switchLanguageNowImg {
      background-image: url(../../assets/images/layout/languagePurple.svg); }
  .header.headerInnerPage .switchLanguage ul {
    background: #fff;
    -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    border: 1px solid #eee; }
    .header.headerInnerPage .switchLanguage ul li {
      border-bottom: 1px solid #eee; }
    .header.headerInnerPage .switchLanguage ul li a {
      color: #231815; }
      .header.headerInnerPage .switchLanguage ul li a:hover {
        background-color: #83176c12;
        color: #83176C; }

.header.headerIndex .logo a {
  background-image: url(../../assets/images/layout/logo/TaipeiEYEFooterLogo.png); }

.header.headerIndex .headerMenuUl > li > a {
  color: #fff; }
  @media screen and (max-width: 768px) {
    .header.headerIndex .headerMenuUl > li > a {
      color: #231815; } }
  .header.headerIndex .headerMenuUl > li > a:hover {
    color: #FFFFFFAB; }
    @media screen and (max-width: 768px) {
      .header.headerIndex .headerMenuUl > li > a:hover {
        color: #231815; } }

.header.headerIndex .submenuUl {
  background-color: #231815AB;
  border: 1px solid #FFFFFF3D; }
  @media screen and (max-width: 768px) {
    .header.headerIndex .submenuUl {
      background-color: transparent; } }
  .header.headerIndex .submenuUl li {
    border-bottom: 1px solid #FFFFFF3D; }
    .header.headerIndex .submenuUl li:last-of-type {
      border-bottom: 1px solid transparent; }
    @media screen and (max-width: 768px) {
      .header.headerIndex .submenuUl li {
        border-bottom: none; } }
  .header.headerIndex .submenuUl li a {
    color: #fff; }
    @media screen and (max-width: 768px) {
      .header.headerIndex .submenuUl li a {
        color: #231815; } }
    .header.headerIndex .submenuUl li a:hover {
      color: #FFFFFFAB;
      background-color: #FFFFFF3D; }
      @media screen and (max-width: 768px) {
        .header.headerIndex .submenuUl li a:hover {
          color: #83176C;
          background-color: transparent; } }

.header.headerIndex .switchLanguage .switchLanguageNow {
  color: #fff; }
  .header.headerIndex .switchLanguage .switchLanguageNow .switchLanguageNowImg {
    background-image: url(../../assets/images/layout/languageWhite.svg); }
  .header.headerIndex .switchLanguage .switchLanguageNow:hover {
    color: #FFFFFFAB; }
    .header.headerIndex .switchLanguage .switchLanguageNow:hover .switchLanguageNowImg {
      background-image: url(../../assets/images/layout/languageGray.svg); }

.header.headerIndex .switchLanguage ul {
  background: #231815AB;
  border: 1px solid #FFFFFF3D; }
  .header.headerIndex .switchLanguage ul li {
    border-bottom: 1px solid #FFFFFF3D; }
    .header.headerIndex .switchLanguage ul li:last-of-type {
      border-bottom: 1px solid transparent; }
  .header.headerIndex .switchLanguage ul li a {
    color: #fff; }
    .header.headerIndex .switchLanguage ul li a:hover {
      color: #FFFFFFAB; }

.header.headerIndex .mobileMenuToggle span {
  width: 24px;
  height: 1.25px;
  background-color: #fff; }

@media screen and (max-width: 768px) {
  .header.headerIndex.mobile-open {
    background-color: #fff;
    border-bottom: 1px solid #eee; }
    .header.headerIndex.mobile-open::after {
      content: "";
      position: absolute;
      width: 100%;
      left: 0;
      right: 0;
      top: calc(100% + 0px);
      height: 1px;
      background-color: #23181524;
      pointer-events: none;
      z-index: 20; }
    .header.headerIndex.mobile-open .logo a {
      background-image: url(../../assets/images/layout/logo/TaipeiEYELogo.png); }
    .header.headerIndex.mobile-open .switchLanguage .switchLanguageNow {
      color: #231815; }
    .header.headerIndex.mobile-open .switchLanguage ul {
      background-color: #fff;
      border: 1px solid #eee; }
      .header.headerIndex.mobile-open .switchLanguage ul li {
        border-bottom: 1px solid #eee; }
        .header.headerIndex.mobile-open .switchLanguage ul li a {
          color: #231815; }
          .header.headerIndex.mobile-open .switchLanguage ul li a:hover {
            color: #83176C;
            background-color: #83176c12; }
    .header.headerIndex.mobile-open .switchLanguage .switchLanguageNowImg {
      background-image: url(../../assets/images/layout/language.svg); }
    .header.headerIndex.mobile-open .switchLanguage:hover {
      color: #83176C; }
      .header.headerIndex.mobile-open .switchLanguage:hover .switchLanguageNowImg {
        background-image: url(../../assets/images/layout/languagePurple.svg); }
      .header.headerIndex.mobile-open .switchLanguage:hover .languageNavIcon {
        color: #83176C; }
    .header.headerIndex.mobile-open .mobileMenuToggle span {
      background-color: #231815; } }

.header.headerIndex.scrolled {
  background-color: #fff; }
  .header.headerIndex.scrolled::after {
    content: "";
    position: absolute;
    width: 100%;
    left: 0;
    right: 0;
    top: calc(100% + 0px);
    height: 1px;
    background-color: #23181524;
    pointer-events: none;
    z-index: 20; }
  .header.headerIndex.scrolled .logo a {
    background-image: url(../../assets/images/layout/logo/TaipeiEYELogo.png); }
  .header.headerIndex.scrolled .headerMenuUl > li > a {
    color: #231815; }
    .header.headerIndex.scrolled .headerMenuUl > li > a:hover {
      color: #83176C; }
  .header.headerIndex.scrolled .submenuUl {
    background-color: #fff; }
    .header.headerIndex.scrolled .submenuUl li {
      border-bottom: 1px solid #eee; }
      @media screen and (max-width: 768px) {
        .header.headerIndex.scrolled .submenuUl li {
          border-bottom: none; } }
    .header.headerIndex.scrolled .submenuUl li a {
      color: #231815; }
      .header.headerIndex.scrolled .submenuUl li a:hover {
        color: #83176C;
        background-color: #83176c12; }
  .header.headerIndex.scrolled .switchLanguageNow {
    color: #231815; }
    .header.headerIndex.scrolled .switchLanguageNow .switchLanguageNowImg {
      background-image: url(../../assets/images/layout/language.svg); }
    .header.headerIndex.scrolled .switchLanguageNow:hover {
      color: #83176C; }
      .header.headerIndex.scrolled .switchLanguageNow:hover .switchLanguageNowImg {
        background-image: url(../../assets/images/layout/languagePurple.svg); }
      .header.headerIndex.scrolled .switchLanguageNow:hover .languageNavIcon {
        color: #83176C; }
  .header.headerIndex.scrolled .switchLanguage ul {
    background-color: #fff;
    border: 1px solid #eee; }
    .header.headerIndex.scrolled .switchLanguage ul li {
      border-bottom: 1px solid #eee; }
    .header.headerIndex.scrolled .switchLanguage ul li a {
      color: #231815; }
      .header.headerIndex.scrolled .switchLanguage ul li a:hover {
        color: #83176C;
        background-color: #83176c12; }
  .header.headerIndex.scrolled .mobileMenuToggle span {
    background-color: #231815; }

.footer {
  background-image: url(../../assets/images/layout/backgroundFooter.png);
  padding: 40px 0 0; }

.footerContainer {
  margin: 0 auto;
  padding: 0 48px; }
  @media screen and (max-width: 768px) {
    .footerContainer {
      padding: 0 24px; } }

.footerTop {
  border-bottom: 1px solid #FFFFFF3D;
  padding-bottom: 40px; }
  .footerTop .footerContainer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    font-size: 0.875rem;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    @media screen and (max-width: 768px) {
      .footerTop .footerContainer {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center; } }

@media screen and (max-width: 768px) {
  .footerLeft {
    width: 100%;
    margin-bottom: 40px; } }

.footerLogo {
  margin-bottom: 24px;
  display: inline-block;
  max-width: 192px; }
  @media screen and (max-width: 450px) {
    .footerLogo {
      max-width: 144px; } }
  .footerLogo:hover {
    -webkit-transform: translateY(-2px);
        -ms-transform: translateY(-2px);
            transform: translateY(-2px); }

.footerContactInformation li {
  color: #fff;
  margin-bottom: 8px; }
  .footerContactInformation li:last-of-type {
    margin-bottom: 0; }
  .footerContactInformation li a {
    color: #fff; }

.footerContactInformation span {
  color: #FFFFFFAB;
  display: inline-block;
  margin-right: 10px; }

.footerRight {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end; }
  @media screen and (max-width: 768px) {
    .footerRight {
      width: 100%;
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; } }
  .footerRight a {
    color: #fff; }

.footerBuyTicket {
  margin-bottom: 40px;
  height: 44px;
  font-size: 0.875rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  @media screen and (max-width: 450px) {
    .footerBuyTicket {
      margin-bottom: 24px; } }
  .footerBuyTicket:hover {
    border: 1px solid transparent; }

@media screen and (max-width: 768px) {
  .footerRightLists {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start; } }

.footerMainMenu,
.footerSecMenu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  margin-bottom: 16px; }
  @media screen and (max-width: 768px) {
    .footerMainMenu,
    .footerSecMenu {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      width: 50%;
      margin-bottom: 0; } }
  .footerMainMenu li,
  .footerSecMenu li {
    margin-right: 40px; }
    @media screen and (max-width: 820px) {
      .footerMainMenu li,
      .footerSecMenu li {
        margin-right: 20px; } }
    @media screen and (max-width: 768px) {
      .footerMainMenu li,
      .footerSecMenu li {
        margin-right: 0;
        margin-bottom: 24px; } }
    .footerMainMenu li:last-of-type,
    .footerSecMenu li:last-of-type {
      margin-right: 0; }
      @media screen and (max-width: 768px) {
        .footerMainMenu li:last-of-type,
        .footerSecMenu li:last-of-type {
          margin-bottom: 0px; } }
  .footerMainMenu a:hover,
  .footerSecMenu a:hover {
    color: #FFFFFFAB; }

.footerSecMenu {
  margin-bottom: 0; }

.footerBottom {
  padding: 24px 0; }
  .footerBottom .footerContainer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }

.footerSNS {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  @media screen and (max-width: 768px) {
    .footerSNS {
      width: 100%;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      margin-bottom: 15px; } }
  .footerSNS li {
    margin-right: 24px; }
    .footerSNS li:last-of-type {
      margin-right: 0; }
  .footerSNS a {
    display: inline-block;
    width: 20px; }
    .footerSNS a:hover {
      -webkit-transform: translateY(-3px) scale(1.1);
          -ms-transform: translateY(-3px) scale(1.1);
              transform: translateY(-3px) scale(1.1); }

.copyright {
  color: #FFFFFFAB;
  font-size: 0.75rem; }
  @media screen and (max-width: 768px) {
    .copyright {
      width: 100%;
      text-align: center; } }

.editorArticle {
  line-height: 1.8; }
  .editorArticle article iframe {
    max-width: 100%; }
  .editorArticle article figure {
    margin-bottom: 40px; }
    @media screen and (max-width: 767px) {
      .editorArticle article figure {
        margin-bottom: 24px; } }
    .editorArticle article figure img {
      width: 100%; }
    .editorArticle article figure figcaption {
      font-size: 1rem;
      display: block;
      padding: 15px 0; }
  .editorArticle article h1,
  .editorArticle article h2,
  .editorArticle article h3,
  .editorArticle article h4,
  .editorArticle article h5,
  .editorArticle article h6 {
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: #231815; }
  .editorArticle article h1 {
    font-size: 1.5rem;
    line-height: 1.4; }
  .editorArticle article h2 {
    font-size: 1.25rem;
    line-height: 1.4; }
  .editorArticle article h3 {
    font-size: 1rem;
    line-height: 1.4; }
  .editorArticle article h4 {
    font-size: 0.9rem;
    line-height: 1.4; }
  .editorArticle article h5 {
    font-size: 0.8rem;
    line-height: 1.4; }
  .editorArticle article h6 {
    font-size: 0.7rem;
    line-height: 1.4; }
  .editorArticle article div {
    font-size: 1rem;
    margin: 20px auto 2rem; }
  .editorArticle article p {
    font-size: 1rem;
    color: #231815;
    margin-bottom: 40px; }
    @media screen and (max-width: 767px) {
      .editorArticle article p {
        margin-bottom: 24px; } }
  .editorArticle article b,
  .editorArticle article strong {
    font-weight: bold; }
  .editorArticle article i,
  .editorArticle article em {
    font-style: italic; }
  .editorArticle article a {
    color: #83176C;
    text-decoration: underline; }
  .editorArticle article sub {
    vertical-align: sub;
    font-size: smaller; }
  .editorArticle article sup {
    vertical-align: super;
    font-size: smaller; }
  .editorArticle article ul {
    list-style: disc; }
  .editorArticle article ol {
    list-style: decimal; }
  .editorArticle article ul,
  .editorArticle article ol {
    list-style-position: inside;
    margin-bottom: 40px; }
    @media screen and (max-width: 767px) {
      .editorArticle article ul,
      .editorArticle article ol {
        margin-bottom: 24px; } }
  .editorArticle article li {
    margin: 5px 0; }
  .editorArticle article blockquote {
    display: block;
    margin: 40px; }

.innerPageTitle {
  font-size: 1.75rem;
  padding: 24px 0;
  position: relative;
  display: inline-block;
  color: #83176C;
  margin: 64px 0; }
  @media screen and (max-width: 1024px) {
    .innerPageTitle {
      margin: 50px 0; } }
  @media screen and (max-width: 768px) {
    .innerPageTitle {
      margin: 30px 0; } }
  @media screen and (max-width: 767px) {
    .innerPageTitle {
      padding: 16px 0;
      margin: 48px 0 40px; } }
  @media screen and (max-width: 450px) {
    .innerPageTitle {
      font-size: 1.5rem; } }
  .innerPageTitle::after {
    content: "";
    width: 16px;
    height: 1%;
    background-color: #AD2324;
    position: absolute;
    left: 50%;
    bottom: 0px;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%); }

.innerPageTitleSecond {
  font-size: 0.875rem;
  color: #231815AB; }

.noticeLightbox {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: rgba(0, 0, 0, 0.8); }

.noticeOverlay {
  position: absolute;
  inset: 0; }

.noticeWrapper {
  -webkit-transform: translateY(100px);
      -ms-transform: translateY(100px);
          transform: translateY(100px);
  opacity: 0;
  -webkit-transition: all 0.5s ease-out;
  -o-transition: all 0.5s ease-out;
  transition: all 0.5s ease-out;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.noticeWrapper.show {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  opacity: 1; }

.noticeContentIcon {
  text-align: center;
  color: #83176C; }

.noticeContent {
  position: relative;
  max-width: 651px;
  max-height: 80vh;
  width: 90%;
  background: white;
  border-radius: 5px;
  padding: 24px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  overflow: hidden; }
  .noticeContent h2 {
    font-size: 1.25rem;
    font-weight: 600;
    text-align: center;
    margin-bottom: 24px;
    color: #83176C; }

.noticeText {
  overflow-y: auto;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  padding-right: 12px; }
  .noticeText p {
    margin-bottom: 12px;
    font-size: 1rem;
    line-height: 1.6; }

.noticeCloseBtn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-item-align: center;
      align-self: center;
  margin-top: 24px;
  border: 1px solid transparent;
  border-radius: 50%;
  background-color: transparent;
  cursor: pointer;
  color: #fff;
  width: 40px;
  height: 40px;
  padding: 0;
  background-image: url(../../assets/images/component/icon/CloseBtnDefault.svg);
  background-size: cover;
  background-repeat: no-repeat; }
  .noticeCloseBtn:hover {
    background-image: url(../../assets/images/component/icon/CloseBtnHover.svg); }

.breadcrumb {
  font-size: 0.875rem;
  line-height: 1.4;
  margin: 40px 0;
  font-weight: 400; }
  @media screen and (max-width: 767px) {
    .breadcrumb {
      margin: 24px 0 24px; } }
  .breadcrumb .breadcrumbList {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin: 0;
    padding: 0;
    list-style: none; }
  .breadcrumb .breadcrumbItem {
    display: inline;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #23181578; }
    .breadcrumb .breadcrumbItem + .breadcrumbItem::before {
      font-family: "Font Awesome 5 Free";
      font-weight: 900;
      content: "\f054";
      margin: 0 8px;
      font-size: 0.875rem;
      -webkit-transform: translateY(-1px);
          -ms-transform: translateY(-1px);
              transform: translateY(-1px);
      color: #23181578; }
    .breadcrumb .breadcrumbItem a,
    .breadcrumb .breadcrumbItem span {
      text-decoration: none;
      white-space: normal;
      word-break: break-word;
      overflow-wrap: anywhere; }
    .breadcrumb .breadcrumbItem a:hover,
    .breadcrumb .breadcrumbItem a:focus {
      text-decoration: underline;
      outline: none; }
    .breadcrumb .breadcrumbItem.is-active {
      color: #83176C; }

.formInput {
  border-radius: 2px;
  border: 1px solid #231815AB;
  color: #231815;
  padding: 11px 16px;
  font-size: 1rem;
  line-height: 1.5;
  -webkit-transition: none;
  -o-transition: none;
  transition: none;
  outline: none;
  /* ====================
     2. Hover 狀態
  ==================== */
  /* ====================
     3. Active (Focus) 狀態
  ==================== */
  /* ====================
     4. Typing 狀態
     (只要 input 裡面有值且 focus)
  ==================== */
  /* ====================
     5. Filled 狀態
     (有值但未 focus)
  ==================== */
  /* ====================
     6. Disabled 狀態
  ==================== */
  /* ====================
     7. Error 狀態
  ==================== */ }
  .formInput::-webkit-input-placeholder {
    color: #2318153D; }
  .formInput::-moz-placeholder {
    color: #2318153D; }
  .formInput:-ms-input-placeholder {
    color: #2318153D; }
  .formInput::-ms-input-placeholder {
    color: #2318153D; }
  .formInput::placeholder {
    color: #2318153D; }
  @media screen and (max-width: 450px) {
    .formInput {
      padding: 9px 16px; } }
  .formInput:hover {
    border-color: #231815AB;
    -webkit-box-shadow: 0 0 0 1px #231815AB;
            box-shadow: 0 0 0 1px #231815AB; }
  .formInput:focus {
    border-color: #231815AB;
    -webkit-box-shadow: 0 0 0 1px #231815AB;
            box-shadow: 0 0 0 1px #231815AB; }
  .formInput:focus:not(:placeholder-shown) {
    border-color: #231815AB;
    -webkit-box-shadow: 0 0 0 1px #231815AB;
            box-shadow: 0 0 0 1px #231815AB; }
  .formInput:not(:placeholder-shown):not(:focus) {
    border-color: #231815AB; }
  .formInput:disabled {
    background-color: #2318153d;
    border-color: #2318153d;
    color: #23181505;
    cursor: not-allowed; }
  .formInput.is-error {
    border-color: #d32f30;
    -webkit-box-shadow: 0 0 0 1px #d32f30;
            box-shadow: 0 0 0 1px #d32f30; }
    .formInput.is-error::-webkit-input-placeholder {
      color: #d32f30; }
    .formInput.is-error::-moz-placeholder {
      color: #d32f30; }
    .formInput.is-error:-ms-input-placeholder {
      color: #d32f30; }
    .formInput.is-error::-ms-input-placeholder {
      color: #d32f30; }
    .formInput.is-error::placeholder {
      color: #d32f30; }

/* 錯誤訊息樣式 */
.formErrorMsg {
  margin-top: 4px;
  font-size: 0.875rem;
  color: #d32f30;
  display: none; }

.purpleTag {
  display: inline-block;
  font-size: 0.875rem;
  padding: 4px 6px;
  border: 1px solid #83176C;
  color: #83176C; }
  @media screen and (max-width: 450px) {
    .purpleTag {
      font-size: 0.75rem; } }

body.isModalOpen {
  overflow: hidden; }

.detailLightbox {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 100;
  overflow: auto;
  -ms-scroll-chaining: none;
      overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  color: #231815; }
  .detailLightbox.is-open {
    display: block; }
  .detailLightbox__overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 0;
    opacity: 0; }
  .detailLightbox__panel {
    position: relative;
    z-index: 1;
    background: #fff;
    border-radius: 4px;
    width: clamp(320px, 92vw, 874px);
    margin: clamp(16px, 6vh, 48px) auto;
    -webkit-transform: translateY(16px);
        -ms-transform: translateY(16px);
            transform: translateY(16px);
    opacity: 0; }
  .detailLightbox.is-active .detailLightbox__overlay {
    opacity: 1; }
  .detailLightbox.is-active .detailLightbox__panel {
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0);
    opacity: 1; }
  .detailLightbox__body {
    border-radius: 4px;
    overflow: hidden; }
  .detailLightbox__close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 40px;
    height: 40px;
    background-image: url(../../assets/images/component/icon/CloseBtnDefault.svg);
    background-size: cover;
    background-repeat: no-repeat;
    cursor: pointer; }
    .detailLightbox__close:hover {
      background-image: url(../../assets/images/component/icon/CloseBtnHover.svg); }

.detailLightboxPic {
  aspect-ratio: 874/283; }
  .detailLightboxPic img {
    -o-object-fit: cover;
       object-fit: cover;
    width: 100%;
    height: 100%; }

.detailLightboxContent {
  padding: 24px 53px; }
  @media screen and (max-width: 768px) {
    .detailLightboxContent {
      padding: 18px 30px; } }
  @media screen and (max-width: 450px) {
    .detailLightboxContent {
      padding: 16px; } }

.detailLightboxContentTop {
  padding-bottom: 24px;
  margin-bottom: 24px;
  border-bottom: 1px solid #231815AB; }

.detailLightboxTag {
  margin-bottom: 4px; }

.detailLightboxTitle {
  font-size: 1.75rem;
  font-weight: bold;
  margin-bottom: 4px; }
  @media screen and (max-width: 450px) {
    .detailLightboxTitle {
      font-size: 1.25rem; } }

.detailLightboxDate {
  color: #231815AB;
  font-size: 0.875rem;
  margin-bottom: 8px; }
  @media screen and (max-width: 450px) {
    .detailLightboxDate {
      font-size: 0.75rem; } }

.detailLightboxIntroText {
  font-size: 1rem;
  line-height: 1.6; }
  @media screen and (max-width: 450px) {
    .detailLightboxIntroText {
      font-size: 0.875rem; } }

.detailLightboxSubtitle {
  font-size: 1rem;
  line-height: 1.6;
  font-weight: 600; }
  @media screen and (max-width: 450px) {
    .detailLightboxSubtitle {
      font-size: 0.875rem; } }

.detailLightboxScheduleArea {
  margin-bottom: 24px; }

.detailLightboxSchedule {
  font-size: 1rem; }
  @media screen and (max-width: 450px) {
    .detailLightboxSchedule {
      font-size: 0.875rem; } }

.detailLightboxGroupEach {
  margin-bottom: 40px; }

.detailLightboxGroupPic {
  margin-bottom: 8px; }
  .detailLightboxGroupPic img {
    width: 100%; }

.detailLightboxGroupName {
  padding-left: 1rem;
  font-size: 1rem;
  font-weight: 600;
  position: relative;
  line-height: 1.6;
  margin-bottom: 4px; }
  .detailLightboxGroupName::before {
    content: "";
    width: 8px;
    height: 8px;
    background-color: #C69457;
    position: absolute;
    left: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }

.detailLightboxGroupIntro {
  line-height: 1.6; }
  @media screen and (max-width: 450px) {
    .detailLightboxGroupIntro {
      font-size: 0.875rem; } }
  .detailLightboxGroupIntro h1,
  .detailLightboxGroupIntro h2,
  .detailLightboxGroupIntro h3,
  .detailLightboxGroupIntro h4,
  .detailLightboxGroupIntro h5,
  .detailLightboxGroupIntro h6 {
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: #231815;
    line-height: 1.4; }
  .detailLightboxGroupIntro h1 {
    font-size: 1.5rem; }
  .detailLightboxGroupIntro h2 {
    font-size: 1.25rem; }
  .detailLightboxGroupIntro h3 {
    font-size: 1rem; }
  .detailLightboxGroupIntro h4 {
    font-size: 0.9rem; }
  .detailLightboxGroupIntro h5 {
    font-size: 0.8rem; }
  .detailLightboxGroupIntro h6 {
    font-size: 0.7rem; }
  .detailLightboxGroupIntro div {
    font-size: 1rem;
    margin: 20px auto 2rem; }
  .detailLightboxGroupIntro p {
    font-size: 1rem;
    color: #231815;
    margin-bottom: 40px; }
    @media screen and (max-width: 767px) {
      .detailLightboxGroupIntro p {
        margin-bottom: 24px; } }
  .detailLightboxGroupIntro b,
  .detailLightboxGroupIntro strong {
    font-weight: bold; }
  .detailLightboxGroupIntro i,
  .detailLightboxGroupIntro em {
    font-style: italic; }
  .detailLightboxGroupIntro a {
    color: #83176C;
    text-decoration: underline; }
  .detailLightboxGroupIntro sub {
    vertical-align: sub;
    font-size: smaller; }
  .detailLightboxGroupIntro sup {
    vertical-align: super;
    font-size: smaller; }
  .detailLightboxGroupIntro ul {
    list-style: disc; }
  .detailLightboxGroupIntro ol {
    list-style: decimal; }
  .detailLightboxGroupIntro ul,
  .detailLightboxGroupIntro ol {
    list-style-position: inside;
    margin-bottom: 40px; }
    @media screen and (max-width: 767px) {
      .detailLightboxGroupIntro ul,
      .detailLightboxGroupIntro ol {
        margin-bottom: 24px; } }
  .detailLightboxGroupIntro li {
    margin: 5px 0; }
  .detailLightboxGroupIntro blockquote {
    display: block;
    margin: 40px; }

.closeDetailLightboxBtn {
  color: #231815;
  border: 1px solid #231815;
  margin-bottom: 24px; }

.dotDividingLine {
  text-align: center;
  margin: 64px 0; }
  @media screen and (max-width: 767px) {
    .dotDividingLine {
      margin: 40px 0; } }
  .dotDividingLine span {
    display: inline-block;
    border-radius: 50%;
    border: 1px solid #231815AB;
    margin-right: 20px;
    width: 4px;
    height: 4px; }

.tpeChat-launcher {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 9999; }
  .tpeChat-launcher[data-state="closed"] .tpeChat-panel {
    opacity: 0;
    -webkit-transform: translateY(8px) scale(0.98);
        -ms-transform: translateY(8px) scale(0.98);
            transform: translateY(8px) scale(0.98);
    pointer-events: none; }
  .tpeChat-launcher[data-state="open"] .tpeChat-panel {
    opacity: 1;
    -webkit-transform: translateY(0) scale(1);
        -ms-transform: translateY(0) scale(1);
            transform: translateY(0) scale(1);
    pointer-events: auto; }
  @media screen and (max-width: 450px) {
    .tpeChat-launcher {
      right: 10px;
      bottom: 10px; } }

.tpeChat-panel {
  position: absolute;
  right: 0;
  bottom: 72px;
  width: 429px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  background: #fff;
  border-radius: 8px;
  -webkit-box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
          box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
  overflow: hidden;
  -webkit-transition: opacity 0.18s ease, -webkit-transform 0.18s ease;
  transition: opacity 0.18s ease, -webkit-transform 0.18s ease;
  -o-transition: opacity 0.18s ease, transform 0.18s ease;
  transition: opacity 0.18s ease, transform 0.18s ease;
  transition: opacity 0.18s ease, transform 0.18s ease, -webkit-transform 0.18s ease; }
  @media screen and (max-width: 450px) {
    .tpeChat-panel {
      position: fixed;
      inset: 0;
      width: 100vw;
      height: 100dvh;
      border-radius: 0;
      -webkit-box-shadow: none;
              box-shadow: none;
      z-index: 10000;
      background: #fff;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; } }

/* 表頭 */
.tpeChat-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 16px 24px;
  border-bottom: 1px solid #2318153D;
  color: #231815;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }

.tpeChat-headerPic {
  width: 40px;
  aspect-ratio: 1/1;
  border-radius: 50%;
  overflow: hidden;
  margin-right: 12px; }
  .tpeChat-headerPic img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover; }

.tpeChat-headerName {
  font-weight: 600;
  font-size: 1rem; }

.tpeChat-closeBtn {
  margin-left: auto;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  line-height: 1;
  font-size: 1.75rem;
  color: #231815;
  width: 28px;
  height: 28px;
  background: none; }
  .tpeChat-closeBtn svg {
    stroke: #231815;
    vertical-align: baseline; }
  .tpeChat-closeBtn:hover svg {
    stroke: #6b6462; }

.tpeChat-body {
  height: 577px;
  overflow: auto;
  padding: 24px;
  scrollbar-width: thin;
  scrollbar-color: #c9c9c9 transparent; }
  .tpeChat-body::-webkit-scrollbar {
    width: 8px; }
  .tpeChat-body::-webkit-scrollbar-thumb {
    background: #c9c9c9;
    border-radius: 8px; }
  @media screen and (max-width: 450px) {
    .tpeChat-body {
      height: auto;
      -webkit-box-flex: 1;
          -ms-flex: 1 1 auto;
              flex: 1 1 auto;
      min-height: 0;
      padding: 16px;
      overflow: auto;
      -webkit-overflow-scrolling: touch;
      -ms-scroll-chaining: none;
          overscroll-behavior: contain; } }

.tpeChat-msg {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-bottom: 24px;
  max-width: 80%; }

.tpeChat-bubble {
  padding: 12px 16px;
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 4px;
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word; }

.tpeChat-time {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-size: 12px;
  color: #231815AB; }

.tpeChat-sender {
  margin-right: 8px; }

.tpeChat-msg--user {
  margin-left: auto; }
  .tpeChat-msg--user .tpeChat-main {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    max-width: 100%; }

.tpeChat-msg--user .tpeChat-bubble {
  background: #83176C;
  color: #fff;
  border-radius: 8px 8px 0 8px; }

.tpeChat-msg--user .tpeChat-time {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.tpeChat-msg--bot {
  margin-right: auto;
  margin-left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 8px;
  max-width: calc(80% + 48px); }
  .tpeChat-msg--bot:has(.tpeChat-form) {
    width: 100%; }
  .tpeChat-msg--bot:has(.tpeChat-options) {
    width: 100%; }
    .tpeChat-msg--bot:has(.tpeChat-options) .tpeChat-bubble {
      width: 100%; }
  .tpeChat-msg--bot .tpeChat-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    overflow: hidden;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 32px;
            flex: 0 0 32px; }
    .tpeChat-msg--bot .tpeChat-avatar img {
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
         object-fit: cover; }
  .tpeChat-msg--bot .tpeChat-main {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 100%;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start; }
  .tpeChat-msg--bot .tpeChat-bubble {
    background: #f8f8f8;
    color: #231815;
    border-radius: 0 8px 8px 8px; }

.tpeChat-options {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin: 12px 0 8px 0; }

.tpeChat-optionBtn {
  display: block;
  width: 100%;
  padding: 4px 10px;
  border: none;
  border-radius: 4px;
  background: #fff;
  color: #231815;
  text-align: center;
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 8px;
  outline: none;
  cursor: pointer;
  -webkit-transition: 0.03s;
  -o-transition: 0.03s;
  transition: 0.03s;
  border: 1px solid transparent; }
  .tpeChat-optionBtn:hover {
    background-color: rgba(131, 23, 108, 0.07);
    color: #83176c;
    border: 1px solid #83176c; }

.tpeChat-inputBar {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  height: 58px;
  padding: 16px 24px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-top: 1px solid #2318153D;
  background: #fff; }
  .tpeChat-inputBar.disable {
    background-color: #2318150f; }
    .tpeChat-inputBar.disable textarea {
      pointer-events: none; }
    .tpeChat-inputBar.disable .tpeChat-sendBtn {
      cursor: default; }
      .tpeChat-inputBar.disable .tpeChat-sendBtn:hover svg {
        fill: #2318153D; }
  .tpeChat-inputBar:not(.disable):has(.tpeChat-input:placeholder-shown) .tpeChat-sendBtn {
    pointer-events: none;
    cursor: default; }
    .tpeChat-inputBar:not(.disable):has(.tpeChat-input:placeholder-shown) .tpeChat-sendBtn:hover svg {
      fill: #2318153D; }
  .tpeChat-inputBar:not(.disable):has(.tpeChat-input:not(:placeholder-shown)) .tpeChat-sendBtn {
    pointer-events: auto;
    cursor: pointer; }
    .tpeChat-inputBar:not(.disable):has(.tpeChat-input:not(:placeholder-shown)) .tpeChat-sendBtn svg {
      fill: #83176C; }
    .tpeChat-inputBar:not(.disable):has(.tpeChat-input:not(:placeholder-shown)) .tpeChat-sendBtn:hover svg {
      fill: #AD2324; }

.tpeChat-inputBox {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  height: 100%; }
  .tpeChat-inputBox .tpeChat-input {
    width: 100%;
    height: 100%;
    border: none;
    outline: none;
    resize: none;
    font-size: 1rem;
    color: #231815;
    line-height: 1;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background: transparent;
    overflow: auto; }
    .tpeChat-inputBox .tpeChat-input:placeholder-shown {
      overflow: hidden;
      scrollbar-width: none; }
    .tpeChat-inputBox .tpeChat-input:placeholder-shown::-webkit-scrollbar {
      display: none; }
    .tpeChat-inputBox .tpeChat-input:not(:placeholder-shown) {
      overflow: auto;
      scrollbar-gutter: stable; }
    .tpeChat-inputBox .tpeChat-input::-webkit-input-placeholder {
      color: #2318153D; }
    .tpeChat-inputBox .tpeChat-input::-moz-placeholder {
      color: #2318153D; }
    .tpeChat-inputBox .tpeChat-input:-ms-input-placeholder {
      color: #2318153D; }
    .tpeChat-inputBox .tpeChat-input::-ms-input-placeholder {
      color: #2318153D; }
    .tpeChat-inputBox .tpeChat-input::placeholder {
      color: #2318153D; }

.tpeChat-sendBtn {
  display: inline-block;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  width: 24px;
  height: 24px;
  cursor: pointer;
  padding: 0;
  border: 0;
  background-color: transparent;
  -webkit-transition: none;
  -o-transition: none;
  transition: none; }
  .tpeChat-sendBtn svg {
    -o-object-fit: cover;
       object-fit: cover;
    width: 100%;
    height: 100%;
    fill: #2318153D; }
  .tpeChat-sendBtn:hover svg {
    fill: #83176C; }

/* FAB */
.tpeChat-fab {
  position: relative;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  padding: 0;
  border: none;
  cursor: pointer;
  -webkit-box-shadow: 0px 4px 8px 0px #00000033;
          box-shadow: 0px 4px 8px 0px #00000033; }
  .tpeChat-fab:hover {
    -webkit-box-shadow: 0px 4px 8px 0px #0000007a;
            box-shadow: 0px 4px 8px 0px #0000007a; }

.tpeChat-bubble--flush {
  padding: 0 !important;
  background: none !important;
  width: 100% !important;
  max-width: none !important; }

.tpeChat-form {
  padding: 16px;
  width: 100%;
  background: #f8f8f8;
  border-radius: 0 8px 8px 8px; }

.tpeChat-field {
  margin-bottom: 12px; }

.tpeChat-field:last-child {
  margin-bottom: 0; }

.tpeChat-label {
  display: block;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #231815;
  margin-bottom: 6px; }

.tpeChat-control {
  display: block;
  width: 100%;
  height: 40px;
  padding: 0 12px;
  background: #fff;
  border: none;
  outline: none;
  color: #231815;
  font-size: 1rem;
  border-radius: 2px; }
  .tpeChat-control::-webkit-input-placeholder {
    color: #2318153D; }
  .tpeChat-control::-moz-placeholder {
    color: #2318153D; }
  .tpeChat-control:-ms-input-placeholder {
    color: #2318153D; }
  .tpeChat-control::-ms-input-placeholder {
    color: #2318153D; }
  .tpeChat-control::placeholder {
    color: #2318153D; }
  .tpeChat-control:focus {
    border-color: #231815ab;
    -webkit-box-shadow: 0 0 0 1px #231815ab;
            box-shadow: 0 0 0 1px #231815ab; }

.tpeChat-select {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  padding-right: 36px;
  background: #fff; }

.tpeChat-selectWrap {
  position: relative;
  width: 100%; }
  .tpeChat-selectWrap::after {
    content: "";
    position: absolute;
    right: 12px;
    top: 50%;
    width: 16px;
    height: 16px;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    pointer-events: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-size: 16px 16px; }

.tpeChat-textarea {
  height: 94px;
  padding: 8px 12px;
  width: 100%;
  resize: none; }

/* 先預設關閉（桌機） */
.tpeChat-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 9998;
  opacity: 0;
  pointer-events: none;
  -webkit-transition: opacity 0.18s ease;
  -o-transition: opacity 0.18s ease;
  transition: opacity 0.18s ease; }

@media screen and (max-width: 450px) {
  .tpeChat-backdrop {
    display: block; }
  .tpeChat-launcher[data-state="open"] .tpeChat-backdrop {
    opacity: 1;
    pointer-events: auto; } }

.tpeChat-launcher[data-state="open"] .tpeChat-backdrop {
  opacity: 1;
  pointer-events: auto; }

html.tpeChat-noScroll,
html.tpeChat-noScroll body {
  height: 100%; }

@media (orientation: landscape) {
  .tpeChat-panel {
    max-height: calc(100dvh - 58px - 73px);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
  .tpeChat-body {
    height: auto;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    min-height: 0;
    overflow: auto; } }

.bannerVideo {
  position: relative;
  aspect-ratio: 1440/800;
  width: 100%;
  max-height: 80vh;
  overflow: hidden; }
  .bannerVideo video,
  .bannerVideo iframe,
  .bannerVideo object,
  .bannerVideo embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover; }
  .bannerVideo .videoBackground {
    width: 100%;
    height: 100%; }
  .bannerVideo::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 2; }

.bannerSwitchLanBtns {
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  left: 50%;
  bottom: 10%;
  -webkit-transform: translate(-50%, 0%);
      -ms-transform: translate(-50%, 0%);
          transform: translate(-50%, 0%);
  width: 100%;
  z-index: 2;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .bannerSwitchLanBtns li {
    margin-right: 8px; }
    .bannerSwitchLanBtns li:last-of-type {
      margin-right: 0; }
  .bannerSwitchLanBtns a {
    border-radius: 50px;
    color: #fff;
    border: 1px solid #fff;
    padding: 8px 16px;
    -webkit-transition: all 1s ease;
    -o-transition: all 1s ease;
    transition: all 1s ease;
    background-color: #83176c;
    font-size: 1rem; }
    .bannerSwitchLanBtns a .bannerSwitchLanShort {
      display: none; }
    @media screen and (max-width: 768px) {
      .bannerSwitchLanBtns a .bannerSwitchLanFull {
        display: none; }
      .bannerSwitchLanBtns a .bannerSwitchLanShort {
        display: inline; } }
    @media screen and (max-width: 767px) {
      .bannerSwitchLanBtns a {
        font-size: 0.875rem; } }
    .bannerSwitchLanBtns a:hover {
      background-color: #ad2324; }

.indexSection {
  padding: 64px 0 108px; }
  @media screen and (max-width: 1024px) {
    .indexSection {
      padding: 50px 0 80px; } }
  @media screen and (max-width: 767px) {
    .indexSection {
      padding: 48px 0; } }

.indexTitle {
  text-align: center;
  font-size: 1.75rem;
  text-transform: uppercase;
  position: relative;
  margin-bottom: 64px; }
  @media screen and (max-width: 1024px) {
    .indexTitle {
      margin-bottom: 50px; } }
  @media screen and (max-width: 450px) {
    .indexTitle {
      font-size: 1.25rem; } }
  .indexTitle::after {
    content: "";
    width: 16px;
    height: 2px;
    background-color: #AD2324;
    position: absolute;
    left: 50%;
    bottom: -22px;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%); }

.nowShowingCardList {
  max-width: 930px;
  width: 95%;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .nowShowingCardList li {
    width: calc(50% - 36px);
    margin-right: 72px;
    margin-bottom: 72px; }
    .nowShowingCardList li:nth-of-type(2n) {
      margin-right: 0; }
    @media screen and (max-width: 1024px) {
      .nowShowingCardList li {
        margin-right: 46px;
        margin-bottom: 46px;
        width: calc(50% - 23px); } }
    @media screen and (max-width: 767px) {
      .nowShowingCardList li {
        margin: 0 auto 24px;
        width: 100%; } }

.nowShowingCard {
  border: 1px solid #231815AB;
  color: #231815;
  background-color: #fff; }
  .nowShowingCard h2 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 4px; }
    @media screen and (max-width: 450px) {
      .nowShowingCard h2 {
        font-size: 1.125rem; } }

.nowShowingCardPic {
  aspect-ratio: 430/256; }
  .nowShowingCardPic img {
    -o-object-fit: cover;
       object-fit: cover;
    width: 100%;
    height: 100%; }

.nowShowingCardBottom {
  padding: 20px 24px 24px; }

.showPurpleLabel {
  border: 1px solid #83176C;
  color: #83176C;
  padding: 4px 6px;
  font-size: 0.875rem;
  display: inline-block;
  margin-bottom: 8px; }

.nowShowingCardTimeInfo {
  color: #231815AB;
  font-size: 0.875rem;
  margin-bottom: 16px; }
  @media screen and (max-width: 450px) {
    .nowShowingCardTimeInfo {
      font-size: 0.75rem; } }

.nowShowingCardText {
  color: #231815;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  margin-bottom: 16px; }
  @media screen and (max-width: 450px) {
    .nowShowingCardText {
      font-size: 0.875rem; } }

.nowShowingCardGroup {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-top: 1px solid #2318153d;
  padding-top: 16px;
  margin-bottom: 16px; }
  @media screen and (max-width: 450px) {
    .nowShowingCardGroup {
      font-size: 0.875rem; } }
  .nowShowingCardGroup img {
    margin-right: 10px; }

.nowShowingReadMore {
  text-decoration: underline;
  font-size: 1rem;
  color: #231815;
  text-underline-offset: 5px;
  text-transform: uppercase; }
  .nowShowingReadMore:hover {
    color: #83176C; }
  @media screen and (max-width: 450px) {
    .nowShowingReadMore {
      font-size: 0.875rem; } }

.indexSection.indexPics {
  width: 100%;
  margin-left: calc(50% - 50vw);
  overflow: hidden;
  background-color: #fff; }

.indexPicsIntro {
  text-align: center;
  color: #231815AB;
  margin-bottom: 40px; }
  @media screen and (max-width: 450px) {
    .indexPicsIntro {
      font-size: 0.875rem; } }

.marquee-container {
  width: 100%;
  margin-bottom: 8px;
  position: relative;
  overflow: hidden; }

.marquee-track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite; }

/* 預設動畫作為備用 */
.marquee-left {
  -webkit-animation: scrollLeft 30s linear infinite;
          animation: scrollLeft 30s linear infinite; }

.marquee-right {
  -webkit-animation: scrollRight 30s linear infinite;
          animation: scrollRight 30s linear infinite; }

/* 備用動畫確保無縫循環 */
@-webkit-keyframes scrollLeft {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  100% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); } }
@keyframes scrollLeft {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  100% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); } }

@-webkit-keyframes scrollRight {
  0% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

@keyframes scrollRight {
  0% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

.marquee-item {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  height: 320px;
  max-height: 320px;
  margin: 0 4px;
  overflow: hidden;
  cursor: pointer;
  -webkit-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .marquee-item:hover img {
    -webkit-transform: scale(1.1);
        -ms-transform: scale(1.1);
            transform: scale(1.1); }
  .marquee-item:hover::after {
    opacity: 1; }
  .marquee-item::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.1), transparent);
    background: linear-gradient(45deg, rgba(255, 255, 255, 0.1), transparent);
    opacity: 0;
    -webkit-transition: opacity 0.3s ease;
    -o-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease; }
  @media screen and (max-width: 768px) {
    .marquee-item {
      height: 250px;
      max-height: 250px; } }
  .marquee-item img {
    height: 100%;
    max-height: 100%;
    width: auto;
    min-width: 200px;
    -o-object-fit: cover;
       object-fit: cover;
    -webkit-transition: -webkit-transform 0.3s ease;
    transition: -webkit-transform 0.3s ease;
    -o-transition: transform 0.3s ease;
    transition: transform 0.3s ease;
    transition: transform 0.3s ease, -webkit-transform 0.3s ease; }
    @media screen and (max-width: 768px) {
      .marquee-item img {
        min-width: 150px; } }
    @media screen and (max-width: 450px) {
      .marquee-item img {
        min-width: 100px; } }

/* 暫停動畫 */
.marquee-track:hover {
  -webkit-animation-play-state: paused !important;
          animation-play-state: paused !important; }

/* Lightbox樣式 */
/* ------------------- Lightbox 整體樣式 ------------------- */
.marqueePicLightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.9);
  z-index: 1000;
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.marqueePicLightbox.active {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-animation: fadeIn 0.3s ease;
          animation: fadeIn 0.3s ease; }

@-webkit-keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

/* ------------------- Lightbox 內容區塊 ------------------- */
.marqueePicLightboxContent {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 20px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden; }

/*  圖片 + 描述區包一起 */
.marqueePicLightbox-media {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  max-height: 100%;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.3) transparent; }

/* 圖片樣式 */
.marqueePicLightboxImage {
  max-width: 80vw;
  max-height: 70vh;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
          box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  -webkit-animation: slideIn 0.4s ease;
          animation: slideIn 0.4s ease;
  margin-bottom: 16px; }
  @media screen and (max-width: 768px) {
    .marqueePicLightboxImage {
      max-height: 60vh; } }
  @media screen and (max-width: 450px) {
    .marqueePicLightboxImage {
      max-height: 50vh; } }

@-webkit-keyframes slideIn {
  from {
    opacity: 0;
    -webkit-transform: scale(0.8);
            transform: scale(0.8); }
  to {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes slideIn {
  from {
    opacity: 0;
    -webkit-transform: scale(0.8);
            transform: scale(0.8); }
  to {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

/* 描述文字 */
.marqueePicLightboxDescription {
  color: white;
  font-size: 16px;
  background: rgba(0, 0, 0, 0.7);
  padding: 12px 20px;
  border-radius: 10px;
  text-align: center;
  max-width: 65%;
  line-height: 1.5;
  -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
          box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); }
  @media screen and (max-width: 768px) {
    .marqueePicLightboxDescription {
      max-width: 80%; } }
  @media screen and (max-width: 450px) {
    .marqueePicLightboxDescription {
      font-size: 0.875rem;
      padding: 8px 12px;
      max-width: 90vw; } }
  @media screen and (max-width: 321px) {
    .marqueePicLightboxDescription {
      padding: 6px 10px; } }

/* ------------------- 導覽按鈕 + 關閉 ------------------- */
.marqueePicLightboxClose,
.marqueePicLightboxNav {
  position: fixed;
  color: white;
  z-index: 10;
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  -webkit-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.marqueePicLightboxClose {
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background-image: url(../../assets/images/component/icon/CloseBtnDefault.svg);
  background-size: cover;
  background-repeat: no-repeat; }
  @media screen and (max-width: 768px) {
    .marqueePicLightboxClose {
      top: 15px;
      right: 15px; } }
  @media screen and (max-width: 450px) {
    .marqueePicLightboxClose {
      top: 10px;
      right: 10px; } }

.marqueePicLightboxNav {
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 40px;
  height: 40px;
  background-size: 100%;
  background-repeat: no-repeat; }

.marqueePicLightboxPrev {
  left: 30px;
  background-image: url(../../assets/images/component/icon/marqueePicLightboxPrevDefault.svg); }
  @media screen and (max-width: 768px) {
    .marqueePicLightboxPrev {
      left: 20px; } }
  @media screen and (max-width: 450px) {
    .marqueePicLightboxPrev {
      left: 15px; } }
  @media screen and (max-width: 321px) {
    .marqueePicLightboxPrev {
      left: 10px; } }

.marqueePicLightboxNext {
  background-image: url(../../assets/images/component/icon/marqueePicLightboxNextDefault.svg);
  right: 30px; }
  @media screen and (max-width: 768px) {
    .marqueePicLightboxNext {
      right: 20px; } }
  @media screen and (max-width: 450px) {
    .marqueePicLightboxNext {
      right: 15px; } }
  @media screen and (max-width: 321px) {
    .marqueePicLightboxNext {
      right: 10px; } }

/* 只有滑鼠環境才啟用 hover 圖 */
@media (hover: hover) and (pointer: fine) {
  .marqueePicLightboxClose:hover {
    background-image: url(../../assets/images/component/icon/CloseBtnHover.svg); }
  .marqueePicLightboxPrev:hover {
    background-image: url(../../assets/images/component/icon/marqueePicLightboxPrevHover.svg); }
  .marqueePicLightboxNext:hover {
    background-image: url(../../assets/images/component/icon/marqueePicLightboxNextHover.svg); } }

/* 觸控環境*/
@media (hover: none), (pointer: coarse) {
  .marqueePicLightboxClose,
  .marqueePicLightboxNav {
    -webkit-tap-highlight-color: transparent;
    -ms-touch-action: manipulation;
        touch-action: manipulation; }
  .marqueePicLightboxClose:active {
    background-image: url(../../assets/images/component/icon/CloseBtnHover.svg); }
  .marqueePicLightboxPrev:active {
    background-image: url(../../assets/images/component/icon/marqueePicLightboxPrevHover.svg); }
  .marqueePicLightboxNext:active {
    background-image: url(../../assets/images/component/icon/marqueePicLightboxNextHover.svg); } }

/* ------------------- 頁數指標 ------------------- */
.marqueePicLightboxCounter {
  position: fixed;
  bottom: 20px;
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  color: white;
  font-size: 1rem;
  padding: 10px 20px;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  z-index: 100;
  font-weight: 500; }
  @media screen and (max-width: 768px) {
    .marqueePicLightboxCounter {
      font-size: 14px;
      padding: 8px 16px;
      bottom: 16px; } }
  @media screen and (max-width: 450px) {
    .marqueePicLightboxCounter {
      font-size: 0.875rem;
      padding: 6px 12px; } }
  @media screen and (max-width: 321px) {
    .marqueePicLightboxCounter {
      bottom: 10px; } }

/* debug信息 */
.culturalRelicsList {
  width: 95%;
  max-width: 1098px;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .culturalRelicsList li {
    width: calc(33.3333% - 27px);
    margin-right: 40px;
    margin-bottom: 64px; }
    @media screen and (max-width: 768px) {
      .culturalRelicsList li {
        width: calc(50% - 20px);
        margin-bottom: 50px; } }
    @media screen and (max-width: 450px) {
      .culturalRelicsList li {
        width: 100%;
        margin-right: 0;
        margin-bottom: 40px; } }
    .culturalRelicsList li:nth-of-type(3n) {
      margin-right: 0; }
      @media screen and (max-width: 768px) {
        .culturalRelicsList li:nth-of-type(3n) {
          margin-right: 40px; } }
      @media screen and (max-width: 450px) {
        .culturalRelicsList li:nth-of-type(3n) {
          margin-right: 0; } }
    @media screen and (max-width: 768px) {
      .culturalRelicsList li:nth-of-type(2n) {
        margin-right: 0px; } }
  .culturalRelicsList a {
    display: block;
    color: #231815; }
    .culturalRelicsList a:hover .culturalRelicsEachPic::after {
      opacity: 1; }
    .culturalRelicsList a:hover img {
      -webkit-transform: scale(1.2);
          -ms-transform: scale(1.2);
              transform: scale(1.2); }
  .culturalRelicsList .culturalRelicsEachPic {
    margin-bottom: 12px;
    aspect-ratio: 340/226;
    position: relative;
    overflow: hidden; }
    .culturalRelicsList .culturalRelicsEachPic::after {
      width: 100%;
      height: 100%;
      background-color: #00000040;
      content: "";
      top: 0;
      left: 0;
      position: absolute;
      opacity: 0;
      -webkit-transition: 0.5s;
      -o-transition: 0.5s;
      transition: 0.5s; }
    .culturalRelicsList .culturalRelicsEachPic img {
      -o-object-fit: cover;
         object-fit: cover;
      width: 100%;
      height: 100%;
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
  .culturalRelicsList .culturalRelicsEachName {
    font-weight: 500;
    font-size: 1.25rem; }

.culturalRelicsInnerContainer {
  max-width: 874px;
  margin: 0 auto;
  width: 90%; }

.artifact-image {
  margin-bottom: 40px; }
  @media screen and (max-width: 767px) {
    .artifact-image {
      margin-bottom: 24px; } }

.paymentContainer {
  max-width: 1320px;
  margin: 0 auto;
  width: 95%; }

.paymentTitle {
  font-size: 1.5rem;
  margin-bottom: 24px; }
  @media screen and (max-width: 450px) {
    .paymentTitle {
      font-size: 1.125rem; } }

.payment1Top {
  margin-bottom: 40px; }
  @media screen and (max-width: 767px) {
    .payment1Top {
      margin-bottom: 24px; } }

.payment1TopContainer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  @media screen and (max-width: 767px) {
    .payment1TopContainer {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; } }

.payment1TopErrorHint {
  background-color: #83176C;
  color: #fff;
  padding: 16px;
  border-radius: 8px;
  margin: 40px 0; }
  @media screen and (max-width: 767px) {
    .payment1TopErrorHint {
      margin: 24px 0; } }
  .payment1TopErrorHint span {
    display: inline-block;
    margin-right: 16px; }

.paymentSecTitle {
  font-weight: 600;
  font-size: 1.25rem;
  color: #231815;
  margin-bottom: 16px; }
  @media screen and (max-width: 450px) {
    .paymentSecTitle {
      font-size: 1rem;
      margin-bottom: 8px; } }

.paymentShowCalendarArea {
  max-width: 429px;
  width: 32.5%;
  margin-right: 16px; }
  @media screen and (max-width: 1024px) {
    .paymentShowCalendarArea {
      width: 50%; } }
  @media screen and (max-width: 767px) {
    .paymentShowCalendarArea {
      max-width: none;
      width: 100%;
      margin-right: 0;
      margin-bottom: 24px; } }

.paymentShowCalendar {
  --num-size: 2rem; }

.paymentShowCalendarBox {
  display: block; }

.paymentShowCalendar {
  border: 1px solid #231815AB;
  border-radius: 4px;
  background: #fff;
  color: #231815;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .paymentShowCalendar__header {
    display: grid;
    grid-template-columns: 1fr auto;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 6px 10px;
    background: #2318150f;
    border-bottom: 1px solid #2318153D;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px; }
  .paymentShowCalendar__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: #231815; }
  .paymentShowCalendar__navs {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  .paymentShowCalendar__nav {
    width: 28px;
    height: 28px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    font-size: 1.5rem;
    border: none;
    outline: none;
    background-color: transparent;
    cursor: pointer;
    color: #231815; }
    .paymentShowCalendar__nav:hover {
      color: #83176C; }
    .paymentShowCalendar__nav:active {
      -webkit-transform: translateY(1px);
          -ms-transform: translateY(1px);
              transform: translateY(1px); }
    .paymentShowCalendar__nav.is-disabled, .paymentShowCalendar__nav:disabled {
      color: #2318153D;
      cursor: not-allowed;
      pointer-events: none; }
  .paymentShowCalendar__grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr); }
  .paymentShowCalendar__dow {
    text-align: center;
    font-size: 0.875rem;
    color: #231815;
    padding: 8px 0 8px; }
  .paymentShowCalendar__cell {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    cursor: default;
    min-height: calc(var(--num-size) * 2 + 6px);
    padding: 5px 0 3px; }
    .paymentShowCalendar__cell.is-selectable {
      cursor: pointer; }
    .paymentShowCalendar__cell.is-in-period {
      background-color: #83176c12; }
    .paymentShowCalendar__cell.is-out {
      pointer-events: none; }
      .paymentShowCalendar__cell.is-out .paymentShowCalendar__num {
        color: #2318153D; }
      .paymentShowCalendar__cell.is-out .paymentShowCalendar__mark {
        opacity: 0.6;
        visibility: hidden; }
    .paymentShowCalendar__cell.is-today .paymentShowCalendar__num {
      border-radius: 50%; }
    .paymentShowCalendar__cell.is-selected .paymentShowCalendar__num::before {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: 50%;
      background: #83176C;
      z-index: -1; }
    .paymentShowCalendar__cell.is-selected .paymentShowCalendar__num {
      color: #fff;
      position: relative;
      z-index: 1; }
    .paymentShowCalendar__cell.is-disabled {
      cursor: not-allowed;
      pointer-events: none; }
      .paymentShowCalendar__cell.is-disabled .paymentShowCalendar__mark {
        opacity: 0.55; }
  .paymentShowCalendar__num {
    position: relative;
    font-size: 1.125rem;
    width: var(--num-size);
    height: var(--num-size);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    color: #231815;
    border-radius: 50%;
    margin-bottom: 6px;
    line-height: 1; }
    .paymentShowCalendar__num:hover {
      background-color: #83176c1f;
      color: #83176C; }
  .paymentShowCalendar__mark {
    font-size: 1.25rem;
    z-index: 2;
    pointer-events: none; }
    .paymentShowCalendar__mark[data-status="onsale"]::before {
      content: url("../../assets/images/component/icon/CalendarCircle.svg");
      display: inline-block; }
    .paymentShowCalendar__mark[data-status="low"]::before {
      content: url("../../assets/images/component/icon/CalendarTriangle.svg"); }
    .paymentShowCalendar__mark[data-status="soldout"]::before {
      content: url("../../assets/images/component/icon/CalendarCross.svg"); }
    .paymentShowCalendar__mark[data-status="cancel"]::before {
      content: url("../../assets/images/component/icon/CalendarCancel.svg"); }
    .paymentShowCalendar__mark[data-status="rest"]::before {
      content: "休";
      color: #b9b9b9;
      font-weight: 600; }

.paymentShowCalendar__nav--prev {
  margin-right: 4px; }

.paymentShowCalendarBox .paymentShowCalendar__legend {
  padding: 10px 12px 12px;
  font-size: 0.875rem;
  color: #231815;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  @media screen and (max-width: 450px) {
    .paymentShowCalendarBox .paymentShowCalendar__legend {
      padding: 10px 0; } }

.paymentShowCalendarBox .legend {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-right: 16px; }
  .paymentShowCalendarBox .legend:last-of-type {
    margin-right: 0; }
  @media screen and (max-width: 321px) {
    .paymentShowCalendarBox .legend {
      margin-right: 8px; } }
  .paymentShowCalendarBox .legend i {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 4px;
    position: relative; }
    @media screen and (max-width: 450px) {
      .paymentShowCalendarBox .legend i {
        width: 18px;
        height: 18px; } }
  .paymentShowCalendarBox .legend--onsale i::before {
    content: url("../../assets/images/component/icon/CalendarCircle.svg");
    top: -1px;
    position: relative; }
  .paymentShowCalendarBox .legend--low i::before {
    content: url("../../assets/images/component/icon/CalendarTriangle.svg"); }
  .paymentShowCalendarBox .legend--soldout i::before {
    content: url("../../assets/images/component/icon/CalendarCross.svg"); }
  .paymentShowCalendarBox .legend--cancel i::before {
    content: url("../../assets/images/component/icon/CalendarCancel.svg"); }

.paymentShowIntroduceArea {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }
  @media screen and (max-width: 767px) {
    .paymentShowIntroduceArea {
      width: 100%; } }

.paymentShowIntroduce {
  border: 1px solid #231815AB;
  border-radius: 4px;
  padding: 24px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  width: 100%;
  background-color: #fff; }
  @media screen and (max-width: 1024px) {
    .paymentShowIntroduce {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      padding: 16px; } }
  @media screen and (max-width: 767px) {
    .paymentShowIntroduce {
      padding: 0; } }

.paymentShowIntroducePic {
  position: relative;
  width: 64.23%;
  max-width: 562px;
  margin-right: 32px;
  aspect-ratio: 562/380; }
  @media screen and (max-width: 1024px) {
    .paymentShowIntroducePic {
      width: 100%;
      margin-right: 0;
      margin-bottom: 16px;
      max-width: none; } }
  .paymentShowIntroducePic img {
    -o-object-fit: cover;
       object-fit: cover;
    width: 100%;
    height: 100%; }

.paymentShowIntroduceInfoArea {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }
  @media screen and (max-width: 1024px) {
    .paymentShowIntroduceInfoArea {
      width: 100%; } }
  @media screen and (max-width: 767px) {
    .paymentShowIntroduceInfoArea {
      padding: 0 16px 16px; } }

.paymentShowIntroduceStatus {
  display: inline-block;
  font-size: 0.875rem;
  color: #AD2324;
  background-color: #fde3e3;
  padding: 4px 12px;
  border-radius: 30px;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  margin-bottom: 36px; }
  @media screen and (max-width: 1024px) {
    .paymentShowIntroduceStatus {
      position: absolute;
      top: 26px;
      right: 26px;
      margin-bottom: 0; } }
  @media screen and (max-width: 450px) {
    .paymentShowIntroduceStatus {
      top: 16px;
      right: 16px; } }

.paymentShowInfoTitle {
  font-weight: bold;
  font-size: 1.75rem;
  color: #231815;
  margin-bottom: 4px; }
  @media screen and (max-width: 767px) {
    .paymentShowInfoTitle {
      font-size: 1.5rem; } }
  @media screen and (max-width: 450px) {
    .paymentShowInfoTitle {
      font-size: 1.125rem; } }

.paymentShowInfoRemaining {
  font-size: 0.875rem;
  color: #83176C;
  margin-bottom: 16px; }

.paymentShowInfoDateArea {
  margin-bottom: 8px;
  line-height: 1.6;
  font-size: 1rem; }

.paymentShowP {
  font-size: 0.875rem;
  color: #231815AB;
  margin-bottom: 16px; }
  @media screen and (max-width: 450px) {
    .paymentShowP {
      margin-bottom: 8px; } }

.paymentShowCancelReason {
  font-size: 0.875rem;
  color: #d32f30;
  margin-bottom: 24px;
  display: none; }
  @media screen and (max-width: 450px) {
    .paymentShowCancelReason {
      margin-bottom: 8px; } }

.paymentShowIntroBtn {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  @media screen and (max-width: 1024px) {
    .paymentShowIntroBtn {
      width: 100%; } }

.paymentPurchasePanel.is-hidden {
  display: none; }

.paymentChooseTicketArea {
  margin-bottom: 40px; }
  @media screen and (max-width: 767px) {
    .paymentChooseTicketArea {
      margin-bottom: 24px; } }

.paymentTicketTypeList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.paymentTicketOption {
  width: calc(50% - 6px);
  min-height: 102px;
  margin: 0 12px 12px 0;
  border: 1px solid #231815AB;
  background-color: #fff;
  border-radius: 2px;
  padding: 16px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  color: #231815;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .paymentTicketOption:nth-of-type(2n) {
    margin: 0 0px 12px 0; }
  @media screen and (max-width: 820px) {
    .paymentTicketOption {
      width: 100%;
      margin: 0 0 12px; } }

.paymentTicketOptionLeft {
  width: 76.75%; }

.paymentTicketOptionLeftInfos {
  margin-bottom: 4px;
  margin-right: 6px; }

.paymentTicketOptionName,
.paymentTicketOptionPrice {
  font-size: 1rem; }

.paymentTicketOptionDiscountTag {
  font-size: 0.875rem;
  display: inline-block;
  border: 1px solid #83176C;
  color: #83176C;
  line-height: 1;
  padding: 4px 6px;
  border-radius: 30px; }
  @media screen and (max-width: 450px) {
    .paymentTicketOptionDiscountTag {
      font-size: 0.75rem; } }

.ticketQuantityBtns {
  width: calc(23.25% - 6px);
  min-width: 5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 1.5rem;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }
  @media screen and (max-width: 450px) {
    .ticketQuantityBtns {
      min-width: 4rem;
      margin-right: -5px;
      font-size: 1.125rem; } }

.ticketQuantityInput {
  width: 60px;
  padding: 2px 4px;
  margin: 0 4px;
  text-align: center;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: 1.5rem; }
  @media screen and (max-width: 450px) {
    .ticketQuantityInput {
      width: 2.5rem;
      font-size: 1.125rem; } }
  .ticketQuantityInput:focus {
    outline: none;
    border-color: #2318153D;
    background: #fff; }

.ticketQuantityNum {
  display: block;
  margin: 0 4px;
  min-width: 24px;
  text-align: center; }

.ticketQuantityReduceDisable {
  color: #2318153D;
  cursor: not-allowed; }
  .ticketQuantityReduceDisable:hover {
    color: #2318153D; }

.ticketQuantityReduce,
.ticketQuantityAdd {
  width: 24px;
  font-size: 15px;
  aspect-ratio: 1/1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  cursor: pointer;
  color: #231815; }
  @media screen and (max-width: 450px) {
    .ticketQuantityReduce,
    .ticketQuantityAdd {
      width: 20px; } }
  .ticketQuantityReduce:hover,
  .ticketQuantityAdd:hover {
    color: #83176C; }

.ticketQuantityReduceDisable,
.ticketQuantityAddDisable {
  color: #2318153D;
  cursor: not-allowed; }
  .ticketQuantityReduceDisable:hover,
  .ticketQuantityAddDisable:hover {
    color: #2318153D; }

.paymentTicketOptionHint {
  font-size: 0.875rem;
  color: #231815AB; }

.paymentTicketCountRow {
  font-size: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  @media screen and (max-width: 450px) {
    .paymentTicketCountRow {
      font-size: 0.875rem; } }

.paymentTicketCountNum,
.paymentTicketCountPrice {
  font-size: 1.5rem;
  font-weight: 600;
  color: #83176C;
  display: inline-block; }
  @media screen and (max-width: 450px) {
    .paymentTicketCountNum,
    .paymentTicketCountPrice {
      font-size: 1.125rem; } }

.paymentTicketCountNum {
  margin: 0 6px 0 10px; }

.paymentTicketCountPrice {
  margin: 0 0 0 10px; }

.disabledPersonsNotesRow {
  color: #231815;
  margin-bottom: 40px;
  display: none; }
  @media screen and (max-width: 767px) {
    .disabledPersonsNotesRow {
      margin-bottom: 24px; } }
  .disabledPersonsNotesRow textarea {
    width: 100%;
    resize: none;
    height: 144px;
    overflow: auto; }
  .disabledPersonsNotesRow .disabledPersonsNotesLabel {
    display: inline-block;
    margin-bottom: 8px; }
    @media screen and (max-width: 450px) {
      .disabledPersonsNotesRow .disabledPersonsNotesLabel {
        font-size: 0.875rem; } }

.paymentDiscountRow {
  color: #231815;
  margin-bottom: 40px; }
  @media screen and (max-width: 767px) {
    .paymentDiscountRow {
      margin-bottom: 24px; } }
  .paymentDiscountRow > span {
    font-size: 0.75rem;
    color: #231815AB; }

.paymentDiscountLabel {
  display: inline-block; }
  @media screen and (max-width: 450px) {
    .paymentDiscountLabel {
      font-size: 0.875rem; } }

.discountCodeInput {
  margin: 0 4px 0px 0;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  font-size: 1rem; }

.discountCodeInputRow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  width: 100%;
  margin: 8px 0; }

.useDiscountBtn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  @media screen and (max-width: 450px) {
    .useDiscountBtn {
      padding: 10px 16px;
      white-space: nowrap; } }

.checkoutSummary {
  background: #fff;
  border: 1px solid #231815AB;
  padding: 24px;
  margin-bottom: 40px;
  border-radius: 2px; }
  @media screen and (max-width: 767px) {
    .checkoutSummary {
      margin-bottom: 24px; } }
  @media screen and (max-width: 450px) {
    .checkoutSummary {
      padding: 16px;
      font-size: 0.875rem; } }
  .checkoutSummary .summaryRow {
    display: grid;
    grid-template-columns: 1fr auto;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-column-gap: 16px;
       -moz-column-gap: 16px;
            column-gap: 16px;
    padding: 0px 0 4px; }
    .checkoutSummary .summaryRow dt,
    .checkoutSummary .summaryRow dd {
      margin: 0; }
    .checkoutSummary .summaryRow dt {
      font-weight: 400;
      color: #231815;
      line-height: 1.6;
      word-break: break-word; }
    .checkoutSummary .summaryRow .price {
      min-width: 96px;
      text-align: right;
      color: #231815; }
  .checkoutSummary .summaryRow.is-discount dt {
    color: #231815; }
  .checkoutSummary .summaryRow.is-discount .coupon {
    margin-left: 8px;
    color: #83176C; }
    @media screen and (max-width: 450px) {
      .checkoutSummary .summaryRow.is-discount .coupon {
        margin-left: 0; } }
  .checkoutSummary .summaryRow.is-discount .price {
    color: #231815; }
  .checkoutSummary .summaryDivider {
    height: 1px;
    background: #2318153D;
    margin: 16px 0; }
    @media screen and (max-width: 450px) {
      .checkoutSummary .summaryDivider {
        margin: 12px 0; } }
  .checkoutSummary .summaryRow.is-total {
    padding-bottom: 0;
    font-size: 1.125rem;
    font-weight: 600; }
    @media screen and (max-width: 450px) {
      .checkoutSummary .summaryRow.is-total {
        font-size: 1rem; } }
    .checkoutSummary .summaryRow.is-total dt {
      font-weight: 600;
      color: #231815; }
    .checkoutSummary .summaryRow.is-total .price {
      font-weight: 600; }

.paymentContactInformationArea {
  margin-bottom: 40px; }
  @media screen and (max-width: 767px) {
    .paymentContactInformationArea {
      margin-bottom: 24px; } }

.safariNoContacts input::-webkit-contacts-auto-fill-button {
  display: none !important;
  visibility: hidden;
  pointer-events: none; }

.paymentContactInformation {
  margin: 0 auto;
  position: relative;
  z-index: 1;
  border-radius: 2px;
  /* 自動完成樣式 */
  /* 被選取的國家：變色 + 右側打勾 */
  /* 洲別分組樣式 */ }
  .paymentContactInformation .form-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 20px; }
    @media screen and (max-width: 450px) {
      .paymentContactInformation .form-row {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        margin-bottom: 0; } }
  .paymentContactInformation .form-group {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    .paymentContactInformation .form-group:nth-of-type(2n) {
      margin-left: 16px; }
      @media screen and (max-width: 450px) {
        .paymentContactInformation .form-group:nth-of-type(2n) {
          margin-left: 0; } }
    @media screen and (max-width: 450px) {
      .paymentContactInformation .form-group {
        margin-bottom: 16px; } }
  .paymentContactInformation .form-group.full-width {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }
  .paymentContactInformation label {
    font-size: 0.875rem;
    color: #231815;
    margin-bottom: 8px;
    font-weight: 500; }
  .paymentContactInformation .required {
    color: #d32f30; }
  .paymentContactInformation input[type="text"],
  .paymentContactInformation input[type="email"],
  .paymentContactInformation select {
    padding: 11px 16px;
    font-size: 1rem;
    background-color: #fff;
    -webkit-transition: border-color 0.3s ease;
    -o-transition: border-color 0.3s ease;
    transition: border-color 0.3s ease;
    width: 100%; }
    @media screen and (max-width: 450px) {
      .paymentContactInformation input[type="text"],
      .paymentContactInformation input[type="email"],
      .paymentContactInformation select {
        padding: 9px 16px; } }
  .paymentContactInformation select {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 12px center;
    background-repeat: no-repeat;
    background-size: 16px;
    padding-right: 40px;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none; }
  .paymentContactInformation .formInput.is-error,
  .paymentContactInformation select.is-error {
    border-color: #d32f30 !important;
    -webkit-box-shadow: 0 0 0 1px #d32f30 !important;
            box-shadow: 0 0 0 1px #d32f30 !important; }
  .paymentContactInformation .formErrorMsg {
    margin-top: 6px;
    font-size: 0.875rem;
    line-height: 1.4;
    color: #d32f30;
    display: none; }
  .paymentContactInformation .form-group {
    position: relative; }
  .paymentContactInformation .nationalityInput {
    width: 100%; }
  .paymentContactInformation .phone-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .paymentContactInformation .country-code {
    min-width: 105px;
    max-width: 120px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-right: 16px; }
  .paymentContactInformation .phone-number {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }
  .paymentContactInformation .phone-container input {
    width: 100%; }
  .paymentContactInformation .autocomplete-container {
    position: relative; }
    @media screen and (max-width: 767px) {
      .paymentContactInformation .autocomplete-container {
        font-size: 0.875rem; } }
    .paymentContactInformation .autocomplete-container::after {
      content: "";
      background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
      background-position: right 12px center;
      background-repeat: no-repeat;
      background-size: 16px;
      padding-right: 40px;
      -webkit-appearance: none;
         -moz-appearance: none;
              appearance: none;
      position: absolute;
      right: 0;
      top: 50%;
      z-index: 2;
      width: 16px;
      height: 16px;
      -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
              transform: translateY(-50%); }
  .paymentContactInformation .autocomplete-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #2318153D;
    border-top: none;
    border-radius: 0 0 4px 4px;
    max-height: 200px;
    overflow-y: auto;
    z-index: 1000;
    display: none; }
  .paymentContactInformation .autocomplete-dropdown.show {
    display: block; }
  .paymentContactInformation .autocomplete-item {
    padding: 12px 16px;
    cursor: pointer;
    -webkit-transition: background-color 0.2s ease;
    -o-transition: background-color 0.2s ease;
    transition: background-color 0.2s ease; }
  .paymentContactInformation .autocomplete-item:hover,
  .paymentContactInformation .autocomplete-item.highlighted {
    background-color: #83176c12; }
  .paymentContactInformation .autocomplete-item:last-child {
    border-bottom: none; }
  .paymentContactInformation .autocomplete-item.is-selected,
  .paymentContactInformation .country-item.is-selected {
    color: #83176C;
    position: relative; }
  .paymentContactInformation .autocomplete-item.is-selected::after,
  .paymentContactInformation .country-item.is-selected::after {
    content: "✓";
    position: absolute;
    right: 12px;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }
  .paymentContactInformation .continent-header {
    padding: 10px 24px;
    color: #231815;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; }
    @media screen and (max-width: 450px) {
      .paymentContactInformation .continent-header {
        font-size: 0.875rem; } }
  .paymentContactInformation .tran {
    font-size: 0.5rem;
    display: inline-block;
    vertical-align: middle;
    -webkit-transform: rotate(-45deg) translateY(-7px);
        -ms-transform: rotate(-45deg) translateY(-7px);
            transform: rotate(-45deg) translateY(-7px); }
  .paymentContactInformation .continent-toggle {
    -webkit-transition: -webkit-transform 0.2s ease;
    transition: -webkit-transform 0.2s ease;
    -o-transition: transform 0.2s ease;
    transition: transform 0.2s ease;
    transition: transform 0.2s ease, -webkit-transform 0.2s ease; }
  .paymentContactInformation .continent-toggle.collapsed {
    -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
            transform: rotate(-90deg); }
  .paymentContactInformation .continent-countries {
    display: block; }
  .paymentContactInformation .continent-countries.collapsed {
    display: none; }
  .paymentContactInformation .country-item {
    padding: 10px 24px 10px calc(22px + 2rem);
    cursor: pointer;
    -webkit-transition: background-color 0.2s ease;
    -o-transition: background-color 0.2s ease;
    transition: background-color 0.2s ease; }
  .paymentContactInformation .country-item:hover,
  .paymentContactInformation .country-item.highlighted {
    background-color: #83176c12; }
  .paymentContactInformation .country-item:last-child {
    border-bottom: none; }
  @media screen and (max-width: 450px) {
    .paymentContactInformation .form-container {
      padding: 16px; } }

.paymentNoticeArea {
  margin-bottom: 40px; }
  @media screen and (max-width: 767px) {
    .paymentNoticeArea {
      margin-bottom: 24px; } }

.paymentNoticeBox {
  background-color: #fff;
  padding: 16px;
  border: 1px solid #231815AB;
  border-radius: 2px;
  max-height: 292px;
  overflow: auto; }
  .paymentNoticeBox ol {
    list-style: decimal;
    padding-left: 2rem; }
  .paymentNoticeBox ul {
    list-style: disc;
    padding-left: 2rem; }
  @media screen and (max-width: 767px) {
    .paymentNoticeBox {
      max-height: 480px;
      font-size: 0.875rem; } }

.sendOrderBtn {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  @media screen and (max-width: 450px) {
    .sendOrderBtn {
      width: 100%; } }

.sendOrderBtn.is-disabled {
  pointer-events: none;
  opacity: 0.5;
  -webkit-filter: grayscale(0.2);
          filter: grayscale(0.2); }

.needVerificationCodeSpan {
  color: #83176C;
  font-size: 0.875rem;
  display: inline-block; }
  @media screen and (max-width: 450px) {
    .needVerificationCodeSpan {
      font-size: 0.75rem; } }

.needVerificationCodeInputRow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  margin-top: 16px; }
  .needVerificationCodeInputRow .verificationCodeInput {
    font-size: 0.875rem;
    height: 40px;
    padding: 0 16px;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-right: 4px; }
  .needVerificationCodeInputRow .needVerificationCodeBtn {
    height: 40px;
    padding: 0 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    font-size: 0.875rem; }
    @media screen and (max-width: 321px) {
      .needVerificationCodeInputRow .needVerificationCodeBtn {
        padding: 0 10px; } }

.verificationCodeCheckDoneRow {
  margin-top: 16px; }
  .verificationCodeCheckDoneRow p {
    display: inline-block;
    font-size: 0.75rem;
    color: #83176C;
    padding: 4px 8px;
    border-radius: 30px;
    background-color: #83176C12; }

.verificationCodeErrorMsg {
  margin-top: 6px;
  font-size: 0.875rem;
  line-height: 1.4;
  color: #d32f30;
  width: 100%; }

.needVerificationCodeInputRow,
.verificationCodeCheckDoneRow,
.verificationCodeErrorMsg {
  display: none; }

.paymentTicketOption.is-need-code .needVerificationCodeInputRow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.paymentTicketOption.is-verified .needVerificationCodeInputRow {
  display: none; }

.paymentTicketOption.is-verified .verificationCodeCheckDoneRow {
  display: block; }

.verificationCodeErrorMsg {
  margin-top: 8px;
  font-size: 0.875rem;
  color: #d32f30; }

.orderDetails {
  background: #fff;
  border: 1px solid #231815AB;
  border-radius: 2px;
  padding: 24px;
  color: #231815;
  line-height: 1.6;
  margin-bottom: 40px;
  /* 標題區塊 */
  /* 內容區塊 */
  /* 訂購內容區 */
  /* 付款明細區 */
  /* 聯絡資料區 */ }
  @media screen and (max-width: 450px) {
    .orderDetails {
      padding: 16px;
      margin-bottom: 24px; } }
  .orderDetails .orderDetailSectionTitle {
    font-weight: 600;
    font-size: 1.125rem;
    margin-bottom: 4px; }
    @media screen and (max-width: 450px) {
      .orderDetails .orderDetailSectionTitle {
        font-size: 0.875rem; } }
  @media screen and (max-width: 450px) {
    .orderDetails .orderDetailSectionContent {
      font-size: 0.875rem; } }
  .orderDetails .orderDetailsOrderInfo {
    margin-bottom: 40px; }
    @media screen and (max-width: 767px) {
      .orderDetails .orderDetailsOrderInfo {
        margin-bottom: 24px; } }
  .orderDetails .info-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 2px 0; }
  .orderDetails .info-label {
    font-weight: normal;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-right: 20px; }
  .orderDetails .info-value {
    text-align: right;
    word-break: break-all; }
  .orderDetails .payment-details {
    margin-bottom: 40px; }
    @media screen and (max-width: 767px) {
      .orderDetails .payment-details {
        margin-bottom: 24px; } }
  .orderDetails .item-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 2px 0; }
  .orderDetails .item-quantity {
    margin: 0 8px; }
  .orderDetails .item-price {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    text-align: right;
    min-width: 90px; }
  .orderDetails .coupon-code {
    color: #83176C;
    word-break: break-all; }
  .orderDetails .total-row {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #2318153D; }
    .orderDetails .total-row .item-price {
      font-weight: 700; }
  @media screen and (max-width: 767px) {
    .orderDetails .info-row,
    .orderDetails .item-row {
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start; }
    .orderDetails .info-value,
    .orderDetails .item-price {
      -ms-flex-item-align: start;
          align-self: flex-start; } }

.orderDetails:has(.specialNotes) .contact-info {
  margin-bottom: 40px; }
  @media screen and (max-width: 767px) {
    .orderDetails:has(.specialNotes) .contact-info {
      margin-bottom: 24px; } }

.salesContractDetailBox {
  background: #fff;
  border: 1px solid #231815AB;
  border-radius: 2px;
  padding: 24px;
  color: #231815;
  max-height: 292px;
  overflow: auto;
  margin-bottom: 16px; }
  @media screen and (max-width: 450px) {
    .salesContractDetailBox {
      font-size: 0.875rem; } }
  .salesContractDetailBox::-webkit-scrollbar-thumb {
    background: #2318153D;
    border-radius: 5px; }
  .salesContractDetailBox::-webkit-scrollbar-track {
    background: #f8f8f8; }
  .salesContractDetailBox::-webkit-scrollbar {
    max-width: 8px;
    max-height: 8px; }
  .salesContractDetailBox ol {
    list-style: decimal;
    padding-left: 2rem; }
  .salesContractDetailBox ul {
    list-style: disc;
    padding-left: 2rem; }
  @media screen and (max-width: 767px) {
    .salesContractDetailBox {
      max-height: 480px;
      padding: 16px; } }

.contractCheckRow {
  margin-bottom: 40px;
  position: relative;
  padding-left: calc(20px + 0rem); }
  @media screen and (max-width: 767px) {
    .contractCheckRow {
      margin-bottom: 24px; } }

.contractCheckLabel {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  cursor: pointer;
  position: relative; }
  @media screen and (max-width: 450px) {
    .contractCheckLabel {
      font-size: 0.875rem; } }
  .contractCheckLabel::before {
    content: "";
    border: 1px solid #231815;
    width: 15px;
    height: 15px;
    background-color: transparent;
    position: absolute;
    left: -20px;
    top: 9px;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }
  .contractCheckLabel::after {
    content: "";
    width: 10px;
    height: 6px;
    border-left: 2px solid #231815;
    border-bottom: 2px solid #231815;
    position: absolute;
    left: -15px;
    top: 7px;
    -webkit-transform: rotate(-45deg) translateY(-50%);
        -ms-transform: rotate(-45deg) translateY(-50%);
            transform: rotate(-45deg) translateY(-50%);
    display: none; }

.contractCheckInput {
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  top: 0;
  opacity: 0; }
  .contractCheckInput:checked ~ label::after {
    display: block; }

@media screen and (max-width: 450px) {
  .payment2Btns {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; } }

.payment2Btns a:first-of-type {
  margin-right: 16px; }
  @media screen and (max-width: 450px) {
    .payment2Btns a:first-of-type {
      margin-right: 0; } }

@media screen and (max-width: 450px) {
  .payment2Btns a {
    width: 100%; }
    .payment2Btns a:last-of-type {
      margin-bottom: 4px;
      margin-right: 0; } }

.contract-error-msg {
  color: #d32f30;
  font-size: 0.875rem;
  margin-top: 8px; }

.completeOrderContainer {
  max-width: 1224px;
  margin: 0 auto;
  width: 95%; }

.completeOrderBox {
  background: #fff;
  border: 1px solid #231815AB;
  padding: 40px 40px 0;
  margin-bottom: 40px;
  border-radius: 2px; }
  @media screen and (max-width: 767px) {
    .completeOrderBox {
      padding: 16px 16px 0;
      margin-bottom: 24px; } }

.completeOrderBoxTop {
  padding-bottom: 40px;
  border-bottom: 1px dashed #231815AB; }
  @media screen and (max-width: 767px) {
    .completeOrderBoxTop {
      padding-bottom: 24px; } }
  .completeOrderBoxTop > div img {
    margin: 8px 0; }
    @media screen and (max-width: 450px) {
      .completeOrderBoxTop > div img {
        margin-bottom: 8px; } }
  .completeOrderBoxTop h1 {
    font-size: 1.5rem;
    margin-bottom: 40px; }
    @media screen and (max-width: 767px) {
      .completeOrderBoxTop h1 {
        margin-bottom: 24px;
        font-size: 1.125rem; } }
  .completeOrderBoxTop p {
    font-size: 1rem;
    line-height: 1.6; }
    @media screen and (max-width: 767px) {
      .completeOrderBoxTop p {
        font-size: 0.875rem; } }

.completeOrderDetails > h2 {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 600;
  margin: 40px 0; }
  @media screen and (max-width: 767px) {
    .completeOrderDetails > h2 {
      margin: 24px 0;
      font-size: 1rem; } }

.completeOrderDetails .orderDetails {
  border: none;
  padding: 0; }

.completeOrderQRCode {
  background-color: #F5F5F5;
  border-radius: 24px;
  padding: 40px 0;
  margin: 40px 0 0;
  text-align: center; }
  @media screen and (max-width: 450px) {
    .completeOrderQRCode {
      margin: 24px 0 0; } }
  .completeOrderQRCode img {
    max-width: 144px;
    margin: 0 auto; }
  .completeOrderQRCode p {
    text-align: center;
    font-size: 0.875rem;
    color: #231815AB; }
  .completeOrderQRCode strong {
    font-weight: bold;
    font-size: 1rem;
    color: #231815; }

/* ─────────────────────────────────────────────────────────────
 工具：Figma px → mm（A4 寬 1240px 基準）
 ───────────────────────────────────────────────────────────── */
/*  @page 會影響整站列印；請確保這份 CSS 只載入於列印頁 */
@page {
  size: A4;
  margin: 13.54839mm; }

/* ─────────────────────────────────────────────────────────────
   共用：只在列印頁生效（避免影響其他頁）
   ───────────────────────────────────────────────────────────── */
body.printOrderPage {
  /* 版心容器（螢幕＋列印共用尺寸，單位以 mm/px2mm 為準） */
  /* Top logo 置中 */
  /* 文件標題 */
  /* 區塊標題與間距 */
  /* 訂購內容 與 QR 同行 */
  /* 訂購內容：兩欄；每個 infoItem 上下排列 */
  /* QR 區塊（依你目前設計較大） */
  /* 付款明細表：Grid，避免 colgroup 截字 */
  /* 總計 */
  /* 聯絡資料：左右欄 */
  /* 展演資訊 */ }
  body.printOrderPage .printContainer {
    width: 210mm;
    min-height: 297mm;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    /* 螢幕預覽階段：內距（48/80） */
    padding: 8.12903mm 13.54839mm;
    background: #fff !important;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    letter-spacing: 1px; }
  body.printOrderPage .printHeader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  body.printOrderPage .brandLogo {
    width: 29.12903mm;
    margin-bottom: 10.16129mm; }
  body.printOrderPage .documentTitle {
    font-size: 6.09677mm;
    font-weight: 400;
    margin-bottom: 4.74194mm; }
  body.printOrderPage .contentSection {
    margin-bottom: 6.77419mm; }
  body.printOrderPage .sectionTitle {
    font-size: 5.41935mm;
    font-weight: 600;
    margin-bottom: 1.35484mm;
    line-height: 1.6; }
  body.printOrderPage .orderRow {
    display: grid;
    grid-template-columns: 1fr 30mm;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start; }
  body.printOrderPage .orderMeta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    -webkit-column-gap: 16mm;
       -moz-column-gap: 16mm;
            column-gap: 16mm;
    row-gap: 1.69355mm; }
  body.printOrderPage .infoItem {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.01613mm; }
  body.printOrderPage .infoLabel {
    font-size: 3.72581mm;
    font-weight: 400; }
  body.printOrderPage .infoValue {
    font-size: 4.40323mm;
    font-weight: 600; }
  body.printOrderPage .accent {
    color: #83176C; }
  body.printOrderPage .qrBox {
    width: 25.40323mm;
    height: 25.40323mm;
    border: 1px solid #231815;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    overflow: hidden;
    margin-left: 1.69355mm; }
  body.printOrderPage .qrBox img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    display: block; }
  body.printOrderPage .billingTable {
    font-size: 3.72581mm; }
  body.printOrderPage .tableHead,
  body.printOrderPage .tableRow {
    display: grid;
    grid-template-columns: 1fr 20mm 28mm;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    font-size: 4.40323mm;
    padding: 1.8629mm 0;
    color: #231815; }
  body.printOrderPage .tableHead {
    border-bottom: 0.6mm solid #231815AB;
    font-weight: 600;
    color: #231815; }
  body.printOrderPage .tableRow {
    border-bottom: 1px solid #231815AB; }
    body.printOrderPage .tableRow:last-of-type {
      border-bottom: 1px solid transparent; }
  body.printOrderPage .cellQty,
  body.printOrderPage .cellPrice {
    text-align: right; }
  body.printOrderPage .tableFoot {
    display: grid;
    grid-template-columns: 1fr 20mm 28mm;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding-top: 1.8629mm;
    font-weight: 600;
    font-size: 4.74194mm;
    border-top: 0.6mm solid #231815; }
  body.printOrderPage .footLabel {
    grid-column: 1 / 2;
    text-align: left;
    color: #231815; }
  body.printOrderPage .footValue {
    grid-column: 3 / 4;
    text-align: right; }
  body.printOrderPage .contactGrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16mm; }
  body.printOrderPage .contactLeft,
  body.printOrderPage .contactRight {
    display: grid;
    font-size: 4.40323mm; }
    body.printOrderPage .contactLeft > div,
    body.printOrderPage .contactRight > div {
      margin-bottom: 1.69355mm; }
  body.printOrderPage .contactRight {
    justify-items: end;
    text-align: right;
    font-weight: 600; }
  body.printOrderPage .performanceDesc,
  body.printOrderPage .bulletList {
    font-size: 3.72581mm;
    color: #231815; }
  body.printOrderPage .bulletList {
    list-style: none; }
  body.printOrderPage .bulletItem {
    position: relative;
    padding-left: 4.74194mm; }
    body.printOrderPage .bulletItem::before {
      content: "◎";
      position: absolute;
      left: 0;
      top: 0; }

@media screen {
  body.printOrderPage {
    /* 預覽環境（只在這頁） */
    background: #f4f5f7;
    padding: 24px;
    /* Figma 1:1 視覺縮放 */
    --figma-ppi: 150;
    /* 1240px 寬 ≈ 150 PPI；若改 2480px 改為 300 */
    --css-ppi: 96;
    --preview-scale: calc(var(--figma-ppi) / var(--css-ppi));
    /* 1.5625 */
    /* 新增：預覽縮放倍率（只影響螢幕預覽，不影響列印） */
    --ui-zoom: 0.7;
    /* 內層做 scale；陰影交給外框 */ }
    body.printOrderPage .printPreviewFrame {
      /* 外框自身也要跟著縮，避免出現多餘空白或捲軸 */
      width: calc(210mm * var(--preview-scale) * var(--ui-zoom));
      min-height: calc(297mm * var(--preview-scale) * var(--ui-zoom));
      margin: 0 auto 24px;
      background: #fff;
      -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.12);
              box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.12);
      position: relative; }
    body.printOrderPage .printPreviewFrame .printContainer {
      position: absolute;
      top: 0;
      left: 0;
      /* 內層實際縮放：原本 preview-scale 再乘 UI 縮放 */
      -webkit-transform: scale(calc(var(--preview-scale) * var(--ui-zoom)));
          -ms-transform: scale(calc(var(--preview-scale) * var(--ui-zoom)));
              transform: scale(calc(var(--preview-scale) * var(--ui-zoom)));
      -webkit-transform-origin: top left;
          -ms-transform-origin: top left;
              transform-origin: top left;
      margin: 0;
      -webkit-box-shadow: none;
              box-shadow: none; } }

/* ─────────────────────────────────────────────────────────────
   列印：固定每頁邊界、避免切頁、去除預覽 transform、關閉整頁背景
   ───────────────────────────────────────────────────────────── */
@media print {
  /* 關閉整頁（與常見 wrapper）的背景與陰影，並解除 vh 限制 */
  html,
  body,
  .printPreviewFrame,
  #app,
  .siteWrapper,
  .layout,
  .page {
    background: #fff !important;
    background-image: none !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important; }
  /* 只對內容區開啟顏色/背景的精準列印（不要用全域 *） */
  body.printOrderPage .printContainer,
  body.printOrderPage .printContainer * {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact; }
  body.printOrderPage {
    background: #fff !important; }
  /* 每頁都 80px 紙邊距 → 避免第一頁雙重邊界：清掉容器 padding */
  body.printOrderPage .printContainer {
    padding: 0;
    -webkit-box-shadow: none;
            box-shadow: none; }
  body.printOrderPage .pageBreak {
    page-break-before: always; }
  /* 還原螢幕預覽的定位與縮放 */
  body.printOrderPage .printPreviewFrame {
    width: auto;
    min-height: auto;
    margin: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
    position: static; }
  body.printOrderPage .printPreviewFrame .printContainer {
    position: static;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    -webkit-transform-origin: initial;
        -ms-transform-origin: initial;
            transform-origin: initial; } }

/* iOS Safari：關閉文字自動放大，避免 transform + mm 造成反覆縮放 */
body.printOrderPage,
body.printOrderPage .printContainer,
body.printOrderPage .printContainer * {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
   -ms-text-size-adjust: 100%;
       text-size-adjust: 100%; }

.latestAnnouncementContainer {
  margin-bottom: 80px; }
  @media screen and (max-width: 768px) {
    .latestAnnouncementContainer {
      margin-bottom: 40px; } }
  @media screen and (max-width: 450px) {
    .latestAnnouncementContainer {
      margin-bottom: 0; } }

.latestAnnouncementList li {
  color: #231815;
  border-bottom: 1px solid #2318153D;
  padding: 24px 0 24px; }
  .latestAnnouncementList li:first-of-type {
    padding: 0 0 24px; }
  @media screen and (max-width: 450px) {
    .latestAnnouncementList li {
      padding: 24px 0; } }

.latestAnnouncementTitle {
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 16px; }
  @media screen and (max-width: 450px) {
    .latestAnnouncementTitle {
      font-size: 1.25rem; } }

.latestAnnouncementDate {
  font-size: 0.875rem;
  font-weight: 400;
  color: #231815AB;
  margin-bottom: 4px; }

.latestAnnouncementTag {
  color: #95137c;
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 4px; }

.latestAnnouncementText {
  font-size: 1rem;
  line-height: 1.6; }
  .latestAnnouncementText img {
    display: block;
    margin: 16px 0; }

.aboutUsTopPic {
  aspect-ratio: 1440/324; }
  @media screen and (max-width: 768px) {
    .aboutUsTopPic {
      aspect-ratio: 375/168; } }
  .aboutUsTopPic img {
    -o-object-fit: cover;
       object-fit: cover;
    width: 100%;
    height: 100%;
    -o-object-position: center top;
       object-position: center top; }

.aboutUsArticle2 .aboutUsToBuyBtn {
  padding: 15px 21px;
  text-decoration: none;
  color: #231815;
  font-size: 1rem; }
  .aboutUsArticle2 .aboutUsToBuyBtn:hover {
    color: #e2cca6; }

.aboutUsDownloadArea {
  margin: 88px 0 40px; }
  @media screen and (max-width: 767px) {
    .aboutUsDownloadArea {
      margin: 64px 0 148px; } }
  .aboutUsDownloadArea h2 {
    font-size: 1.5rem;
    margin-bottom: 8px;
    font-weight: 600; }
  .aboutUsDownloadArea li {
    border-bottom: 1px solid #2318153D; }
    .aboutUsDownloadArea li a {
      color: #231815;
      padding: 16px 8px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between; }
      .aboutUsDownloadArea li a:hover .fileIcon {
        background-image: url(../../assets/images/component/icon/downloadHover.svg); }
  .aboutUsDownloadArea .fileName {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    margin-right: 10px;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }
    .aboutUsDownloadArea .fileName i {
      display: inline-block;
      margin-top: 3px; }
    .aboutUsDownloadArea .fileName p {
      margin-left: 8px; }
  .aboutUsDownloadArea .fileIcon {
    background-image: url(../../assets/images/component/icon/download.svg);
    width: 28px;
    aspect-ratio: 1/1;
    background-size: contain;
    background-repeat: no-repeat; }

.toAnotherIntroBtn {
  position: relative;
  border: 1px solid #231815AB;
  padding: 4px;
  aspect-ratio: 654/180;
  margin: 172px 0 0; }
  @media screen and (max-width: 767px) {
    .toAnotherIntroBtn {
      aspect-ratio: 343/148; } }
  .toAnotherIntroBtn::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 100%;
    height: 108px;
    width: 1px;
    background-color: #231815AB; }
  .toAnotherIntroBtn a {
    display: block;
    height: 100%;
    position: relative; }
    .toAnotherIntroBtn a::after {
      content: "";
      width: 100%;
      height: 100%;
      position: absolute;
      left: 0;
      top: 0;
      background-color: #00000050;
      z-index: 1; }
    .toAnotherIntroBtn a:hover::after {
      background-color: #00000035; }
  .toAnotherIntroBtn .toAnotherIntroBtnImg {
    width: 100%;
    height: 100%; }
    .toAnotherIntroBtn .toAnotherIntroBtnImg img {
      -o-object-fit: cover;
         object-fit: cover;
      width: 100%;
      height: 100%; }
  .toAnotherIntroBtn p {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 20px;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    font-size: 1.25rem;
    font-weight: 400;
    color: #fff;
    z-index: 2; }
    @media screen and (max-width: 450px) {
      .toAnotherIntroBtn p {
        font-size: 1rem; } }

.FAQTypeBtns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-bottom: 88px; }
  @media screen and (max-width: 1024px) {
    .FAQTypeBtns {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; } }
  @media screen and (max-width: 767px) {
    .FAQTypeBtns {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      margin-bottom: 40px; } }
  .FAQTypeBtns li {
    margin-right: 64px; }
    .FAQTypeBtns li:last-of-type {
      margin-right: 0; }
      @media screen and (max-width: 767px) {
        .FAQTypeBtns li:last-of-type {
          margin-bottom: 0px; } }
    @media screen and (max-width: 767px) {
      .FAQTypeBtns li {
        margin-right: 0px;
        margin-bottom: 25px;
        width: auto; } }
  .FAQTypeBtns a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .FAQTypeBtns a:hover .FAQTypeNameIcon i {
      -webkit-transform: translateY(3px);
          -ms-transform: translateY(3px);
              transform: translateY(3px); }

.FAQTypeName {
  display: inline-block;
  font-size: 1rem;
  margin-right: 8px;
  color: #231815; }

.FAQTypeNameIcon {
  color: #83176C;
  width: 20px;
  height: 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-radius: 50%;
  border: 1.25px solid #83176C;
  padding-left: 2px;
  -ms-flex-negative: 0;
      flex-shrink: 0; }
  @media screen and (max-width: 450px) {
    .FAQTypeNameIcon {
      width: 16px;
      height: 16px;
      padding-left: 0; } }
  .FAQTypeNameIcon i {
    font-size: 10px; }
    @media screen and (max-width: 450px) {
      .FAQTypeNameIcon i {
        font-size: 8px; } }

.FAQListArea {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  scroll-margin-top: var(--header-h);
  margin-bottom: 64px; }
  @media screen and (max-width: 767px) {
    .FAQListArea {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      margin-bottom: 40px; } }

.FAQListAreaName {
  font-weight: 600;
  font-size: 1.25rem;
  width: 24%;
  margin-right: 16px; }
  @media screen and (max-width: 767px) {
    .FAQListAreaName {
      width: 100%;
      margin-bottom: 24px;
      margin-right: 0; } }
  @media screen and (max-width: 450px) {
    .FAQListAreaName {
      font-size: 1.125rem; } }

.FAQList {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }
  .FAQList li {
    position: relative;
    padding-bottom: 24px;
    margin-bottom: 24px;
    cursor: pointer;
    contain: paint; }
    .FAQList li::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 1px;
      background: #231815AB;
      -webkit-transform: translateZ(0);
              transform: translateZ(0);
      will-change: transform; }
    .FAQList li:last-of-type {
      margin-bottom: 0; }
    .FAQList li.is-open .questionRowArrow i {
      -webkit-transform: rotate(180deg);
          -ms-transform: rotate(180deg);
              transform: rotate(180deg); }

.questionRow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  font-size: 1.125rem;
  font-weight: 600; }
  @media screen and (max-width: 450px) {
    .questionRow {
      font-size: 1rem; } }

.questionRowLeft {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding: 0 18px 0 0; }
  .questionRowLeft span {
    display: inline-block;
    margin-right: 16px;
    color: #95137c; }

.questionRowArrow {
  color: #83176C; }

.answerRow {
  overflow: hidden;
  height: 0;
  opacity: 0;
  -webkit-transition: height 0.28s ease, opacity 0.2s ease;
  -o-transition: height 0.28s ease, opacity 0.2s ease;
  transition: height 0.28s ease, opacity 0.2s ease;
  will-change: height, opacity; }
  .answerRow .answerRowInner {
    padding: 16px calc(18px + 20px) 0 calc(18px + 14px); }
    @media screen and (max-width: 450px) {
      .answerRow .answerRowInner {
        padding: 14px calc(18px + 20px) 0 calc(18px + 14px); } }
    .answerRow .answerRowInner p {
      font-size: 1rem; }
      @media screen and (max-width: 450px) {
        .answerRow .answerRowInner p {
          font-size: 0.875rem; } }

.FAQList li.is-open .answerRow {
  opacity: 1; }

.privacyPolicyContainer {
  max-width: 654px;
  margin: 0 auto;
  width: 92%; }

.trafficMap {
  aspect-ratio: 874/498;
  margin-bottom: 64px;
  border: 1px solid #2318153D; }
  @media screen and (max-width: 767px) {
    .trafficMap {
      margin-bottom: 40px; } }
  .trafficMap iframe {
    width: 100%;
    height: 100%; }

.trafficTitle {
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1.6;
  margin-bottom: 4px;
  text-align: center; }
  @media screen and (max-width: 450px) {
    .trafficTitle {
      font-size: 1.125rem; } }

.trafficText {
  text-align: center;
  margin-bottom: 64px;
  color: #231815; }

.trafficAddress {
  font-size: 1rem; }
  @media screen and (max-width: 450px) {
    .trafficAddress {
      font-size: 0.875rem; } }

.transportationMethodsArea {
  color: #231815; }
  .transportationMethodsArea .trafficTitle {
    margin-bottom: 28px; }
    @media screen and (max-width: 450px) {
      .transportationMethodsArea .trafficTitle {
        margin-bottom: 8px; } }

.transportationMethodsTitle {
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.6;
  margin-bottom: 8px;
  position: relative;
  padding-left: 1.125rem; }
  @media screen and (max-width: 450px) {
    .transportationMethodsTitle {
      font-size: 1rem;
      padding-left: 1rem; } }
  .transportationMethodsTitle::before {
    content: "";
    width: 8px;
    height: 8px;
    background-color: #ad2324;
    position: absolute;
    top: 50%;
    left: 0;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }

.transportationMethodsTable {
  border-radius: 4px;
  border: 1px solid #231815AB;
  overflow: hidden;
  color: #231815;
  margin-bottom: 64px; }
  @media screen and (max-width: 450px) {
    .transportationMethodsTable {
      margin-bottom: 40px; } }
  .transportationMethodsTable:last-of-type {
    margin-bottom: 0; }

.transportationMethodsTableRow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  border-bottom: 1px solid #231815AB; }
  .transportationMethodsTableRow:last-of-type {
    border-bottom: none; }
  @media screen and (max-width: 767px) {
    .transportationMethodsTableRow {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; } }

.transportationMethodsTableHead {
  padding: 24px 16px;
  width: 200px;
  background-color: #efefef;
  border-right: 1px solid #231815AB;
  font-weight: 600;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  @media screen and (max-width: 767px) {
    .transportationMethodsTableHead {
      width: 100%;
      border-right: none;
      border-bottom: 1px solid #231815AB; } }
  @media screen and (max-width: 450px) {
    .transportationMethodsTableHead {
      font-size: 0.875rem; } }

.transportationMethodsTableBody {
  padding: 24px 16px;
  background-color: #f8f8f8;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  font-size: 1rem;
  line-height: 1.6; }
  @media screen and (max-width: 450px) {
    .transportationMethodsTableBody {
      font-size: 0.875rem; } }

.transportationMethodsMRTLine {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 4px; }

.transportationMethodsEach {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0 16px 4px 0; }

.MRTColor {
  font-size: 12px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  margin-right: 4px;
  padding-left: 1px;
  margin-top: -1px; }

.MRTColorRed {
  background-color: #e3002c;
  color: #fff; }

.MRTColorOrange {
  background-color: #f8b61c;
  color: #3c3325;
  font-weight: 500; }

.transportationMethodsTableBody:has(.busList) {
  padding-bottom: 16px; }
  @media screen and (max-width: 450px) {
    .transportationMethodsTableBody:has(.busList) {
      padding: 16px 16px 8px; } }

.busNumber {
  border: 1px solid #2318153D;
  border-radius: 4px;
  background-color: #fff;
  padding: 4px 8px;
  margin: 0 8px 8px 0;
  display: inline-block;
  text-decoration: none;
  color: #231815; }

.contactUsContainer {
  border: 1px solid #2318153D;
  background-color: #fff;
  margin: 64px auto;
  border-radius: 8px; }
  @media screen and (max-width: 767px) {
    .contactUsContainer {
      margin: 48px auto; } }

.dialogBoxTitle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 16px 24px;
  border-bottom: 1px solid #2318153D; }

.dialogBoxTitlePic {
  width: 40px;
  aspect-ratio: 1/1;
  border-radius: 50%;
  overflow: hidden;
  margin-right: 12px; }
  .dialogBoxTitlePic img {
    -o-object-fit: cover;
       object-fit: cover;
    width: 100%;
    height: 100%; }

.dialogBoxName {
  font-weight: 600;
  font-size: 1rem; }

.conversationContent {
  height: 577px;
  overflow-y: auto;
  padding: 24px; }

.conversationTimedivider {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: #2318153D;
  font-size: 0.75rem;
  margin-bottom: 24px; }
  .conversationTimedivider::before, .conversationTimedivider::after {
    content: "";
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    border-bottom: 1px solid #2318153D; }
  .conversationTimedivider span {
    margin: 0 16px;
    white-space: nowrap; }

.conversationEachWrap {
  max-width: 70%;
  margin-bottom: 24px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  @media screen and (max-width: 767px) {
    .conversationEachWrap {
      max-width: 80%; } }

.conversationEach {
  padding: 12px 16px;
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 4px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content; }
  @media screen and (max-width: 450px) {
    .conversationEach {
      font-size: 0.875rem; } }

.conversationUser {
  margin-right: 0;
  margin-left: auto;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: end; }
  .conversationUser .conversationEach {
    background-color: #83176C;
    color: #fff;
    border-radius: 8px 8px 0 8px; }
  .conversationUser .conversationEachTime {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }

.conversationOfficial {
  margin-right: auto;
  margin-left: 0; }
  .conversationOfficial .conversationEach {
    color: #231815;
    background-color: #f8f8f8;
    border-radius: 0px 8px 8px 8px; }

.conversationEachTime {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-size: 0.75rem;
  color: #231815AB; }

.conversationTypeingArea {
  height: 58px;
  padding: 16px 24px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-top: 1px solid #231815AB; }
  .conversationTypeingArea.disable {
    background-color: #2318150f; }
    .conversationTypeingArea.disable textarea {
      pointer-events: none; }
    .conversationTypeingArea.disable .conversationSendTextBtn {
      cursor: default; }
      .conversationTypeingArea.disable .conversationSendTextBtn:hover svg {
        fill: #2318153D; }
  .conversationTypeingArea:not(.disable):has(textarea:placeholder-shown) .conversationSendTextBtn {
    pointer-events: none;
    cursor: default; }
    .conversationTypeingArea:not(.disable):has(textarea:placeholder-shown) .conversationSendTextBtn:hover svg {
      fill: #2318153D; }
  .conversationTypeingArea:not(.disable):has(textarea:not(:placeholder-shown)) .conversationSendTextBtn {
    pointer-events: auto;
    cursor: pointer; }
    .conversationTypeingArea:not(.disable):has(textarea:not(:placeholder-shown)) .conversationSendTextBtn svg {
      fill: #83176C; }
    .conversationTypeingArea:not(.disable):has(textarea:not(:placeholder-shown)) .conversationSendTextBtn:hover svg {
      fill: #AD2324; }

.conversationTypingFieldBox {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  height: 100%; }
  .conversationTypingFieldBox textarea {
    width: 100%;
    height: 100%;
    border: none;
    outline: none;
    resize: none;
    font-size: 1rem;
    line-height: 1.6;
    color: #231815;
    padding: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    overflow: auto;
    background-color: transparent; }
    .conversationTypingFieldBox textarea:not(:placeholder-shown) {
      overflow: auto;
      scrollbar-gutter: stable; }
    .conversationTypingFieldBox textarea:placeholder-shown {
      overflow: hidden;
      scrollbar-width: none; }
    .conversationTypingFieldBox textarea:placeholder-shown::-webkit-scrollbar {
      display: none; }
    .conversationTypingFieldBox textarea::-webkit-input-placeholder {
      color: #2318153D; }
    .conversationTypingFieldBox textarea::-moz-placeholder {
      color: #2318153D; }
    .conversationTypingFieldBox textarea:-ms-input-placeholder {
      color: #2318153D; }
    .conversationTypingFieldBox textarea::-ms-input-placeholder {
      color: #2318153D; }
    .conversationTypingFieldBox textarea::placeholder {
      color: #2318153D; }

.conversationSendTextBtn {
  width: 24px;
  height: 24px;
  cursor: pointer;
  -webkit-transition: none;
  -o-transition: none;
  transition: none; }
  .conversationSendTextBtn svg {
    -o-object-fit: cover;
       object-fit: cover;
    width: 100%;
    height: 100%;
    fill: #2318153D; }
  .conversationSendTextBtn:hover svg {
    fill: #83176C; }
  .conversationSendTextBtn:disabled {
    cursor: default; }

.frontDeskActivitiesList {
  width: 95%;
  max-width: 1098px;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .frontDeskActivitiesList li {
    width: calc(33.3333% - 27px);
    margin-right: 40px;
    margin-bottom: 64px; }
    @media screen and (max-width: 768px) {
      .frontDeskActivitiesList li {
        width: calc(50% - 20px);
        margin-bottom: 50px; } }
    @media screen and (max-width: 450px) {
      .frontDeskActivitiesList li {
        width: 100%;
        margin-right: 0;
        margin-bottom: 40px; } }
    .frontDeskActivitiesList li:nth-of-type(3n) {
      margin-right: 0; }
      @media screen and (max-width: 768px) {
        .frontDeskActivitiesList li:nth-of-type(3n) {
          margin-right: 40px; } }
      @media screen and (max-width: 450px) {
        .frontDeskActivitiesList li:nth-of-type(3n) {
          margin-right: 0; } }
    @media screen and (max-width: 768px) {
      .frontDeskActivitiesList li:nth-of-type(2n) {
        margin-right: 0px; } }
  .frontDeskActivitiesList a {
    display: block;
    color: #231815; }
    .frontDeskActivitiesList a:hover .frontDeskActivitieEachPic::after {
      opacity: 1; }
    .frontDeskActivitiesList a:hover img {
      -webkit-transform: scale(1.2);
          -ms-transform: scale(1.2);
              transform: scale(1.2); }
  .frontDeskActivitiesList .frontDeskActivitieEachPic {
    margin-bottom: 12px;
    aspect-ratio: 340/226;
    position: relative;
    overflow: hidden; }
    .frontDeskActivitiesList .frontDeskActivitieEachPic::after {
      width: 100%;
      height: 100%;
      background-color: #00000040;
      content: "";
      top: 0;
      left: 0;
      position: absolute;
      opacity: 0;
      -webkit-transition: 0.5s;
      -o-transition: 0.5s;
      transition: 0.5s; }
    .frontDeskActivitiesList .frontDeskActivitieEachPic img {
      -o-object-fit: cover;
         object-fit: cover;
      width: 100%;
      height: 100%;
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
  .frontDeskActivitiesList .frontDeskActivitieEachName {
    font-weight: 500;
    font-size: 1.25rem; }

.frontDeskActivitiesInnerContainer {
  max-width: 874px;
  margin: 0 auto;
  width: 90%; }

.artifact-image {
  margin-bottom: 40px; }
  @media screen and (max-width: 767px) {
    .artifact-image {
      margin-bottom: 24px; } }

/*# sourceMappingURL=all.css.map */
