/*===========================
  COMMON css 
===========================*/
@import url("https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&display=swap");

:root {
  --font: "Nunito Sans", sans-serif;
  --body-color: #637381;
  --heading-color: #212b36;
  /*--primary-color: #3056d3;*/
	--primary-color: #27aae1;
  --white: #ffffff;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font);
  font-weight: normal;
  font-style: normal;
  color: var(--body-color);
  overflow-x: hidden;
}

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}


img {
  max-width: 100%;
}

a,
button,
input,
textarea {
  -webkit-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
}

a,
a:focus,
input:focus,
textarea:focus,
button:focus,
.navbar-toggler:focus {
  text-decoration: none;
  outline: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}

a:focus,
a:hover {
  text-decoration: none;
}

i,
span,
a {
  display: inline-block;
}

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}

h1,
h2,
h3,
h4,
h5,
h6{
  font-weight: 700;
  color: var(--heading-color);
  margin: 0px;
}

h1 {
  font-size: 48px;
}

h2 {
  font-size: 36px;
}

h3 {
  font-size: 28px;
}

h4 {
  font-size: 22px;
}

h5 {
  font-size: 18px;
}

h6 {
  font-size: 16px;
}

ul,
ol {
  margin: 0px;
  padding: 0px;
  list-style-type: none;
}

p {
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  color: var(--body-color);
  margin: 0px;
}


p2 {
  font-size: 12px;
  font-weight: 200;
  line-height: 16px;
  color: var(--body-color);
  margin: 0px;
}

.bg_cover {
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  width: 100%;
  height: 100%;
}

/*===== All Button Style =====*/
.ud-main-btn {
  display: inline-block;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  font-weight: 500;
  font-size: 16px;
  border-radius: 5px;
  padding: 15px 25px;
  border: 1px solid transparent;
  color: var(--white);
  cursor: pointer;
  z-index: 5;
  -webkit-transition: all 0.4s ease-out 0s;
  transition: all 0.4s ease-out 0s;
  background: var(--primary-color);
}

.ud-main-btn:hover {
  color: var(--white);
  background: var(--heading-color);
}

@media (max-width: 767px) {
  .container {
    padding-left: 40px;
    padding-right: 40px;
  }
}

@media only screen and (min-width: 576px) and (max-width: 767px) {
  .container {
    padding-left: 20px;
    padding-right: 20px;
  }
}

.back-to-top {
  width: 40px;
  height: 40px;
  line-height: 40px;
  background: var(--primary-color);
  -webkit-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
          box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
  text-align: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-radius: 5px;
  position: fixed;
  right: 30px;
  bottom: 30px;
  z-index: 99;
  color: var(--white);
}

.back-to-top:hover {
  color: var(--white);
  background: var(--heading-color);
}

/* ===== Header CSS ===== */
.ud-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 99;
  -webkit-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
}

.sticky {
  position: fixed;
  z-index: 99;
  background-color: rgba(255, 255, 255, 0.8);
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  -webkit-box-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, 0.1);
  -webkit-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
}

.sticky .navbar {
  padding: 0;
}

.navbar {
  padding: 0px 0;
  border-radius: 5px;
  position: relative;
  -webkit-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
}

.navbar-brand {
  padding: 0;
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .navbar-brand {
    padding: 5px 0px;
  }
}

.navbar-brand img {
  max-width: 160px;
}

.navbar-toggler {
  padding: 0;
}

.navbar-toggler .toggler-icon {
  width: 30px;
  height: 2px;
  background-color: var(--white);
  display: block;
  margin: 5px 0;
  position: relative;
  -webkit-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
}

.navbar-toggler.active .toggler-icon:nth-of-type(1) {
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  top: 7px;
}

.navbar-toggler.active .toggler-icon:nth-of-type(2) {
  opacity: 0;
}

.navbar-toggler.active .toggler-icon:nth-of-type(3) {
  -webkit-transform: rotate(135deg);
  transform: rotate(135deg);
  top: -7px;
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .navbar-collapse {
    position: absolute;
    top: 100%;
    right: 0;
    max-width: 300px;
    width: 100%;
    background-color: var(--white);
    z-index: 9;
    -webkit-box-shadow: 0px 15px 20px 0px rgba(0, 0, 0, 0.1);
    box-shadow: 0px 15px 20px 0px rgba(0, 0, 0, 0.1);
    padding: 0px;
    display: none;
    border-radius: 5px;
  }
  .navbar-collapse.show {
    display: block;
  }
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .navbar-nav {
    padding: 20px 30px;
  }
}

.navbar-nav .nav-item {
  position: relative;
  padding: 0px 20px;
}

@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .navbar-nav .nav-item {
    padding: 0px 12px;
  }
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .navbar-nav .nav-item {
    padding: 0px;
  }
}

.navbar-nav .nav-item > a {
  font-size: 16px;
  font-weight: 400;
  color: var(--white);
  -webkit-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
  padding: 25px 8px;
  position: relative;
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .navbar-nav .nav-item > a {
    display: block;
    padding: 8px 0;
    color: var(--heading-color);
  }
}

.navbar-nav .nav-item > a:hover, .navbar-nav .nav-item > a.active {
  color: var(--white);
  opacity: 0.5;
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .navbar-nav .nav-item > a:hover, .navbar-nav .nav-item > a.active {
    color: var(--primary-color);
    opacity: 1;
  }
}

.navbar-nav .nav-item .ud-submenu {
  position: absolute;
  width: 250px;
  background: var(--white);
  top: 110%;
  padding: 20px 30px;
  -webkit-box-shadow: 0 15px 44px rgba(140, 140, 140, 0.18);
          box-shadow: 0 15px 44px rgba(140, 140, 140, 0.18);
  border-radius: 5px;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .navbar-nav .nav-item .ud-submenu {
    position: static;
    -webkit-box-shadow: none;
            box-shadow: none;
    width: 100%;
    padding: 0px;
    opacity: 1;
    visibility: visible;
    display: none;
  }
}

.navbar-nav .nav-item .ud-submenu.show {
  display: block;
}

.navbar-nav .nav-item .ud-submenu .ud-submenu-link {
  padding: 7px 0;
  color: var(--heading-color);
  font-size: 14px;
}

.navbar-nav .nav-item .ud-submenu .ud-submenu-link:hover {
  color: var(--primary-color);
}

.navbar-nav .nav-item:hover > a {
  color: var(--white);
  opacity: 0.5;
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .navbar-nav .nav-item:hover > a {
    color: var(--primary-color);
    opacity: 1;
  }
}

.navbar-nav .nav-item:hover > .ud-submenu {
  opacity: 1;
  visibility: visible;
  top: 100%;
}

.navbar-nav .nav-item.nav-item-has-children > a {
  position: relative;
}

.navbar-nav .nav-item.nav-item-has-children > a::after {
  content: "";
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: absolute;
  width: 10px;
  height: 10px;
  border-bottom: 2px solid;
  border-right: 2px solid;
  -webkit-transform: rotate(45deg) translateY(-50%);
          transform: rotate(45deg) translateY(-50%);
  right: -15px;
  top: 50%;
  margin-top: -2px;
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .navbar-nav .nav-item.nav-item-has-children > a::after {
    right: 5px;
  }
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .navbar-btn {
    position: absolute;
    top: 50%;
    right: 50px;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
  }
}

.navbar-btn .ud-main-btn {
  padding: 8px 16px;
  background: transparent;
}

.navbar-btn .ud-login-btn:hover {
  opacity: 0.5;
}

.navbar-btn .ud-white-btn {
  background: rgba(255, 255, 255, 0.2);
}

.navbar-btn .ud-white-btn:hover {
  background: white;
  color: var(--heading-color);
}

.sticky .navbar-toggler .toggler-icon {
  background-color: var(--heading-color);
}

.sticky .navbar-nav .nav-item:hover > a {
  color: var(--primary-color);
  opacity: 1;
}

.sticky .navbar-nav .nav-item a {
  color: var(--heading-color);
}

.sticky .navbar-nav .nav-item a.active, .sticky .navbar-nav .nav-item a:hover {
  color: var(--primary-color);
  opacity: 1;
}

.sticky .navbar-btn .ud-main-btn.ud-login-btn {
  color: var(--heading-color);
}

.sticky .navbar-btn .ud-main-btn.ud-login-btn:hover {
  color: var(--primary-color);
  opacity: 1;
}

.sticky .navbar-btn .ud-white-btn {
  background: var(--primary-color);
  color: var(--white);
}

.sticky .navbar-btn .ud-white-btn:hover {
  background: var(--heading-color);
}

/* ===== Hero CSS ===== */
.ud-hero {
  /*background: var(--primary-color);*/
  /*background-image: url("../images/hero/background.png");*/
  /*background-blend-mode: overlay;*/
	
  /*custom*/

	
  /*Sky：*/
  background: linear-gradient(135deg, #e4e3cf 10%, #1ebec8 50%);	
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  padding-top: min(180px, 30vh); /* 桌機最高 380px，小螢幕按比例縮放 */
  overflow: hidden;
  border-radius: 50px 50px 0 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
	

}
/*bird*/
.containerB {
  position: absolute;       /* 確保定位 */
  bottom: 40%;             /* 調整垂直位置 */
  transform: translateX(-50%) scale(2);
  transform-origin: center bottom;
  z-index: 0;
}


.bird {
  background-image: url(../images/hero/bird.svg);
  background-size: auto 100%;
  width: 88px;
  height: 125px;
  will-change: background-position;
  animation-name: fly-cycle;
  animation-timing-function: steps(10);
  animation-iteration-count: infinite;
}
.bird--one {
  animation-duration: 1s;
  animation-delay: -0.5s;
}
.bird--two {
  animation-duration: 0.9s;
  animation-delay: -0.75s;
}
.bird--three {
  animation-duration: 1.25s;
  animation-delay: -0.25s;
}
.bird--four {
  animation-duration: 1.1s;
  animation-delay: -0.5s;
}

.bird-container {
  position: absolute;
  top: 20%;
  left: -10%;
  transform: scale(0) translateX(-10vw);
  will-change: transform;
  animation-name: fly-right-one;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
.bird-container--one {
  animation-duration: 15s;
  animation-delay: 0;
}
.bird-container--two {
  animation-duration: 16s;
  animation-delay: 1s;
}
.bird-container--three {
  animation-duration: 14.6s;
  animation-delay: 9.5s;
}
.bird-container--four {
  animation-duration: 16s;
  animation-delay: 10.25s;
}

@keyframes fly-cycle {
  100% {
    background-position: -900px 0;
  }
}
@keyframes fly-right-one {
  0% {
    transform: scale(0.3) translateX(-10vw);
  }
  10% {
    transform: translateY(2vh) translateX(10vw) scale(0.4);
  }
  20% {
    transform: translateY(0vh) translateX(30vw) scale(0.5);
  }
  30% {
    transform: translateY(4vh) translateX(50vw) scale(0.6);
  }
  40% {
    transform: translateY(2vh) translateX(70vw) scale(0.6);
  }
  50% {
    transform: translateY(0vh) translateX(90vw) scale(0.6);
  }
  60% {
    transform: translateY(0vh) translateX(110vw) scale(0.6);
  }
  100% {
    transform: translateY(0vh) translateX(110vw) scale(0.6);
  }
}
@keyframes fly-right-two {
  0% {
    transform: translateY(-2vh) translateX(-10vw) scale(0.5);
  }
  10% {
    transform: translateY(0vh) translateX(10vw) scale(0.4);
  }
  20% {
    transform: translateY(-4vh) translateX(30vw) scale(0.6);
  }
  30% {
    transform: translateY(1vh) translateX(50vw) scale(0.45);
  }
  40% {
    transform: translateY(-2.5vh) translateX(70vw) scale(0.5);
  }
  50% {
    transform: translateY(0vh) translateX(90vw) scale(0.45);
  }
  51% {
    transform: translateY(0vh) translateX(110vw) scale(0.45);
  }
  100% {
    transform: translateY(0vh) translateX(110vw) scale(0.45);
  }
}
/*end of bird*/


/*雲層*/
.cloud-layer,
.cloud2-layer {
  position: absolute;
  bottom: 0;
  left: 50%;                 /* 以視窗中心為基準 */
  transform: translateX(-50%); /* 水平置中 */
  width: 100vw;              /* 佔滿視窗寬度 */
  height: 40vh;
  background-position: center bottom;
  background-repeat: no-repeat;
  pointer-events: none;
  z-index: 0; 
}

/* 雲層1 */
.cloud-layer {
  background-image: url("../images/hero/cloud1.png");
  background-size: cover;
  z-index: 0;
}

/* 雲層2 */
.cloud2-layer {
  background-image: url("../images/hero/cloud2.png");
  background-size: cover; 
  z-index: 1;             
}

@media (max-width: 1024px) {
  .cloud-layer,
  .cloud2-layer {
    width: 125%;
    left: 50%;
    transform: translateX(-50%);
    height: 320px;
  }
	
	.containerB {
    transform: translateX(-50%) scale(1.6); /* 縮小20% */
    bottom: 30%; /* 可微調位置 */
  }
}

@media (max-width: 767px) {
  .cloud-layer,
  .cloud2-layer {
    width: 110vw;
    left: 50%;
    transform: translateX(-50%);
    height: 25vh;
  }
	
	.containerB {
    transform: translateX(-50%) scale(1.35); /* 繼續縮小 */
    bottom: 25%; /* 微調位置 */
  }
}





.ud-hero::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 0;
	
	
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ud-hero {
    padding-top: 160px;
  }
}

/*@media (max-width: 767px) {
  .ud-hero {
    padding-top: 130px;
  }
}*/

.ud-hero-content {
  max-width: 991px;
  margin: auto;
  margin-bottom: 300px;
	position: relative;
	z-index: 10;
}

.ud-hero-content .ud-hero-title {
  color: var(--white);
  text-shadow: 1px 1px 8px #6cc6cb;
	
  font-weight: 700;
  /*font-size: 45px;*/
  font-size: clamp(2.5rem, 3.5vw + 1rem, 4rem); /* 自動縮放 */
  line-height: 1.1;
  text-align: center;
  margin-bottom: 24px;
  margin-top: -1px; /* 或其他負值 */
	
	
	/*background: linear-gradient(to right, #11568c 0%, #0d4169 100%);*/
	/*background: linear-gradient(to right, #ffffff 0%, #fafafa 100%);
	
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;*/
	
}



@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ud-hero-content .ud-hero-title {
     font-size: 3.1rem; /*可依需求調整*/
    line-height: 1.2;
  }
}

@media (max-width: 767px) {
  .ud-hero-content .ud-hero-title {
     font-size: 2.3rem;   /*可依需求調整*/
    line-height: 1.15;
  }
}

.ud-hero-content .ud-hero-desc {
  font-weight: normal;
  font-size: 22px;
  line-height: 35px;
  text-align: center;
  color: var(--white);
  opacity: 1;
  max-width: 900px;
  margin: auto;
  margin-bottom: 30px;
  text-shadow: 1px 1px 8px #6cc6cb;
}

.ud-hero-content .ud-hero-desc2 {
  font-weight: normal;
  font-size: 14px;
  line-height: 18px;
  text-align: center;
  color: var(--white);
  opacity: 1;
  max-width: 900px;
  margin: auto;
  margin-bottom: 30px;
  text-shadow: 1px 1px 8px #6cc6cb;
}

@media (max-width: 767px) {
  .ud-hero-content .ud-hero-desc {
    font-size: 16px;
    line-height: 24px;
  }
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ud-hero-content .ud-hero-desc {
     font-size: 18px;
    line-height: 27px;
  }
}

.ud-hero-buttons {
  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;
}

.ud-hero-buttons .ud-main-btn {
  margin: 8px;
}

@media (max-width: 767px) {
  .ud-hero-buttons .ud-main-btn {
    margin: 5px;
  }
}

@media (max-width: 767px) {
  .ud-hero-buttons .ud-main-btn {
    padding: 12px 16px;
  }
}

.ud-hero-buttons .ud-white-btn {
  background: var(--white);
  color: var(--heading-color);
}

.ud-hero-buttons .ud-white-btn:hover {
  -webkit-box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.2);
          box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.2);
  background: #fefefe;
  color: var(--primary-color);
}

.ud-hero-buttons .ud-link-btn:hover {
  color: var(--white);
  background: transparent;
  opacity: 0.5;
}

.ud-hero-brands-wrapper {
  text-align: center;
  margin-bottom: 40px;
}

.ud-hero-brands-wrapper img {
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  opacity: 0.5;
  max-width: 250px;
}

.ud-hero-brands-wrapper img:hover {
  opacity: 1;
}

.ud-hero-image {
  max-width: 845px;
  margin: auto;
  text-align: center;
  position: relative;
  z-index: 1;
}

.ud-hero-image img {
  max-width: 100%;
  text-align: center;
}

.ud-hero-image .shape {
  position: absolute;
  z-index: -1;
}

.ud-hero-image .shape.shape-1 {
  bottom: 0;
  left: -30px;
}

.ud-hero-image .shape.shape-2 {
  top: -20px;
  right: -20px;
}

/*scroll down*/
.scroll-down-indicator {
  position: absolute;
  left: 50%;
  bottom: 2vh;
  transform: translateX(-50%);
  transform-origin: center bottom;     /* 變形原點在底部中央 */
  z-index: 10;
  cursor: auto;
}

.scroll-down-indicator i {
  font-size: 48px;         /* 箭嘴大小 */
  color: var(--white);
  opacity: 0.85;
  animation: arrowBounce 1.5s infinite;
  transition: color 0.2s;
}

/*.scroll-down-indicator:hover i {
  color: var(--heading-color);  滑鼠懸停時變色
  cursor: default;
}*/

@keyframes arrowBounce {
  0% {
    transform: translateY(0);
  }
  10% {
    transform: translateY(20px);
  }
  20% {
    transform: translateY(0);
  }
  30% {
    transform: translateY(20px);
  }
  40% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(0);
  }
}
/* ===== Features CSS ===== */
.ud-features {
  padding-top: 120px;
  padding-bottom: 90px;
	  /*background: #eff8fa;*/
	background: var(--white);
	/*background: #F9FAFB;*/
}

@media (max-width: 767px) {
  .ud-features {
    padding-top: 80px;
    padding-bottom: 40px;
  }
}

.ud-section-title {
  max-width: 700px;
  /*margin-bottom: 30px;*/
}

.ud-section-title span {
  font-weight: 700;
  font-size: 18px;
  color: var(--primary-color);
  margin-bottom: 10px;
}

.ud-section-title h2 {
  font-weight: 700;
  font-size: 36px;
  line-height: 54px;
  /*text-transform: capitalize;*/
  color: var(--heading-color);
  margin-bottom: 20px;
	
}
/*.ud-section-title h3 {
  font-weight: 700;
  font-size: 24px;
  line-height: 48px;
  /*text-transform: capitalize;*/
  /*color: var(--primary-color);
  margin-bottom: 20px;
}*/


.ud-section-title p {
  font-size: 20px;
  line-height: 30px;
margin-bottom: 40px;
}

.ud-section-content {
  max-width: 800px;
  margin-bottom: 70px;
}

.ud-section-content h4 {
  font-weight: 700;
  font-size: 22px;
  line-height: 48px;
  /*text-transform: capitalize;*/
  color: var(--primary-color);
  margin-bottom: 20px;
}

.ud-section-content h4slash {
  font-weight: 500;
  font-size: 22px;
  color: var(--body-color);
}


@media (max-width: 767px) {
  .ud-section-title p {
    font-size: 16px;
    line-height: 26px;
  }
}

.ud-single-feature {
  margin-bottom: 40px;
}

.ud-single-feature:hover .ud-feature-icon::before {
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.ud-single-feature .ud-feature-icon {
  width: 70px;
  height: 70px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-radius: 14px;
    /* 原本是 background: var(--primary-color); */
	background: linear-gradient(-135deg, #41c1ca 0%, #00a79a 100%);
  font-size: 32px;
  color: var(--white);
  position: relative;
  z-index: 1;
  text-align: center;
  margin-bottom: 40px;
}

.ud-single-feature .ud-feature-icon::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  border-radius: 14px;
  background: linear-gradient(135deg, #41c1ca 0%, #00a79a 100%);
  opacity: 0.2;
  z-index: -1;
  -webkit-transform: rotate(23deg);
  transform: rotate(23deg);
  -webkit-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
}

.ud-single-feature .ud-feature-title {
  font-weight: 700;
  font-size: 20px;
  line-height: 28px;
  margin-bottom: 12px;
}

@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .ud-single-feature .ud-feature-title {
    font-size: 18px;
    line-height: 26px;
  }
}

.ud-single-feature .ud-feature-desc {
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 40px;
}

.ud-single-feature .ud-feature-link {
  font-weight: 500;
  color: var(--body-color);
}

.ud-single-feature .ud-feature-link:hover {
  color: var(--primary-color);
}

/* ===== About CSS ===== */
.ud-about {
  background: #eff8fa;
  padding: 120px 0;
	
}

@media (max-width: 767px) {
  .ud-about {
    padding: 80px 0;
  }
}

.ud-about-wrapper {
  background: var(--white);
  /*background: #00c5cc;*/
  /*border: 1px solid rgba(0, 0, 0, 0.08);*/
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .ud-about-wrapper {
    display: block;
  }
}

.ud-about-content-wrapper {
  padding: 70px;
}

@media (max-width: 767px) {
  .ud-about-content-wrapper {
    padding: 50px 30px;
  }
}

@media only screen and (min-width: 576px) and (max-width: 767px) {
  .ud-about-content-wrapper {
    padding: 50px;
  }
}

.ud-about-content {
  max-width: 500px;
}

.ud-about-content .tag {
  font-weight: 500;
  font-size: 14px;
  color: var(--white);
  background: var(--primary-color);
  padding: 5px 20px;
  display: inline-block;
  margin-bottom: 20px;
}

.ud-about-content h2 {
  font-weight: bold;
  font-size: 36px;
  line-height: 45px;
  margin-bottom: 30px;
	
}

@media (max-width: 767px) {
  .ud-about-content h2 {
    font-size: 26px;
    line-height: 38px;
  }
}

.ud-about-content p {
  font-size: 16px;
  line-height: 28px;
  margin-bottom: 40px;
}

.ud-about-content .ud-main-btn:hover {
  background: #2748b4;
  -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
          box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .ud-about-image {
    text-align: center;
  }
}



/* ===== clients CSS ===== */
.ud-clients {
  padding-top: 120px;
	
	
}
.ud-clients2 {
    padding: 120px 0 90px;
  /*padding-bottom: 90px;*/
  /*background: #eff8fa;*/
	background: #F9FAFB;
  position: relative;
  z-index: 1;
  min-height: 600px; /* 依需求調整 */
}

.ud-clients2 .shape {
  position: absolute;
  z-index: -1;
  /*right: 0;
  bottom: 0;*/
/*top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);*/
  width: 80%;  /* 視需要調整大小 */
  height: auto;
  pointer-events: none; /* 避免圖片擋到內容點擊 */
  max-width: 500px; /* 桌面端最大寬度 */
  min-width: 300px; /* 手機端最小寬度 */
	/*filter: blur(10px);*/
	
	 /* Bootstrap定位轉換 */
    opacity: 0;
  transform: translate(-50%, -50%) scale(0);
  transition: opacity 0.2s, transform 0.2s;
}

.ud-clients2.active .shape {
  opacity: 1;
  animation: shape-entrance 1.2s ease-out forwards;
}

.ud-clients2 .shape img{
  width: 100%;
  height: auto;
   animation: pulse 3s ease-in-out infinite 0.6s; /* 延遲0.6秒啟動 */
	
}

@media (max-width: 767px) {
  .ud-clients {
    padding-top: 80px;
  }
}


@media (max-width: 768px) {
   .ud-clients2 .shape {
    width: 90%;
    animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
  .ud-clients2 .shape img {
    animation-duration: 2.5s;
  }
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.15); /* 調低縮放幅度 */
  }
}

/* 新增進入動畫 */
@keyframes shape-entrance {
  from {
    transform: translate(-50%, -50%) scale(0);
    opacity: 0;
  }
  to {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }
}

/* 新增滾動觸發動畫 */
@keyframes shape-entrance-scroll {
  from {
    transform: translate(-50%, -50%) scale(0);
    opacity: 0;
  }
  to {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }
}

.ud-clients2 .shape {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0);
  transition: opacity 0.2s, transform 0.2s;
}

.ud-clients2.active .shape {
  opacity: 1;
  animation: shape-entrance 0.8s ease-out forwards;
}







.ud-single-testimonial {
  padding: 30px;
  -webkit-box-shadow: 0px 60px 120px -20px #ebeffd;
          box-shadow: 0px 60px 120px -20px #ebeffd;
  background: var(--white);
  margin-bottom: 50px;
}

.ud-single-testimonial .ud-testimonial-ratings {
  margin-bottom: 10px;
}

.ud-single-testimonial .ud-testimonial-ratings i {
  color: #fbb040;
}

.ud-single-testimonial .ud-testimonial-content {
  margin-bottom: 25px;
}

.ud-single-testimonial .ud-testimonial-content p {
  font-size: 16px;
  line-height: 30px;
  color: #637381;
}

.ud-single-testimonial .ud-testimonial-info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.ud-single-testimonial .ud-testimonial-info .ud-testimonial-image {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  overflow: hidden;
  margin-right: 20px;
}

.ud-single-testimonial .ud-testimonial-info .ud-testimonial-meta h4 {
  font-weight: 600;
  font-size: 14px;
}

.ud-single-testimonial .ud-testimonial-info .ud-testimonial-meta p {
  font-size: 12px;
  color: #969696;
}

.ud-brands .ud-title {
  margin-bottom: 30px;
}

.ud-brands .ud-title h6 {
  font-weight: normal;
  font-size: 12px;
  color: var(--body-color);
  display: inline-block;
  position: relative;
}

.ud-brands .ud-title h6::after {
  content: "";
  position: absolute;
  width: 30px;
  height: 1px;
  background: #afb2b5;
  right: -40px;
  top: 50%;
}


.ud-brands .ud-brands-logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-right: -40px;
}

.ud-brands .ud-brands-logo .ud-single-logo {
  margin-right: 100px;
  margin-bottom: 35px;
  max-width: 140px;
}

.ud-brands .ud-brands-logo .ud-single-logo:hover img {
  -webkit-filter: none;
          filter: none;
}

.ud-brands .ud-brands-logo .ud-single-logo img {
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
  -webkit-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
}





/* ===== Contact CSS ===== */
.ud-contact {
  padding: 50px 0px;
  position: relative;
	 min-height: 800px;

}

@media (max-width: 767px) {
  .ud-contact {
    padding: 80px 0;
	 
  }
}

.ud-contact::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 100%;
  top: 0;
  left: 0;
  height: 100%;
  /*background: #eff8fa;
	background: #F9FAFB;*/
	
	background: linear-gradient(-45deg, #eff8fa, #A2D7E2, #DEEDC9, #B0DADC);
	background-size: 400% 400%;
	animation: contactgradient 8s ease infinite;


}

@keyframes contactgradient {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}

@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .ud-contact::after {
    height: 45%;
  }
}

.ud-contact-title {
  margin-bottom: 150px;
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .ud-contact-title {
    margin-bottom: 50px;
  }
}

.ud-contact-title span {
  color: var(--body-color);
  font-weight: 600;
  font-size: 18px;
  margin-bottom: 10px;
	
	
}

.ud-contact-title h5 {
  font-weight: 600;
  font-size: 35px;
  line-height: 41px;
}

.ud-contact-title h2 {
  font-weight: 700;
  font-size: 36px;
  line-height: 55px;
	margin-bottom: 20px;
	color: var(--heading-color);
	
	/*background: linear-gradient(to right, #41C1CA 0%, #2B93D1 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;*/
}

.ud-contact-title p {
  font-size: 20px;
  line-height: 30px;
margin-bottom: 40px;
}



.ud-contact-title .tag {
  font-weight: 500;
  font-size: 14px;
  color: var(--white);
  background: var(--primary-color);
  padding: 5px 20px;
  display: inline-block;
  margin-bottom: 20px;
}




.ud-contact-info-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

@media only screen and (min-width: 768px) and (max-width: 991px), (max-width: 767px) {
  .ud-contact-info-wrapper {
    margin-bottom: 50px;
  }
}

.ud-contact-info-wrapper .ud-single-info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  max-width: 100%;
  width: 330px;
  margin-bottom: 30px;
}

.ud-contact-info-wrapper .ud-info-icon {
  font-size: 32px;
  color: var(--primary-color);
  margin-right: 24px;
}

.ud-contact-info-wrapper .ud-info-meta h5 {
  font-weight: 600;
  font-size: 18px;
  margin-bottom: 15px;
}

.ud-contact-info-wrapper .ud-info-meta p {
  font-size: 15px;
  line-height: 24px;
}
.email-link {
  color: var(--body-color);
  text-decoration-line: underline;
  transition: color 0.3s ease;
}

.email-link:hover {
  color: var(--primary-color); /* 你想要的 hover 顏色 */
	text-decoration-line: underline;
}


.ud-contact-form-wrapper {
  -webkit-box-shadow: 0px 4px 28px rgba(0, 0, 0, 0.05);
          box-shadow: 0px 4px 28px rgba(0, 0, 0, 0.05);
  border-radius: 8px;
  background: var(--white);
  padding: 60px;
}

@media (max-width: 767px) {
  .ud-contact-form-wrapper {
    padding: 40px 30px;
  }
}

@media only screen and (min-width: 1200px) and (max-width: 1399px), only screen and (min-width: 992px) and (max-width: 1199px), only screen and (min-width: 576px) and (max-width: 767px) {
  .ud-contact-form-wrapper {
    padding: 50px 40px;
  }
}

.ud-contact-form-wrapper .ud-contact-form-title {
  font-style: normal;
  font-weight: 600;
  font-size: 28px;
  margin-bottom: 30px;
}

@media (max-width: 767px) {
  .ud-contact-form-wrapper .ud-contact-form-title {
    font-size: 24px;
  }
}

.ud-contact-form-wrapper .ud-form-group {
  margin-bottom: 20px;
}

.ud-contact-form-wrapper .ud-form-group label {
  display: block;
  font-weight: normal;
  font-size: 12px;
}

.ud-contact-form-wrapper .ud-form-group input,
.ud-contact-form-wrapper .ud-form-group textarea {
  display: block;
  width: 100%;
  padding: 15px 0;
  border: none;
  outline: none;
  border-bottom: 1px solid #f1f1f1;
  resize: none;
}

.ud-contact-form-wrapper .ud-form-group input:focus,
.ud-contact-form-wrapper .ud-form-group textarea:focus {
  border-color: var(--primary-color);
}

/* ===== Footer CSS ===== */
.ud-footer {
  background: var(--white);
  /*padding-top: 100px;*/
/*background: #eff8fa;*/
  position: relative;
  z-index: 1;
  overflow: hidden;
}

.ud-footer .shape {
  position: absolute;
  z-index: -1;
}

.ud-footer .shape.shape-1 {
  top: 0;
  left: 0;
}

.ud-footer .shape.shape-2 {
  top: 0;
  right: 0;
}

.ud-footer .shape.shape-3 {
  bottom: 0;
  right: 0;
}

.ud-widget {
  margin-bottom: 50px;
}

.ud-widget .ud-footer-logo {
  max-width: 160px;
  display: block;
  margin-bottom: 10px;
}

.ud-widget .ud-footer-logo img {
  width: 100%;
}

.ud-widget .ud-widget-desc {
  font-size: 15px;
  line-height: 24px;
  color: #eff8fa;
  margin-bottom: 30px;
  max-width: 260px;
}

.ud-widget .ud-widget-socials {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.ud-widget .ud-widget-socials a {
  font-size: 16px;
  color: #dddddd;
  margin-right: 20px;
}

.ud-widget .ud-widget-socials a:hover {
  color: var(--primary-color);
}

.ud-widget .ud-widget-title {
  font-weight: 600;
  font-size: 18px;
  margin-bottom: 35px;
  color: var(--white);
}

.ud-widget .ud-widget-links a {
  display: inline-block;
  margin-bottom: 12px;
  font-size: 15px;
  line-height: 30px;
  color: #eff8fa;
}

.ud-widget .ud-widget-links a:hover {
  color: var(--primary-color);
  padding-left: 10px;
}

.ud-widget .ud-widget-brands {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.ud-widget .ud-widget-brands a {
  display: block;
  max-width: 120px;
  margin-bottom: 20px;
  margin-right: 20px;
}

@media only screen and (min-width: 1200px) and (max-width: 1399px) {
  .ud-widget .ud-widget-brands a {
    max-width: 100px;
  }
}

.ud-footer-bottom {
  padding: 35px 0;
  /*border-top: 1px solid rgba(136, 144, 164, 0.43);*/
}

.ud-footer-bottom .ud-footer-bottom-left {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

@media (max-width: 767px) {
  .ud-footer-bottom .ud-footer-bottom-left {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.ud-footer-bottom .ud-footer-bottom-left a {
  font-weight: normal;
  font-size: 15px;
  /*color: #eff8fa;*/
	color: var(--body-color);
  margin-right: 30px;
  display: inline-block;
}

@media (max-width: 767px) {
  .ud-footer-bottom .ud-footer-bottom-left a {
    margin: 0px 8px 8px;
  }
}

/*.ud-footer-bottom .ud-footer-bottom-left a:hover {
  color: var(--primary-color);
}*/

.ud-footer-bottom .ud-footer-bottom-right {
  text-align: right;
  font-weight: normal;
  font-size: 15px;
  color: #eff8fa;
}

.ud-footer-bottom .ud-footer-bottom-right a {
  color: var(--primary-color);
}

.ud-footer-bottom .ud-footer-bottom-right a:hover {
  text-decoration: underline;
}

@media (max-width: 767px) {
  .ud-footer-bottom .ud-footer-bottom-right {
    text-align: center;
    margin-top: 10px;
  }
}

/* ====== Banner CSS ======= */
.ud-page-banner {
  padding-top: 130px;
  padding-bottom: 80px;
  background: var(--primary-color);
  background-image: url("../images/banner/banner-bg.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.ud-banner-content {
  text-align: center;
  max-width: 600px;
  margin: auto;
}

.ud-banner-content h1 {
  color: var(--white);
  font-size: 38px;
  font-weight: 600;
}

/* ====== Login CSS ====== */
.ud-login {
  padding-top: 80px;
  padding-bottom: 80px;
}

.ud-login-wrapper {
  max-width: 500px;
  margin: auto;
  background: var(--white);
  text-align: center;
  padding: 60px;
  -webkit-box-shadow: 0px 10px 35px rgba(0, 0, 0, 0.05);
          box-shadow: 0px 10px 35px rgba(0, 0, 0, 0.05);
}

.ud-login-wrapper .ud-login-logo {
  margin-bottom: 30px;
}

.ud-login-form .ud-form-group {
  margin-bottom: 25px;
}

.ud-login-form .ud-form-group input {
  width: 100%;
  border: 2px solid #dddddd;
  border-radius: 4px;
  padding: 12px 24px;
  background: #fcfdfe;
  color: var(--body-color);
}

.ud-login-form .ud-form-group input:focus {
  border-color: var(--primary-color);
}

.ud-socials-connect {
  padding-top: 10px;
  padding-bottom: 30px;
}

.ud-socials-connect p {
  font-size: 16px;
  color: var(--body-color);
  margin-bottom: 10px;
}

.ud-socials-connect ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-left: -10px;
  margin-right: -10px;
}

.ud-socials-connect ul li {
  width: 100%;
}

.ud-socials-connect ul li a {
  height: 45px;
  background: var(--primary-color);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 10px;
  border-radius: 6px;
  color: var(--white);
  font-size: 20px;
}

.ud-socials-connect ul li a.facebook {
  background: #4064ac;
}

.ud-socials-connect ul li a.facebook:hover {
  background: #315294;
}

.ud-socials-connect ul li a.twitter {
  background: #1c9cea;
}

.ud-socials-connect ul li a.twitter:hover {
  background: #0f8bd8;
}

.ud-socials-connect ul li a.google {
  background: #d64937;
}

.ud-socials-connect ul li a.google:hover {
  background: #c53b29;
}

.forget-pass {
  font-size: 16px;
  color: var(--body-color);
  margin-bottom: 8px;
}

.signup-option {
  color: var(--body-color);
  font-size: 16px;
}

.signup-option a {
  color: var(--primary-color);
}



/* ====== Error 404 CSS ======= */
.ud-404 {
  padding-top: 120px;
  padding-bottom: 120px;
}

@media (max-width: 767px) {
  .ud-404 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}

.ud-404-wrapper {
  text-align: center;
  max-width: 850px;
  margin: 0px auto;
  background: var(--white);
  padding: 100px 60px;
  -webkit-box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.1);
          box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.1);
  border-radius: 10px;
  position: relative;
  overflow: hidden;
  z-index: 1;
}

@media (max-width: 767px) {
  .ud-404-wrapper {
    padding: 50px 30px;
  }
}

.ud-404-wrapper .shape {
  position: absolute;
  z-index: -1;
}

.ud-404-wrapper .shape.shape-1 {
  top: 0;
  left: 0;
}

.ud-404-wrapper .shape.shape-2 {
  right: 0;
  bottom: 0;
}

.ud-404-title {
  font-size: 42px;
  font-weight: 700;
  margin-bottom: 30px;
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ud-404-title {
    font-size: 35px;
  }
}

@media (max-width: 767px) {
  .ud-404-title {
    font-size: 30px;
  }
}

.ud-404-subtitle {
  font-size: 24px;
  font-weight: 400;
  margin-bottom: 30px;
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ud-404-subtitle {
    font-size: 22px;
  }
}

@media (max-width: 767px) {
  .ud-404-subtitle {
    font-size: 18px;
  }
}

.ud-404-links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.ud-404-links a {
  font-size: 16px;
  font-weight: 500;
  padding: 12px 24px;
  color: var(--heading-color);
  background: rgba(48, 86, 211, 0.06);
  border-radius: 5px;
  margin: 5px 10px;
}

.ud-404-links a:hover {
  background: var(--heading-color);
  color: var(--white);
}

@media (max-width: 767px) {
  .ud-404-links a {
    margin: 5px 10px;
    font-size: 14px;
    padding: 10px 20px;
  }
}
/*# sourceMappingURL=ud-styles.css.map */