@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Gilda+Display&family=Judson:wght@400;700&family=Noto+Serif+TC:wght@400;600;700&family=Noto+Sans+TC:wght@400&family=Dancing+Script:wght@400..700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200");
@import url("icofont/icofont.min.css");
@import url("animate.custom.css");
/*===mixin===*/
/*===variable===*/
/*===CSS===*/
:root {
  --base-context: 16px;
  --base-vw: 1500px;
  --base-vh: 700px;
  --base-margin: 7vw;
  --base-margin-max: 100px;
  --base-margin-vmin: 7vmin;
  --nav-size: min(max(3.125vw, 35px), 50px);
  --color-primary: #e0a765;
  --color-light: #ccc;
  --color-dark: #000;
  --color-gray: #999;
  --color-gray-dark: #666;
  --color-gray-md: rgba(119, 119, 119, 0.35);
  --color-white: #fff;
  --color-black: #000;
  --animate-duration: .7s;
  --animate-delay: .3s;
  --animate-interval: .1s;
  --animate-distance: 1.5vw;
  --animate-distance-2: -1.5vw;
}

@media (max-width: 991px) {
  :root {
    --base-margin-vmin: 6vmin;
    --base-margin: 6vw;
  }
}
@media (orientation: portrait) {
  :root {
    --base-margin-vmin: 5vmin;
  }
}
/*===reset===*/
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, select, p, blockquote, th, td, iframe, figure, figcaption {
  margin: 0;
  padding: 0;
  font-size: 100%;
}

article, aside, audio, canvas, command, datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, meter, nav, output, construction, section, source, video, main {
  display: block;
}

table, table td {
  border-collapse: collapse;
  border-spacing: 0;
  border: none;
}

fieldset, img {
  border: 0;
  vertical-align: bottom;
}

address, caption, cite, code, dfn, em, strong, th, var, optgroup {
  font-style: inherit;
  font-weight: inherit;
}

a, del, ins {
  text-decoration: none;
}

ol, li {
  list-style: none;
}

caption, th {
  text-align: left;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
}

blockquote, q {
  quotes: none;
}

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

abbr, acronym {
  border: 0;
  font-variant: normal;
}

sup, sub {
  vertical-align: baseline;
}

input, button, textarea, select, optgroup, option {
  font-family: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  outline: 0;
  border: 0;
  border-radius: 0;
}

:lang(en) {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}

button {
  background-color: transparent;
  cursor: pointer;
  text-align: left;
}

a[href=""], a:not([href]) {
  pointer-events: none;
}

/*===base===*/
body, html {
  height: 100%;
  min-height: 100%;
}

body, textarea, div, .scroll-style {
  --scrollbar-size: 10px;
}
body::-webkit-scrollbar, textarea::-webkit-scrollbar, div::-webkit-scrollbar, .scroll-style::-webkit-scrollbar {
  width: var(--scrollbar-size);
  height: var(--scrollbar-size);
}
body::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, div::-webkit-scrollbar-thumb, .scroll-style::-webkit-scrollbar-thumb {
  background: var(--color-gray-dark);
  border-radius: 5px;
}
body::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, div::-webkit-scrollbar-track, .scroll-style::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.1);
}

body {
  word-wrap: break-word;
  overflow-x: hidden;
}

#main {
  position: relative;
}

#footer {
  position: relative;
  z-index: 9;
  margin-top: auto;
}

*:disabled, .disabled {
  pointer-events: none;
}

strong {
  font-weight: bold;
}

em, i {
  font-style: normal;
}

em {
  display: block;
}

big, .text-big {
  font-size: 1.125em;
}

small, .text-small {
  font-size: 0.875em;
}

h1, h2, h3, h4, h5, h6, strong, em, big, small, b {
  white-space: pre-line;
}
h1:empty, h2:empty, h3:empty, h4:empty, h5:empty, h6:empty, strong:empty, em:empty, big:empty, small:empty, b:empty {
  padding: 0;
  margin: 0;
}

p:empty {
  padding: 0;
  margin: 0;
}

p span, h1 span, h2 span, h3 span, li span, b span, em span, .inline-br {
  display: inline-block;
}

/*===animate===*/
a {
  -webkit-transition: 300ms ease-out;
  transition: 300ms ease-out;
  -webkit-transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
}
a:before, a:after, a i, a b {
  -webkit-transition: 300ms ease-out;
  transition: 300ms ease-out;
  -webkit-transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
}

mark, .swiper-button-next, .swiper-button-prev, .swiper-pagination-bullet, .transition-hover, .news-list > * {
  -webkit-transition: 300ms ease-out;
  transition: 300ms ease-out;
  -webkit-transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
}

.nav-box em, .nav-box strong, .nav-box li div {
  -webkit-transition: 300ms ease-out;
  transition: 300ms ease-out;
  -webkit-transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
}

a:hover, a.active {
  -webkit-transition-delay: 0s !important;
          transition-delay: 0s !important;
  -webkit-animation-delay: 0s !important;
          animation-delay: 0s !important;
}

.transition, .share-button, .transition-base, .slider-list .swiper-slide .text-box, #nav ul li em, #nav ul li strong, #nav {
  -webkit-transition-duration: var(--animate-duration);
          transition-duration: var(--animate-duration);
  -webkit-transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
}

.transition-group > * {
  -webkit-transition-duration: var(--animate-duration);
          transition-duration: var(--animate-duration);
  -webkit-transition-property: opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: opacity, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
  transition-property: opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: opacity, box-shadow, transform, filter, backdrop-filter, -webkit-box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
}

.transition-all {
  -webkit-transition: all 300ms ease-out;
  transition: all 300ms ease-out;
}

.transition-none {
  -webkit-transition: none !important;
  transition: none !important;
}

.animate-none {
  -webkit-animation: none !important;
          animation: none !important;
}

.transform-none {
  -webkit-transform: none !important;
          transform: none !important;
}

.pause {
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}

.running {
  -webkit-animation-play-state: running;
          animation-play-state: running;
}

.delay-0 {
  -webkit-transition-delay: 0s !important;
          transition-delay: 0s !important;
  -webkit-animation-delay: 0s !important;
          animation-delay: 0s !important;
}

.transition.delay-1, .delay-1.share-button {
  -webkit-transition-delay: var(--animate-delay);
          transition-delay: var(--animate-delay);
}
.transition.delay-2, .delay-2.share-button {
  -webkit-transition-delay: calc(var(--animate-delay) * 2);
          transition-delay: calc(var(--animate-delay) * 2);
}
.transition.delay-3, .delay-3.share-button {
  -webkit-transition-delay: calc(var(--animate-delay) * 3);
          transition-delay: calc(var(--animate-delay) * 3);
}
.transition.delay-4, .delay-4.share-button {
  -webkit-transition-delay: calc(var(--animate-delay) * 4);
          transition-delay: calc(var(--animate-delay) * 4);
}
.transition.delay-5, .delay-5.share-button {
  -webkit-transition-delay: calc(var(--animate-delay) * 5);
          transition-delay: calc(var(--animate-delay) * 5);
}
.transition.faster, .faster.share-button {
  -webkit-transition-duration: calc(var(--animate-duration) / 2);
          transition-duration: calc(var(--animate-duration) / 2);
}
.transition.fast, .fast.share-button {
  -webkit-transition-duration: calc(var(--animate-duration) * 0.8);
          transition-duration: calc(var(--animate-duration) * 0.8);
}
.transition.slow, .slow.share-button {
  -webkit-transition-duration: calc(var(--animate-duration) * 2);
          transition-duration: calc(var(--animate-duration) * 2);
}
.transition.slower, .slower.share-button {
  -webkit-transition-duration: calc(var(--animate-duration) * 6);
          transition-duration: calc(var(--animate-duration) * 6);
}

.transition-group > :nth-child(1n) {
  -webkit-transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 1);
          transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 1);
}

.transition-group > :nth-child(2n) {
  -webkit-transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 2);
          transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 2);
}

.transition-group > :nth-child(3n) {
  -webkit-transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 3);
          transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 3);
}

.transition-group > :nth-child(4n) {
  -webkit-transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 4);
          transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 4);
}

.transition-group > :nth-child(5n) {
  -webkit-transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 5);
          transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 5);
}

.transition-group > :nth-child(6n) {
  -webkit-transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 6);
          transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 6);
}

.transition-group > :nth-child(7n) {
  -webkit-transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 7);
          transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 7);
}

.transition-group > :nth-child(8n) {
  -webkit-transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 8);
          transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 8);
}

.transition-group > :nth-child(9n) {
  -webkit-transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 9);
          transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 9);
}

.transition-group > :nth-child(10n) {
  -webkit-transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 10);
          transition-delay: calc(var(--animate-delay) + var(--animate-interval) * 10);
}

.transition-group.transition-rewind:not(.active) > :nth-child(1n) {
  -webkit-transition-delay: calc(var(--animate-interval) * 9);
          transition-delay: calc(var(--animate-interval) * 9);
}

.transition-group.transition-rewind:not(.active) > :nth-child(2n) {
  -webkit-transition-delay: calc(var(--animate-interval) * 8);
          transition-delay: calc(var(--animate-interval) * 8);
}

.transition-group.transition-rewind:not(.active) > :nth-child(3n) {
  -webkit-transition-delay: calc(var(--animate-interval) * 7);
          transition-delay: calc(var(--animate-interval) * 7);
}

.transition-group.transition-rewind:not(.active) > :nth-child(4n) {
  -webkit-transition-delay: calc(var(--animate-interval) * 6);
          transition-delay: calc(var(--animate-interval) * 6);
}

.transition-group.transition-rewind:not(.active) > :nth-child(5n) {
  -webkit-transition-delay: calc(var(--animate-interval) * 5);
          transition-delay: calc(var(--animate-interval) * 5);
}

.transition-group.transition-rewind:not(.active) > :nth-child(6n) {
  -webkit-transition-delay: calc(var(--animate-interval) * 4);
          transition-delay: calc(var(--animate-interval) * 4);
}

.transition-group.transition-rewind:not(.active) > :nth-child(7n) {
  -webkit-transition-delay: calc(var(--animate-interval) * 3);
          transition-delay: calc(var(--animate-interval) * 3);
}

.transition-group.transition-rewind:not(.active) > :nth-child(8n) {
  -webkit-transition-delay: calc(var(--animate-interval) * 2);
          transition-delay: calc(var(--animate-interval) * 2);
}

.transition-group.transition-rewind:not(.active) > :nth-child(9n) {
  -webkit-transition-delay: calc(var(--animate-interval) * 1);
          transition-delay: calc(var(--animate-interval) * 1);
}

.transition-group.transition-rewind:not(.active) > :nth-child(10n) {
  -webkit-transition-delay: calc(var(--animate-interval) * 0);
          transition-delay: calc(var(--animate-interval) * 0);
}

.delay-group-1 > * {
  --animate-delay: 1s;
}

.delay-group-2 > * {
  --animate-delay: 1.5s;
}

.delay-group-3 > * {
  --animate-delay: 2s;
}

.delay-group-4 > * {
  --animate-delay: 2.5s;
}

.swiper-slide:not(.swiper-slide-active) [class*=animated-], .swiper-slide:not(.swiper-slide-active) .infinite, .swiper-slide:not(.swiper-slide-active) .animated-group > * {
  -webkit-animation-duration: 0s !important;
          animation-duration: 0s !important;
}
.swiper-slide:not(.swiper-slide-active) a {
  -webkit-animation-duration: 0s !important;
          animation-duration: 0s !important;
}
.swiper-slide:not(.swiper-slide-active) a:before, .swiper-slide:not(.swiper-slide-active) a:after {
  -webkit-animation-duration: 0s !important;
          animation-duration: 0s !important;
}
.swiper-slide:not(.swiper-slide-active) .transition-group > *, .swiper-slide:not(.swiper-slide-active) .transition, .swiper-slide:not(.swiper-slide-active) .share-button {
  --animate-delay: 0s;
  opacity: 0;
  -webkit-transform: translate3d(0, var(--animate-distance), 0);
          transform: translate3d(0, var(--animate-distance), 0);
}
.swiper-slide:not(.swiper-slide-active) .transition-group > .hr {
  -webkit-transform: scale3d(0, 1, 1);
          transform: scale3d(0, 1, 1);
}
.swiper-slide:not(.swiper-slide-active) .transition-group.letter-effect > span {
  opacity: 0;
  -webkit-transform: scale3d(0.7, 0.7, 0.7);
          transform: scale3d(0.7, 0.7, 0.7);
}

.animated-group > * {
  -webkit-animation-name: fadeInUp;
          animation-name: fadeInUp;
}
.animated-group > .hr {
  -webkit-animation-name: zoomInX;
          animation-name: zoomInX;
}
.animated-group.letter-effect > span {
  -webkit-animation-name: zoomIn;
          animation-name: zoomIn;
}

.letter-effect {
  white-space: pre-line;
}
.letter-effect > span {
  display: inline-block;
}

.more-box:not(.active) {
  opacity: 0;
  -webkit-transform: translate3d(-100%, 0, 0);
          transform: translate3d(-100%, 0, 0);
  pointer-events: none;
}
.more-box:not(.active) .transition-group > * {
  opacity: 0;
  -webkit-transform: translate3d(var(--animate-distance-2), 0, 0);
          transform: translate3d(var(--animate-distance-2), 0, 0);
}
.more-box.active {
  -webkit-transform: none !important;
          transform: none !important;
}

/*============load===============*/
.anim-group > *, .anim-in, .main .img-box {
  opacity: 0;
}
.fancybox-container .anim-group > *, .fancybox-container .anim-in, .fancybox-container .main .img-box {
  opacity: 1;
}

img[loading=lazy].loading {
  opacity: 0;
  -webkit-transition: opacity 1s ease-out, -webkit-transform 1s ease-out;
  transition: opacity 1s ease-out, -webkit-transform 1s ease-out;
  transition: opacity 1s ease-out, transform 1s ease-out;
  transition: opacity 1s ease-out, transform 1s ease-out, -webkit-transform 1s ease-out;
}
img[loading=lazy].loaded {
  opacity: 1;
}

/*===button===*/
.hover-brighten a:hover, a.hover-brighten:hover {
  -webkit-filter: brightness(1.3);
          filter: brightness(1.3);
}

.desktop .hover-zoom a:hover, a.hover-zoom:hover {
  -webkit-transform: scale3d(1.2, 1.2, 1);
          transform: scale3d(1.2, 1.2, 1);
}

.hover-move a:hover, a.hover-move:hover, .hover-underline a:hover {
  -webkit-transform: translate3d(2px, 2px, 0);
          transform: translate3d(2px, 2px, 0);
}

.hover-underline-overline a:before, a.hover-underline-overline:before, [class*=hover-underline] a:after, a[class*=hover-underline]:after {
  position: absolute;
  content: "";
  display: block;
  height: 1px;
  width: 100%;
  border-bottom: solid 1px;
  z-index: 1;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
}

.hover-underline-overline a:hover:before, .hover-underline-overline a.active:before, a.hover-underline-overline:hover:before, a.hover-underline-overline.active:before, [class*=hover-underline] a:hover:after, [class*=hover-underline] a.active:after, a[class*=hover-underline]:hover:after, a[class*=hover-underline].active:after {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
  opacity: 0.7;
}

[class*=hover-underline] a, a[class*=hover-underline] {
  position: relative;
  display: inline-block;
}
[class*=hover-underline] a:after, a[class*=hover-underline]:after {
  bottom: 0;
}
[class*=hover-underline].left a:before, a[class*=hover-underline]:before {
  -webkit-transform-origin: left center;
          transform-origin: left center;
}

.hover-underline-overline a:before, a.hover-underline-overline:before {
  top: 0;
}
a.button-border, .button-border a, a.button-fill, .button-fill a {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 3px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 1.13em 1.56em;
  min-width: 11.25em;
  font-weight: 700;
  overflow: hidden;
}
a.button-border:before, .button-border a:before, a.button-fill:before, .button-fill a:before {
  content: "";
  background-color: var(--color-primary);
  position: absolute;
  z-index: -1;
  top: 0;
  left: -30px;
  height: 100%;
  width: 100%;
  -webkit-transform: skew(135deg, 0) scaleX(0);
          transform: skew(135deg, 0) scaleX(0);
  -webkit-transform-origin: left center;
          transform-origin: left center;
}
a.button-border:hover:before, a.button-border.active:before, .button-border a:hover:before, .button-border a.active:before, a.button-fill:hover:before, a.button-fill.active:before, .button-fill a:hover:before, .button-fill a.active:before {
  -webkit-transform: skew(135deg, 0) scaleX(1.5);
          transform: skew(135deg, 0) scaleX(1.5);
}
a.button-border i, .button-border a i, a.button-fill i, .button-fill a i {
  font-size: 1.4em;
}
a.button-border em, .button-border a em, a.button-fill em, .button-fill a em {
  font-size: 1.2em;
}

a.button-border, .button-border a {
  border: solid 1px;
  border-radius: 5px;
  color: var(--color-primary);
}
a.button-border:hover, a.button-border.active, .button-border a:hover, .button-border a.active {
  color: var(--color-dark);
}

a.button-fill, .button-fill a {
  color: var(--color-white);
  background-color: var(--color-dark);
}
a.button-fill:before, .button-fill a:before {
  background-color: var(--color-primary);
}
a.button-fill:hover, a.button-fill.active, .button-fill a:hover, .button-fill a.active {
  color: var(--color-black);
  background-color: transparent;
}
.bg-dark a.button-fill, .bg-dark .button-fill a {
  color: var(--color-black);
  background-color: var(--color-light);
}
.bg-dark a.button-fill:before, .bg-dark .button-fill a:before {
  background-color: var(--color-primary);
}
.bg-dark a.button-fill:hover, .bg-dark a.button-fill.active, .bg-dark .button-fill a:hover, .bg-dark .button-fill a.active {
  background-color: transparent;
}

a.button-icon, .button-icon a {
  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;
  width: 3.75em;
}

.button-icon {
  font-weight: normal;
  line-height: 1.8em;
  letter-spacing: 0.15em;
  font-size: clamp(0.81em, 1.3vw, 1em);
  text-align: center;
  white-space: nowrap;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.button-icon i {
  font-size: 2em;
  margin-top: 0.1em;
}
.button-icon > * {
  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;
}
.button-icon > * > a {
  width: 100%;
}
.button-icon.row-line > li {
  width: clamp(50px, 5.6vw, 5.63em);
}

/*===container===*/
.header-box {
  position: relative;
  min-height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.header-box .title-box {
  padding-left: min(var(--base-margin), var(--base-margin-max));
  padding-right: min(var(--base-margin), var(--base-margin-max));
  padding-top: min(max(15.7vw, 130px), 235px);
  padding-bottom: min(max(4.7vw, 40px), 70px);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.header-box .img-box {
  max-height: 100vh;
}
.header-box .swiper-slide .img-box {
  height: 100%;
}
@media (max-width: 767px) {
  .header-box .title-box {
    width: auto;
  }
}
@media (max-width: 991px) {
  .header-box .bg-box {
    width: 100%;
  }
}
@media (orientation: portrait) {
  .header-box {
    margin-bottom: max(min(-8vw, -60px), -120px);
  }
  .header-box .bg-box, .header-box .img-box {
    width: 100%;
    max-height: none;
    margin-top: calc(var(--base-margin-vmin) * 2 + var(--nav-size));
  }
  .header-box .bg-box, .header-box .img-box {
    height: 60%;
    position: absolute;
    z-index: -1;
  }
  .header-box .title-box {
    width: 100%;
  }
  body[class*=-content] .header-box {
    min-height: auto;
  }
  body[class*=-content] .header-box .img-box, .header-box.slider-header .img-box {
    position: relative;
    height: 0;
    padding-bottom: max(55vh, 100%);
  }
  body[class*=-content] .header-box .img-box img, .header-box.slider-header .img-box img {
    position: absolute;
  }
  body.portfolio-content .header-box .img-box {
    padding-bottom: 66.6%;
  }
  .header-box.header-contxt {
    margin-bottom: max(min(-15.7vw, -130px), -235px);
  }
}

.title-box {
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.title-box h2 {
  padding-top: min(max(3.3vw, 25px), 50px);
  line-height: 1.5em;
  letter-spacing: 0.4em;
  margin-right: -0.4em;
}
@media (max-width: 575px) {
  .title-box h2.sm {
    letter-spacing: 0.15em;
    margin-right: -0.15em;
  }
}
@media (min-width: 1200px) {
  .title-box h2 {
    letter-spacing: 0.6em;
    margin-right: -0.6em;
  }
}
.title-box p {
  padding-top: min(max(4.7vw, 40px), 70px);
}

.container {
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding-top: min(max(15.7vw, 130px), 235px);
  padding-bottom: min(max(12vw, 80px), 180px);
  padding-left: min(var(--base-margin), var(--base-margin-max));
  padding-right: min(var(--base-margin), var(--base-margin-max));
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}
.header-box + .main .container:first-child {
  margin-top: -40px;
}
.container .w-screen {
  position: relative;
  margin-left: max(-1 * var(--base-margin), -1 * var(--base-margin-max));
}
@media (max-width: 767px) {
  .container.flex {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: min(max(6.7vw, 50px), 100px);
  }
  .container.flex > [class*=w-] {
    width: 100%;
  }
}

.container + .container {
  padding-top: 0;
}

.margin-pt-1 {
  padding-top: min(max(3.3vw, 25px), 50px);
}

.margin-pb-1 {
  padding-bottom: min(max(3.3vw, 25px), 50px);
}

.margin-mt-1 {
  margin-top: min(max(3.3vw, 25px), 50px);
}

.margin-mb-1 {
  margin-bottom: min(max(3.3vw, 25px), 50px);
}

.margin-mt--1 {
  margin-top: max(min(-3.3vw, -25px), -50px);
}

.margin-mb--1 {
  margin-bottom: max(min(-3.3vw, -25px), -50px);
}

.margin-pt-2 {
  padding-top: min(max(4.7vw, 40px), 70px);
}

.margin-pb-2 {
  padding-bottom: min(max(4.7vw, 40px), 70px);
}

.margin-mt-2 {
  margin-top: min(max(4.7vw, 40px), 70px);
}

.margin-mb-2 {
  margin-bottom: min(max(4.7vw, 40px), 70px);
}

.margin-mt--2 {
  margin-top: max(min(-4.7vw, -40px), -70px);
}

.margin-mb--2 {
  margin-bottom: max(min(-4.7vw, -40px), -70px);
}

.margin-pt-3 {
  padding-top: min(max(6.7vw, 50px), 100px);
}

.margin-pb-3 {
  padding-bottom: min(max(6.7vw, 50px), 100px);
}

.margin-mt-3 {
  margin-top: min(max(6.7vw, 50px), 100px);
}

.margin-mb-3 {
  margin-bottom: min(max(6.7vw, 50px), 100px);
}

.margin-mt--3 {
  margin-top: max(min(-6.7vw, -50px), -100px);
}

.margin-mb--3 {
  margin-bottom: max(min(-6.7vw, -50px), -100px);
}

.margin-pt-4 {
  padding-top: min(max(8vw, 60px), 120px);
}

.margin-pb-4 {
  padding-bottom: min(max(8vw, 60px), 120px);
}

.margin-mt-4 {
  margin-top: min(max(8vw, 60px), 120px);
}

.margin-mb-4 {
  margin-bottom: min(max(8vw, 60px), 120px);
}

.margin-mt--4 {
  margin-top: max(min(-8vw, -60px), -120px);
}

.margin-mb--4 {
  margin-bottom: max(min(-8vw, -60px), -120px);
}

.margin-pt-5 {
  padding-top: min(max(10vw, 70px), 150px);
}

.margin-pb-5 {
  padding-bottom: min(max(10vw, 70px), 150px);
}

.margin-mt-5 {
  margin-top: min(max(10vw, 70px), 150px);
}

.margin-mb-5 {
  margin-bottom: min(max(10vw, 70px), 150px);
}

.margin-mt--5 {
  margin-top: max(min(-10vw, -70px), -150px);
}

.margin-mb--5 {
  margin-bottom: max(min(-10vw, -70px), -150px);
}

.margin-pt-6 {
  padding-top: min(max(12vw, 80px), 180px);
}

.margin-pb-6 {
  padding-bottom: min(max(12vw, 80px), 180px);
}

.margin-mt-6 {
  margin-top: min(max(12vw, 80px), 180px);
}

.margin-mb-6 {
  margin-bottom: min(max(12vw, 80px), 180px);
}

.margin-mt--6 {
  margin-top: max(min(-12vw, -80px), -180px);
}

.margin-mb--6 {
  margin-bottom: max(min(-12vw, -80px), -180px);
}

.margin-pt-7 {
  padding-top: min(max(13.3vw, 100px), 200px);
}

.margin-pb-7 {
  padding-bottom: min(max(13.3vw, 100px), 200px);
}

.margin-mt-7 {
  margin-top: min(max(13.3vw, 100px), 200px);
}

.margin-mb-7 {
  margin-bottom: min(max(13.3vw, 100px), 200px);
}

.margin-mt--7 {
  margin-top: max(min(-13.3vw, -100px), -200px);
}

.margin-mb--7 {
  margin-bottom: max(min(-13.3vw, -100px), -200px);
}

.margin-pt-8 {
  padding-top: min(max(15.7vw, 130px), 235px);
}

.margin-pb-8 {
  padding-bottom: min(max(15.7vw, 130px), 235px);
}

.margin-mt-8 {
  margin-top: min(max(15.7vw, 130px), 235px);
}

.margin-mb-8 {
  margin-bottom: min(max(15.7vw, 130px), 235px);
}

.margin-mt--8 {
  margin-top: max(min(-15.7vw, -130px), -235px);
}

.margin-mb--8 {
  margin-bottom: max(min(-15.7vw, -130px), -235px);
}

.margin-pl {
  padding-left: min(var(--base-margin), var(--base-margin-max));
}

.margin-pr {
  padding-right: min(var(--base-margin), var(--base-margin-max));
}

.spacing-pt-1 {
  padding-top: min(max(2%, 0.31em), 0.63em);
}

.spacing-pb-1 {
  padding-bottom: min(max(2%, 0.31em), 0.63em);
}

.spacing-mt-1 {
  margin-top: min(max(2%, 0.31em), 0.63em);
}

.spacing-mb-1 {
  margin-bottom: min(max(2%, 0.31em), 0.63em);
}

.spacing-pt-2 {
  padding-top: min(max(4%, 0.63em), 1.25em);
}

.spacing-pb-2 {
  padding-bottom: min(max(4%, 0.63em), 1.25em);
}

.spacing-mt-2 {
  margin-top: min(max(4%, 0.63em), 1.25em);
}

.spacing-mb-2 {
  margin-bottom: min(max(4%, 0.63em), 1.25em);
}

.spacing-pt-3 {
  padding-top: min(max(6%, 0.94em), 1.88em);
}

.spacing-pb-3 {
  padding-bottom: min(max(6%, 0.94em), 1.88em);
}

.spacing-mt-3 {
  margin-top: min(max(6%, 0.94em), 1.88em);
}

.spacing-mb-3 {
  margin-bottom: min(max(6%, 0.94em), 1.88em);
}

.spacing-pt-4 {
  padding-top: min(max(8%, 1.56em), 2.5em);
}

.spacing-pb-4 {
  padding-bottom: min(max(8%, 1.56em), 2.5em);
}

.spacing-mt-4 {
  margin-top: min(max(8%, 1.56em), 2.5em);
}

.spacing-mb-4 {
  margin-bottom: min(max(8%, 1.56em), 2.5em);
}

.spacing-pt-5 {
  padding-top: min(max(10%, 1.88em), 3.13em);
}

.spacing-pb-5 {
  padding-bottom: min(max(10%, 1.88em), 3.13em);
}

.spacing-mt-5 {
  margin-top: min(max(10%, 1.88em), 3.13em);
}

.spacing-mb-5 {
  margin-bottom: min(max(10%, 1.88em), 3.13em);
}

.content-box {
  width: 100%;
  max-width: 1280px;
}

@media (min-width: 1400px) {
  .content-title {
    padding-right: 15.63em;
    min-height: 7.5em;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
}
.full-box {
  min-height: 100%;
  position: relative;
}

.bg-box {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  overflow: hidden;
  z-index: -1;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}
.bg-box img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}

.cover-box {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate3d(-50%, -50%, 0);
          transform: translate3d(-50%, -50%, 0);
  height: 100%;
  width: auto;
}
.cover-box img {
  height: 100%;
  width: auto;
}
.cover-box img:not(:first-child) {
  position: absolute;
  top: 0;
  left: 0;
}

.img-box {
  position: relative;
  overflow: hidden;
}
.img-box canvas, .img-box iframe {
  display: block;
  width: 100%;
  height: 100%;
}
.img-box img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
  -webkit-transition: -webkit-transform 1000ms ease-out;
  transition: -webkit-transform 1000ms ease-out;
  transition: transform 1000ms ease-out;
  transition: transform 1000ms ease-out, -webkit-transform 1000ms ease-out;
}
.img-box a {
  overflow: hidden;
}
.img-box:not(.no-anim) a:hover img, a:hover .img-box:not(.no-anim) img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}
.img-box[class*=ratio] {
  height: 0;
}
.img-box[class*=ratio] img, .img-box[class*=ratio] canvas, .img-box[class*=ratio] iframe {
  position: absolute;
  top: 0;
  left: 0;
}

.img-caption {
  position: absolute;
  bottom: 1.04vw;
  right: 1.04vw;
  color: #fff;
  z-index: 2;
  text-shadow: 0px 0px 4px rgba(0, 0, 10, 0.5);
}

.img-overlap-box {
  position: relative;
}
.img-overlap-box img:not(:first-child) {
  position: absolute;
  top: 0;
  left: 0;
}

.row-line > * {
  border-left: 1px solid var(--color-gray-md);
}
.row-line > *:first-child {
  border-left: none;
}

.col-line > * {
  border-top: 1px solid var(--color-gray-md);
}
.col-line > *:first-child {
  border-top: none;
}

.index {
  background-image: none !important;
}

.index-box {
  position: absolute;
  left: min(var(--base-margin), var(--base-margin-max));
  margin-left: min(var(--base-margin), var(--base-margin-max));
  bottom: min(var(--base-margin-vmin), var(--base-margin-max));
  text-shadow: 1px 1px 15px rgba(0, 0, 0, 0.8);
  z-index: 2;
  color: var(--color-white);
  max-width: 85%;
  padding-right: 250px;
}
.index-box h2 {
  line-height: 1.4em;
  margin-top: 0.5em;
  color: var(--color-white);
  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;
  gap: 10px;
}
@media (max-width: 399px) {
  .index-box h2 {
    font-size: 12px;
  }
}
.index-box .text-more:after {
  text-decoration: none;
  background: var(--color-white);
  color: var(--color-black);
  margin-top: 0;
  padding: 0 10px 0 5px;
  line-height: 1em;
  white-space: nowrap;
}
@media (max-width: 575px) {
  .index-box {
    font-size: min(3.5vw, 1em);
  }
}
@media (max-width: 1199px) {
  .index-box {
    margin-left: 0;
  }
}
@media (max-width: 1199px) and (orientation: landscape) {
  .index-box {
    padding-right: 150px;
  }
}
@media (max-width: 767px) and (orientation: landscape) {
  .index-box {
    padding-right: 0;
  }
}
@media (max-width: 1199px) and (orientation: portrait) {
  .index-box {
    margin-bottom: max(11vh, 70px);
    padding-right: 0;
  }
}

@media (max-width: 767px) {
  .title-en-index {
    width: 100%;
  }
}

[class*=index-].container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  row-gap: min(max(6.7vw, 50px), 100px);
  padding-left: 0;
  padding-right: 0;
}
[class*=index-].container .title-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-left: min(var(--base-margin), var(--base-margin-max));
  row-gap: min(max(3.3vw, 25px), 50px);
}
@media (max-width: 767px) {
  [class*=index-].container .title-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding-right: min(var(--base-margin), var(--base-margin-max));
    width: 100%;
  }
  [class*=index-].container .title-box .swiper-pagination-custom {
    width: auto;
  }
}

.index-projects article > *:first-child {
  width: 100%;
}
.index-projects article:nth-of-type(odd) {
  margin-left: auto;
}
.index-projects article:nth-of-type(even) .text-box, .index-projects article:nth-of-type(even) .button-icon {
  padding-left: min(var(--base-margin), var(--base-margin-max));
}
@media (max-width: 767px) {
  .index-projects article {
    width: 100%;
  }
  .index-projects article:nth-of-type(odd) {
    padding-left: min(var(--base-margin), var(--base-margin-max));
  }
  .index-projects article:nth-of-type(even) {
    padding-right: min(var(--base-margin), var(--base-margin-max));
  }
}
@media (min-width: 768px) {
  .index-projects article {
    width: 75%;
  }
  .index-projects .title-box {
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
  .index-projects .title-en-index {
    position: absolute;
    -webkit-transform: translateY(-100%) rotate(90deg);
            transform: translateY(-100%) rotate(90deg);
    -webkit-transform-origin: left bottom;
            transform-origin: left bottom;
    left: 0;
    top: 0;
    letter-spacing: -0.1em;
    z-index: -1;
  }
}

.index-portfolio {
  background-color: #000;
}
@media (max-width: 767px) {
  .index-portfolio .slider-list {
    width: 100%;
  }
}
@media (min-width: 768px) {
  .index-portfolio .slider-list {
    margin-top: 20%;
  }
}

@media (max-width: 575px) {
  .index-news > *:not(.title-box) .text-box {
    padding-left: min(var(--base-margin), var(--base-margin-max));
    padding-right: min(var(--base-margin), var(--base-margin-max));
  }
  .index-news > *:nth-child(odd) .img-box, .index-news > *:nth-child(odd) .plyr {
    margin-left: min(var(--base-margin), var(--base-margin-max));
  }
  .index-news > *:nth-child(even) .img-box, .index-news > *:nth-child(even) .plyr {
    margin-right: min(var(--base-margin), var(--base-margin-max));
  }
}
@media (min-width: 576px) and (max-width: 991px) {
  .index-news > *:nth-child(odd):not(.title-box) .text-box {
    padding-right: min(max(3.3vw, 25px), 50px);
  }
  .index-news > *:nth-child(even) .text-box {
    padding-left: min(max(3.3vw, 25px), 50px);
  }
}
@media (min-width: 1400px) {
  .index-news {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .index-news > *:nth-child(even) {
    margin-top: 10%;
  }
}

@media (orientation: landscape) {
  .about .header-box .title-box {
    color: black;
  }
  .about .header-box .title-box .title-en {
    color: black;
  }
  .about .header-box .title-box h1 {
    margin-top: 0;
  }
  .about .bg-box:before {
    display: none;
  }
}
@media (max-width: 575px) {
  .about .text-md-con {
    max-width: 340px;
    letter-spacing: 0.05em;
  }
}
@media (max-width: 399px) {
  .about .text-md-con {
    margin-left: auto;
    margin-right: auto;
  }
  .about .title-box {
    max-width: 340px;
    margin-left: auto;
    margin-right: auto;
  }
  .about .header-box .title-box {
    max-width: calc(340px + 12vw);
  }
}
.concept {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: min(max(4%, 0.63em), 1.25em);
}
.concept > * {
  max-width: 50em;
}
.concept .title-box {
  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;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: min(var(--base-margin), var(--base-margin-max));
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media (max-width: 991px) {
  .concept {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .concept > * {
    max-width: 37.5em;
  }
  .concept .title-box {
    padding: 0;
    margin-top: min(max(8vw, 60px), 120px);
  }
}

.construction-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 6%;
  row-gap: min(max(6.7vw, 50px), 100px);
}
.construction-list h3 {
  color: var(--color-primary);
}
.construction-list p {
  max-width: 17.5em;
  text-align: justify;
}
.construction-list img {
  width: 7.5em;
}
.construction-list > * {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  width: 29%;
  min-width: 12.5em;
  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;
}
.construction-list > *:nth-child(6n+4) {
  margin-left: auto;
}
@media (min-width: 1400px) {
  .construction-list > * {
    max-width: 25em;
  }
}

.projects-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 8%;
  row-gap: min(max(6.7vw, 50px), 100px);
}
.projects-list > * {
  width: 100%;
}
.projects-list > * > *:first-child {
  width: 100%;
}
@media (min-width: 768px) {
  .projects-list > * {
    width: 46%;
  }
  .projects-list > *:nth-child(2n+1) {
    margin-top: -20%;
    margin-bottom: 20%;
  }
  .projects-list > *:last-child {
    margin-bottom: 0;
  }
  .projects-list .title-box {
    margin-top: 0;
  }
}

@media (max-width: 991px) {
  .projects-navbar {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    background: var(--color-black);
  }
  .projects-navbar a {
    color: var(--color-primary);
  }
  .projects-navbar > * {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    padding: 8px 0;
  }
}
@media (min-width: 992px) {
  .projects-navbar {
    position: sticky;
    bottom: min(var(--base-margin-vmin), var(--base-margin-max));
    right: min(var(--base-margin), var(--base-margin-max));
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .projects-navbar > * {
    width: clamp(2.5em, 3.3vw, 3.13em);
  }
  .projects-navbar ~ .content-box {
    width: calc(100% - 100px);
  }
  .projects-navbar ~ .content-button {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
}

@media (min-width: 992px) {
  .projects-content .main .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.address-box {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-left: clamp(4.06em, 5.3vw, 5em);
}
.address-box small {
  position: absolute;
  left: 0;
  top: 0;
  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;
  border: 1px solid;
  font-size: clamp(15px, 1.1vw, 1em);
  letter-spacing: 0.1em;
  line-height: 1.3em;
  width: clamp(3.13em, 4vw, 3.75em);
  height: clamp(3.13em, 4vw, 3.75em);
  color: var(--color-primary);
}
.address-box b {
  line-height: 1.3em;
}

.projects-section {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3%;
  row-gap: min(max(4.7vw, 40px), 70px);
  padding-top: min(max(8vw, 60px), 120px);
}
.projects-section:first-of-type {
  padding-top: 0;
}
.projects-section > * {
  width: 100%;
}
.projects-section > div {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  gap: 5%;
  row-gap: min(max(3.3vw, 25px), 50px);
}
.projects-section .text-box {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media (max-width: 767px) {
  .projects-section > div {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
@media (max-width: 991px) {
  .projects-section#contact > * {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
@media (min-width: 992px) {
  .projects-section.type-2 {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .projects-section.type-2 > * {
    width: 50%;
  }
  .projects-section.type-2:nth-of-type(even) .img-list {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .projects-section.type-2 > div {
    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;
    padding: 0 4%;
  }
  .projects-section.type-2 > div > * {
    width: 550px;
    max-width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
  .projects-section#contact > *:first-child {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
}

.portfolio-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  max-width: 1400px;
  margin: 0 auto;
}
.portfolio-list > article {
  width: 100%;
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-left: 2px solid var(--color-primary);
  padding: min(max(3.3vw, 25px), 50px) 0;
  padding-left: 25%;
  margin-left: 25px;
}
.portfolio-list .img-box {
  width: 100%;
}
.portfolio-list .text-box {
  -webkit-box-flex: 3;
      -ms-flex-positive: 3;
          flex-grow: 3;
}
.portfolio-list .info-list {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.portfolio-list .info-list li {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.portfolio-list .text-date {
  position: absolute;
  left: 0;
  top: 20%;
  -webkit-transform: translateX(calc(-50% - 1px));
          transform: translateX(calc(-50% - 1px));
  background: var(--color-black);
}
.portfolio-list .text-date::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  margin: 0 8px;
  width: 11vw;
  border-top: 1px solid;
  opacity: 0.5;
}
.portfolio-list .text-date::after {
  content: "year";
  font-size: 0.4em;
  display: block;
  line-height: 1em;
}
.portfolio-list .text-date:empty {
  width: 10px;
  height: 10px;
  background: var(--color-primary);
  border: 8px solid var(--color-black);
  border-radius: 50%;
}
.portfolio-list .text-date:empty::before {
  width: 16vw;
}
.portfolio-list .text-date:empty::after {
  display: none;
}
@media (max-width: 575px) {
  .portfolio-list .img-box {
    width: 50%;
    padding-bottom: 33.3%;
  }
  .portfolio-list .text-box {
    display: inline-block;
    margin-right: 5px;
  }
  .portfolio-list .text-more {
    display: inline-block;
  }
  .portfolio-list .text-more::after {
    font-size: 14px;
  }
}
@media (min-width: 576px) {
  .portfolio-list .text-date::before {
    width: min(8vw, 130px);
  }
  .portfolio-list .text-date:empty::before {
    width: min(10.5vw, 170px);
  }
  .portfolio-list > article {
    width: 50%;
    margin-left: 0;
  }
  .portfolio-list > article:nth-of-type(odd) {
    padding-left: 15%;
    margin-top: 20%;
    margin-bottom: -20%;
  }
  .portfolio-list > article:nth-of-type(even) {
    border-left: none;
    padding-left: 0;
    border-right: 2px solid var(--color-primary);
    padding-right: 15%;
    margin-right: -2px;
  }
  .portfolio-list > article:nth-of-type(even) .text-date {
    right: 0;
    left: auto;
    -webkit-transform: translateX(calc(50% + 1px));
            transform: translateX(calc(50% + 1px));
  }
  .portfolio-list > article:nth-of-type(even) .text-date::before {
    left: auto;
    right: 100%;
  }
  .portfolio-list > article:last-of-type:nth-of-type(odd) {
    margin-bottom: 0;
  }
  .portfolio-list > article:first-of-type {
    margin-left: calc(50% - 2px);
    margin-top: 0;
  }
  .portfolio-list > article:last-of-type:nth-of-type(even) {
    margin-right: 50%;
  }
}
@media (min-width: 1200px) {
  .portfolio-list {
    margin-top: max(min(-13.3vw, -100px), -200px);
  }
}
@media (max-width: 991px) {
  .portfolio-list .info-list {
    display: none;
  }
}

.portfolio-content .content-box {
  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: start;
      -ms-flex-align: start;
          align-items: flex-start;
  row-gap: min(max(4.7vw, 40px), 70px);
}
@media (orientation: landscape) {
  .portfolio-content .header-box {
    padding-left: clamp(300px, 35%, 600px);
  }
  .portfolio-content .header-box .img-box {
    width: 100%;
  }
  .portfolio-content .header-box + .main .content-title {
    margin-top: -100vh;
    min-height: 100vh;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding-top: 40px;
  }
  .portfolio-content .header-box + .main .content-title .info-list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

.info-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: min(max(6%, 0.94em), 1.88em);
  font-size: clamp(15px, 1.1vw, 1em);
  font-weight: 600;
  line-height: 1.5em;
  letter-spacing: 0.15em;
  white-space: pre-line;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.info-list small {
  display: block;
  color: var(--color-primary);
}

@media (min-width: 768px) and (max-width: 1199px) {
  .engineering #main .container {
    gap: 5%;
  }
  .engineering #main .container > *:last-child {
    width: 55%;
  }
}

.engineering-list > * {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: min(max(6%, 0.94em), 1.88em);
}
.engineering-list > * strong {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.engineering-list > * strong:after {
  content: "";
  position: relative;
  left: 50%;
  width: 0;
  border-left: 2px solid;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.engineering-list > * .img-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1%;
}
.engineering-list > * .img-list img {
  width: 100%;
}
.engineering-list > * .img-list > * {
  display: none;
  width: 24.25%;
}
.engineering-list > * .img-list > *:nth-child(-n+4) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.engineering-list > * .img-list > *:nth-child(4) {
  position: relative;
  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-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  color: var(--color-white);
  background-color: var(--color-black);
}
.engineering-list > * .img-list > *:nth-child(4) img {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0.25;
}
.engineering-list > * .img-list > *:nth-child(4):before {
  font-weight: 600;
  content: var(--img-total, "");
  opacity: 1 !important;
}
.engineering-list > * .img-list > *:nth-child(4)::after {
  content: "MORE";
  opacity: 1 !important;
}
@media (max-width: 767px) {
  .engineering-list > * .img-list {
    font-size: 2vw;
  }
}
.engineering-list > * > div {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: min(max(6%, 0.94em), 1.88em);
  margin-bottom: min(max(3.3vw, 25px), 50px);
  min-height: 50px;
}
.engineering-list > * > div > * {
  width: 100%;
}
@media (min-width: 992px) {
  .engineering-list > * > div {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .engineering-list > * > div .text-box {
    width: 30%;
  }
  .engineering-list > * > div .img-list {
    width: 70%;
  }
}
.engineering-list > *:last-child > div {
  margin-bottom: 0;
}

.news-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  row-gap: min(max(6.7vw, 50px), 100px);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.news-list > * {
  width: 100%;
}
.news-list em {
  text-transform: uppercase;
}
@media (min-width: 576px) {
  .news-list {
    row-gap: min(max(4.7vw, 40px), 70px);
  }
  .news-list article, .news-list article > a:first-child {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 7%;
  }
  .news-list article > *, .news-list article > a:first-child > * {
    width: 50%;
  }
  .news-list article > a:first-child {
    width: 100%;
  }
}
@media (min-width: 576px) and (max-width: 991px) {
  .news-list h2 {
    font-size: min(2.6vw, 22px);
  }
}
@media (min-width: 576px) and (max-width: 1399px) {
  .news-list > * {
    max-width: 800px;
  }
  .news-list > *:nth-child(2n+2) {
    margin-left: auto;
  }
  .news-list > *:nth-child(2n+2) .img-box, .news-list > *:nth-child(2n+2) .plyr {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .news-list > *:nth-child(2n+2) .text-box {
    text-align: right;
  }
}
@media (min-width: 1400px) {
  .news-list {
    -webkit-column-gap: 3%;
       -moz-column-gap: 3%;
            column-gap: 3%;
  }
  .news-list .text-box {
    padding-bottom: min(max(10%, 1.88em), 3.13em);
  }
  .news-list > * {
    width: 48.5%;
  }
  .news-list h2 {
    font-size: min(1.3vw, 24px);
  }
  .news-list > *:nth-child(4n+3) .img-box, .news-list > *:nth-child(4n+3) .plyr, .news-list > *:nth-child(4n+4) .img-box, .news-list > *:nth-child(4n+4) .plyr {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .news-list > *:nth-child(4n+3) .text-box, .news-list > *:nth-child(4n+4) .text-box {
    text-align: right;
  }
}

.news-content .content-title em {
  text-transform: uppercase;
}
.news-content .content-box {
  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: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 6%;
  row-gap: min(max(4.7vw, 40px), 70px);
}
@media (min-width: 992px) {
  .news-content.type-2 .content-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    max-width: none;
  }
  .news-content.type-2 .content-box > * {
    position: sticky;
    top: 0;
  }
  .news-content.type-2 .content-box .html-edit {
    width: 60%;
  }
  .news-content.type-2 .content-box .img-list {
    width: 40%;
  }
}

.service-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  gap: 4%;
  row-gap: 1.25em;
  max-width: 75em;
  margin-left: auto;
  margin-right: auto;
}
.service-list > * {
  width: 100%;
  background: url("../images/warranty-bg.png") no-repeat center center;
  background-size: contain;
  text-align: center;
  max-width: 360px;
}
.service-list strong {
  display: block;
  color: var(--color-primary);
  font-size: min(17.4vw, 6.25em);
  line-height: 1em;
  padding-top: 18%;
  padding-bottom: 7%;
}
.service-list strong small {
  font-size: 0.2em;
  line-height: 1em;
}
.service-list h3 {
  color: var(--color-black);
  font-size: min(4.2vw, 1.5em);
  padding-bottom: 25%;
}
@media (min-width: 576px) and (max-width: 991px) {
  .service-list > * {
    width: 48%;
  }
  .service-list strong {
    font-size: min(10.1vw, 6.25em);
  }
  .service-list h3 {
    font-size: min(2.4vw, 1.5em);
  }
}
@media (min-width: 992px) {
  .service-list > * {
    width: 30%;
  }
  .service-list strong {
    font-size: min(7.1vw, 6.25em);
  }
  .service-list h3 {
    font-size: min(1.7vw, 1.5em);
  }
}

.contact #main .container form {
  max-width: 700px;
}

/*===nav===*/
.logo {
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: clamp(150px, 17.3vw, 260px);
  height: clamp(32px, 3.7vw, 55px);
  left: min(var(--base-margin), var(--base-margin-max));
  top: min(var(--base-margin-vmin), var(--base-margin-max));
  margin-left: -1vw;
  margin-top: 4px;
  z-index: 10;
}
.logo:before, .logo:after {
  content: "";
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}
.logo:before {
  width: clamp(33px, 3.9vw, 58px);
  height: clamp(33px, 3.9vw, 58px);
  margin-right: 4%;
  background-image: url("../images/logo.png");
  margin-top: -2%;
}
.logo:after {
  height: 100%;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center center;
          mask-position: center center;
  -webkit-mask-image: url("../images/logo-t.svg");
          mask-image: url("../images/logo-t.svg");
  background-color: var(--color-dark);
}
.bg-dark .logo:after {
  background-color: var(--color-light);
}

.bg-1 .logo:after {
  background-color: var(--color-primary);
}

@media (orientation: landscape) {
  .logo.light:after {
    background-color: var(--color-light);
  }
  .logo.dark:after {
    background-color: var(--color-black);
  }
}

#nav {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 101;
  pointer-events: none;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  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;
}
#nav ul {
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  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: 0.2em;
  padding: min(var(--base-margin-vmin), var(--base-margin-max)) min(var(--base-margin), var(--base-margin-max));
  text-align: center;
  -webkit-transition: -webkit-transform var(--animate-duration) ease-out;
  transition: -webkit-transform var(--animate-duration) ease-out;
  transition: transform var(--animate-duration) ease-out;
  transition: transform var(--animate-duration) ease-out, -webkit-transform var(--animate-duration) ease-out;
}
#nav ul li {
  position: relative;
  opacity: 0;
  -webkit-transform: translate3d(0, 20px, 0);
          transform: translate3d(0, 20px, 0);
}
#nav ul li strong {
  display: block;
  font-weight: 600;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
#nav ul li em {
  font-size: 1.2em;
  letter-spacing: 0;
  font-weight: bold;
  position: absolute;
  top: 0;
  left: 50%;
  opacity: 0;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  -webkit-transition-delay: 0;
          transition-delay: 0;
}
#nav ul li a {
  position: relative;
  display: inline-block;
}
#nav ul li a:hover, #nav ul li a.active {
  color: var(--color-primary);
}
#nav ul li a:hover strong {
  opacity: 0;
  -webkit-transform: translate3d(-70%, 0, 0);
          transform: translate3d(-70%, 0, 0);
  -webkit-transition-delay: 0;
          transition-delay: 0;
}
#nav ul li a:hover em {
  opacity: 1;
  -webkit-transform: translate3d(-50%, 0, 0);
          transform: translate3d(-50%, 0, 0);
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
#nav ul li > a {
  height: clamp(40px, 7.1vh, 50px);
  line-height: clamp(40px, 7.1vh, 50px);
  font-size: 1.0625em;
}
#nav ul li div {
  position: relative;
  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-sizing: border-box;
          box-sizing: border-box;
  font-size: 0.95em;
  letter-spacing: 0.3em;
}
#nav ul li div a {
  overflow: hidden;
  line-height: 2.5em;
  border-bottom: solid 1px;
  border-top: solid 1px;
  margin-bottom: -1px;
  height: 0;
  opacity: 0;
  -webkit-transition: 0.3s ease-out;
  transition: 0.3s ease-out;
  -webkit-transition-property: opacity, height, margin-bottom;
  transition-property: opacity, height, margin-bottom;
}
#nav ul li div a:hover, #nav ul li div a.active {
  z-index: 1;
}
#nav ul li:hover div a, #nav ul li > a.active + div a {
  height: 2.5em;
  opacity: 1;
}
#nav ul li:hover div a:last-child, #nav ul li > a.active + div a:last-child {
  margin-bottom: 0.94em;
}
body:not(.active) #nav {
  -webkit-transition-delay: 0.8s;
          transition-delay: 0.8s;
}
body.active #nav {
  pointer-events: all;
  z-index: 110;
  background-color: var(--color-black);
}
body.active #nav li {
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  opacity: 1;
}
body.active #nav, body.active #nav a {
  color: var(--color-white);
}
@media (min-width: 992px) {
  #nav {
    width: auto;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    background-color: transparent !important;
    background: -webkit-gradient(linear, left top, right top, color-stop(50%, rgba(0, 0, 0, 0)), color-stop(90%, rgb(0, 0, 0)));
    background: linear-gradient(to right, rgba(0, 0, 0, 0) 50%, rgb(0, 0, 0) 90%);
    background-size: 200%;
    background-position: left;
  }
  body.active #nav {
    background-position: right;
  }
  #nav ul {
    text-align: right;
    -webkit-transform: translate3d(0, min(max(14.3vh, 50px), 100px), 0);
            transform: translate3d(0, min(max(14.3vh, 50px), 100px), 0);
  }
  #nav ul li em {
    left: 100%;
  }
  #nav ul li a:hover em {
    -webkit-transform: translate3d(-100%, 0, 0);
            transform: translate3d(-100%, 0, 0);
  }
  #nav ul div {
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: end;
  }
  body.sticky-head #nav li {
    pointer-events: all;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    opacity: 1;
  }
  body:not(.active).sticky-head #nav ul {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
@media (min-width: 992px) and (max-width: 1399px) {
  body[class*=-content]:not(.active).sticky-head #nav ul {
    -webkit-transform: translate3d(0, min(max(14.3vh, 50px), 100px), 0);
            transform: translate3d(0, min(max(14.3vh, 50px), 100px), 0);
  }
  body[class*=-content]:not(.active).sticky-head #nav ul li {
    pointer-events: none;
    -webkit-transform: translate3d(0, 20px, 0);
            transform: translate3d(0, 20px, 0);
    opacity: 0;
  }
}
@media (max-width: 991px) {
  body.active {
    overflow: hidden;
  }
}
@media (orientation: landscape) {
  #nav.light a {
    color: var(--color-light);
  }
  #nav.dark a {
    color: var(--color-dark);
  }
}

.nav-toggle {
  position: fixed;
  right: min(var(--base-margin), var(--base-margin-max));
  top: min(var(--base-margin-vmin), var(--base-margin-max));
  width: var(--nav-size);
  height: var(--nav-size);
  cursor: pointer;
  mix-blend-mode: difference;
  z-index: 200;
  -webkit-transition: opacity 300ms ease-out;
  transition: opacity 300ms ease-out;
}
.nav-toggle span {
  position: relative;
  top: 50%;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  height: 14%;
  margin-top: -7%;
  border-bottom: solid 1px #fff;
  border-top: solid 1px #fff;
}
.nav-toggle span:before, .nav-toggle span:after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  border-bottom: solid 1px #fff;
  border-top: solid 1px #fff;
  height: 100%;
}
.nav-toggle span:before {
  top: 250%;
}
.nav-toggle span:after {
  bottom: 250%;
}
body.active .nav-toggle span {
  height: 0;
  border-bottom-color: rgba(255, 255, 255, 0);
  border-top-color: rgba(255, 255, 255, 0);
  -webkit-transition: border 0.2s 0.6s;
  transition: border 0.2s 0.6s;
}
body.active .nav-toggle span:before, body.active .nav-toggle span:after {
  height: 0;
}
body.active .nav-toggle span:before {
  top: 0;
  -webkit-transform: rotate(135deg);
          transform: rotate(135deg);
  -webkit-transition: top 0.2s 0.1s, -webkit-transform 0.2s 0.6s;
  transition: top 0.2s 0.1s, -webkit-transform 0.2s 0.6s;
  transition: top 0.2s 0.1s, transform 0.2s 0.6s;
  transition: top 0.2s 0.1s, transform 0.2s 0.6s, -webkit-transform 0.2s 0.6s;
}
body.active .nav-toggle span:after {
  bottom: 0;
  top: 0;
  -webkit-transform: rotate(225deg);
          transform: rotate(225deg);
  -webkit-transition: bottom 0.2s 0.1s, -webkit-transform 0.2s 0.6s;
  transition: bottom 0.2s 0.1s, -webkit-transform 0.2s 0.6s;
  transition: bottom 0.2s 0.1s, transform 0.2s 0.6s;
  transition: bottom 0.2s 0.1s, transform 0.2s 0.6s, -webkit-transform 0.2s 0.6s;
}
@media (min-width: 992px) {
  body:not(.active).sticky-head .nav-toggle {
    pointer-events: none;
    opacity: 0;
  }
}
@media (min-width: 992px) and (max-width: 1399px) {
  body[class*=-content]:not(.active).sticky-head .nav-toggle {
    pointer-events: all;
    opacity: 1;
  }
}

.header-icon {
  position: absolute;
  right: calc(min(var(--base-margin), var(--base-margin-max)) + var(--nav-size) + 10px);
  top: var(--base-margin-vmin);
  z-index: 10;
}
@media (min-width: 1400px) {
  .header-icon {
    position: fixed;
    mix-blend-mode: difference;
  }
  .sticky-head .header-icon {
    opacity: 0;
    pointer-events: none;
  }
}

.header-icon a, a.header-icon {
  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;
  text-align: center;
  width: var(--nav-size);
  height: var(--nav-size);
}
.header-icon a i, a.header-icon i {
  font-size: clamp(1.88em, 3.1vw, 2.88em);
  font-variation-settings: "wght" 200;
}
.header-icon a, .header-icon a:hover, a.header-icon, a.header-icon:hover {
  color: #000;
}
@media (min-width: 1400px) {
  .header-icon a, .header-icon a:hover, a.header-icon, a.header-icon:hover {
    color: #fff;
  }
}

.button-back:before, .button-back:after {
  content: "";
  position: absolute;
  display: block;
  width: 50%;
  border-top: solid 1px;
  height: 0;
  left: 25%;
}
.button-back:before {
  -webkit-transform: rotate(135deg);
          transform: rotate(135deg);
  top: 34%;
}
.button-back:after {
  -webkit-transform: rotate(225deg);
          transform: rotate(225deg);
  top: 68%;
}

/*===footer===*/
.footer .container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 40px 15px;
}

.footer-item {
  font-size: clamp(14px, 1vw, 0.94em);
  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: start;
      -ms-flex-align: start;
          align-items: flex-start;
  line-height: 1.4em;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.footer-item:nth-last-child(2) {
  -webkit-box-flex: 5;
      -ms-flex-positive: 5;
          flex-grow: 5;
}
.footer-item em {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  width: 100%;
  font-size: 0.94em;
  letter-spacing: 0.1em;
  white-space: nowrap;
  color: var(--color-primary);
  padding-bottom: min(max(3.3vw, 25px), 50px);
}
.footer-item em:after {
  content: "";
  position: relative;
  height: 0;
  border-bottom: 1px solid;
  opacity: 0.5;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.footer-item strong {
  letter-spacing: 0.2em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 9px 0;
}
.footer-item strong small {
  position: relative;
  min-width: 55px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  letter-spacing: 0;
  font-size: 1em;
}
.footer-item strong small:after {
  content: "/";
  display: inline-block;
  margin: 0 8px 0 6px;
  position: relative;
  top: -1px;
}
.footer-item strong.footer-tel, .footer-item strong.footer-fax {
  letter-spacing: 0.15em;
}

a.footer-contact {
  position: relative;
  color: var(--color-white) !important;
  background-color: var(--color-dark);
  width: 5.63em;
  padding: 5px 0;
  letter-spacing: 0.2em;
  line-height: 1.4em;
  text-align: center;
  font-weight: 700;
  margin: 1.56em 0;
  margin-left: auto;
}
@media (min-width: 1200px) {
  a.footer-contact {
    width: 6.88em;
    padding: 0.63em 0;
  }
}
a.footer-contact:before, a.footer-contact:after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
}
a.footer-contact:before {
  bottom: 100%;
  height: 0;
  width: 0;
  border-color: transparent;
  border-style: solid;
  border-width: 2.815em;
  border-bottom-color: var(--color-dark);
  border-bottom-width: 1.25em;
}
@media (min-width: 1200px) {
  a.footer-contact:before {
    border-width: 3.44em;
    border-bottom-width: 1.88em;
  }
}
a.footer-contact:after {
  top: 100%;
  height: 0;
  width: 0;
  border-color: transparent;
  border-style: solid;
  border-width: 2.815em;
  border-top-color: var(--color-dark);
  border-top-width: 1.25em;
}
@media (min-width: 1200px) {
  a.footer-contact:after {
    border-width: 3.44em;
    border-top-width: 1.88em;
  }
}
a.footer-contact:hover {
  background-color: var(--color-primary) !important;
}
a.footer-contact:hover:before {
  border-bottom-color: var(--color-primary) !important;
}
a.footer-contact:hover:after {
  border-top-color: var(--color-primary) !important;
}
.bg-dark a.footer-contact {
  color: var(--color-black) !important;
  background-color: var(--color-light);
}
.bg-dark a.footer-contact:before {
  border-bottom-color: var(--color-light);
}
.bg-dark a.footer-contact:after {
  border-top-color: var(--color-light);
}

.footer-copyright {
  font-size: 12px;
  line-height: 18px;
  opacity: 0.6;
}
.footer-copyright a:hover {
  text-decoration: underline;
}
.footer-copyright span {
  display: inline-block;
}

.footer-icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.footer-icon a {
  position: relative;
  text-align: center;
  width: 45px;
  height: 45px;
  background: transparent;
  border-radius: 50%;
}
.footer-icon a:hover {
  color: #fff;
}
.footer-icon a.social-facebook:hover {
  background-color: #3b5998;
}
.footer-icon a.social-line:hover {
  background-color: #00b900;
}
.footer-icon a.social-youtube:hover {
  background-color: #f70000;
}
.footer-icon a.social-instagram:hover {
  background: #f09433;
  background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
}
.footer-icon a:first-of-type {
  margin-left: -6px;
}
.footer-icon i {
  font-size: 1.75rem;
  line-height: 45px;
}

.button-top {
  display: inline-block;
  width: 50px;
  text-align: center;
}
.button-top i {
  font-size: 2.25rem;
}

/*===page===*/
.page-list {
  position: relative;
  font-size: clamp(14px, 1vw, 0.94em);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1.5%;
  width: 100%;
  font-weight: 700;
  line-height: 2.8em;
  text-align: center;
}
.page-list b {
  padding: 0 5px;
}
.page-list i {
  font-size: 1.4em;
  color: var(--color-primary);
}
.page-list 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;
  min-width: 30px;
}
.page-list a.page-prev {
  margin-right: auto;
}
.page-list a.page-next {
  margin-left: auto;
}
.page-list a.page-next i {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}
.page-list a:first-child:not(.page-prev) {
  margin-left: auto;
}
.page-list a:last-child:not(.page-next) {
  margin-right: auto;
}
.page-list a.page-prev:after, .page-list a.page-next:after {
  display: none;
}
@media (max-width: 575px) {
  .page-list {
    letter-spacing: 0;
    margin-right: 0;
  }
  .page-list .page-first + a {
    display: none;
  }
  .page-list a.page-prev b, .page-list a.page-next b {
    display: none;
  }
  .page-list a:nth-child(6), .page-list a:nth-child(7) {
    display: none;
  }
  .page-list a.active, .page-list a.page-first, .page-list a.page-last, .page-list a.page-next, .page-list a.page-prev, .page-list a.active + a, .page-list a:last-child, .page-list a:nth-last-child(2) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
.page-list.content-button {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.page-list.content-button a b {
  display: block;
}
@media (max-width: 575px) {
  .page-list.content-button a.page-back {
    display: none;
  }
  .page-list.content-button a.page-share {
    position: absolute;
    left: 50%;
    margin-left: -40px;
  }
}
@media (min-width: 576px) {
  .page-list.content-button a.page-prev {
    margin-right: 0;
  }
  .page-list.content-button a:first-child {
    margin-left: 0;
  }
}
.page-list:empty {
  margin: 0;
  padding: 0;
}

.share-button {
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 5px;
  left: 0;
  top: 50px;
  opacity: 0;
  pointer-events: none;
}
.share-button.active {
  opacity: 1;
  pointer-events: auto;
}
.share-button a {
  width: 50px;
  height: 50px;
  line-height: 50px;
  padding: 0 !important;
  color: #fff !important;
  text-align: center;
  overflow: hidden;
  border-radius: 50%;
}
.share-button a i {
  line-height: 50px !important;
  font-size: 30px !important;
  color: #fff;
}
@media (min-width: 576px) {
  .page-prev ~ .share-button {
    left: 90px;
  }
}
@media (max-width: 575px) {
  .share-button {
    left: 50%;
    margin-left: -40px;
  }
}

a.share-facebook {
  background: #3b5998;
}

a.share-line {
  background: #00b900;
}

/*===category===*/
.category-list {
  font-size: clamp(1em, 1.1vw, 1.06em);
  font-weight: normal;
  line-height: 1.8em;
  letter-spacing: 0.15em;
  letter-spacing: 0.05em;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  line-height: 2.5em;
  overflow: hidden;
  margin-left: clamp(-50px, -3.3vw, -20px);
}
.category-list li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.category-list li:before {
  content: "．";
  text-align: center;
  width: clamp(20px, 3.3vw, 50px);
  display: inline-block;
}
.category-list:empty {
  margin: 0;
  padding: 0;
}
@media (min-width: 576px) {
  .category-list {
    letter-spacing: 0.2em;
  }
}

/*===form===*/
form small {
  padding: 0 3px;
  color: var(--color-primary);
}

.input-box {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.input-box:first-child {
  margin-top: -1em;
}
.input-box label {
  font-size: clamp(15px, 1.1vw, 1em);
  font-weight: normal;
  line-height: 1.8em;
  letter-spacing: 0.15em;
  font-weight: 600;
  white-space: nowrap;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: clamp(5.94em, 28%, 7.5em);
  padding-top: 1em;
}
.input-box label em {
  font-size: clamp(12px, 0.9vw, 0.88em);
  font-weight: normal;
  letter-spacing: 0.05em;
  line-height: 1em;
  opacity: 0.5;
}
@media (min-width: 576px) {
  .input-box label {
    letter-spacing: 0.2em;
  }
}
@media (min-width: 576px) {
  .input-box {
    margin-bottom: min(max(2%, 0.31em), 0.63em);
  }
}

select, textarea, input {
  font-size: clamp(15px, 1.1vw, 1em);
  font-weight: normal;
  line-height: 1.8em;
  letter-spacing: 0.15em;
  font-weight: 600;
  margin-right: 0;
  height: 3.75em;
  width: 100%;
  background-color: transparent;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-bottom: solid 1px var(--color-gray-md);
  color: var(--color-dark);
}
.bg-dark select, .bg-dark textarea, .bg-dark input {
  color: var(--color-light);
}
select.error, textarea.error, input.error {
  border-bottom: dotted 2px var(--color-primary);
}

textarea {
  height: 12.5em;
  letter-spacing: 0.1em;
  font-weight: normal;
  padding-top: 1em;
}

select {
  position: relative;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding-right: 20px;
  background-size: auto 20px;
  background-repeat: no-repeat;
  background-position: right center;
  background-image: url("../images/icon-select.svg");
}
.bg-dark select {
  background-image: url("../images/icon-select-w.svg");
}

select option, select.active {
  background-color: var(--color-white);
  color: var(--color-dark);
}
.bg-dark select option, .bg-dark select.active {
  background-color: var(--color-black);
  color: var(--color-light);
}
select option:checked, select option:active, select option:focus, select option:hover {
  background-color: var(--color-primary);
  color: var(--color-black);
}
select.select-category, .select-category select {
  display: inline-block;
  height: 3.75em;
  padding: 0;
  text-align: center;
  color: var(--color-primary);
  border-bottom: none;
  width: auto;
  background-image: none;
  cursor: pointer;
}

input[type=password], input[type=tel], input[type=email], input[type=date] {
  letter-spacing: 0.05em;
}

input[type=text]:focus, input[type=password]:focus, input[type=tel]:focus, input[type=email]:focus, input[type=date]:focus, textarea:focus, select:focus {
  border-bottom: solid 1px var(--color-primary);
}

input[type=checkbox], input[type=radio] {
  display: none;
}
input[type=checkbox] + label, input[type=radio] + label {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
input[type=checkbox] + label {
  padding-left: 20px;
}
input[type=checkbox] + label:before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border: solid 2px;
  border-radius: 3px;
  margin-left: -20px;
  margin-right: 6px;
}
input[type=checkbox]:checked + label:before {
  border: solid 2px transparent;
  width: 18px;
  height: 18px;
  font-size: 18px;
  content: "\eed9";
  margin-left: -23px;
  margin-right: 1px;
}
input[type=checkbox]:disabled + label {
  opacity: 0.5;
}
input[type=checkbox]:disabled + label:before {
  color: #888;
  opacity: 0.7;
}
input[type=checkbox].error + label:before {
  border: solid 2px var(--color-primary);
}
input[type=checkbox][type=radio]:disabled + label {
  opacity: 0.5;
}
input[type=checkbox][type=radio] + label:before {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  border: solid 2px;
  border-radius: 50%;
}
input[type=checkbox][type=radio] + label:after {
  content: "";
  position: absolute;
  display: block;
  left: 5px;
  top: 50%;
  margin-top: -4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
input[type=checkbox][type=radio]:checked + label:after {
  background-color: var(--color-primary);
}
input[type=checkbox][type=radio]:disabled + label:before {
  border: solid 2px rgba(136, 136, 136, 0.7);
}
input[type=checkbox][type=radio]:disabled:checked + label:after {
  background-color: #888;
  opacity: 0.7;
}

::-webkit-calendar-picker-indicator {
  opacity: 0.5;
  margin-left: 5px;
}

.ime-disabled {
  ime-mode: disabled;
}

img.rand-img {
  position: absolute;
  right: 0px;
  bottom: 1px;
  width: 100px;
  height: 3.69em;
  cursor: pointer;
}

input[type=button], input[type=file], input[type=button]:focus, input[type=file]:focus {
  background: transparent;
  cursor: pointer;
  padding-right: 5px;
  text-decoration: underline;
  color: var(--color-primary);
}
input[type=button]:hover, input[type=file]:hover {
  text-decoration: none;
}

input:-webkit-autofill {
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
  -webkit-text-fill-color: var(--color-primary) !important;
}
input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active {
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
}

::-webkit-input-placeholder {
  color: #aaa;
  font-size: 12px;
}

::placeholder, ::-webkit-input-placeholder, :-ms-input-placeholder {
  color: #aaa;
  font-size: 12px;
}

::-moz-placeholder {
  color: #aaa;
  font-size: 12px;
  opacity: 1;
}

/*===images===*/
img[src=""] {
  content: url(../images/no-img.gif);
}

.bg-white {
  background-color: #fff;
  color: #000;
}

.bg-black {
  background-color: #000;
  color: #fff;
}

.bg-light, body {
  background: var(--color-white);
  color: var(--color-dark);
}

.bg-dark {
  background: var(--color-black);
  color: var(--color-light);
}

/*===text===*/
@media (max-width: 399px) {
  body {
    font-size: max(4vw, 15px);
  }
}

.font-sans, .html-edit em, .html-edit, p:not(.text-md-con, .html-title1, .html-title2, .html-title3), .text-md {
  font-family: Arial, Helvetica, "微軟正黑體", "Microsoft JhengHei", "儷黑 Pro", "LiHei Pro", sans-serif;
}

.font-serif, .html-edit h1, .html-edit h2, .html-edit h3, [class*=html-title], .engineering-list > * .img-list > *:nth-child(4):before, body {
  font-family: "Noto Serif TC", Times, "Times New Roman", "儷宋 Pro", "LiSong Pro Light", "宋体", SimSun, serif;
}

.font-en, [class*=title-en] {
  font-family: "Gilda Display", Times, "Times New Roman", "儷宋 Pro", "LiSong Pro Light", "宋体", SimSun, serif;
}
.font-en-sm, a .text-more:after, a.text-more:after, a .text-view:after, a.text-view:after, em {
  font-family: "Judson", Times, "Times New Roman", "儷宋 Pro", "LiSong Pro Light", "宋体", SimSun, serif;
}

.font-en-2 {
  font-family: "Dancing Script", Times, "Times New Roman", "儷宋 Pro", "LiSong Pro Light", "宋体", SimSun, serif;
}

::-moz-selection {
  background-color: var(--color-primary);
  color: var(--color-black);
}

::selection {
  background-color: var(--color-primary);
  color: var(--color-black);
}

a {
  color: var(--color-dark);
}
.bg-dark a {
  color: var(--color-light);
}
a:hover, a.active {
  color: var(--color-primary);
}

mark, .highlight {
  color: var(--color-black);
  background-color: var(--color-primary);
  font-weight: bold;
  padding-left: 0.5em;
  padding-right: 0.5em;
}
a:hover mark, a:hover .highlight {
  background-color: #fff;
}

.color-primary {
  color: var(--color-primary);
}

.color-light {
  color: var(--color-light);
}

.color-dark {
  color: var(--color-dark);
}

.color-gray {
  color: var(--color-gray);
}

.color-gray-dark {
  color: var(--color-gray-dark);
}

.color-gray-md {
  color: var(--color-gray-md);
}

.color-white {
  color: var(--color-white);
}

.color-black {
  color: var(--color-black);
}

h1 + h2, h1 + strong, h1 + em, h2 + h3, h2 + strong, h2 + em, h3 + strong, h3 + em {
  color: var(--color-primary);
  margin-top: 0.2em;
}

.text-md-base, .html-edit, [class*=text-md], [class*=text-sm], p {
  font-weight: normal;
  line-height: 1.8em;
  letter-spacing: 0.15em;
}
@media (max-width: 575px) {
  .text-md-base, .html-edit, [class*=text-md], [class*=text-sm], p {
    letter-spacing: 0.1em;
  }
}

.text-lg-base, [class*=text-lg], h1, h2 {
  font-weight: 600;
  line-height: 1.5em;
  letter-spacing: 0.15em;
  word-spacing: -0.22em;
}

.text-xl-base, [class*=text-xl], h3, h4 {
  font-weight: 700;
  line-height: 1.4em;
  letter-spacing: 0.25em;
  word-spacing: -0.22em;
}
@media (max-width: 575px) {
  .text-xl-base, [class*=text-xl], h3, h4 {
    letter-spacing: 0.15em;
  }
}

p, [class*=text-md] {
  font-size: clamp(15px, 1.1vw, 1em);
}

@media (min-width: 576px) {
  .text-md-con, .text-md-con p {
    line-height: 2.1em;
    letter-spacing: 0.2em;
  }
}
@media (max-width: 575px) {
  .text-md-con, .text-md-con p {
    font-family: Arial, Helvetica, "微軟正黑體", "Microsoft JhengHei", "儷黑 Pro", "LiHei Pro", sans-serif;
  }
}

.text-xs {
  font-size: clamp(12px, 0.9vw, 0.88em);
}

.text-sm {
  font-size: clamp(14px, 1vw, 0.94em);
}

.text-md {
  font-size: clamp(15px, 1.1vw, 1em);
}

.text-lg {
  font-size: clamp(1em, 1.1vw, 1.06em);
}

.text-xl {
  font-size: clamp(1.06em, 1.3vw, 1.25em);
}

.text-xl-2 {
  font-size: clamp(1.13em, 1.6vw, 1.5em);
}

.text-xl-3 {
  font-size: clamp(1.38em, 1.9vw, 1.75em);
}

.text-xl-4 {
  font-size: clamp(1.38em, 2.3vw, 2.13em);
}

.text-xl-5 {
  font-size: clamp(1.38em, 2.7vw, 2.5em);
}

.text-xl-6 {
  font-size: clamp(1.88em, 3.1vw, 2.88em);
}

[class*=title-en] {
  font-size: clamp(3.13em, 6.7vw, 6.25em);
  line-height: 1em;
  margin-bottom: -0.2em;
  margin-left: -0.05em;
  letter-spacing: -0.05em;
}
@media (max-width: 767px) {
  [class*=title-en] .sm {
    font-size: min(11vw, 3.13rem);
    line-height: 0.9em;
    display: block;
    white-space: nowrap;
  }
}

.title-en-sm {
  font-size: clamp(2.5em, 4.7vw, 4.38em);
}

.title-en-index {
  font-size: clamp(3.75em, 16.7vw, 15.63em);
  line-height: 0.9em;
  background: -webkit-gradient(linear, left top, left bottom, from(#222), color-stop(#111), color-stop(#222), to(#111));
  background: linear-gradient(#222, #111, #222, #111);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}

.text-date {
  font-size: clamp(1.38em, 2.7vw, 2.5em);
  color: var(--color-primary);
  line-height: 1.2em;
}
.text-date small {
  font-size: 0.4em;
  display: block;
  line-height: 1em;
}

a .text-more:after, a.text-more:after, a .text-view:after, a.text-view:after {
  content: "MORE";
  display: inline-block;
  font-size: clamp(14px, 1vw, 0.94em);
  letter-spacing: 0.1em;
  color: var(--color-primary);
  text-decoration: underline;
  margin-top: 1em;
}

a .text-view:after, a.text-view:after {
  content: "VIEW ALL";
  letter-spacing: 0.3em;
  margin-top: 0.5em;
  font-size: clamp(1em, 1.1vw, 1.06em);
}

.text-more[class*=flex]:after {
  margin-top: 0;
}

.single-justify {
  text-align: justify;
  /*text-align-last: justify;*/
  height: 1.5em;
  overflow: hidden;
  white-space: normal;
  letter-spacing: 0;
  margin-right: 0;
}
.single-justify:after {
  content: "";
  display: inline-block;
  width: 100%;
}

.hr {
  display: block;
  border-bottom: none;
  border-top: solid 1px;
  width: 100%;
  opacity: 0.3;
}

.img-inline {
  height: 1.2em;
  width: auto;
  vertical-align: middle;
}

@media (max-width: 329px) {
  .br-hide-xxs {
    text-align: justify;
  }
  .br-hide-xxs br {
    display: none;
  }
  .br-hide-xxs span {
    display: inline;
  }
  .text-center .br-hide-xxs, .br-hide-xxs.text-center {
    text-align: center;
  }
}
@media (max-width: 399px) {
  .br-hide-xs {
    text-align: justify;
  }
  .br-hide-xs br {
    display: none;
  }
  .br-hide-xs span {
    display: inline;
  }
  .text-center .br-hide-xs, .br-hide-xs.text-center {
    text-align: center;
  }
}
@media (max-width: 575px) {
  .br-hide-sm {
    text-align: justify;
  }
  .br-hide-sm br {
    display: none;
  }
  .br-hide-sm span {
    display: inline;
  }
  .text-center .br-hide-sm, .br-hide-sm.text-center {
    text-align: center;
  }
}
@media (max-width: 767px) {
  .br-hide-md {
    text-align: justify;
  }
  .br-hide-md br {
    display: none;
  }
  .br-hide-md span {
    display: inline;
  }
  .text-center .br-hide-md, .br-hide-md.text-center {
    text-align: center;
  }
}
@media (max-width: 991px) {
  .br-hide-lg {
    text-align: justify;
  }
  .br-hide-lg br {
    display: none;
  }
  .br-hide-lg span {
    display: inline;
  }
  .text-center .br-hide-lg, .br-hide-lg.text-center {
    text-align: center;
  }
}
/*===html-edit===*/
.html-edit {
  position: relative;
  width: 100%;
}
.html-edit h1, .html-edit h2, .html-edit h3, .html-edit h4, .html-edit h5, .html-edit h6, .html-edit strong, .html-edit em, .html-edit big, .html-edit small, .html-edit b {
  white-space: normal;
}
.html-edit em, .html-edit i {
  font-style: italic;
  display: inline;
}

.html-edit > * {
  font-size: clamp(15px, 1.1vw, 1em);
}

.html-edit a {
  text-decoration: underline;
  color: var(--color-primary);
}

.html-edit a:hover {
  text-decoration: none;
}

.html-edit img {
  max-width: 100%;
  height: auto !important;
}

.html-edit ul, .html-edit ol {
  line-height: 1.875em;
}

.html-edit li {
  list-style: outside;
  margin-left: 30px;
}

.html-edit ul li {
  list-style-type: disc;
}

.html-edit ol li {
  list-style-type: decimal;
}

.html-edit iframe {
  width: 100%;
  max-width: 100%;
}

.html-edit h1, .html-title1 {
  font-size: 1.5rem;
}

.html-edit h2, .html-title2 {
  font-size: 1.25rem;
}

.html-edit h3, .html-title3 {
  font-size: 1.125rem;
}

.html-edit h1, .html-edit h2, .html-edit h3, [class*=html-title] {
  display: block;
  margin-bottom: 0.2em;
  font-weight: 700 !important;
  line-height: 1.5em !important;
}

.html-button a, a.html-button, .html-edit a .html-button {
  position: relative;
  display: inline-block;
  padding: 10px 20px;
  background-color: var(--color-dark);
  border-radius: 3px;
  color: #fff;
  text-decoration: none;
  margin: 5px 0;
}

.html-button a:hover, a.html-button:hover, .html-edit a:hover .html-button {
  -webkit-transform: scale3d(1.05, 1.05, 1);
  transform: scale3d(1.05, 1.05, 1);
}

.html-edit span:not(.inline-br) {
  display: inline;
}

.html-edit table {
  float: none;
}

.html-edit small {
  letter-spacing: 0.05em;
}

@media (min-width: 768px) {
  .html-edit h1, .html-edit h2, .html-edit h3, [class*=html-title] {
    margin-bottom: 0.3em;
  }
}
/*============swiper===============*/
:root {
  --swiper-theme-color: #fff;
}

.swiper-slide {
  overflow: hidden;
}

.swiper img {
  width: 100%;
}

.swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled {
  opacity: 0;
}

.swiper-container:hover .swiper-button-next.swiper-button-disabled, .swiper-container:hover .swiper-button-prev.swiper-button-disabled {
  opacity: 0;
}

.swiper-pagination-bullet:focus, .swiper-button-next:active, .swiper-button-prev:active {
  border: none;
}

.swiper-lazy-preloader-white {
  --swiper-preloader-color: var(--color-primary) ;
}

.swiper .swiper-pagination-fraction {
  text-align: left;
  color: #fff;
  padding: 5px 20px;
}

/*.swiper-fade .swiper-slide-active, .swiper-fade .swiper-slide-active .swiper-slide-active{z-index: 1;}*/
/*header*/
.slider-header {
  width: 100%;
  height: 100%;
  z-index: inherit;
}
.slider-header .swiper-wrapper {
  height: auto;
}
.slider-header .swiper-slide {
  background-color: #000;
}
.slider-header .swiper-button-next, .slider-header .swiper-button-prev {
  font-size: clamp(14px, 1vw, 0.94em);
  z-index: 102;
  line-height: 1em;
  width: auto;
  margin-bottom: -10px;
  bottom: min(var(--base-margin-vmin), var(--base-margin-max));
  right: min(var(--base-margin), var(--base-margin-max));
  left: auto;
  top: auto;
}
.slider-header .swiper-button-prev:not(.swiper-button-lock) {
  margin-right: max(7%, 90px);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.slider-header .swiper-button-next:after, .slider-header .swiper-button-prev:after {
  font-family: "Material Symbols Outlined";
  font-size: 1.3em;
  padding: 5px;
}
.slider-header .swiper-button-prev:after {
  content: "\f1e6";
}
.slider-header .swiper-button-next:after {
  content: "\f1df";
}
.slider-header .swiper-button-prev:before {
  content: "PREV";
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}
.slider-header .swiper-button-next:before {
  content: "NEXT";
}
.slider-header .swiper-pagination {
  font-weight: 700;
  padding: 0;
  text-align: center;
  white-space: nowrap;
  left: 0.5%;
  bottom: min(var(--base-margin-vmin), var(--base-margin-max));
  width: 4.38em;
  line-height: 1.5em;
  font-size: clamp(0.63em, 1.1vw, 1em);
  left: min(var(--base-margin), var(--base-margin-max));
}
.slider-header .swiper-pagination-current {
  font-size: 4.06em;
}
.slider-header .swiper-pagination-total {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 1.13em;
}
.slider-header .swiper-pagination-total:before {
  content: "";
  border-top: solid 1px;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-right: 5px;
}
@media (max-width: 1199px) and (orientation: landscape) {
  .slider-header .swiper-button-next:before, .slider-header .swiper-button-prev:before, .slider-header .swiper-pagination {
    display: none;
  }
  .slider-header .swiper-button-prev {
    margin-right: 40px;
  }
}
@media (max-width: 767px) and (orientation: landscape) {
  .slider-header .swiper-button-next, .slider-header .swiper-button-prev {
    display: none;
  }
}

.slider-header a, .slider-header a:hover {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: 2;
  color: var(--color-white);
}

.swiper + .swiper-pagination {
  position: relative;
  bottom: auto;
  top: auto;
}

.swiper-pagination-bullet {
  position: relative;
  margin: 0 !important;
  background: var(--color-primary);
  opacity: 1;
  padding: 0.5em;
  background-clip: content-box;
  width: 0.4em;
  height: 0.4em;
  z-index: 2;
}

.swiper-pagination-bullet-active {
  -webkit-transform: scale3d(2, 2, 1);
          transform: scale3d(2, 2, 1);
  z-index: 1;
}

.slider-list {
  /* overflow:visible; */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.slider-list .swiper-slide .text-box {
  opacity: 0;
}

.slider-list .swiper-slide-visible .text-box {
  opacity: 1 !important;
}

@media (min-width: 768px) {
  .slider-list {
    padding-left: 0;
  }
}
/*===mb.YTPlayer===*/
.inline-YTPlayer {
  max-width: inherit !important;
  height: 100%;
}

.inlinePlayButton {
  width: 50px;
  height: 50px;
  line-height: 50px;
  font-size: 26px;
  -webkit-transform: scale(1);
          transform: scale(1);
  /*left: auto;right: 25px; top: auto;bottom: 80px;*/
}

.mb_YTPlayer:hover .inlinePlayButton, .inlinePlayButton:hover {
  -webkit-transform: scale(1.1) !important;
          transform: scale(1.1) !important;
}

/*.mb_YTPBar{z-index: 9!important;}*/
.video-box {
  background-attachment: inherit !important;
}

.video-full {
  padding-bottom: 0 !important;
  height: 100% !important;
  width: 100%;
  background-attachment: inherit !important;
}

.video-full.video-contain .mbYTP_wrapper iframe {
  width: 100% !important;
  height: 100% !important;
  margin-left: 0 !important;
  margin-top: 0 !important;
}

.swiper-container .inlinePlayButton {
  /*right: 40px; bottom: 100px;*/
  z-index: 10;
}

/*.video-box{background-attachment: inherit!important;z-index: 1;padding-bottom: 56.25%;}*/
@media screen and (max-width: 800px) {
  .inlinePlayButton {
    width: 40px;
    height: 40px;
    line-height: 40px;
    font-size: 20px;
  }
}
/*調音量功能衝突隱藏*/
.mb_YTPBar .simpleSlider {
  display: none !important;
}

.mb_YTPBar span.mb_OnlyYT {
  left: 190px;
}

/*===video-background===*/
.video-wrapper {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
}
.video-wrapper iframe {
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
}
.video-wrapper.screen-contain {
  position: absolute;
  height: 100%;
  width: 100%;
  padding-bottom: 0;
}
.video-wrapper.screen-cover {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 120vw;
  height: 56.65vw;
  padding-bottom: 0;
}
@media (max-aspect-ratio: 16/9) {
  .video-wrapper.screen-cover {
    width: 200vh;
    height: 100vh;
  }
}
@media (max-aspect-ratio: 1/1) {
  .video-wrapper.screen-cover {
    width: 177.77vh;
    height: 100vh;
  }
}
@media (orientation: portrait) {
  .header-box .img-box .video-wrapper {
    height: 100%;
  }
}

/*===plyr===*/
.plyr__control--overlaid {
  background: rgba(224, 167, 101, 0.8) !important;
}

.plyr__control--overlaid:focus, .plyr__control--overlaid:hover {
  background: var(--color-primary) !important;
}

.plyr--audio .plyr__control.plyr__tab-focus, .plyr--audio .plyr__control:hover, .plyr--audio .plyr__control[aria-expanded=true] {
  background: var(--color-primary) !important;
}

.plyr--video .plyr__controls .plyr__control.plyr__tab-focus, .plyr--video .plyr__controls .plyr__control:hover, .plyr--video .plyr__controls .plyr__control[aria-expanded=true] {
  background: var(--color-primary) !important;
}

.plyr__menu__container label.plyr__control input[type=radio]:checked + span {
  background: var(--color-primary) !important;
}

.plyr--full-ui input[type=range] {
  color: var(--color-primary) !important;
}

.plyr__control--overlaid {
  z-index: 3 !important;
}

.box-dark .plyr button {
  color: #fff;
}

/*===lazy===*/
/*===IcoFont===*/
input[type=checkbox] + label:before, .html-button a:before, a.html-button:before, a .html-button:before {
  font-family: IcoFont;
  speak: none;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  line-height: 1;
  -webkit-font-feature-settings: "liga";
          font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
}

.html-button a:before, a.html-button:before, a .html-button:before {
  content: "\ef71";
  margin-right: 3px;
}

/*===material-symbols-outlined===*/
.material-symbols-outlined {
  font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
}

/*===fancybox===*/
a[data-fancybox*=gallery] {
  position: relative;
  display: block;
}
a[data-fancybox*=gallery]:before, a[data-fancybox*=gallery]:after {
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.5);
  line-height: 1em;
}
a[data-fancybox*=gallery]:before {
  font-family: "Material Symbols Outlined";
  content: "\e8ff";
  opacity: 0;
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  height: 50px;
  z-index: 2;
  font-size: 50px;
  text-align: center;
}
@media (max-width: 991px) {
  a[data-fancybox*=gallery]:before {
    font-size: 30px;
    height: 30px;
  }
}
a[data-fancybox*=gallery]:after {
  content: "ZOOM IN";
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-align: center;
  color: #fff;
  z-index: 1;
  width: 100%;
  height: 100%;
  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-transform: translateY(35px);
          transform: translateY(35px);
}
@media (max-width: 991px) {
  a[data-fancybox*=gallery]:after {
    display: none;
  }
}
a[data-fancybox*=gallery][href*=youtube]:before {
  content: "\e039";
  color: #fff;
  opacity: 1;
}
a[data-fancybox*=gallery][href*=youtube]:after {
  content: "PLAY";
}
.desktop a[data-fancybox*=gallery]:hover:before {
  opacity: 1;
  -webkit-transform: scale3d(0.8, 0.8, 1) translateY(-15px);
          transform: scale3d(0.8, 0.8, 1) translateY(-15px);
  color: #fff;
}
.desktop a[data-fancybox*=gallery]:hover:after {
  opacity: 1;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
}
a[data-fancybox*=gallery] img {
  -webkit-transition: opacity 500ms ease-in, -webkit-transform 1000ms ease-out !important;
  transition: opacity 500ms ease-in, -webkit-transform 1000ms ease-out !important;
  transition: opacity 500ms ease-in, transform 1000ms ease-out !important;
  transition: opacity 500ms ease-in, transform 1000ms ease-out, -webkit-transform 1000ms ease-out !important;
}
.desktop a[data-fancybox*=gallery]:hover img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.fancybox-active {
  height: 100%;
}

[data-fancybox-trigger] {
  cursor: pointer;
}

.fancybox-button {
  background: transparent;
}

.fancybox-thumbs {
  background: #000;
}

.fancybox-thumbs__list a:before {
  border: 4px solid rgba(255, 255, 255, 0.8);
}

.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track {
  background: #222;
}

.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb {
  background: #555;
}

.fancybox-construction {
  background: #fff;
}

.fancybox-button, .fancybox-button:link, .fancybox-button:visited {
  color: #fff;
}

.fancybox-thumbs {
  width: 110px;
}

.fancybox-show-thumbs .fancybox-inner {
  right: 110px;
}

.fancybox-thumbs__list a {
  max-width: calc(100% - 10px);
}

.fancybox-is-open .fancybox-bg {
  opacity: 0.97;
}

.fancybox-bg {
  background: rgba(0, 0, 0, 0.9);
}

.fancybox-slide--html {
  padding: 10px 0;
}

.fancybox-content {
  max-width: 85%;
  padding: min(max(8vw, 60px), 120px) min(var(--base-margin), var(--base-margin-max));
  border-radius: 5px;
  color: var(--color-dark);
}
.fancybox-content a {
  color: var(--color-dark);
}

.fancybox-caption {
  white-space: pre-line;
}

@media screen and (min-width: 900px) {
  .fancybox-slide--html .fancybox-close-small {
    position: fixed;
    padding: 0;
    top: 10px;
    right: 15px;
    color: #fff;
  }
}
@media screen and (max-width: 900px) {
  .fancybox-content {
    max-width: 95%;
  }
}
/*.fancybox-thumbs {top: auto; width: auto; bottom: 0; left: 0; right : 0; height: 95px; padding: 10px 10px 5px 10px; box-sizing: border-box; background: rgba(0, 0, 0, 0.3);}
.fancybox-show-thumbs .fancybox-inner {right: 0; bottom: 95px; }*/
/*===justifiedGallery===*/
.justified-gallery > a {
  position: absolute;
}

.justified-gallery > a > .caption {
  display: block;
  opacity: 0;
  padding: 10px;
  font-size: 15px;
  letter-spacing: 0.1em;
  background-color: rgba(0, 0, 0, 0.85);
  z-index: 1;
}

.justified-gallery > a > .caption.caption-visible {
  opacity: 1;
}

/*============page-transition===============*/
.animsition, .animsition-overlay {
  height: 100%;
  min-height: 100%;
}

.animsition-overlay-slide {
  z-index: 999 !important;
  background-color: #000 !important;
}

.animsition-loading, .animsition-loading:after {
  z-index: 999 !important;
}

/**** common web style 1.0.0 ****/
/*===text===*/
.font-normal {
  font-weight: normal;
}

.font-bold {
  font-weight: bold;
}

.tracking--05 {
  letter-spacing: -0.05em;
}

.tracking--1 {
  letter-spacing: -0.1em;
}

.tracking--2 {
  letter-spacing: -0.2em;
}

.tracking-0 {
  letter-spacing: 0em;
}

.tracking-05 {
  letter-spacing: 0.05em;
}

.tracking-1 {
  letter-spacing: 0.1em;
}

.tracking-2 {
  letter-spacing: 0.2em;
}

.tracking-3 {
  letter-spacing: 0.3em;
}

.tracking-4 {
  letter-spacing: 0.4em;
}

.tracking-5 {
  letter-spacing: 0.5em;
}

.tracking-6 {
  letter-spacing: 0.6em;
}

.whitespace-nowrap {
  white-space: nowrap;
}

.text-ellipsis {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  max-width: 100%;
  display: block;
}

.multiline-ellipsis {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.text-justify {
  text-align: justify;
}

.text-right {
  text-align: right;
}

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.paragraph p, .paragraph ul, .paragraph ol {
  margin-bottom: 0.5em;
}

.paragraph p {
  text-align: justify;
  letter-spacing: 0;
}

.list-disc li {
  list-style-type: disc;
  list-style-position: inside;
}

.list-decimal li {
  list-style-type: decimal;
  list-style-position: inside;
}

.text-ver {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
}

.text-hor {
  -webkit-writing-mode: horizontal-tb;
      -ms-writing-mode: lr-tb;
          writing-mode: horizontal-tb;
}

/*===size===*/
.w-1-12 {
  width: 8.3%;
}

.w-2-12 {
  width: 16.6%;
}

.w-3-12 {
  width: 25%;
}

.w-4-12 {
  width: 33.3%;
}

.w-5-12 {
  width: 41.6%;
}

.w-6-12 {
  width: 50%;
}

.w-7-12 {
  width: 58.3%;
}

.w-8-12 {
  width: 66.6%;
}

.w-9-12 {
  width: 75%;
}

.w-10-12 {
  width: 83.3%;
}

.w-11-12 {
  width: 91.6%;
}

.w-1-5 {
  width: 20%;
}

.w-2-5 {
  width: 40%;
}

.w-3-5 {
  width: 60%;
}

.w-4-5 {
  width: 80%;
}

.vw-1-12 {
  width: 8.3vw;
}

.vw-2-12 {
  width: 16.6vw;
}

.vw-3-12 {
  width: 25vw;
}

.vw-4-12 {
  width: 33.3vw;
}

.vw-5-12 {
  width: 41.6vw;
}

.vw-6-12 {
  width: 50vw;
}

.vw-7-12 {
  width: 58.3vw;
}

.vw-8-12 {
  width: 66.6vw;
}

.vw-9-12 {
  width: 75vw;
}

.vw-10-12 {
  width: 83.3vw;
}

.vw-11-12 {
  width: 91.6vw;
}

.vw-1-5 {
  width: 20vw;
}

.vw-2-5 {
  width: 40vw;
}

.vw-3-5 {
  width: 60vw;
}

.vw-4-5 {
  width: 80vw;
}

.w-full {
  width: 100%;
}

.w-screen {
  width: 100vw;
}

.w-auto {
  width: auto;
}

.h-full {
  height: 100%;
}

.h-screen {
  height: 100vh;
}

.h-auto {
  height: auto;
}

.p-0 {
  padding: 0px;
}

.pt-0 {
  padding-top: 0px;
}

.pr-0 {
  padding-right: 0px;
}

.pb-0 {
  padding-bottom: 0px;
}

.pl-0 {
  padding-left: 0px;
}

.m-0 {
  margin: 0px;
}

.mt-0 {
  margin-top: 0px;
}

.mr-0 {
  margin-right: 0px;
}

.mb-0 {
  margin-bottom: 0px;
}

.ml-0 {
  margin-left: 0px;
}

.m-auto {
  margin: auto;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.my-auto {
  margin-top: auto;
  margin-bottom: auto;
}

.mt-auto {
  margin-top: auto;
}

.mr-auto {
  margin-right: auto;
}

.mb-auto {
  margin-bottom: auto;
}

.ml-auto {
  margin-left: auto;
}

.ratio-16x9 {
  padding-bottom: 56.24%;
}

.ratio-3x2 {
  padding-bottom: 66.66%;
}

.ratio-4x3 {
  padding-bottom: 75%;
}

.ratio-1x1 {
  padding-bottom: 100%;
}

.ratio-3x4 {
  padding-bottom: 133%;
}

.ratio-2x3 {
  padding-bottom: 150%;
}

.ratio-9x16 {
  padding-bottom: 177%;
}

.gap-0 {
  gap: 0;
}

.gap-x-0 {
  -webkit-column-gap: 0;
     -moz-column-gap: 0;
          column-gap: 0;
}

.gap-y-0 {
  row-gap: 0;
}

.gap-05 {
  gap: 5px;
}

.gap-1 {
  gap: min(max(2%, 0.31em), 0.63em);
  row-gap: min(max(0.7vw, 0.31em), 0.63em);
}

.gap-2 {
  gap: min(max(4%, 0.63em), 1.25em);
  row-gap: min(max(1.3vw, 0.63em), 1.25em);
}

.gap-3 {
  gap: min(max(6%, 0.94em), 1.88em);
  row-gap: min(max(2vw, 0.94em), 1.88em);
}

.gap-4 {
  gap: min(max(8%, 1.56em), 2.5em);
  row-gap: min(max(2.7vw, 1.56em), 2.5em);
}

.gap-5 {
  gap: min(max(10%, 1.88em), 3.13em);
  row-gap: min(max(3.3vw, 1.88em), 3.13em);
}

.max-w-900 {
  max-width: 900px;
}

/*===grids===*/
.static {
  position: static;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.sticky {
  position: sticky;
}

.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

.inline {
  display: inline;
}

.flex, [class*=flex-] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.grid {
  display: grid;
}

.hidden {
  display: none;
}

.columns-1 {
  -webkit-column-count: 1;
     -moz-column-count: 1;
          column-count: 1;
}

.columns-2 {
  -webkit-column-count: 2;
     -moz-column-count: 2;
          column-count: 2;
}

.columns-3 {
  -webkit-column-count: 3;
     -moz-column-count: 3;
          column-count: 3;
}

.columns-4 {
  -webkit-column-count: 4;
     -moz-column-count: 4;
          column-count: 4;
}

.columns-5 {
  -webkit-column-count: 5;
     -moz-column-count: 5;
          column-count: 5;
}

.break-after-column {
  -webkit-column-break-after: column;
     -moz-column-break-after: column;
          break-after: column;
}

.break-before-column {
  -webkit-column-break-before: column;
     -moz-column-break-before: column;
          break-before: column;
}

.flex-wrap {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.flex-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.flex-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

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

.flex-col-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}

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

.grow {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.grid-rows-2 {
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.grid-rows-3 {
  grid-template-rows: repeat(3, minmax(0, 1fr));
}

.grid-rows-4 {
  grid-template-rows: repeat(4, minmax(0, 1fr));
}

.grid-rows-5 {
  grid-template-rows: repeat(5, minmax(0, 1fr));
}

.grid-rows-6 {
  grid-template-rows: repeat(6, minmax(0, 1fr));
}

.col-span-1 {
  grid-column: span 1/span 1;
}

.col-span-2 {
  grid-column: span 2/span 2;
}

.col-span-3 {
  grid-column: span 3/span 3;
}

.col-span-4 {
  grid-column: span 4/span 4;
}

.col-span-5 {
  grid-column: span 5/span 5;
}

.col-span-6 {
  grid-column: span 6/span 6;
}

.row-span-1 {
  grid-row: span 1/span 1;
}

.row-span-2 {
  grid-row: span 2/span 2;
}

.row-span-3 {
  grid-row: span 3/span 3;
}

.row-span-4 {
  grid-row: span 4/span 4;
}

.row-span-5 {
  grid-row: span 5/span 5;
}

.row-span-6 {
  grid-row: span 6/span 6;
}

.grid-flow-row {
  grid-auto-flow: row;
}

.grid-flow-col {
  grid-auto-flow: column;
}

.grid-flow-dense {
  grid-auto-flow: dense;
}

.grid-flow-row-dense {
  grid-auto-flow: row dense;
}

.grid-flow-col-dense {
  grid-auto-flow: column dense;
}

.content-center {
  -ms-flex-line-pack: center;
      align-content: center;
}

.content-start {
  -ms-flex-line-pack: start;
      align-content: flex-start;
}

.content-end {
  -ms-flex-line-pack: end;
      align-content: flex-end;
}

.content-between {
  -ms-flex-line-pack: justify;
      align-content: space-between;
}

.content-around {
  -ms-flex-line-pack: distribute;
      align-content: space-around;
}

.content-stretch {
  -ms-flex-line-pack: stretch;
      align-content: stretch;
}

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

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

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

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

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

.self-start {
  -ms-flex-item-align: start;
      align-self: flex-start;
}

.self-end {
  -ms-flex-item-align: end;
      align-self: flex-end;
}

.self-center {
  -ms-flex-item-align: center;
      align-self: center;
}

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

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

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

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

.justify-around {
  -ms-flex-pack: distribute;
      justify-content: space-around;
}

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

.place-content-center {
  place-content: center;
}

.place-content-end {
  place-content: end;
}

.place-content-between {
  place-content: space-between;
}

.order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.order-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.order-4 {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4;
}

.order-5 {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
}

.order-6 {
  -webkit-box-ordinal-group: 7;
      -ms-flex-order: 6;
          order: 6;
}

.top-0 {
  top: 0px;
}

.right-0 {
  right: 0px;
}

.bottom-0 {
  bottom: 0px;
}

.left-0 {
  left: 0px;
}

.top-1-2 {
  top: 50%;
}

.top-1-3 {
  top: 33.333333%;
}

.top-2-3 {
  top: 66.666667%;
}

.top-1-4 {
  top: 25%;
}

.top-full {
  top: 100%;
}

.left-1-2 {
  left: 50%;
}

.left-1-3 {
  left: 33.333333%;
}

.left-2-3 {
  left: 66.666667%;
}

.left-1-4 {
  left: 25%;
}

.left-full {
  left: 100%;
}

.center-0 {
  left: 50%;
  top: 50%;
}

.bottom-0-relative {
  top: 100%;
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}

.right-0-relative {
  left: 100%;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}

.translate-md {
  -webkit-transform: translate3d(-50%, -50%, 0);
          transform: translate3d(-50%, -50%, 0);
}

.translate-md-x {
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.translate-md-y {
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.translate-end {
  -webkit-transform: translate3d(-100%, -100%, 0);
          transform: translate3d(-100%, -100%, 0);
}

.z--1 {
  z-index: -1;
}

.z-0 {
  z-index: 0;
}

.z-1 {
  z-index: 1;
}

.z-2 {
  z-index: 2;
}

.z-3 {
  z-index: 3;
}

.z-10 {
  z-index: 10;
}

.z-20 {
  z-index: 20;
}

.z-30 {
  z-index: 30;
}

.z-100 {
  z-index: 100;
}

.overflow-auto {
  overflow: auto;
}

.overflow-hidden {
  overflow: hidden;
}

.overflow-visible {
  overflow: visible;
}

.pointer-events-none {
  pointer-events: none;
}

.pointer-events-auto {
  pointer-events: auto;
}

/*===clear===*/
.float-left {
  float: left;
}

.float-right {
  float: right;
}

.clear {
  clear: both;
}

.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

.clearfix {
  display: inline-block;
}

* html .clearfix {
  height: 1%;
}

.clearfix {
  display: block;
}

/*===effects===*/
.text-shadow {
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.2);
}

.box-shadow {
  -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
          box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
}

.drop-shadow {
  -webkit-filter: drop-shadow(0 10px 8px rgba(0, 0, 0, 0.04)) drop-shadow(0 4px 3px rgba(0, 0, 0, 0.2));
          filter: drop-shadow(0 10px 8px rgba(0, 0, 0, 0.04)) drop-shadow(0 4px 3px rgba(0, 0, 0, 0.2));
}

.blur {
  -webkit-filter: blur(8px);
          filter: blur(8px);
}

.backdrop-blur {
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
}

.mix-blend-multiply {
  mix-blend-mode: multiply;
}

.mix-blend-color-burn {
  mix-blend-mode: color-burn;
}

.mix-blend-screen {
  mix-blend-mode: screen;
}

.mix-blend-color-dodge {
  mix-blend-mode: color-dodge;
}

.mix-blend-overlay {
  mix-blend-mode: overlay;
}

.mix-blend-soft-light {
  mix-blend-mode: soft-light;
}

.mix-blend-hard-light {
  mix-blend-mode: hard-light;
}

.mix-blend-difference {
  mix-blend-mode: difference;
}

.mix-blend-exclusion {
  mix-blend-mode: exclusion;
}

.opacity-0 {
  opacity: 0;
}

.opacity-10 {
  opacity: 0.1;
}

.opacity-20 {
  opacity: 0.2;
}

.opacity-30 {
  opacity: 0.3;
}

.opacity-40 {
  opacity: 0.4;
}

.opacity-50 {
  opacity: 0.5;
}

.opacity-60 {
  opacity: 0.6;
}

.opacity-70 {
  opacity: 0.7;
}

.opacity-80 {
  opacity: 0.8;
}

.opacity-90 {
  opacity: 0.9;
}

.opacity-100 {
  opacity: 1;
}

.before-opacity-50:before {
  opacity: 0.5;
}

.after-opacity-50:after {
  opacity: 0.5;
}

/*===img===*/
.bg-full {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
}

.bg-top {
  background-position: top;
}

.bg-bottom {
  background-position: bottom;
}

.bg-cover {
  background-size: cover;
}

.bg-contain {
  background-size: contain;
}

.object-contain, .object-cover, .object-fill {
  width: 100%;
  height: 100%;
}

.object-contain {
  -o-object-fit: contain !important;
     object-fit: contain !important;
}

.object-cover {
  -o-object-fit: cover !important;
     object-fit: cover !important;
}

.object-fill {
  -o-object-fit: fill !important;
     object-fit: fill !important;
}

.object-top {
  -o-object-position: top !important;
     object-position: top !important;
}

.object-bottom {
  -o-object-position: bottom !important;
     object-position: bottom !important;
}

.bg-mask-full:before, .bg-mask-y:before, .bg-mask-t:before, .bg-mask-b:before, .bg-mask-x:after, .bg-mask-l:after, .bg-mask-r:after, .bg-mask-tl:before, .bg-mask-bl:before, .bg-mask-tr:after, .bg-mask-br:after {
  content: "";
  display: block;
  position: absolute;
  z-index: 2;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.bg-mask-full:before {
  background-color: rgba(0, 0, 0, 0.5);
}

.bg-mask-y:before {
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(5%, rgba(0, 0, 0, 0.5)), color-stop(40%, rgba(0, 0, 0, 0)), color-stop(60%, rgba(0, 0, 0, 0)), color-stop(95%, rgba(0, 0, 0, 0.5)));
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, 0.5) 95%);
}

.bg-mask-t:before {
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(5%, rgba(0, 0, 0, 0.5)), color-stop(50%, rgba(0, 0, 0, 0)));
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 50%);
}

.bg-mask-b:before {
  background-image: -webkit-gradient(linear, left bottom, left top, color-stop(5%, rgba(0, 0, 0, 0.5)), color-stop(50%, rgba(0, 0, 0, 0)));
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 50%);
}

.bg-mask-x:after {
  background-image: -webkit-gradient(linear, right top, left top, color-stop(5%, rgba(0, 0, 0, 0.5)), color-stop(40%, rgba(0, 0, 0, 0)), color-stop(60%, rgba(0, 0, 0, 0)), color-stop(95%, rgba(0, 0, 0, 0.5)));
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, 0.5) 95%);
}

.bg-mask-l:after {
  background-image: -webkit-gradient(linear, left top, right top, color-stop(5%, rgba(0, 0, 0, 0.5)), color-stop(50%, rgba(0, 0, 0, 0)));
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 50%);
}

.bg-mask-r:after {
  background-image: -webkit-gradient(linear, right top, left top, color-stop(5%, rgba(0, 0, 0, 0.5)), color-stop(50%, rgba(0, 0, 0, 0)));
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 50%);
}

.bg-mask-tl:before {
  background-image: linear-gradient(135deg, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 50%);
}

.bg-mask-bl:before {
  background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 50%);
}

.bg-mask-tr:after {
  background-image: linear-gradient(225deg, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 50%);
}

.bg-mask-br:after {
  background-image: linear-gradient(315deg, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 50%);
}

/*===hide===*/
@media (min-width: 330px) {
  .hide-xxs {
    display: none !important;
  }
}

@media (max-width: 329px) {
  .show-xxs {
    display: none !important;
  }
}

@media (min-width: 400px) {
  .hide-xs {
    display: none !important;
  }
}

@media (max-width: 399px) {
  .show-xs {
    display: none !important;
  }
}

@media (min-width: 576px) {
  .hide-sm {
    display: none !important;
  }
}

@media (max-width: 575px) {
  .show-sm {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .hide-md {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .show-md {
    display: none !important;
  }
}

@media (min-width: 992px) {
  .hide-lg {
    display: none !important;
  }
}

@media (max-width: 991px) {
  .show-lg {
    display: none !important;
  }
}

@media (min-width: 1200px) {
  .hide-xl {
    display: none !important;
  }
}

@media (max-width: 1199px) {
  .show-xl {
    display: none !important;
  }
}

@media (min-width: 1400px) {
  .hide-xxl {
    display: none !important;
  }
}

@media (max-width: 1399px) {
  .show-xxl {
    display: none !important;
  }
}