.kd-fu-clean-reset,
.kd-fu-clean-reset * {
  box-sizing: border-box;
}

body.page_mobilehome {
  overflow-x: hidden;
  background: #1d1512;
}

body.page_mobilehome #Dyn_head {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 1000 !important;
}

body.page_mobilehome .wrap > .minner,
body.page_mobilehome .row_0 > .mrow,
body.page_mobilehome .row_0 .col_02,
body.page_mobilehome #Dyn_2_1.M14778,
body.page_mobilehome #Dyn_2_1.M14778 > .module,
body.page_mobilehome #Dyn_2_1.M14778 .mb {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  background: transparent !important;
}

body.page_mobilehome #Dyn_2_1.M14778 > .module {
  margin-bottom: 0 !important;
}

body.page_mobilehome #Dyn_footer,
body.page_mobilehome #Dyn_footer > .footer,
body.page_mobilehome #Dyn_footer > .footer > .minner,
body.page_mobilehome #Dyn_footer .copyright,
body.page_mobilehome #Dyn_footer .meditor,
body.page_mobilehome #Dyn_footer .module,
body.page_mobilehome #Dyn_footer .mb {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.page_mobilehome #Dyn_footer {
  position: relative;
  left: 50%;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: 0 !important;
  transform: translateX(-50%);
}

body.page_mobilehome #Dyn_footer > .footer {
  background: transparent !important;
}

.kd-fu-hero-clean {
  position: relative;
  width: 100vw;
  min-height: 100svh;
  min-height: 100vh;
  overflow: hidden;
  background: #88c8ea;
  isolation: isolate;
}

.kd-fu-hero-clean::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    radial-gradient(circle at 68% 16%, rgba(255, 244, 179, .28), transparent 22%),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 45%, rgba(14, 48, 38, .16));
  pointer-events: none;
}

.kd-fu-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  filter: brightness(1.08) saturate(1.08) contrast(1.02);
  transform: scale(1.012);
}

.kd-fu-fog-canvas {
  position: absolute;
  inset: 0;
  z-index: 5;
  width: 100%;
  height: 100%;
  pointer-events: none;
  mix-blend-mode: screen;
}

.kd-fu-mist-layer {
  position: absolute;
  left: -28vw;
  right: -28vw;
  z-index: 4;
  pointer-events: none;
  mix-blend-mode: screen;
  will-change: transform, opacity;
}

.kd-fu-mist-layer.is-back {
  top: 28svh;
  height: 22svh;
  opacity: .22;
  filter: blur(24px);
  background:
    radial-gradient(ellipse at 18% 58%, rgba(255,255,255,.24), transparent 30%),
    radial-gradient(ellipse at 52% 52%, rgba(255,255,255,.20), transparent 34%),
    radial-gradient(ellipse at 82% 58%, rgba(255,255,255,.18), transparent 31%);
  animation: none;
}

.kd-fu-mist-layer.is-mid {
  top: 57svh;
  height: 24svh;
  opacity: .26;
  filter: blur(22px);
  background:
    radial-gradient(ellipse at 14% 62%, rgba(255,255,255,.28), transparent 34%),
    radial-gradient(ellipse at 48% 54%, rgba(255,255,255,.24), transparent 34%),
    radial-gradient(ellipse at 84% 60%, rgba(255,255,255,.25), transparent 35%),
    linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent);
  animation: none;
}

.kd-fu-mist-layer.is-front {
  bottom: -12svh;
  height: 26svh;
  opacity: .30;
  filter: blur(26px);
  background:
    radial-gradient(ellipse at 18% 54%, rgba(255,255,255,.28), transparent 35%),
    radial-gradient(ellipse at 58% 48%, rgba(255,255,255,.22), transparent 34%),
    radial-gradient(ellipse at 88% 58%, rgba(255,255,255,.26), transparent 35%);
  animation: none;
}

.kd-fu-frame-head {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100vw;
  padding: 24px clamp(24px, 5vw, 72px);
  color: #fff;
  background: linear-gradient(180deg, rgba(8,25,31,.38), rgba(8,25,31,0));
  text-shadow: 0 2px 14px rgba(0,0,0,.42);
  pointer-events: none;
}

.kd-fu-frame-brand {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  color: #fff;
  font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", Arial, sans-serif;
}

.kd-fu-frame-brand img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  background: #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.22);
}

.kd-fu-frame-brand strong {
  display: block;
  font-size: clamp(24px, 3vw, 40px);
  line-height: .98;
  letter-spacing: .025em;
  font-family: "DFKai-SB", "BiauKai", "KaiTi", "STKaiti", "Noto Serif TC", serif;
  font-weight: 700;
  -webkit-text-stroke: .2px rgba(255,255,255,.42);
  transform: scaleX(.98);
  transform-origin: left center;
  white-space: nowrap;
}

.kd-fu-frame-brand small {
  display: block;
  margin-top: 6px;
  margin-left: .48em;
  font-size: 12px;
  line-height: 1;
  letter-spacing: .22em;
  text-align: left;
  opacity: .82;
}

.kd-fu-head {
  position: relative;
  z-index: 1000;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", Arial, sans-serif;
}

.kd-fu-headbar {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  width: 100vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 24px clamp(24px, 2.8vw, 40px) 24px clamp(24px, 5vw, 72px);
  color: #fff;
  text-shadow: 0 2px 14px rgba(0,0,0,.42);
  background: linear-gradient(180deg, rgba(8,25,31,.38), rgba(8,25,31,0));
  border: 0;
}

.kd-fu-brand {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  color: #fff !important;
  text-decoration: none !important;
}

.kd-fu-brand span {
  display: block;
  text-align: left;
}

.kd-fu-brand img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  background: #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.22);
}

.kd-fu-brand strong {
  display: block;
  font-size: clamp(24px, 3vw, 40px);
  line-height: .98;
  letter-spacing: .025em;
  font-family: "DFKai-SB", "BiauKai", "KaiTi", "STKaiti", "Noto Serif TC", serif;
  font-weight: 700;
  -webkit-text-stroke: .2px rgba(255,255,255,.42);
  transform: scaleX(.98);
  transform-origin: left center;
  white-space: nowrap;
}

.kd-fu-brand small {
  display: block;
  margin-top: 6px;
  margin-left: .48em;
  font-size: 12px;
  line-height: 1;
  letter-spacing: .22em;
  text-align: left;
  opacity: .82;
}

.kd-fu-nav-toggle {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
  pointer-events: none;
}

.kd-fu-menu-button {
  display: none;
  position: relative;
  z-index: 1400;
  width: 48px;
  height: 48px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.26);
  background: rgba(9, 27, 38, .14);
  color: #fff;
  cursor: pointer;
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
}

.kd-fu-menu-button span,
.kd-fu-menu-button::before,
.kd-fu-menu-button::after {
  content: "";
  display: block;
  width: 23px;
  height: 2px;
  background: currentColor;
  box-shadow: 0 1px 7px rgba(0,0,0,.22);
  transition: transform .25s ease, opacity .2s ease;
}

.kd-fu-menu-button {
  flex-direction: column;
  gap: 6px;
}

.kd-fu-menu,
.kd-fu-menu .nav,
.kd-fu-menu .navbar-nav {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", Arial, sans-serif;
}

.kd-fu-menu a {
  color: #fff !important;
  text-decoration: none !important;
  font-size: 16px;
  line-height: 1.45;
  letter-spacing: .12em;
  white-space: nowrap;
  font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", Arial, sans-serif !important;
}

.kd-fu-menu ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.kd-fu-menu li {
  position: relative;
}

.kd-fu-menu .dropdown-menu,
.kd-fu-menu .navbar-nav .dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 1200;
  min-width: 170px;
  width: auto;
  max-width: 260px;
  margin: 10px 0 0;
  padding: 8px 0;
  transform: translateX(-50%);
  background: rgba(22,18,15,.86);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 0;
  box-shadow: 0 18px 42px rgba(0,0,0,.28);
  text-align: left;
}

.kd-fu-menu li:hover > .dropdown-menu,
.kd-fu-menu li.open > .dropdown-menu {
  display: block;
}

.kd-fu-menu .dropdown-menu li {
  display: block;
  width: auto;
  margin: 0;
  padding: 0;
}

.kd-fu-menu .dropdown-menu a {
  display: block;
  padding: 9px 16px;
  color: rgba(255,255,255,.94) !important;
  background: transparent !important;
  font-size: 16px;
  line-height: 1.45;
  letter-spacing: .08em;
  text-align: left;
  text-shadow: none;
  white-space: nowrap;
}

.kd-fu-menu .dropdown-menu a:hover,
.kd-fu-menu .dropdown-menu a:focus {
  color: #f7e5bb !important;
  background: rgba(255,255,255,.09) !important;
}

.kd-fu-menu .dropdown-menu .dropdown-menu {
  top: 0;
  left: 100%;
  margin: 0 0 0 8px;
  transform: none;
}

.kd-fu-menu .navbar-toggle {
  display: none !important;
}

.kd-fu-footer {
  position: relative;
  left: 50%;
  width: 100vw;
  max-width: 100vw;
  margin-left: 0;
  transform: translateX(-50%);
  background:
    linear-gradient(180deg, rgba(42, 31, 23, .98), rgba(22, 15, 12, 1)),
    #1d1512;
  color: #f9f0df;
  font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", Arial, sans-serif;
}

.kd-fu-footer-inner {
  width: 100%;
  margin: auto;
  padding: 46px clamp(28px, 5vw, 86px) 28px;
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  gap: 34px;
  color: #d8c8ad;
  line-height: 1.8;
}

.kd-fu-footer * {
  box-sizing: border-box;
}

.kd-fu-footer h2,
.kd-fu-footer h3,
.kd-fu-footer p,
.kd-fu-footer dl {
  margin: 0;
}

.kd-fu-footer-kicker {
  margin-bottom: 8px !important;
  color: #d7b66f;
  font-size: 13px;
  letter-spacing: .2em;
}

.kd-fu-footer h2 {
  display: block;
  color: #fff;
  font-family: "DFKai-SB", "BiauKai", "KaiTi", "STKaiti", "Noto Serif TC", serif;
  font-size: 30px;
  line-height: 1.15;
  letter-spacing: .04em;
  margin-bottom: 12px;
}

.kd-fu-footer h3 {
  color: #f0d28f;
  font-size: 16px;
  letter-spacing: .14em;
  margin-bottom: 14px;
}

.kd-fu-footer p {
  color: #d8c8ad;
  line-height: 1.9;
}

.kd-fu-footer dl {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 10px 12px;
  align-items: start;
  color: #d8c8ad;
}

.kd-fu-footer dt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-top: 2px;
  border: 1px solid rgba(240, 210, 143, .34);
  border-radius: 50%;
  color: #f0d28f;
  font-size: 0;
  background: rgba(255,255,255,.045);
}

.kd-fu-footer dt::before {
  content: "";
  display: block;
  width: 15px;
  height: 15px;
  background: currentColor;
  -webkit-mask: var(--kd-fu-contact-icon) center / contain no-repeat;
  mask: var(--kd-fu-contact-icon) center / contain no-repeat;
}

.kd-fu-footer dt.is-address {
  --kd-fu-contact-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 22s7-6.2 7-13a7 7 0 1 0-14 0c0 6.8 7 13 7 13Zm0-9.5A3.5 3.5 0 1 1 12 5a3.5 3.5 0 0 1 0 7.5Z'/%3E%3C/svg%3E");
}

.kd-fu-footer dt.is-phone {
  --kd-fu-contact-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.6 2.7 4.2 5.1c-.9.9-1.2 2.2-.7 3.3 2.2 5.6 6.5 9.9 12.1 12.1 1.1.4 2.4.2 3.3-.7l2.4-2.4c.5-.5.5-1.3 0-1.8l-3.4-3.4c-.5-.5-1.3-.5-1.8 0l-1.5 1.5c-2.1-1.1-3.8-2.8-4.9-4.9l1.5-1.5c.5-.5.5-1.3 0-1.8L7.4 2.7c-.5-.5-1.3-.5-1.8 0Z'/%3E%3C/svg%3E");
}

.kd-fu-footer dt.is-mail {
  --kd-fu-contact-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm9 8.2L4.8 7H19.2L12 13.2Zm-2.1-.4L4 18h16l-5.9-5.2-2.1 1.8-2.1-1.8Z'/%3E%3C/svg%3E");
}

.kd-fu-footer dt.is-time {
  --kd-fu-contact-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 5v5.1l4 2.4-1 1.7-5-3V7h2Z'/%3E%3C/svg%3E");
}

.kd-fu-footer dd {
  margin: 0;
  min-height: 30px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 .28em;
}

.kd-fu-footer a {
  color: #f9f0df !important;
  text-decoration: none !important;
}

.kd-fu-footer a:hover,
.kd-fu-footer a:focus {
  color: #f0d28f !important;
}

.kd-fu-footer-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
}

.kd-fu-footer-links a {
  color: #d8c8ad !important;
}

.kd-fu-footer-note {
  margin-top: 16px !important;
  color: #ad9874 !important;
  font-size: 14px;
}

.kd-fu-footer-bottom {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 22px;
  border-top: 1px solid rgba(240, 210, 143, .18);
  color: #ad9874;
  font-size: 13px;
}

.kd-fu-footer-bottom a {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

.kd-fu-footer-bottom a:hover,
.kd-fu-footer-bottom a:focus {
  color: #f0d28f !important;
}

@media (max-width: 860px) {
  .kd-fu-footer-inner {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 38px 22px 26px;
    font-size: 15px;
    line-height: 1.75;
  }

  .kd-fu-footer-inner > section + section {
    margin-top: 30px;
  }

  .kd-fu-footer h3 {
    margin-bottom: 14px;
    font-size: 15px;
    letter-spacing: .12em;
  }

  .kd-fu-footer h2 {
    font-size: 23px;
    margin-bottom: 10px;
  }

  .kd-fu-footer-kicker {
    font-size: 12px;
    letter-spacing: .18em;
  }

  .kd-fu-footer p {
    font-size: 15px;
    line-height: 1.8;
  }

  .kd-fu-footer dl {
    grid-template-columns: 30px 1fr;
    gap: 9px 11px;
  }

  .kd-fu-footer dt {
    width: 26px;
    height: 26px;
  }

  .kd-fu-footer dt::before {
    width: 13px;
    height: 13px;
  }

  .kd-fu-footer dd {
    min-height: 28px;
    font-size: 15px;
  }

  .kd-fu-footer-links {
    gap: 7px 14px;
  }

  .kd-fu-footer-links a {
    font-size: 16px;
  }

  .kd-fu-footer-note {
    font-size: 14px;
    line-height: 1.75;
  }

  .kd-fu-footer-bottom {
    display: block;
    font-size: 13px;
    line-height: 1.75;
  }

  .kd-fu-footer-bottom span {
    display: block;
    margin-top: 6px;
  }
}

@keyframes kdMistBack {
  from { transform: translate3d(-8vw, 0, 0) scale(1.02); opacity: .20; }
  to { transform: translate3d(9vw, -8px, 0) scale(1.06); opacity: .20; }
}

@keyframes kdMistMid {
  from { transform: translate3d(9vw, 10px, 0) scale(1.02); opacity: .23; }
  to { transform: translate3d(-10vw, -7px, 0) scale(1.08); opacity: .23; }
}

@keyframes kdMistFront {
  from { transform: translate3d(-7vw, 8px, 0) scale(1.04); opacity: .26; }
  to { transform: translate3d(8vw, -10px, 0) scale(1.10); opacity: .26; }
}

@media (max-width: 860px) {
  .kd-fu-hero-image {
    object-position: 50% 50%;
  }

  .kd-fu-fog-canvas {
    opacity: .95;
  }

  .kd-fu-headbar {
    padding: 18px 20px;
  }

  .kd-fu-frame-head {
    padding: 18px 20px;
  }

  .kd-fu-brand img,
  .kd-fu-frame-brand img {
    width: 62px;
    height: 62px;
  }

  .kd-fu-brand strong,
  .kd-fu-brand small,
  .kd-fu-frame-brand strong,
  .kd-fu-frame-brand small {
    display: none;
  }

  .kd-fu-menu-button {
    display: inline-flex;
  }

  .kd-fu-nav-toggle:checked + .kd-fu-menu-button {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.32);
    color: #fff;
  }

  .kd-fu-nav-toggle:checked + .kd-fu-menu-button span {
    opacity: 0;
  }

  .kd-fu-nav-toggle:checked + .kd-fu-menu-button::before {
    transform: translateY(8px) rotate(45deg);
  }

  .kd-fu-nav-toggle:checked + .kd-fu-menu-button::after {
    transform: translateY(-8px) rotate(-45deg);
  }

  body.page_mobilehome #Dyn_2_1,
  body.page_mobilehome #Dyn_footer {
    transition: transform .35s ease;
  }

  body.page_mobilehome:has(.kd-fu-nav-toggle:checked) #Dyn_2_1,
  body.page_mobilehome:has(.kd-fu-nav-toggle:checked) #Dyn_footer {
    transform: translateX(-33vw);
  }

  .kd-fu-menu {
    position: fixed;
    z-index: 1350;
    top: 0;
    right: 0;
    bottom: 0;
    left: auto;
    display: block !important;
    width: 67vw;
    min-width: 0;
    height: auto;
    min-height: 100vh;
    min-height: 100dvh;
    max-height: none;
    overflow: auto;
    padding: 98px 0 28px;
    opacity: 1;
    background: rgba(18, 13, 11, .78);
    background-image: none;
    -webkit-backdrop-filter: blur(12px) saturate(112%);
    backdrop-filter: blur(12px) saturate(112%);
    border-left: 1px solid rgba(255,255,255,.16);
    box-shadow: -18px 0 46px rgba(0,0,0,.42);
    text-align: center;
    transform: translateX(100%);
    transition: transform .35s ease;
  }

  .kd-fu-nav-toggle:checked ~ .kd-fu-menu {
    transform: translateX(0);
  }

  .kd-fu-nav-toggle:checked ~ .kd-fu-menu .nav-toggle,
  .kd-fu-nav-toggle:checked ~ .kd-fu-menu .navbar-collapse,
  .kd-fu-nav-toggle:checked ~ .kd-fu-menu .collapse {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
    visibility: visible !important;
  }

  .kd-fu-menu .mnavbar,
  .kd-fu-menu .hdmenu,
  .kd-fu-menu .nav-toggle,
  .kd-fu-menu .navbar-collapse {
    width: 100% !important;
    height: auto !important;
  }

  .kd-fu-menu .nav,
  .kd-fu-menu .navbar-nav {
    display: block;
    width: 100%;
  }

  .kd-fu-menu li {
    display: block;
    width: 100%;
  }

  .kd-fu-menu a {
    display: block;
    padding: 13px 18px;
    font-size: 16px;
    line-height: 1.55;
    text-align: center;
    white-space: normal;
  }

  .kd-fu-menu .dropdown-menu,
  .kd-fu-menu .navbar-nav .dropdown-menu {
    position: static;
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 0 8px;
    transform: none;
    background: transparent;
    border: 0;
    box-shadow: none;
    text-align: center;
  }

  .kd-fu-menu .dropdown-menu a {
    padding: 9px 22px;
    font-size: 16px;
    color: rgba(255,255,255,.78) !important;
    text-align: center;
    white-space: normal;
  }

  .kd-fu-footer-inner {
    display: block;
  }
}
