/*!------------------------------------------------------------------
[MAIN STYLESHEET]

Template Name: Constra - Construction Html5 Template
Description: Constra - Construction Html5 Template
-------------------------------------------------------------------*/
/*------------------------------------------------------------------
[TABLE OF CONTENTS]
-------------------------------------------------------------------*/
@import url(https://fonts.googleapis.com/css?family=Montserrat:300,400,400i,500,500i,600,600i,700,700i,800|Open+Sans:400,400i,600,600i,700,700i,800&display=swap);
/* Typography
================================================== */
body {
  background: #fff;
  color: #555;
}

body,
p {
  font-family: "Open Sans", sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased !important;
  line-height: 26px;
  font-size: 15px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: #212121;
  font-weight: 700;
  font-family: 'Montserrat', sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased !important;
}

h1 {
  font-size: 36px;
  line-height: 48px;
}

h2 {
  font-size: 28px;
  line-height: 36px;
  text-transform: uppercase;
  letter-spacing: -1px;
}

h3 {
  font-size: 24px;
  margin-bottom: 20px;
  text-transform: uppercase;
  letter-spacing: -.5px;
}

h4 {
  font-size: 18px;
  line-height: 28px;
  text-transform: uppercase;
  letter-spacing: -.2px;
}

h5 {
  font-size: 14px;
  line-height: 24px;
}

.alert .icon {
  margin-right: 15px;
}

/* Global styles
================================================== */
html {
  overflow-x: hidden !important;
  width: 100%;
  height: 100%;
  position: relative;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body {
  border: 0;
  margin: 0;
  padding: 0;
}

.body-inner {
  position: relative;
  overflow: hidden;
}

.preload {
  position: fixed;
  background: #fff url(../images/preload.gif) center center no-repeat;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  z-index: 99999;
}

a:link,
a:visited {
  text-decoration: none;
}

a {
  color: inherit;
  transition: .2s ease;
}

a:hover {
  text-decoration: none;
  color: #000;
}

a.read-more {
  color: #ffb600;
  font-weight: 700;
  text-transform: uppercase;
}

a.read-more:hover {
  color: #222;
}

section,
.section-padding {
  padding: 50px 0;
  position: relative;
}

.no-padding {
  padding: 0;
}

.gap-60 {
  clear: both;
  height: 60px;
}

.gap-40 {
  clear: both;
  height: 40px;
}

.gap-30 {
  clear: both;
  height: 30px;
}

.gap-20 {
  clear: both;
  height: 20px;
}

.mrb-30 {
  margin-bottom: 30px;
}

.mrb-80 {
  margin-bottom: -80px;
}

.mrt-0 {
  margin-top: 0 !important;
  margin-bottom: 20px !important;
}

.pab {
  padding-bottom: 0;
}

a:focus {
  outline: 0;
}

.ts-padding {
  padding: 60px;
}

.solid-bg {
  background: #f9f9f9;
}

.dark-bg {
  background: #252525;
  color: #fff;
}

.dark-bg h2,
.dark-bg h3 {
  color: #fff;
}

.solid-row {
  background: #f0f0f0;
}

.bg-overlay {
  position: relative;
}

.bg-overlay .container {
  position: relative;
  z-index: 1;
}

.bg-overlay:after {
  background-color: rgba(0, 46, 91, 0.8);
  z-index: 0;
  position: absolute;
  content: '';
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.bg-overlay:after {
  position: relative;
}

.bg-overlay:after {
  background-color: rgba(0, 0, 0, 0.8);
  z-index: 0;
  position: absolute;
  content: '';
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.content-hidden {
  position: absolute;
  height: 1px;
  width: 1px;
  clip: rect(1px, 1px, 1px, 1px);
  border: 0;
  overflow: hidden;
}

/* Dropcap */
.dropcap {
  font-size: 48px;
  line-height: 60px;
  padding: 0 7px;
  display: inline-block;
  font-weight: 700;
  margin: 5px 15px 5px 0;
  position: relative;
  text-transform: uppercase;
}

.dropcap.primary {
  background: #ffb600;
  color: #fff;
}

.dropcap.secondary {
  background: #3a5371;
  color: #fff;
}

/* Title */
.title {
  font-size: 32px;
  line-height: 36px;
  margin-bottom: 20px;
}

/* Title Border */
/* Section title */
.section-title {
  font-size: 18px;
  line-height: 28px;
  margin: 0;
  text-transform: uppercase;
  font-weight: 300;
}

.section-sub-title {
  font-weight: 900;
  font-size: 36px;
  line-height: 46px;
  margin: 0 0 60px;
  color: #212121;
}

.pc,.pc2 {
    display: inline;
}
.phone,.phone2 {
    display: none;
}

@media (max-width: 575px) {
  .pc {
    display: none;
  }
  .phone {
    display: inline;
  }
}

@media (max-width: 991px) {
  .pc2 {
    display: none;
  }
  .phone2 {
    display: inline;
  }
}


@media (max-width: 575px) {
  .section-sub-title {
    font-size: 28px;
  }
}

/* Column title */
.column-title {
  margin: 0 0 40px;
}

.column-title-small {
  font-size: 20px;
  margin: 0 0 25px;
}

/* Page content title */
.page-content-title.first {
  margin-top: 0;
}

/* Video responsive */
.embed-responsive {
  padding-bottom: 56.25%;
  position: relative;
  display: block;
  height: 0;
  overflow: hidden;
}

.embed-responsive iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Input form */
.form-control {
  box-shadow: none;
  border: 1px solid #dadada;
  padding: 5px 20px;
  height: 44px;
  background: none;
  color: #959595;
  font-size: 14px;
  border-radius: 0;
}

.form-control:focus {
  box-shadow: none;
  border: 1px solid #ffb600;
}

hr {
  background-color: #e7e7e7;
  border: 0;
  height: 1px;
  margin: 40px 0;
}

.alert hr {
  background: initial;
  margin: initial;
  border-top: 1px solid;
  height: initial;
  margin-bottom: 1rem;
  opacity: .2;
}

blockquote {
  padding: 25px;
  margin: 20px 0;
  background: #f9f9f9;
  position: relative;
  border-left: 3px solid #ffb600;
  padding-left: 40px;
}

blockquote.text-center {
  border-top: 3px solid #ffb600;
  border-left: 0;
  padding-left: 25px;
  padding-top: 50px;
}

blockquote.text-center:before {
  left: 50%;
  top: 10px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

blockquote.text-right {
  border-right: 3px solid #ffb600;
  padding-right: 40px;
  border-left: 0;
  padding-left: 25px;
}

blockquote.text-right:before {
  left: auto;
  right: 5px;
}

blockquote:before {
  content: "\f10d";
  font-family: "Font Awesome 5 Free";
  position: absolute;
  font-size: 28px;
  color: #E5E5E5;
  top: 5px;
  left: 5px;
  font-weight: 700;
  z-index: 0;
}

blockquote p {
  font-size: 14px;
  line-height: 22px;
  position: relative;
  z-index: 1;
  font-style: italic;
  margin-bottom: 0;
}

cite {
  display: block;
  font-size: 14px;
  margin-top: 10px;
}

/* Ul, Ol */
.list-round,
.list-arrow,
.list-check {
  list-style: none;
  margin: 0;
  padding: 0 0 0 15px;
}

.list-round li {
  line-height: 28px;
}

.list-round li:before {
  font-family: "Font Awesome 5 Free";
  content: "\f138";
  margin-right: 10px;
  color: #ffb600;
  font-size: 12px;
}

.list-arrow {
  padding: 0;
}

ul.list-arrow li:before {
  font-family: "Font Awesome 5 Free";
  content: "\f105";
  margin-right: 10px;
  color: #ffb600;
  font-size: 16px;
  font-weight: bold;
}

ul.list-check li:before {
  font-family: "Font Awesome 5 Free";
  content: "\f00c";
  margin-right: 10px;
  color: #ffb600;
  font-size: 14px;
}

/* Bootstrap */
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:focus,
.nav-tabs > li.active > a:hover,
.nav-tabs > li > a:hover,
.nav-tabs > li > a {
  border: 0;
}

.nav > li > a:focus,
.nav > li > a:hover {
  background: none;
}

.pattern-bg {
  background: #f5f5f5 url(../images/crossword.png);
}

a[href^=tel] {
  color: inherit;
  text-decoration: none;
}

/* Button */
.btn:active, .btn:focus {
  box-shadow: none !important;
}

.btn-primary,
.btn-dark {
  border: 0;
  border-radius: 3px;
  padding: 12px 20px 10px;
  font-weight: 700;
  text-transform: uppercase;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  transition: 350ms;
  font-size: 14px;
}

@media (max-width: 767px) {
  .btn-primary,
  .btn-dark {
    font-size: 13px;
  }
}

.btn-white.btn-primary {
  background: #fff;
  color: #ffb600;
}

.btn-primary {
  background: #ffb600;
}

.btn-dark {
  background: #23282d;
}

.btn-primary:hover,
.btn-dark:hover,
.btn-white.btn-primary:hover {
  background: #111;
  color: #fff;
}

.btn-primary:hover:active, .btn-primary:hover:focus,
.btn-dark:hover:active,
.btn-dark:hover:focus,
.btn-white.btn-primary:hover:active,
.btn-white.btn-primary:hover:focus {
  color: #fff;
  background-color: #111 !important;
}

.general-btn {
  margin-top: 50px;
}

/* Bootstrap */
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:focus,
.nav-tabs > li.active > a:hover,
.nav-tabs > li > a:hover,
.nav-tabs > li > a {
  border: 0;
}

.nav > li > a:focus,
.nav > li > a:hover {
  background: none;
}

.pattern-bg {
  background: #f5f5f5 url(../images/crossword.png);
}

a[href^=tel] {
  color: inherit;
  text-decoration: none;
}

/* Top Bar
================================================== */
.top-bar {
  padding: 8px 0;
  background: #ebebeb;
  position: relative;
}

/* Top info */
ul.top-info {
  list-style: none;
  margin: 0;
  padding: 0;
}

ul.top-info li {
  position: relative;
  line-height: 10px;
  display: inline-block;
  margin-left: 0;
  padding-right: 15px;
}

ul.top-info li i {
  font-size: 18px;
  position: relative;
  top: 2px;
  margin-right: 5px;
}

ul.top-info li p.info-text {
  margin: 0;
  line-height: normal;
  display: inline-block;
  flex-direction: column;
}

/* Top social */
.top-social ul {
  list-style: none;
  padding: 0;
  margin: 0;
  margin-right: -12px;
}

@media (max-width: 767px) {
  .top-social ul {
    margin-right: 0;
  }
}

.top-social ul li {
  display: inline-block;
  padding: 0;
}

.top-social ul li a {
  color: #2c2c2c;
  font-size: 14px;
  transition: 400ms;
  padding: 9px 12px;
}

.top-social ul li a:hover {
  color: #333;
}

/* Top bar border */
.top-bar-border {
  padding: 8px 20px 8px;
  border-bottom: 1px solid #ddd;
}

.top-bar-border ul.top-info {
  color: #707070;
  font-weight: 400;
}

.top-bar-border .top-social li a {
  color: #7c7c7c;
}

.top-bar-border ul.top-info li i {
  color: #ffb600;
}

/* Header area
================================================== */
.header {
  background: #fff;
  position: relative;
  box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.1);
}

/* 預設狀態 (在頁面頂部時) */
.header-one,
.header-one .site-navigation {
    width: 100%;
    position: fixed;
    background: #fff;
    /* 保持您想要的預設透明度 */
    /*opacity: 0.7; */
    opacity: 1;
    background-color: rgba(255, 255, 255, 0.7) !important;
    z-index: 100;
    /* 增加過渡效果，讓透明度變化更平滑 */
    transition: opacity 0.3s ease; 
}

/* 滾動後的狀態 (JS 會加上這個 Class) */
.header-one.header-scrolled {
    /* 滾動後，將透明度設為完全不透明 */
    opacity: 1.0; 
        background-color: rgba(255, 255, 255) !important;
}

.header-one .navbar-collapse {
  padding-left: 0;
}

@media (max-width: 991px) {
  .navbar-collapse.collapse {
    overflow-y: auto;
  }

}

.header-one ul.navbar-nav > li {
  padding-left: 30px;
  padding-right: 30px;
}

@media (max-width: 1200px) {
  .header-one ul.navbar-nav > li {
  padding-left: 15px;
    padding-right: 15px;
  }
}

.header-one .logo-area {
  padding: 10px 0;
}

.navbar-fixed {
  z-index: 9999;
  position: fixed;
  width: 100%;
  top: 0;
}

.header-two {
  background: #fff;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.15);
  padding: 15px 0;
}

.header-two .navbar-fixed {
  background-color: #fff;
}

ul.navbar-nav > li > a {
  padding: 15px 0 !important;
  color: #fff;
}

@media (max-width: 991px) {
  ul.navbar-nav > li > a {
    padding: 1px 0 !important;
  }
  .navbar-nav {
    margin-bottom: 15px;
  }
}

ul.navbar-nav > li:hover > a,
ul.navbar-nav > li.active > a {
  color: #ffb600 !important;
}

/*-- Logo --*/
.logo {
    padding: 10px 0;
}

.logo h1 {
    margin: 0; 
}

.logo-link {
    display: flex; 
    align-items: center; 
    text-decoration: none; 
    color: #333;
}

.logo img {
    width: auto;
    height: 60px;
    margin-right: 15px;
}

.logo-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    line-height: 1.2;
    text-align: left;
}

.logo-text h1 {
    font-size: clamp(16px, 3vw, 26px); /* 最小16px，視窗放大時跟著變，大於26px就不再放大 */
    font-weight: 700;
    color: #111;
    margin-bottom: 0;
    white-space: nowrap; /* 禁止換行，完整一行呈現 */
}




.logo-text p {
    font-size: clamp(14px, 3vw, 16px);;
    font-weight: 700;
    color: #111;
    margin: 0;
    line-height: 1.2;
    white-space: nowrap; /* 禁止換行，完整一行呈現 */
}

/* header right */
.header-right {
  float: right;
}

ul.top-info-box {
  list-style: none;
  margin: 0;
  padding: 0;
  float: right;
}

@media (max-width: 992px) {
  ul.top-info-box {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    float: none;
  }
}

ul.top-info-box li {
  position: relative;
  float: left;
  margin-left: 0;
  border-right: 1px solid #dedede;
  border-right: 1px solid rgba(0, 0, 0, 0.1);
  padding-right: 25px;
  margin-right: 25px;
}

@media (max-width: 575px) {
  ul.top-info-box li {
    border: 0;
    text-align: center;
    margin: 0;
    flex: 0 0 50%;
    padding: 0;
    margin-top: 10px;
  }
}

@media (max-width: 400px) {
  ul.top-info-box li {
    border: 0;
    text-align: center;
    margin: 0;
    flex: 0 0 100%;
    margin-top: 15px;
  }
}

ul.top-info-box li:last-child {
  margin-right: 0;
  padding-right: 0;
  border-right: 0;
}

ul.top-info-box li.last {
  border-right: 0;
}

ul.top-info-box li .info-box span.info-icon {
  font-size: 20px;
  display: inline-block;
  text-align: center;
  margin: 2px 5px 0 0;
  position: relative;
}

ul.top-info-box li .info-box .info-box-content {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  flex-direction: column;
}

ul.top-info-box li .info-box .info-box-title {
  font-size: 14px;
  margin-bottom: 8px;
  line-height: normal;
}

ul.top-info-box li .info-box .info-box-subtitle {
  margin: 0;
  line-height: normal;
  font-size: 15px;
  font-weight: 700;
  color: #111;
}

/*-- Search start --*/
ul.top-info-box > li.nav-search {
  cursor: pointer;
  padding-left: 30px;
  margin-left: 30px;
}

ul.top-info-box > li.nav-search:before {
  position: absolute;
  content: '';
  background: #ddd;
  left: 0;
  width: 1px;
  height: 40px;
  top: 50%;
  margin-top: -10px;
}

ul.top-info-box > li.nav-search i {
  font-size: 20px;
  top: 10px;
  position: relative;
  cursor: pointer;
  color: #999;
}

/* Main navigation */
.navbar-toggler {
  float: left;
  margin-top: 10px;
  padding: 12px;
}

.navbar {
  border-radius: 0;
  border: 0;
  margin-bottom: 0;
}

.navbar-toggler {
  margin: 10px 0;
  padding: 6px;
  border-radius: 0;
  font-size: 1rem;
  background: #ffb600;
}

.navbar-toggler:focus {
  outline: 0;
}

.navbar-dark .navbar-toggler-icon,
.navbar-light .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

ul.navbar-nav > li:hover > a,
ul.navbar-nav > li.active > a {
  color: #ffb600;
  position: relative;
}

ul.navbar-nav > li {
  padding: 0 13px;
  position: relative;
}

@media (max-width: 1200px) {
  ul.navbar-nav > li {
    padding: 0 9px;
  }
  ul.navbar-nav > li .nav-link {
    font-size: 15px;
  }
}

.header-two .navbar-nav > .header-get-a-quote {
  top: -4px;
}

@media (max-width: 991px) {
  .header-two ul.navbar-nav > li {
    padding: 0;
    width: 100%;
  }
}

ul.navbar-nav > li:last-child {
  /*padding-right: 0;*/
}

ul.navbar-nav > li:last-child:after {
  background: none;
}

ul.navbar-nav > li > a:hover,
ul.navbar-nav > li > a:focus {
  background: none;
}

ul.navbar-nav > li > a i {
  font-weight: 700;
}

@media (max-width: 991px) {
  ul.navbar-nav > li > a i {
    float: right;
    background: #222;
    padding: 6px 10px;
    margin-top: 7px;
  }
  .header-two ul.navbar-nav > li > a i {
    color: #fff;
  }
  .header-two ul.navbar-nav > li.active > a i,
  .header-two ul.navbar-nav > li > a.active i {
    color: #ffb600;
  }
}

ul.navbar-nav > li > a:after,
ul.navbar-nav > li > a:after {
  display: none;
}

ul.navbar-nav > li > a {
  font-family: "Montserrat", sans-serif;
  color: #111 !important;
  text-rendering: optimizeLegibility;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: -.2px;
  font-size: 16px;
  margin: 0;
  line-height: 40px;
  padding: 30px 0;
  transition: 350ms;
}

.navbar-light ul.navbar-nav > li > a {
  color: #000 !important;
  font-size: clamp(18px, 1.5vw, 22px);
  white-space: nowrap;
}

/* Dropdown */
.dropdown-submenu {
  position: relative;
}

.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -2px;
  border-radius: 0;
}

.dropdown-submenu > a:after {
  display: block;
  content: "\f105";
  font-family: "Font Awesome 5 Free";
  float: right;
  margin-top: 0;
  margin-right: -5px;
  border: 0;
}

.dropdown-submenu:hover > a:after {
  border-left-color: #fff;
}

.dropdown-menu {
  text-align: left;
  background: #fff;
  z-index: 100;
  min-width: 200px;
  border-radius: 0;
  border: 0;
  border-top: 2px solid #ffb600;
  padding: 0 20px;
  margin: 0;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
}

@media (max-width: 991px) {
  .dropdown-menu {
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.05);
  }
}

.dropdown-menu-large {
  min-width: 400px;
}

.dropdown-menu-large > li > ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

.dropdown-menu-large > li > ul > li > a {
  padding-left: 0;
}

.dropdown-menu-large > li > ul > li.active > a {
  color: #ffb600 !important;
}

.navbar-nav > li > .dropdown-menu a {
  background: none;
}

.dropdown-menu li a {
  font-family: "Montserrat", sans-serif;
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  padding: 15px 0;
  letter-spacing: .3px;
  border-bottom: 1px solid #e5e5e5;
  color: #333333;
}

@media (max-width: 991px) {
  .dropdown-menu li a {
    padding: 12px 0;
  }
}

.dropdown-menu li:last-child > a {
  border-bottom: 0;
}

.dropdown-menu li a:hover,
.dropdown-menu li a:focus {
  color: #ffb600;
}

@media (min-width: 991px) {
  ul.nav li.dropdown:hover ul.dropdown-menu {
    display: block;
  }
}

@media (min-width: 991px) {
  ul.nav li.dropdown ul.dropdown-menu li.dropdown-submenu .dropdown-menu {
    left: 100%;
    top: 0;
    display: none;
  }
  ul.nav li.dropdown ul.dropdown-menu li.dropdown-submenu:hover .dropdown-menu {
    display: block;
  }
}

.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus,
.dropdown-menu > .active > .dropdown-menu > .active > a {
  background: none;
  color: #ffb600;
}

/*-- Nav Search start --*/
.site-navigation .container,
.search-area {
  position: relative;
}

.search-area {
  min-height: 70px;
  padding-right: 0;
}

.nav-search {
  position: absolute;
  cursor: pointer;
  top: 22px;
  right: 18px;
  color: #999;
}

@media (max-width: 991px) {
  .nav-search {
    top: 17px;
  }
}

.search-block {
  background-color: rgba(0, 0, 0, 0.65);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  display: none;
  padding: 10px;
  position: absolute;
  right: 15px;
  top: 100%;
  width: 300px;
  z-index: 10;
  margin-top: 0;
}

@media (max-width: 991px) {
  .search-block {
    top: 58px;
  }
}

.search-block .form-control {
  background-color: #222;
  border: none;
  color: #fff;
  width: 100%;
  height: 40px;
  padding: 0 12px;
}

.search-block .search-close {
  color: #999;
  position: absolute;
  top: -53px;
  right: -4px;
  font-size: 32px;
  cursor: pointer;
  background: #23282d;
  padding: 5px;
}

@media (max-width: 991px) {
  .search-block .search-close {
    top: -46px;
  }
}

.search-area .nav-search {
  top: 23px;
}

.search-area .search-block .search-close {
  top: -50px;
}

.search-area .search-block {
  right: 0;
}

/* Get a quote */
.header-get-a-quote .btn-primary {
  padding: 12px 25px !important;
  font-size: 13px;
  border-radius: 3px;
  line-height: normal;
  text-transform: capitalize;
  color: #fff;
  margin-top: 5px;
}

@media (max-width: 1200px) {
  .header-get-a-quote .btn-primary {
    padding: 12px !important;
  }
}

@media (max-width: 991px) {
  .header-get-a-quote .btn-primary {
    padding: 12px 30px !important;
  }
}

.header-get-a-quote .btn-primary:hover {
  background: #272d33;
  color: #ffb600 !important;
}

ul.navbar-nav > li.header-get-a-quote:hover > a:after {
  position: relative;
  content: no-close-quote;
}

/* Table of Content
==================================================
1.    Slider
2.    Call to action
3.    Features
4.    Facts
5.    Services
6.   Project area
7.   Content area
8.   Testimonial
9.   Subscribe area
10.   News section
11.   Footer
12.   Sub Pages
13.   Contact Us
14.   News Listing
15.   News Single
16.   Sidebar
17.   Error page
*/
/* Slider
================================================== */
/*-- Main slide --*/
.banner-carousel .banner-carousel-item {
  height: 700px;
  color: #fff;
  background-position: 50% 50%;
  background-size: cover;
}

@media (max-width: 991px) {
  .banner-carousel .banner-carousel-item {
    height: 550px;
  }
}

@media (max-width: 575px) {
  .banner-carousel .banner-carousel-item {
    height: 450px;
  }
}

.slider-content {
  position: relative;
  height: 100%;
  width: 100%;
}

.slide-title-box {
  font-size: 16px;
  line-height: 39px;
  background: #ffb600;
  color: #fff;
  display: inline-block;
  padding: 0 15px;
  margin: 0 0 10px;
}

.slide-title {
  font-size: 30px;
  line-height: 36px;
  font-weight: 300;
  color: #fff;
  margin: 20px 0 10px;
}

@media (max-width: 991px) {
  .slide-title {
    font-size: 22px;
  }
}

@media (max-width: 575px) {
  .slide-title {
    font-size: 16px;
  }
}

.slide-sub-title {
  font-style: normal;
  font-size: 60px;
  line-height: 58px;
  margin: 20px 0;
  color: #fff;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -1px;
}

@media (max-width: 991px) {
  .slide-sub-title {
    font-size: 46px;
  }
}

@media (max-width: 575px) {
  .slide-sub-title {
    font-size: 30px;
    line-height: 30px;
  }
}

.slider-text {
  display: table;
  vertical-align: bottom;
  color: #fff;
  padding-left: 40%;
  width: 100%;
  padding-bottom: 0;
  padding-top: 20px;
}

.slider-text .slide-head {
  font-size: 36px;
  color: #0052a5;
  position: relative;
}

.slider-img {
  display: block;
  position: absolute;
  top: -80px;
  left: 20%;
  width: 314px;
  max-height: 100%;
}

.slider-img img {
  display: block;
  position: relative;
  max-height: 100%;
  width: auto;
}

.slider.btn {
  margin: 15px 5px 0;
  border: 2px solid transparent;
}

@media (max-width: 575px) {
  .slider.btn {
    font-size: 12px;
  }
}

.slider.border {
  background: none;
  border: 2px solid #ffb600 !important;
}

.slider.border:hover {
  background: #ffb600;
  border: 2px solid transparent;
}

/* Carousel control */
.banner-carousel .carousel-control {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: inline-block;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-color: transparent;
  opacity: 0;
  filter: alpha(opacity=0);
  text-shadow: none;
  transition: all .25s ease;
  padding: 0;
  outline: 0;
  border: 0;
}

@media (max-width: 575px) {
  .banner-carousel .carousel-control {
    display: none !important;
  }
}

.banner-carousel .slick-dots {
  opacity: 0;
  filter: alpha(opacity=0);
  bottom: 60px;
}

.slick-dots li button::before {
  font-size: 12px;
}

.slick-dots li button:hover:before, .slick-dots .slick-dots li button:focus:before,
.slick-dots li.slick-active button:before {
  opacity: 1;
  color: #ffb600;
}

.slick-slide {
  outline: 0;
}

.banner-carousel:hover .carousel-control,
.banner-carousel:hover .carousel-control,
.banner-carousel:hover .slick-dots {
  opacity: 1;
  filter: alpha(opacity=100);
}

.banner-carousel .carousel-control.left {
  left: 20px;
}

.banner-carousel .carousel-control.right {
  right: 20px;
}

.banner-carousel .carousel-control i {
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  line-height: 58px;
  width: 60px;
  height: 60px;
  font-size: 22px;
  border-radius: 0;
  transition: all 500ms ease;
}

.banner-carousel .carousel-control i:hover {
  background: #ffb600;
  color: #fff;
}

/*-- Animation */
.banner-carousel [data-animation-in] {
  opacity: 0;
}

/* slick Box slider */
.box-slider-content {
  top: 50%;
  padding: 0;
  position: absolute;
  width: 100%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

@media (max-width: 767px) {
  .box-slider-content {
    top: auto;
    -webkit-transform: translateY(0);
            transform: translateY(0);
    left: 20px;
    bottom: 20px;
    width: calc(100% - 40px);
  }
}

.box-slider-text {
  background: #111;
  background: rgba(0, 0, 0, 0.65);
  display: inline-block;
  padding: 20px 30px;
  max-width: 650px;
}

.box-slide-title {
  font-size: 18px;
  font-weight: 300;
  margin: 0;
  color: #fff;
}

@media (max-width: 767px) {
  .box-slide-title {
    font-size: 16px;
  }
}

.box-slide-sub-title {
  font-size: 36px;
  margin: 8px 0 10px;
  color: #fff;
}

@media (max-width: 767px) {
  .box-slide-sub-title {
    font-size: 26px;
  }
}

.box-slide-description {
  color: #fff;
}

@media (max-width: 767px) {
  .box-slide-description {
    font-size: 15px;
  }
}

.box-slider-text .btn {
  padding: 10px 20px;
}

.box-slide.owl-theme .owl-controls {
  margin: -20px;
}

/* Call to action
================================================== */
.call-to-action {
  background-color: #272d33;
  padding: 30px;
}

.call-to-action-title {
  color: #fff;
  margin: 0;
  padding: 25px 0;
  line-height: normal;
  font-size: 22px;
  text-transform: capitalize;
}

/* Action style box */
.call-to-action-box {
  margin-top: -50px;
}

.call-to-action-box .action-style-box {
  background: #ffb600;
  padding: 30px;
}

.action-title {
  color: #fff;
  margin: 0;
  line-height: 36px;
  /*font-size: 18px;*/
  text-transform: uppercase;
}

/* Intro
================================================== */
/* Intro */
.ts-intro {
  padding-right: 20px;
}

.into-title {
  font-weight: 300;
  text-transform: uppercase;
  font-size: 18px;
  line-height: normal;
  margin: 0;
}

.into-sub-title {
  font-weight: 900;
  text-transform: uppercase;
  font-size: 32px;
  line-height: normal;
  margin: 10px 0;
}

/*-- Featured Tab --*/
.featured-tab {
  padding-left: 15px;
}

.featured-tab .nav-tabs {
  border: 0;
}

.featured-tab .nav-tabs > li > a {
  font-family: 'Roboto Slab', serif;
  background: #272d33;
  color: #fff;
  text-shadow: none;
  font-weight: 700;
  border-radius: 0;
  text-transform: uppercase;
  line-height: 50px;
  margin: 0 1px 20px;
  padding: 0 20px;
  border: 0 !important;
  transition: all 300ms ease;
}

.featured-tab .tab-content {
  border-top: 0;
  padding: 0;
  overflow: hidden;
}

.featured-tab .nav.nav-tabs {
  margin-bottom: 10px;
}

.featured-tab .nav-tabs > li.active > a {
  color: #fff;
  background: #ffb600;
  position: relative;
}

.featured-tab .nav-tabs > li.active > a:after {
  position: absolute;
  content: " ";
  width: auto;
  height: auto;
  bottom: -20px;
  left: 50%;
  border-width: 10px;
  border-style: solid;
  border-color: #ffb600 rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) rgba(0, 0, 0, 0);
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.featured-tab .lead {
  font-size: 18px;
  line-height: 28px;
  color: #303030;
  font-weight: 400;
}

.featured-tab .tab-pane img.pull-left {
  margin: 0 30px 10px 0;
}

.featured-tab .tab-pane img.pull-right {
  margin: 0 0 0 30px;
}

.featured-tab .tab-icon i {
  font-size: 230px;
}

.tab-image-content {
  padding-left: 0;
}

.featured-tab .border-title.border-left {
  display: inline-block;
  margin-bottom: 25px;
  font-size: 20px;
}

/* Tab services */
.featured-tab.tab-services .nav-tabs > li > a {
  font-size: 14px;
  padding: 0 21px;
  text-transform: capitalize;
}

.featured-tab.tab-services .nav.nav-tabs {
  margin-bottom: 20px;
}

/* Facts
================================================== */
.facts-wrapper {
  text-align: center;
}

.facts-wrapper .ts-facts {
  color: #fff;
}

.ts-facts .ts-facts-icon i {
  font-size: 42px;
  color: #ffb600;
}

.ts-facts .ts-facts-content .ts-facts-num {
  color: #fff;
  font-size: 44px;
  margin: 30px 0 20px;
}

.ts-facts .ts-facts-content .ts-facts-title {
  font-size: 16px;
  color: #ffb600;
  margin: 0;
}

/* Services
================================================== */
/* Service box */
.ts-service-box .ts-service-icon i {
  font-size: 36px;
  float: left;
  color: #ffb600;
}

.ts-service-box .ts-service-box-content {
  margin-left: 62px;
  margin-bottom: 30px;
}

.tab-content .ts-service-box .ts-service-box-content {
  margin-left: 90px;
}

.ts-service-box .ts-service-box-content h3 {
  font-size: 16px;
  margin-bottom: 10px;
  line-height: 28px;
}

.ts-service-box .ts-service-box-info {
  margin-left: 25px;
  margin-bottom: 40px;
}

.service-box-title {
  font-size: 16px;
  margin: 0 0 10px;
}

.service-box-title a {
  color: #333;
}

.service-box-title a:hover {
  color: #ffb600;
}

/* Service box bg */
.ts-service-box-bg {
  background: #252525;
  color: #fff;
  padding: 30px;
}

.ts-service-box-bg h4,
.ts-service-box-bg h3 {
  color: #fff;
}


@media (min-width: 767px) {
  .pcimg {
      height: 285px;
  }
}

/* Service box 

.ts-service-box .ts-service-icon i {
  font-size: 24px;
  float: left;
  color: #fff;
  background: $color-primary;
  border-radius: 100%;
  width: 60px;
  height: 60px;
  line-height: 60px;
  text-align: center;
}

.ts-service-box .ts-service-box-content {
  margin-left: 80px;
  margin-bottom: 30px;
}

.tab-content .ts-service-box .ts-service-box-content {
  margin-left: 90px;
}

.ts-service-box .ts-service-box-content h3 {
  font-size: 18px;
  margin-bottom: 15px;
}

.ts-service-box .ts-service-box-info {
  margin-left: 90px;
  margin-bottom: 40px;
}

.service-box-title {
  font-size: 18px;
  margin: 0 0 10px;
}

.service-box-title a {
  color: #333;
}

.service-box-title a:hover {
  color: $color-primary;
}

.service-center-img {
  padding: 0 20px;
}
*/
/* Icon squre */
.ts-service-icon.icon-round i {
  font-size: 24px;
  color: #fff;
  background: #ffb600;
  text-align: center;
  border-radius: 100%;
  width: 60px;
  height: 60px;
  line-height: 60px;
  margin-bottom: 20px;
  position: relative;
  float: none;
}

/* Icon left */
.ts-service-box.icon-left .ts-service-box-icon {
  float: left;
}

.ts-service-box.icon-left .ts-service-box-icon i {
  background: #ffb600;
  color: #fff;
}

.ts-service-box.icon-left .ts-service-box-info {
  margin-left: 90px;
}

.ts-service-box.icon-left .ts-service-box-info h3 {
  margin-top: 0;
  margin-bottom: 5px;
}

/* Service no box */
.service-no {
  font-size: 48px;
  color: #dbdbdb;
  float: left;
  margin-top: 10px;
}

.ts-service-box-content .ts-service-box-info {
  margin-left: 90px;
}

/* Service Image */
.ts-service-image-wrapper {
  margin-bottom: 30px;
}

.ts-service-icon i {
  font-size: 28px;
  margin-right: 15px;
  margin-top: 2px;
}


.ts-service-info h3 {
  font-size: 16px;
}

.ts-service-info .learn-more {
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 600;
}

.ts-service-info .learn-more:hover {
  color: #ffb600;
}

/* Service Classic */
.ts-service-classic .ts-service-icon i {
  font-size: 24px;
  float: left;
  color: #fff;
  background: #ffb600;
  border-radius: 100%;
  width: 60px;
  height: 60px;
  line-height: 60px;
  text-align: center;
  transition: all 0.3s;
}

.ts-service-classic .ts-service-box-info {
  margin-left: 80px;
}

.ts-service-classic:hover .ts-service-icon i {
  background: #ffb600;
}

/* Projects area
================================================== */
/* Project filter nav */
.shuffle-btn-group {
  display: inline-block;
  margin: 20px 0 50px;
  width: 100%;
  border-bottom: 3px solid #ffb600;
}

.shuffle-btn-group label {
  display: inline-block;
  color: #212121;
  font-size: 14px;
  padding: 6px 20px;
  padding-top: 10px;
  font-weight: 700;
  text-transform: uppercase;
  transition: all 0.3s;
  cursor: pointer;
  margin: 0;
}

.shuffle-btn-group label.active {
  color: #212121;
  background: #ffb600;
}

.shuffle-btn-group label input {
  display: none;
}

/* Project shuffle Item */
.shuffle-item {
  padding: 5px;
}

.shuffle-item .project-img-container {
  position: relative;
  overflow: hidden;
}

.shuffle-item .project-img-container img {
  -webkit-transform: perspective(1px) scale3d(1.1, 1.1, 1);
          transform: perspective(1px) scale3d(1.1, 1.1, 1);
  transition: all 400ms;
}

.shuffle-item .project-img-container:hover img {
  -webkit-transform: perspective(1px) scale3d(1.15, 1.15, 1);
          transform: perspective(1px) scale3d(1.15, 1.15, 1);
}

.shuffle-item .project-img-container:after {
  opacity: 0;
  position: absolute;
  content: '';
  top: 0;
  right: auto;
  left: 0;
  width: 100%;
  height: 100%;
  /*background-color: rgba(0, 0, 0, 0.7);*/
  transition: all 400ms;
}

.shuffle-item .project-img-container:hover:after {
  opacity: 1;
}

.shuffle-item .project-img-container .gallery-popup .gallery-icon {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  padding: 5px 12px;
  background: #ffb600;
  color: #fff;
  opacity: 0;
  -webkit-transform: perspective(1px) scale3d(0, 0, 0);
          transform: perspective(1px) scale3d(0, 0, 0);
  transition: all 400ms;
}

.shuffle-item .project-img-container:hover .gallery-popup .gallery-icon {
  opacity: 1;
  -webkit-transform: perspective(1px) scale3d(1, 1, 1);
          transform: perspective(1px) scale3d(1, 1, 1);
}

.shuffle-item .project-img-container .project-item-info {
  position: absolute;
  top: 50%;
  margin-top: -10%;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0 30px;
  z-index: 1;
}

.shuffle-item .project-img-container .project-item-info-content {
  opacity: 0;
  -webkit-transform: perspective(1px) translate3d(0, 15px, 0);
          transform: perspective(1px) translate3d(0, 15px, 0);
  transition: all 400ms;
}

.shuffle-item .project-img-container .project-item-info-content .project-item-title {
  font-size: 20px;
}

.shuffle-item .project-img-container .project-item-info-content .project-item-title a {
  color: #fff;
}

.shuffle-item .project-img-container .project-item-info-content .project-item-title a:hover {
  color: #ffb600;
}

.shuffle-item .project-img-container .project-item-info-content .project-cat {
  background: #ffb600;
  display: inline-block;
  padding: 2px 8px;
  font-weight: 700;
  color: #000;
  font-size: 10px;
  text-transform: uppercase;
}

.shuffle-item .project-img-container:hover .project-item-info-content {
  opacity: 1;
  -webkit-transform: perspective(1px) translate3d(0, 0, 0);
          transform: perspective(1px) translate3d(0, 0, 0);
}

.general-btn .btn-primary:hover {
  background: #000;
}

/* Project owl */
.owl-theme.project-slide {
  margin-top: 60px;
}

.project-slide .item {
  position: relative;
  overflow: hidden;
  width: 100%;
}

.project-item img {
  width: 100%;
  max-width: auto;
  transition: all 0.6s ease 0s;
}

.project-item:hover img {
  -webkit-transform: scale(1.1, 1.1);
          transform: scale(1.1, 1.1);
}

.project-item-content {
  position: absolute;
  bottom: -1px;
  padding: 15px 20px;
  width: 100%;
  background: #ffb600;
}

.owl-theme.project-slide .owl-nav > div {
  position: absolute;
  top: -70px;
  right: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.project-slide .owl-nav > div {
  display: inline-block;
  margin: 0 2px;
  font-size: 20px;
  background: #ffb600;
  color: #fff;
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
}

.owl-theme.project-slide .owl-nav > .owl-prev {
  right: 35px;
  left: auto;
}

/* Projects Single page */
.project-title {
  font-size: 30px;
}

.project-info-label {
  color: #303030;
  font-weight: 700;
  font-size: 14px;
}

.project-info-content {
  font-size: 12px;
}

.project-info li {
  margin-bottom: 5px;
}

.project-link {
  margin-top: 15px;
}

/* Content area
================================================== */
/* Accordion */
.accordion-group .card {
  border-radius: 0;
  margin-bottom: 10px;
  border-bottom: 1px solid #dfdfdf !important;
}

.accordion-group .card-body {
  padding: 15px 20px;
}

.accordion-group .card-body img {
  /*max-width: 100px;*/
  margin-bottom: 10px;
}

.accordion-group .card-header .btn {
  font-size: 16px;
  text-transform: uppercase;
  font-weight: 700;
  padding: 13px 15px;
  padding-bottom: 10px;
}

.accordion-group .card-header .btn:before {
  font-family: "Font Awesome 5 Free";
  /*position: absolute;*/
  z-index: 0;
  font-size: 14px;
  right: 16px;
  padding: 3px 8px 1px;
  text-align: center;
  border-radius: 3px;
  top: 12px;
  content: "\f107";
  font-weight: 700;
  background-color: #333;
  color: #fff;
  transition: .3s;
}

.accordion-group .card-header .btn[aria-expanded="true"] {
  color: #ffb600;
}

.accordion-group .card-header .btn[aria-expanded="true"]::before {
  content: "\f106";
  background-color: #ffb600;
}

.accordion-group.accordion-classic .card-header .btn:before {
  display: none;
}

/* Clients */
.clients-logo {
  margin: 0 0 30px;
  border: 1px solid #dadada;
  min-height: 105px;
  padding: 0 30px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  align-content: center;
}

.clients-logo img {
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
  -webkit-filter: gray;
          filter: gray;
}

/* Testimonial
================================================== */
.testimonial-area {
  padding: 100px 0;
  background-color: #ffb600;
  background-image: url(../images/parallax2.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
  background-position: 50% 50%;
}

.testimonial-area .border-title,
.testimonial-area .border-sub-title {
  color: #fff;
}

.quote-item .quote-text {
  margin: 0 0 10px;
  display: inline-block;
  padding: 0 40px 30px 60px;
  background-color: #fff;
  position: relative;
  font-size: 16px;
  font-style: italic;
}

@media (max-width: 575px) {
  .quote-item .quote-text {
    padding: 0 40px 30px 50px;
  }
}

.quote-item .quote-text:before {
  content: "\f10d";
  font-family: "Font Awesome 5 Free";
  position: absolute;
  font-size: 30px;
  left: 0;
  top: 0;
  font-weight: 700;
  color: #ffc009;
}

.testimonial-slide .slick-dots {
  bottom: -35px;
}

img.testimonial-thumb {
  max-width: 80px;
  float: left;
  margin-right: 20px;
  border-radius: 5px;
}

.quote-item-info {
  padding-top: 15px;
  display: inline-block;
}

.quote-author {
  font-size: 16px;
  line-height: 18px;
  margin: 0 0 2px;
  font-weight: 700;
  display: block;
  color: #ffb600;
}

.quote-item-footer {
  margin-top: 0;
  margin-left: 60px;
}

@media (max-width: 575px) {
  .quote-item-footer {
    margin-left: 0;
  }
}

/* Testimonial Border */
.quote-item.quote-border .quote-text-border {
  border: 1px solid #ffb600;
  padding: 20px;
  position: relative;
  line-height: 28px;
  color: #666;
  font-size: 18px;
  text-align: center;
}

.quote-item.quote-border .quote-text-border:before {
  border: 12px solid;
  border-color: #e1e1e1 transparent transparent;
  border-top-color: #ffb600;
  bottom: -24px;
  position: absolute;
  content: "";
  display: block;
  height: 0;
  width: 0;
  left: 0;
  margin: 0 auto;
  right: 0;
}

.quote-item.quote-border .quote-text-border:after {
  border: 12px solid;
  border-color: #fff transparent transparent;
  bottom: -22px;
  position: absolute;
  content: "";
  display: block;
  height: 0;
  width: 0;
  left: 0;
  margin: 0 auto;
  right: 0;
}

.quote-item.quote-border .quote-item-footer {
  margin-left: 0;
  text-align: center;
  margin-top: 35px;
}

.quote-item.quote-border .quote-item-footer img.testimonial-thumb {
  float: none;
  margin: 0;
}

.quote-item.quote-border .quote-item-footer .quote-item-info {
  display: block;
}

/* Subscribe area
================================================== */
.subscribe {
  background: #ffb600;
  padding: 0;
}

/* Call to action */
.subscribe-call-to-acton {
  min-height: 115px;
  padding: 30px 0 0 30px;
}

@media (max-width: 575px) {
  .subscribe-call-to-acton {
    text-align: center;
    padding: 30px 0;
    min-height: auto;
  }
}

.subscribe-call-to-acton h3 {
  font-size: 18px;
  margin-top: 0;
  margin-bottom: 5px;
}

.subscribe-call-to-acton h4 {
  color: #fff;
  font-size: 24px;
  margin: 0;
}

/* Newsletter */
.ts-newsletter {
  background: #252525;
  position: relative;
  min-height: 115px;
  padding: 15px 0 0 50px;
}


@media (max-width: 575px) {
  .ts-newsletter {
    padding: 30px 5px 15px 5px;
    min-height: auto;
    text-align: center;
  }
}

.ts-newsletter:after {
  content: "";
  position: absolute;
  background: #252525;
  display: block;
  width: 100%;
  height: 100%;
  right: -100%;
  top: 0;
}

.newsletter-form input {
  background: none;
  font-size: 12px;
  height: 45px;
  border: 1px solid rgba(255, 255, 255, 0.3);
}

/* News section
================================================== */
.latest-post {
  position: relative;
}

.latest-post .image-angle:before {
  border-bottom: 20px solid #f9f9f9;
}

.latest-post .post-title {
  font-size: 16px;
  line-height: 24px;
  margin: 0;
  font-weight: 600;
}

.latest-post .post-title a {
  color: #303030;
}

.latest-post .post-title a:hover {
  color: #ffb600;
}

.latest-post-meta {
  font-size: 13px;
  text-transform: uppercase;
}

.latest-post .post-body {
  padding: 20px 0 5px;
}

/* Footer
================================================== */
/*- Footer common */
.footer {
  background-color: #e6e6e6;
  color: #999;
}

.footer-main {
  padding: 80px 0 60px;
}

.footer-main h1 {
  font-size: clamp(25px, 3vw, 33px);
  color: #2D2D2D;
  margin: 0;
  white-space: nowrap;
}
.footer-main p {
  font-size: 19px;
  color: #2D2D2D;
    font-weight: 900;
}
.footer-main a:hover {
    color: #2D2D2D; 
    font-weight: bold; 
}

.footer-main .address {
    font-weight: normal;
    margin-bottom:0;
}
.footer .widget-title {
  font-size: 24px;
  font-weight: 700;
  position: relative;
  text-transform: uppercase;
  color: #005FA3;
  /*border-left: 3px solid #ffb600;*/
}
.widget-title::before  {
    content: "";
    display: inline-block;
    width: 0;
    height: 1.2em;
    margin-right: 16px;
    vertical-align: middle;
    border-left: 3px solid #005FA3;
}
.widget-title::after {
    content: "";
    display: inline-block;
    width: 0;
    height: 1.2em;
    margin-left: 16px;
    vertical-align: middle;
    border-left: 3px solid #005FA3;
}
/* Footer about us */
.footer-logo {
  margin-bottom: 25px;
  max-height: 35px;
}

/* Footer social */
/*.footer-social {*/
/*  margin-top: 15px;*/
/*}*/

/*.footer-social .widget-title {*/
/*  font-size: 14px;*/
/*  margin-bottom: 10px;*/
/*}*/

/*.footer-social ul {*/
/*  list-style: none;*/
/*  margin: 0;*/
/*  padding: 0;*/
/*  margin-left: -13px;*/
/*}*/

/*.footer-social ul li {*/
/*  display: inline-block;*/
/*}*/

/*.footer-social ul li a i {*/
/*  display: block;*/
/*  font-size: 16px;*/
/*  color: #999;*/
/*  transition: 400ms;*/
/*  padding: 10px 13px;*/
/*}*/

/*.footer-social ul li:hover {*/
/*    color: #2D2D2D; */
/*    font-weight: bold; */
/*}*/

/* Links */
.footer-widget ul.list-arrow li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  padding: 4px 0;
}

.footer-widget ul.list-arrow li:last-child {
  border-bottom: 0;
}

.footer-widget ul.list-arrow li:before {
  color: #005FA3;
}

.footer-widget ul.list-arrow a {
    font-size: 24px;
    color: #2D2D2D; 
}

.footer-widget ul.list-arrow a li:hover {
    color: #2D2D2D; 
    font-weight: bold; 
}

.working-hours {
  padding-right: 10px;
}

.working-hours .text-right {
  float: right;
}

/*-- Copyright --*/
.copyright {
  background: #111;
  color: #bbb;
  padding: 20px 0;
  position: relative;
  z-index: 1;
  font-weight: 600;
  font-size: 12px;
}
.copyright p {
    margin: 0px;
}
.copyright a:hover {
    color: #FFFFFF; 
}

.footer-menu ul li {
  display: inline-block;
  line-height: 12px;
  padding-left: 15px;
}

.footer-menu ul.nav li a {
  background: none;
  color: #111;
  padding: 0;
}

.footer-menu ul li a:hover {
  color: #fff;
}

.contact-info2{
  font-size: 21px;
  /*letter-spacing: 3px;*/
  color: #2D2D2D;
    
}
.contact-info2 .details{
  line-height: 35px;
    
}

.contact-info2 .label {
  font-size: 19px;
    border: 2px solid;
    padding: 0px 5px;
    margin-right: 5px;
}
.contact-info2 .value {
  font-size: 19px;
    margin-right: 5px;
}


#back-to-top {
  right: 40px;
  top: auto;
  z-index: 10;
  display: none;
}

#back-to-top .btn:focus {
  outline: 0;
  box-shadow: none;
}

@media (max-width: 767px) {
  #back-to-top {
    right: 15px;
  }
}

#back-to-top.position-fixed {
  bottom: 20px;
}

#back-to-top .btn.btn-primary {
  width: 36px;
  height: 36px;
  line-height: 36px;
  background: rgba(0, 0, 0, 0.9);
  border-radius: 3px;
  color: #ffb600;
  font-weight: 700;
  font-size: 16px;
  padding: 0;
}

@media (max-width: 767px) {
  #back-to-top .btn.btn-primary {
    width: 32px;
    height: 32px;
    line-height: 32px;
    font-size: 14px;
  }
}

#back-to-top .btn.btn-primary:hover {
  color: #fff;
}

/* Sub Pages
================================================== */
/*-- Title border --*/
.main-container .border-left {
  margin-bottom: 30px;
}

/*-- Banner --*/
.banner-area {
  position: relative;
  min-height: 420px;
  width: 100%;
  color: #fff;
  background-position: 50% 50%;
  background-size: cover;
  aspect-ratio: 1980 / 520;
}
@media (max-width: 767px) {
  .banner-area {
    aspect-ratio:auto;
  }
}
.banner-area2 {
  position: relative;
  min-height: 420px;
  color: #fff;
  background-position: 50% 50%;
  background-size: cover;
  aspect-ratio: 1980 / 900;
}
@media (max-width: 1024px) {
  .banner-area2 {
  min-height: 560px;
    aspect-ratio:auto;
  }
}
@media (max-width: 344px) {
  .banner-area2 {
  min-height: 500px;
    aspect-ratio:auto;
  }
}

.banner-title {
  color: #fff;
  text-transform: uppercase;
  font-size: 58px;
  font-weight: 900;
}

@media (max-width: 767px) {
  .banner-title {
    font-size: 48px;
  }
}

@media (max-width: 575px) {
  .banner-title {
    font-size: 32px;
  }
}

.banner-text {
  position: absolute;
  top: 40%;
  left: 0;
  right: 0;
  /*max-width: 1170px;*/
  margin: 0 auto;
  width: 100%;
  z-index: 1;
  -webkit-transform: translateY(-30%);
          transform: translateY(-30%);
}


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

.breadcrumb {
  padding: 0;
  background: none;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 12px;
}

.breadcrumb li a,
.breadcrumb .breadcrumb-item,
.breadcrumb li a:focus,
.breadcrumb li a:hover {
  color: #fff !important;
}

.breadcrumb .breadcrumb-item + .breadcrumb-item::before {
  color: #fff;
}

/*-- About us page --*/
/* Slider pages */
.page-slider .carousel-control {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: inline-block;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-color: transparent;
  text-shadow: none;
  transition: all .25s ease;
  padding: 0;
  outline: 0;
  border: 0;
}

.page-slider .carousel-control.left {
  left: 0;
}

.page-slider .carousel-control.right {
  right: 0;
}

.page-slider .carousel-control i {
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  line-height: 70px;
  width: 40px;
  height: 70px;
  font-size: 22px;
  border-radius: 0;
  transition: all 500ms ease;
}

.page-slider .carousel-control i:hover {
  background: #ffb600;
  color: #fff;
}

.page-slider.small-bg .item {
  /*min-height: 330px;*/
  background-size: cover;
}

.page-slider.small-bg .box-slider-content {
  left: 20%;
}

.page-slider.small-bg .box-slider-text {
  background: rgba(0, 0, 0, 0.55);
  padding: 5px 20px;
}

.page-slider.small-bg .box-slide-title {
  font-size: 28px;
  color: #fff;
  font-weight: 900;
}

/*-- Get a quote page --*/
.page-quote-form {
  background: #f2f2f2;
  padding: 30px 50px 50px;
}

.get-a-quote-img {
  margin-bottom: -190px;
}

/*-- Partners carousel --*/
.partner-logo {
  border: 1px solid #eee;
  padding: 20px;
  margin-top: 40px;
  margin-bottom: 10px;
}

.partner-logo img {
  transition: 350ms;
  opacity: .6;
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
}

.partner-logo:hover img {
  opacity: 1;
  -webkit-filter: grayscale(0%);
          filter: grayscale(0%);
}

#partners-carousel .partner-logo {
  border: 0;
  border-right: 1px solid #eee;
  padding: 0 15px;
  margin-top: 20px;
}

#partners-carousel .partner-logo.last {
  border-right: 0;
}

/*-- Team page --*/
.team-slide .slick-slide {
  margin-left: 25px;
  padding-bottom: 60px;
}

.team-slide .slick-list {
  margin-left: -25px;
}

.team-slide .carousel-control {
  position: absolute;
  bottom: 0;
  left: 50%;
  border: 0;
  background-color: #ddd;
  height: 37px;
  width: 37px;
  border-radius: 4px;
  transition: .3s;
  z-index: 6;
}

.team-slide .carousel-control:hover {
  background-color: #ffb600;
  color: #fff;
}

.team-slide .carousel-control.left {
  -webkit-transform: translateX(calc(-50% - 25px));
          transform: translateX(calc(-50% - 25px));
}

.team-slide .carousel-control.right {
  -webkit-transform: translateX(calc(-50% + 25px));
          transform: translateX(calc(-50% + 25px));
}

.team-slide .carousel-control.slick-disabled {
  opacity: .4;
}

.team-slide .carousel-control.slick-disabled:hover {
  background-color: #ddd;
  color: #000;
}

.ts-team-wrapper {
  position: relative;
  overflow: hidden;
}

.ts-team-wrapper .ts-team-content {
  position: absolute;
  top: 76%;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 15px 25px;
  margin-top: 0;
  color: #fff;
  background: rgba(0, 0, 0, 0.5);
  transition: 350ms;
}

@media (max-width: 1200px) {
  .ts-team-wrapper .ts-team-content {
    top: 72%;
  }
}

@media (max-width: 575px) {
  .ts-team-wrapper .ts-team-content {
    text-align: center;
  }
}

.ts-team-wrapper .ts-name {
  font-size: 16px;
  margin-top: 0;
  margin-bottom: 3px;
  line-height: normal;
  color: #ffb600;
}

.ts-team-wrapper .ts-designation {
  color: #fff;
  font-size: 14px;
  margin-bottom: 15px;
  font-weight: 700;
}

.ts-team-wrapper .team-social-icons a i {
  color: #fff;
  margin-right: 8px;
  text-align: center;
  transition: 400ms;
}

.ts-team-wrapper .team-social-icons a i:hover {
  color: #ffb600;
}

.ts-team-wrapper:hover .ts-team-content {
  top: 0;
  padding-top: 50px;
}

/* Team Classic */
.ts-team-content-classic {
  margin-top: 15px;
}

.ts-team-content-classic .ts-name {
  font-size: 16px;
  margin-bottom: 5px;
  color: #212121;
}

.ts-team-content-classic .ts-designation {
  color: #888;
  margin-bottom: 5px;
  font-weight: 600;
}

.ts-team-content-classic .team-social-icons a i {
  color: #999;
}

.ts-team-content-classic .team-social-icons a i:hover {
  color: #ffb600;
}

/*-- Pricing table  --*/
.ts-pricing-box {
  margin: 20px 0;
  padding: 0;
  text-align: center;
  background: #f9f9f9;
}

.ts-pricing-box .ts-pricing-header {
  background: #252525;
  color: #fff;
  position: relative;
  padding: 30px 20px;
}

.ts-pricing-box .ts-pricing-name {
  font-size: 18px;
  line-height: normal;
  margin: 0 0 5px 0;
  color: #fff;
}

.ts-pricing-box .ts-pricing-price {
  font-size: 44px;
  color: #fff;
  margin: 15px 0 0;
  display: inline-block;
}

.ts-pricing-box .ts-pricing-price > small {
  font-size: 16px;
  line-height: 16px;
  display: block;
  margin-top: 15px;
  color: #fff;
}

.ts-pricing-box .ts-pricing-features {
  padding: 15px 0;
}

.ts-pricing-box .ts-pricing-features ul {
  padding: 0 20px;
}

.ts-pricing-box .ts-pricing-features ul > li {
  padding: 20px 0;
  border-top: 1px dotted #e5e5e5;
}

.ts-pricing-box .ts-pricing-features ul > li:first-child {
  border-top: 0;
}

.ts-pricing-box .plan-action {
  padding-bottom: 40px;
}

/* Pricing featured */
.ts-pricing-box.ts-pricing-featured .ts-pricing-header {
  background: #ff9800;
}

/* Contact Us
================================================== */
.map {
  height: 450px;
  z-index: 1;
}

.contact-info-box {
  margin-top: 20px;
}

.contact-info-box i {
  float: left;
  font-size: 24px;
  color: #ffb600;
}

.contact-info-box-content {
  padding-left: 40px;
}

.contact-info-box-content h4 {
  font-size: 16px;
  margin-top: 0;
  line-height: normal;
  font-weight: 700;
}

.contact-info-box-content p {
  margin-bottom: 0;
}

label {
  font-weight: 400;
}

/* Contact page 2 */
.ts-service-box.text-center .ts-service-icon.icon-squre i {
  float: none;
  margin-bottom: 20px;
}

.ts-service-box.text-center .ts-service-box-content {
  margin: 0;
}

/* News Listing
================================================== */
.post {
  border-bottom: 1px solid #dadada;
  padding: 0 0 30px;
  margin: 0 0 45px;
}

.post.last {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.post-body {
  padding: 20px 0;
}

.entry-header .entry-title {
  font-size: 24px;
  margin: 5px 0 15px;
  position: relative;
  line-height: 34px;
  text-transform: capitalize;
}

.entry-header .entry-title a {
  color: #303030;
}

.entry-header .entry-title a:hover {
  color: #ffb600;
}

.post-single .entry-header .entry-title {
  font-size: 28px;
}

/* Meta */
.post-meta {
  padding-bottom: 10px;
}

.post-meta a {
  color: #303030;
}

.post-meta a:hover {
  color: #ffb600;
}

.post-meta span {
  margin-right: 10px;
  padding-right: 10px;
  border-right: 1px solid #dadada;
  line-height: 12px;
  display: inline-block;
}

.post-meta i {
  color: #bbb;
  margin-right: 3px;
}

.post-meta .post-comment {
  border-right: 0;
}

.post-meta .post-comment .comments-link {
  margin-left: 5px;
}

.post-footer .btn.btn-primary {
  font-size: 12px;
  margin-top: 10px;
}

/* Pagination */
.paging {
  margin-bottom: -5px;
}

.pagination li a {
  border-radius: 0 !important;
  margin-right: 8px;
  color: #7c7c7c;
}

.pagination > .active > a,
.pagination > .active > a:hover,
.pagination > li > a:hover {
  color: #fff;
  background: #ffb600;
  border: 1px solid transparent;
}

/* News Single
================================================== */
.tags-area {
  margin: 20px 0;
}

.post-tags a {
  border: 1px solid #dadada;
  color: #7c7c7c;
  display: inline-block;
  font-size: 12px;
  padding: 3px 10px;
  margin-left: 3px;
}

.post-tags a:hover {
  background: #ffb600;
  color: #fff;
  border: 1px solid transparent;
}

/* Post social */
.post-social-icons > li {
  display: inline-block;
}

.post-social-icons a i {
  margin-left: 5px;
  font-size: 12px;
  width: 28px;
  height: 26px;
  line-height: 26px;
  color: #fff;
  text-align: center;
}

.post-social-icons a i.fa-facebook-f {
  background: #41578a;
}

.post-social-icons a i.fa-twitter {
  background: #64bae2;
}

.post-social-icons a i.fa-google-plus {
  background: #c0343d;
}

.post-social-icons a i.fa-linkedin {
  background: #3397b6;
}

/* Author box */
.author-box {
  border: 1px solid #dadada;
  padding: 20px 20px 15px;
  margin: 20px 0;
}

.author-img img {
  width: 110px;
  height: 110px;
  margin-right: 30px;
}

.author-info h3 {
  margin-top: 0;
  margin-bottom: 5px;
  font-size: 18px;
  font-weight: 600;
}

.author-info h3 span {
  font-size: 12px;
  color: #999;
  border-left: 1px solid #AFAFAF;
  padding-left: 10px;
  margin-left: 10px;
  font-weight: 500;
}

/* Comments area */
.comments-area {
  margin: 40px 0;
}

.comments-list .comment-content {
  margin: 15px 0;
}

.comments-list .comment-reply {
  color: #303030;
  font-weight: 400;
}

.comments-list .comment-reply:hover {
  color: #ffb600;
}

.comments-counter {
  font-size: 18px;
}

.comments-counter a {
  color: #323232;
}

.comments-list {
  list-style: none;
  margin: 0;
  padding: 20px 0;
}

.comments-list .comment {
  border-bottom: 1px solid #e7e7e7;
  padding-bottom: 20px;
  margin-bottom: 30px;
}

.comments-list .comment.last {
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}

.comments-list img.comment-avatar {
  width: 84px;
  height: 84px;
  margin-right: 30px;
}

@media (max-width: 575px) {
  .comments-list img.comment-avatar {
    width: 40px;
    height: 40px;
    margin-right: 25px;
  }
}

.comments-list .comment-author {
  margin-bottom: 0;
  margin-top: 0;
  font-weight: 600;
  font-size: 16px;
  color: #303030;
}

.comments-list .comment-date {
  color: #959595;
  margin-bottom: 5px;
  font-size: 12px;
}

@media (max-width: 575px) {
  .comments-list .comment-date {
    float: none !important;
    display: inline-block;
  }
}

.comments-reply {
  list-style: none;
  margin: 0 0 0 70px;
}

@media (max-width: 767px) {
  .comments-reply {
    margin: 0;
    padding: 0;
  }
}

.comments-form {
  margin-bottom: 0;
}

.comments-form .title-normal {
  margin-bottom: 20px;
}

.comments-form .btn.btn-primary {
  margin-top: 20px;
}

/* Sidebar
================================================== */
.sidebar .widget-title {
  font-size: 16px;
  font-weight: 700;
  position: relative;
  margin: 0 0 30px;
  padding-left: 15px;
  text-transform: uppercase;
  border-left: 3px solid #ffb600;
}

/* Widget common */
.sidebar .widget {
  margin-bottom: 40px;
}

.sidebar-left .widget {
  margin-right: 20px;
}

.sidebar-right .widget {
  margin-left: 20px;
}

.sidebar .widget.box {
  padding: 25px;
}

.widget.box.solid {
  background: #f2f2f2;
}

.widget.box.red {
  background: #ec483b;
  color: #fff;
}

.widget.box.red .widget-title {
  color: #fff;
}

.widget ul li {
  line-height: 30px;
}

.sidebar .widget ul li a {
  color: #303030;
}

.sidebar .widget ul li a:hover {
  color: #ffb600;
}

.sidebar .widget ul li i {
  margin-right: 5px;
}

.sidebar .btn {
  font-weight: 700;
  font-size: 12px;
  margin-top: 15px;
  padding: 10px 25px;
}

/* Sidebar nav */
.sidebar ul.nav-tabs {
  border: 0;
}

.sidebar ul.nav-tabs li {
  width: 100%;
}

.sidebar ul.nav-tabs li a {
  color: #303030;
  border-radius: 0;
  padding: 15px 0;
  padding-left: 0;
  font-weight: 400;
  border-bottom: 1px solid #ddd;
  display: block;
  transition: 400ms;
}

.sidebar ul.nav-tabs li.active a,
.sidebar ul.nav-tabs li:hover a {
  color: #ffb600;
}

.sidebar ul.nav-tabs li {
  color: #303030;
  line-height: normal;
}

.sidebar ul.nav-tabs li:last-child a {
  border-bottom: 0;
}

/* Service menu */
.sidebar ul.service-menu li {
  width: 100%;
}

.sidebar ul.service-menu li a {
  background-color: #f4f4f4;
  padding: 15px 20px;
  border: 0;
  margin-bottom: 8px;
  position: relative;
  transition: 400ms;
  display: block;
}

.sidebar ul.service-menu li.active a,
.sidebar ul.service-menu li:hover a {
  background: #ffb600;
  color: #fff;
  cursor: pointer;
}

/* Recent News */
.widget.recent-posts .widget-title {
  margin-bottom: 35px;
}

.widget.recent-posts ul li {
  border-bottom: 1px solid #dadada;
  padding-bottom: 15px;
  margin-bottom: 17px;
}

.widget.recent-posts ul li:last-child {
  border: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}

.widget.recent-posts .posts-thumb img {
  margin-right: 15px;
  width: 90px;
  height: 70px;
}

.widget.recent-posts .post-info .entry-title {
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  margin: 0;
}

.widget.recent-posts .post-info .entry-title a {
  color: #303030;
  display: inline-block;
}

.widget.recent-posts .post-info .entry-title a:hover {
  color: #ffb600;
}

.widget.recent-posts .post-date {
  font-weight: 400;
  color: #999;
  text-transform: capitalize;
}

/* Widget tags */
.widget-tags ul > li {
  float: left;
  margin: 3px;
}

.sidebar .widget-tags ul > li a {
  border: 1px solid #dadada;
  color: #303030;
  display: block;
  font-size: 14px;
  padding: 3px 15px;
  transition: all 0.3s ease 0s;
}

.sidebar .widget-tags ul > li a:hover {
  background: #ffb600;
  color: #fff;
  border: 1px solid transparent;
}

/* Error page
================================================== */
.error-page .error-code h2 {
  display: block;
  font-size: 200px;
  line-height: 200px;
  color: #303030;
  margin-bottom: 20px;
}

.error-page .error-body .btn {
  margin-top: 30px;
  font-weight: 700;
}

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


.slide-description {
  font-size: 1.2rem;
  color: #f0f0f0;
  margin-bottom: 20px;
  line-height: 1.5;
  text-shadow: 1px 1px 3px rgba(0,0,0,0.4);
}



.category-title {
    padding: 10px 15px;
    color: #fff;
    font-size: 1.2rem;
    margin-top: 20px;
    border-radius: 5px;
}

.category-blue {
    background-color: #2b5481;
}

/* 卡片列表容器 */
.panel-list {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 20px;
}

/* 單個卡片 */
.panel.card {
    border: 1px solid #ccc;
    padding: 15px;
    width: calc(32% - 15px);
    border-radius: 5px;
    transition: all 0.2s ease;
}

.panel.card a {
    text-decoration: none;
    color: #333;
    font-weight: bold;
    display: block;
}

/* hover 效果 */
.panel.card:hover {
    border-color: #007bff;
    background-color: #e6f0ff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.panel.card a:hover {
    color: #007bff;
}

.contact-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
}

.contact-card {
  display: flex;
  align-items: center;
  background: #252525;
  border-radius: 8px;
  padding: 15px 20px;
  flex: 0 0 45%; /* 每個卡片占 45% 寬度，兩個一行 */
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  transition: transform 0.2s, box-shadow 0.2s;
}

.contact-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}

/* 其他樣式保持不變 */
.contact-icon {
  font-size: 30px;
  color: #ffb600;
  margin-right: 15px;
  flex-shrink: 0;
}

.contact-info h4 {
  margin: 0;
  font-size: 1rem;
  color: #fff;
}

.contact-info p {
  color: #fff;
  margin: 3px 0 0;
  font-size: 0.95rem;
}

.contact-info a {
  color: #fff;
  text-decoration: none;
}

.contact-info a:hover {
  text-decoration: underline;
}


.swiper-slide img {
    width: 100%;
    max-width: 350px;
    display: block;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .contact-card {
        flex: 0 0 100%;
    }
}

@media (max-width: 767px) {
    .swiper-slide img {
        width: 90%;
        max-width: 90%;
    }
}
.hero-section {
    position: relative;
    width: 100%;
    aspect-ratio: 1900 / 800;
}

.hero-img {
    width: 100%;
    height: auto;
    display: block;
}
@media (max-width: 1320px) {
  .hero-section {
      margin-top: 97px;
  }
}
@media (max-width: 344px) {
  .hero-section {
      margin-top: 97px;
  }
}

/* --- 藍色半透明遮罩設定 --- */
.overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* 這裡使用一個非常淺的遮罩，模擬背景圖被輕微柔化的效果 */
    /*background-color: rgba(255, 255, 255, 0.1); */
    z-index: 1; 
}

/* --- 內容區塊設定 (左側的深藍色方塊) --- */
.content-box {
    position: relative; /* 確保內容區塊在遮罩之上 */
    z-index: 2;
    
    /* 讓內容區塊固定在左側，並與 Hero-section 垂直居中 */
    padding: 30px 40px; 
    
    /* 關鍵：設定深藍色背景，模擬圖片中的色塊 */
    background-color: rgba(14, 45, 102, 0.85); /* 深藍色，85% 不透明度 */
    
    /* 設定色塊寬度 */
    max-width: 400px; 
    /*min-width: 400px; */
    
    /* 讓文字在藍色方塊內居中 */
    text-align: center; 
    color: #FFFFFF;
    
    /* 調整位置，讓它從左邊緣往內縮一點點 */
    margin-left: 5%; 
    margin-right: 5%; 
    margin-top: 150px;
}

/* --- 主標題樣式 (穩固地基 築夢未來) --- */
.main-title {
    letter-spacing: 0.1em; /* 調整字體間距 */
    font-size: 57px;
    font-weight: 800; 
    margin: 0;
    line-height: 1.22; /* 57pt * 1.22 ≈ 70pt */
    color: #FFFFFF;
}

/* --- 副標題樣式 (專注每一樁 守護每一家) --- */
.subtitle {
    letter-spacing:  clamp(1px, 1.5vw, 10px);
    font-size: 1.2em;
    font-weight: 500;
    margin-top: 15px;
    margin-bottom: 25px;
    color: #FFFFFF;
}

/* --- 分隔線樣式 --- */
.separator {
    border: none;
    height: 1px;
    width: 90%; /* 線條寬度 */
    margin: 20px auto;
}

/* --- 結語文字樣式 (手寫體效果) --- */
.tagline {
    font-size: 1.2em;
    font-style: italic; /* 斜體模擬手寫感 */
    font-family: 'Noto Serif TC', serif; 
    font-weight: 400;
    line-height: 1.8;
    margin: 10px 0;
}


    .about-section {
    position: relative;
    width: 100%;
    padding-bottom: 50px;
}

/* --- 電腦版圖片橫幅 --- */
.image-banner.top-banner {
    display: flex;
    position: relative; /* 文字可以絕對定位 */
    max-width: 100%;
    margin: 0 auto;
    aspect-ratio: 1980 / 510;
    min-height: 510px;
}

.banner-item {
    flex: 0 0 40%; 
    /*height: 100%;*/
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.banner-item2 {
    flex: 0 0 20%; 
    /*height: 100%;*/
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* --- 文字疊加 --- */
.banner-text {
    position: absolute;
    top: 30%; 
    /*left: 50%;*/
    /*transform: translate(-50%, -50%);*/
    text-align: center;
    width: 100%;          /* 限制寬度，避免文字超出 */
    color: #fff;
    /*text-shadow: 1px 1px 4px rgba(0,0,0,0.6);*/
    box-sizing: border-box;
}

    .banner-text div{
            width: 100%;
    background-color: #FFF;
        padding: 15px clamp(1%, 15%, 15%);
    }

.banner-text2 {
    position: absolute;
    top: 195px; 
    /*left: 50%;*/
    /*transform: translate(-50%, -50%);*/
    text-align: center;
    width: 100%;          /* 限制寬度，避免文字超出 */
    color: #fff;
    /*text-shadow: 1px 1px 4px rgba(0,0,0,0.6);*/
    box-sizing: border-box;
    
  /*-webkit-transform: translateY(-50%);*/
          transform: translateY(50%);
}

    @media (min-width: 600px) and (max-width: 1099px) {
     .banner-text2 {
        transform:none;
    }
}

@media (max-width: 992px) {
   .banner-text2 {
    top: 230px; 
} 
}
/*.banner-text2 {*/
/*  position: absolute;*/
  /*top: 40%;*/
/*  left: 0;*/
/*  right: 0;*/
  /*max-width: 1170px;*/
/*  margin: 0 auto;*/
/*  width: 100%;*/
/*  z-index: 1;*/
/*}*/

.banner-text2 h2 {
    display: inline-block; /* 讓背景只包文字和 padding */
    color:  #005FA3;
    /*color: #FFF;*/
    font-size: clamp(24px, 3vw, 36px);
    font-weight: 700;
    padding: 15px; /* 文字周圍空間 */
    margin-bottom: 15px;
}



.banner-text2 p {
    
    /*display: inline-block;*/
    background-color: #FFF;
    color:  #005FA3;
    font-size: clamp(14px, 2.5vw, 18px);
    line-height: 1.6;
    padding: 15px 15%; /* 文字周圍空間 */
    word-break: break-word; /* 防止長文字超出 */
}

.banner-text h2 {
    display: inline-block; /* 讓背景只包文字和 padding */
    color:  #005FA3;
    /*color: #FFF;*/
    font-size: clamp(24px, 3vw, 36px);
    font-weight: 700;
    padding: 15px; /* 文字周圍空間 */
    margin-bottom: 15px;
}



.banner-text p {
    margin: 0;
    /*display: inline-block;*/
    background-color: #FFF;
    color:  #005FA3;
    font-size: clamp(14px, 2.5vw, 18px);
    /*line-height: 1.6;*/
    word-break: break-word; /* 防止長文字超出 */
}

/* --- 手機板 RWD --- */
/* 手機板 RWD */
@media (max-width: 768px) {
    .content-box {
        margin-left: auto;
        margin-right: auto;
    }
    .image-banner.top-banner {
        flex-direction: column;
        width: 100%;
        height: auto;
    }

    /* 只顯示第一張 */
    .banner-item {
        display: none;
    }

    /* 保持長寬比 660:510 */
    .banner-item2 {
        width: 100%;
        padding-top: calc(510 / 381 * 100%); /* 高度依比例 */
        position: relative;
        /*display:none;*/
    }
    /*.banner-item:nth-child(2) {*/
    /*    width: 100%;*/
        /*padding-top: calc(510 / 396 * 100%); */
    /*    position: relative;*/
    /*}*/

    /* 背景圖片覆蓋容器 */
    .banner-item:first-child::before {
        content: "";
        position: absolute;
        top: 0; left: 0; right: 0; bottom: 0;
        background-image: inherit; /* 繼承原本 background-image */
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
    }

    /* 文字置中 */
    .banner-text {
        position: absolute;
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        /*justify-content: center;*/
        align-items: center;
        text-align: center;
        padding: 0;
        box-sizing: border-box;
        top:0;
        -webkit-transform:none;
        transform: none;
    }
    .banner-text div{
    /*        width: 100%;*/
    /*background-color: #FFF;*/
        padding: 10px ;
    }
    
    
    .banner-textdiv{
            /*max-height: 80%;*/
    overflow: auto;
    }

    .banner-text h2 {
        font-size: clamp(18px, 5vw, 28px);
        display: inline-block;
        color:  #005FA3;
        font-weight: 700;
        padding: 0px;
        margin-top: 20px;
        margin-bottom: 10px;
        max-width: 90%;
        word-break: break-word;
    }

    .banner-text p {
        font-size: clamp(14px, 4vw, 16px);
        display: inline-block;
        background-color: #FFF;
        color:  #005FA3;
        line-height: 1.4;
        padding: 10px;
        max-height: 80%;   /* 避免文字超出 */
        /*overflow: auto;*/
        word-break: break-word;
        max-width: 90%;
        margin: 0;
    }

    /* 文字置中 */
    .banner-text2 {
        position: absolute;
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
        padding: 0 10px;
        box-sizing: border-box;
        top:44px;
        transform:none;
        /*-webkit-transform:none;*/
        
          /*transform: translateY(5%);*/
    }

.award-section .main-title , .main-title {
        font-size: 2.25rem !important;
}
    .banner-text2 h2 {
        font-size: clamp(18px, 5vw, 28px);
        display: inline-block;
        color:  #005FA3;
        font-weight: 700;
        padding: 10px;
        margin-top: 20px;
        /*margin-bottom: 10px;*/
        max-width: 90%;
        word-break: break-word;
    }

    .banner-text2 p {
        font-size: clamp(14px, 4vw, 16px);
        display: inline-block;
        background-color: #FFF;
        color:  #005FA3;
        line-height: 1.4;
        padding: 10px;
        max-height: 80%;   /* 避免文字超出 */
        /*overflow: auto;*/
        word-break: break-word;
        max-width: 90%;
    }
}


   .projects-section {
        max-width: 1800px;
        margin-bottom: 0;
        padding-bottom: 60px;
        background-color: #fff;
        box-sizing: border-box;
        position: relative;
        margin-left: auto;
    margin-right: auto;
    padding-top: 20px;
    }

.projects-sub-title {
  display: flex;
  align-items: flex-end;
    margin: 30px auto;
    padding: 0 20px;
        max-width: 1540px;
}

.projects-sub-title h2 {
  font-family: 'Source Han Sans', 'Noto Sans TC', sans-serif;
  font-weight: 900;
  color: #005FA3;
  font-size: 42px;
  margin: 0;
  margin-right: 15px;
  white-space: nowrap;
  line-height: 1; /* 避免文字內部空間造成高低差 */
  position: relative;
  top: 2px; /* 🔧微調，讓中文字稍微上升一點 */
}

.sub-title-wrap {
  flex-grow: 1;
  display: flex;
  align-items: center;
  border-top: 3px solid #005FA3;
  position: relative;
  top: 5px; /* 🔧微調，讓英文和底線整體往下靠 */
}

.sub-title {
    padding-top: 10px;
  font-size: 22px;
  color: #005FA3;
  font-weight: 900;
  margin-right: 10px;
  white-space: nowrap;
  line-height: 1;
  position: relative;
  top: 1px; /* 可微調對齊效果 */
}




/* --- 1. 工程卡片容器 (Projects Grid) --- */
.projects-grid {
    display: flex;
    flex-wrap: wrap; /* 允許卡片換行 */
    gap: 20px;
    justify-content: center; /* 讓卡片在行內居中 */
    /* 設置一個最大寬度，避免在超寬螢幕上無限延伸 */
    max-width: 1540px; /* 粗估 4 個卡片寬度 + 3 個間距 */
    margin: 0 auto; /* 容器居中 */
    padding: 20px;
}
@media (min-width: 600px) and (max-width: 1099px) {
    .projects-section{
    padding: 20px;
    }
}

/* --- 2. 單個卡片 (Project Card) --- */
.project-card {
    /* 移除固定的 width: 365px;，改用 calc() 實現 RWD */
    /* width: 365px; */ 
    
    /* 這裡的高度由內部 .image 和 .text 撐開，保持 flex-direction: column */
    background-color: #E5E5E5;
    display: flex;
    flex-direction: column;
    border-radius: 4px;
    overflow: hidden;
    box-sizing: border-box;
    position: relative;
}

/* --- 3. 卡片圖片區域 (保持 365x269 比例的關鍵) --- */
.project-card .image {
    width: 100%;
    background-color: #E5E5E5;
    position: relative;
    aspect-ratio: 365 / 269;
}

/* --- 4. RWD 媒體查詢 (實現 4/2/1 排列的核心) --- */

/* 手機版 (一行一個) - 寬度小於 600px */
@media (max-width: 599px) {
    .footer-main{
        padding-left: 5px;
        
    }


    .project-card {
        /* 手機版卡片佔滿容器，左右留白 */
        width: 100%; 
        max-width: 365px; /* 限制最大寬度，避免手機卡片太寬 */
    }
}

/* 平板版 (一行兩個) - 寬度在 600px 到 1099px 之間 */
@media (max-width: 1337px) {
    


.mail-details-row {
  display: flex;
  align-items: flex-start; /* 讓 multi-line 時對齊上方 */
  gap: 8px; /* MAIL 與左側 email 的間距，可調 */
}

.details-row .label {
  white-space: nowrap; /* 確保 MAIL 不會拆開 */
}

.details-row .value {
  display: inline-block;
}

.contact-info2 .label {
    font-size: 19px;
    border: 2px solid;
    padding: 3px 5px;
    margin-right: 5px;
    line-height: 20px;/* 垂直置中 */
    display: inline-block; /* 保持 inline 元素可設定高度 */
    text-align: center; /* 水平置中 */
}
    
}
@media (max-width: 400px) {
    .details-row {
  display: flex;
  align-items: flex-start; /* 讓 multi-line 時對齊上方 */
  gap: 8px; /* MAIL 與左側 email 的間距，可調 */
}
}
@media (min-width: 1337px) {
.mail-details-row{
  display: inline-block;
  /*white-space: nowrap;*/
  margin-right: 15px;
}

    
}
@media (min-width: 600px) and (max-width: 1099px) {
    .project-card {
        /* 計算：兩個卡片 + 1個間距。 (100% - 20px) / 2 */
        width: calc(50% - 10px); 
    }
}

/* 電腦版 (一行四個) - 寬度大於等於 1100px */
@media (min-width: 1100px) {
    .project-card {
        /* 計算：四個卡片 + 3個間距。 (100% - 3*20px) / 4 */
        width: calc(25% - 15px); 
    }
}

/* --- 其他內部樣式 (保持不變) --- */

/* 卡片類別標籤 */
.project-card .tag {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    background-color: rgba(0,0,0,0.7);
    color: #fff;
    font-size: 17px;
    padding: 4px 12px;
    border-radius: 12px;
    z-index: 10; /* 確保標籤在圖片上方 */
}
  
/* 卡片文字區域 */
.project-card .text {
    height: 77px;
    background-color: rgba(0,0,0,0.7);
    color: #fff;
    padding: 10px;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.4;
    box-sizing: border-box;
    position: absolute;
        bottom: 0;
    left: 0;
    right: 0;
}

/* More 按鈕 (保持不變) */
.projects-section .more-btn {
    display: block;
    width: max-content;
    background-color: #7FB7B7;
    color: #fff;
    font-weight: bold;
    padding: 10px 20px;
    border-radius: 6px;
    text-decoration: none;
    margin: 20px auto 0;
}

    
        .footer-divider {
    position: relative;
    height: 25px; /* 調整高度 */
    margin-bottom: -26px;
}

.footer-divider::before,
.footer-divider::after {
    content: "";
    position: absolute;
    top: -25px;
    width: 35%;
    height: 100%;
    background-color: #7F9BB7; /* 淺綠 */
}

.footer-divider::before {
    left: 0;
    clip-path: polygon(0% 0%, 100% 0%, 92% 100%, 0% 100%);
        background-color: #7FB7B7;
}

.footer-divider::after {
    right: 0;
    clip-path: polygon(6% 0%, /* 左上凸出 */ 100% 0%, /* 右上不變 */ 100% 100%, /* 右下不變 */ 0% 100% /* 左下不變 */);
        background-color: #7FB7B7;
}

.footer-divider span {
    
    
    position: relative;
        width: 31%;
            right: 1%;
            top:-12px;
    
    display: block;
    margin: 0 auto;
    background-color: #005FA3; /* 深藍 */
    
    height: 100%;
clip-path: polygon(
    8% 0%,   /* 左上凸出 */
    100% 0%,   /* 右上不變 */
    94% 100%, /* 右下不變 */
    0% 100%    /* 左下不變 */
)
}

.header-one ul.navbar-nav > li.active {
    background-color: #88BDBC; /* 例如深藍 */
    color: #fff;               /* 文字顏色 */
}
.header-one ul.navbar-nav > li.active .nav-link {
    color:#fff !important
}

.award-section {
    width: 100%;
    background-color: #f7f7f7; 
    padding: 100px 0; /* 留出上下空間 */
    text-align: center; /* 讓內容居中 */
}

.award-title-box {
    max-width: 800px; 
    margin: 0 auto;
    position: relative; /* 為線條和箭頭的絕對定位提供參考 */
    padding-top: 50px; /* 為上方的分割線留空間 */
}
.award-title-box::before {
    content: '';
    display: block;
    width: 100%;
    border-top: 1px solid #2D2D2D; /* 線條顏色和粗細 1pt */
    padding-bottom: 5px;
}
.award-section .main-title {
    font-family: 'GenJyuuGothic-Heavy', 'Noto Sans TC', sans-serif; /* 假設使用 'GenJyuuGothic-Heavy' 或類似的粗體 */
    font-size: 57px;
    color: #2D2D2D;
    line-height: 1.22; /* 57pt * 1.22 ≈ 70pt */
    margin: 0; /* 移除瀏覽器預設的 margin */
    letter-spacing: 0.1em; /* 調整字體間距 */
}

.award-section .subtitle-top {
    font-family: 'GenJyuuGothic-Regular', 'Noto Sans TC', sans-serif; /* 假設使用 regular 字體 */
    font-size: 22px;
    color: #2D2D2D;
    font-weight: normal;
    /* 利用 margin-top/bottom 實現與上下元素的 100pt 間距 */
    margin-top: 0;
    margin-bottom: 50px; /* 50px 是約 100pt 的一半，配合上下的留白 */
    margin-right: 10px;
    text-align: right;
}
.award-section .subtitle-don {
    font-family: 'GenJyuuGothic-Regular', 'Noto Sans TC', sans-serif; /* 假設使用 regular 字體 */
    font-size: 22px;
    color: #2D2D2D;
    font-weight: normal;
    /* 利用 margin-top/bottom 實現與上下元素的 100pt 間距 */
    margin-top: 5px;
    margin-bottom: -26px;
    /*margin-right: 10px;*/
    /*text-align: right;*/
}

.award-section .v-shape-divider {
    position: relative;
    width: 20px;
    height: 20px;
    transform: rotate(45deg); 
    border-right: 1px solid #202D2D; 
    border-bottom: 1px solid #202D2D;
    margin: 50px auto 0;

}


.award-section2 {
    width: 100%;
    padding: 150px 0 450px;
    text-align: center;
    position: relative;
    background-size: cover;
    /* 斜切效果 */
    clip-path: polygon(0 0, 100% 0%, 100% 50%, 0 90%);
}

.award-section2 .award-title-box {
     padding-top: 0px; 
}


.award-section2 .main-title {
    font-family: 'GenJyuuGothic-Heavy', 'Noto Sans TC', sans-serif;
    font-size: 57px;
    color: #2D2D2D;
    line-height: 1.22; /* 57pt * 1.22 ≈ 70pt */
    margin: 0; /* 移除瀏覽器預設的 margin */
    letter-spacing: 0.1em; /* 調整字體間距 */
}

.award-section2 .subtitle-top {
    font-family: 'GenJyuuGothic-Regular', 'Noto Sans TC', sans-serif; /* 假設使用 regular 字體 */
    font-size: 22px;
    color: #2D2D2D;
    font-weight: normal;
    /* 利用 margin-top/bottom 實現與上下元素的 100pt 間距 */
    margin-top: 0;
    margin-bottom: 60px; /* 50px 是約 100pt 的一半，配合上下的留白 */
    margin-right: 10px;
    text-align: right;
}
.award-section2 .subtitle-don {
    font-family: 'GenJyuuGothic-Regular', 'Noto Sans TC', sans-serif; /* 假設使用 regular 字體 */
    font-size: 22px;
    color: #2D2D2D;
    font-weight: normal;
    /* 利用 margin-top/bottom 實現與上下元素的 100pt 間距 */
    margin-top: 5px;
    margin-bottom: -26px;
    /*margin-right: 10px;*/
    /*text-align: right;*/
}

.award-section2 .v-shape-divider {
    position: relative;
    width: 20px;
    height: 20px;
    transform: rotate(45deg); 
    border-right: 1px solid #202D2D; 
    border-bottom: 1px solid #202D2D;
    margin: 50px auto 0;

}



.col-lg-3.footer-widget:has(.widget-title) {
    position: relative;
    /* 備註：此處沒有設置 display: flex 或 grid，保留了原本的塊級佈局 */
}

/* 2. 創建電話圖標 (::before 偽元素) */
/*.col-lg-3.footer-widget:has(.widget-title)::before {*/
    /* Font Awesome: 電話圖標 */
/*    content: "\f095"; */
/*    font-family: "Font Awesome 6 Free";*/
/*    font-weight: 900;*/
    
/*    position: absolute;*/
    /* 定位：距離父容器頂部和右側的距離 */
/*    top: 50px; */
/*    right: 20px; */
/*    z-index: 10;*/
    
    /* 圓圈樣式 */
/*    width: 50px;*/
/*    height: 50px;*/
/*    border: 2px solid #555;*/
/*    border-radius: 50%;*/
    display: flex; /* 用於居中圖標 */
/*    justify-content: center;*/
/*    align-items: center;*/
/*    font-size: 20px;*/
/*    color: #555;*/
/*    line-height: 1;*/
/*    cursor: pointer;*/
/*}*/

/* 3. 創建房子圖標 (::after 偽元素) */
/*.col-lg-3.footer-widget:has(.widget-title)::after {*/
    /* Font Awesome: 房子圖標 */
/*    content: "\f015"; */
/*    font-family: "Font Awesome 6 Free";*/
/*    font-weight: 900;*/
    
/*    position: absolute;*/
    /* 定位：距離父容器頂部 (在電話下方) 和右側的距離 */
    top: 115px; /* 50px (電話圖標高) + 50px (電話圖標 top) + 15px (間距) = 115px */
/*    right: 20px; */
/*    z-index: 10;*/
    
    /* 圓圈樣式 */
/*    width: 50px;*/
/*    height: 50px;*/
/*    border: 2px solid #555;*/
/*    border-radius: 50%;*/
    display: flex; /* 用於居中圖標 */
/*    justify-content: center;*/
/*    align-items: center;*/
/*    font-size: 20px;*/
/*    color: #555;*/
/*    line-height: 1;*/
/*    cursor: pointer;*/
/*}*/

/* ------------------------------------------------ */
/* RWD 處理：在手機螢幕上（< 768px）圖標的重新定位 */
/* ------------------------------------------------ */

@media (max-width: 767px) {
    /* 為了確保圖標不會被內容遮擋，我們增加父容器底部的 padding */
    .col-lg-3.footer-widget:has(.widget-title) {
        padding-bottom: 80px; /* 增加底部空間，避免圖標與下方內容重疊 */
    }
    
    /* 調整電話圖標位置：水平排列在下方 */
    .col-lg-3.footer-widget:has(.widget-title)::before {
        top: auto; /* 取消絕對頂部定位 */
        bottom: 20px; /* 移到父容器底部上方 20px */
        right: 45%; /* 水平定位點設為 50% */
        transform: translateX(-40px); /* 向左微調 40px (用於並排) */
    }

    /* 調整房子圖標位置：水平排列在下方 */
    .col-lg-3.footer-widget:has(.widget-title)::after {
        top: auto; /* 取消絕對頂部定位 */
        bottom: 20px; /* 移到父容器底部上方 20px */
        right: 45%; /* 水平定位點設為 50% */
        transform: translateX(40px); /* 向右微調 40px (用於並排) */
    }
}
.award-section2 .subtitle-top{
    margin-bottom: 40px;
}


.awards-section {
    max-width: 1400px;
    margin: 30px auto;
    /* 調整 padding，讓跳色區域不會緊貼邊緣 */
    padding: 0 10px; 
    margin-bottom: 60px;
}

/* --- Section Title (其他殊榮) - New Angled Design --- */
.section-title-wrapper {
    margin-bottom: 25px;
    position: relative;
}

.section-title-bar {
    /* Main blue bar style */
    background-color: #005fa3;
    color: white;
    font-size: 28px;
    font-weight: bold;
    padding: 10px 30px 10px 20px;
    margin: 0;
    display: inline-block;
    position: relative;
    z-index: 1;
}
.section-title-bar::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 7px;
    height: 28px;
    background-color: #88BDBC;
    z-index: 3;
    margin: 14px 5px;
}
/* CSS Triangle for the angled end of the bar */
.section-title-bar::after {
    content: '';
    position: absolute;
    top: 0;
    right: -20px;
    width: 0;
    height: 100%;
    /* 調整 top/bottom border 數值以匹配 padding-top/bottom */
    border-top: 28px solid transparent; 
    border-bottom: 28px solid transparent;
    border-left: 20px solid #005fa3;
    z-index: 2;
}

.award-item {
    display: flex;
    /* 增加左右 padding: 10px 讓跳色區域有邊距 */
    padding: 30px 30px; 
    align-items: flex-start;
    gap: 30px;
    border-bottom: 2px dashed #ccc;
    /* 加入過渡效果，讓跳色和懸停效果更平滑 */
    transition: background-color 0.3s ease;
}

/* 移除最後一個項目的底部分隔線 */
.awards-section .award-item:last-child {
    border-bottom: none;
}

/* ==== 跳色效果核心 CSS 語法 ==== */

/* 奇數行背景色 (1, 3, 5...) - 設定為透明或白色 */
.awards-section .award-item:nth-child(2n+1) .award-year,
.awards-section .award-item:nth-child(2n+1) .award-honor {
   color: #7FB7B7; /* 極淺灰色 */
}

/* 偶數行背景色 (2, 4, 6...) - 設定為淺灰色 */
.awards-section .award-item:nth-child(2n)  .award-year, 
.awards-section .award-item:nth-child(2n) .award-honor  {
    color: #005fa3;
}

/* [可選] 滑鼠懸停效果 (Hover Effect) */
.award-item:hover {
    background-color: #f0f0f0; /* 懸停時略深的灰色 */
}

/* --- Year/Label Styling --- */
.award-year-container {
    flex-shrink: 0;
    width: 60px;
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.award-year-label {
    font-size: 16px;
    color: #6a6a6a; /* 灰色 */
    line-height: 1;
    margin-bottom: 5px;
}

.award-year {
    font-size: 38px;
    font-weight: bold;
    line-height: 1;
    color: #0056bc; /* 預設深藍色 */
}

/* --- Details Styling --- */
.award-details {
    flex-grow: 1;
    /*padding-top: 10px;*/
}

.award-project {
    font-size: 20px;
    font-weight: normal;
    color: #333; /* 深色文字 */
    margin: 0 0 5px 0;
}

.award-honor {
    font-size: 20px;
    font-weight: normal;
    margin: 0;
}

/* --- RWD Media Query for Mobile --- */
@media (max-width: 600px) {
    
    .award-item {
        /* 在手機上垂直堆疊 */
        flex-direction: column;
        gap: 5px;
        /* 在手機上保持左右 padding */
        padding: 15px 10px; 
    }

    .award-year-container {
        /* 年份和標籤在手機上排成一行 */
        width: 100%;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 10px;
        margin-bottom: 5px;
    }
    
    .award-year-label {
        font-size: 14px;
        order: 2;
        margin-bottom: 0;
    }

    .award-year {
        font-size: 28px;
        order: 1;
    }
    
    .award-details {
        padding-top: 0;
    }

    .award-project {
        font-size: 16px;
    }
    
    .award-honor {
        font-size: 14px;
    }
}

    /* ------------------------------------------------ */
/* --- 工法介紹網格樣式 (Matching image_e39498.png) --- */
/* ------------------------------------------------ */

/* 確保行間距符合 RWD */
.method-grid {
    margin-bottom: 20px;
}

/* 網格方塊（按鈕）的通用樣式 */
/* 網格方塊（按鈕）的通用樣式 */
.method-tile {
    background-color: #e8e8e8;
    border: 1px solid #c9c9c9;
    padding: 10px 15px;
    height: 100%;
    font-size: 18px;
    text-decoration: none; 
    color: #333; 
    border-radius: 4px;
    transition: all 0.2s ease;
    
    /* 啟用 Flex 佈局 */
    display: flex;
    /* 讓內容 (method-name) 居中 */
    justify-content: center;
    align-items: center;
    
    /* 設置相對定位，用於絕對定位箭頭 */
    position: relative; 
}

/* 箭頭容器：使用絕對定位固定在右側 */
.method-arrow {
    position: absolute;
    right: 15px; /* 距離右側的 padding-right */
    top: 50%;
    transform: translateY(-50%);
    
    display: flex;
    align-items: center;
    gap: 10px;
}

/* 突出顯示的方塊樣式 (PC植入樁施工 - 淺綠色) */
.method-tile.highlight-tile {
    /* 匹配圖片中第一個方塊的顏色 */
    background-color: #4E8360; /* 淺綠/青色 */
    color: white; /* 文字顏色變為白色 */
    border-color: #79a19c;
}

/* 懸停效果 (Hover Effect) */
.method-tile:hover {
    background-color: #d8d8d8;
    border-color: #999;
    color: #333;
}
.method-tile.highlight-tile:hover {
    background-color: #81a8a2;
}




/* 箭頭本身：使用 Font Awesome 或 Unicode 符號 */
.method-arrow::before {
    /* 使用 Font Awesome 箭頭 (例如：\f061) */
    content: "\f061"; 
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 16px;
    
    /* 預設箭頭顏色：灰色 */
    color: #b0b0b0;
}

/* 突出顯示方塊中的箭頭顏色 (如果需要不同顏色) */
.method-tile.highlight-tile .method-arrow::before {
    color: white; 
}


/* 豎線 | 樣式 */
.method-arrow .arrow-line {
    font-size: 18px;
    color: #b0b0b0; /* 預設豎線顏色：灰色 */
}

/* 突出顯示方塊中的豎線顏色 */
.method-tile.highlight-tile .method-arrow .arrow-line {
    color: white;
}
/* ------------------------------------------------ */
/* --- 列表項目 RWD 核心與分隔線 (新 CLASS 名稱) --- */
/* ------------------------------------------------ */

.method-award-list {
    margin: 20px auto;
    padding: 0 10px; 
}

.method-award-item {
    /* RWD 佈局：並排顯示 */
    display: flex;
    /*padding: 20px 10px; */
    align-items: flex-start;
    gap: 30px;
    
    /* 虛線分隔線 */
    padding: 30px 30px; 
    border-bottom: 2px dashed #ccc;
}

/* 移除最後一個項目的底部分隔線 */
.method-award-list .method-award-item:last-child {
    border-bottom: none;
}

/* ---------------------------------- */
/* ==== 跳色背景和文字顏色核心 (新 CLASS 名稱) ==== */
/* ---------------------------------- */


/* --- 標題 (Title) 樣式 --- */
.method-award-title-wrap {
    flex-shrink: 0;
    width: 25%; /* 標題佔用 25% 寬度 */
    max-width: 250px;
    padding-right: 15px; 
}

.method-award-title {
    margin: 0;
    font-size: 25px;
    font-weight: bold;
    line-height: 1.4;
}

/* --- 內容 (Description) 樣式 --- */
.method-award-desc {
    flex-grow: 1; /* 佔據剩餘所有空間 */
    font-size: 16px;
    color: #444;
}

.method-award-desc p {
    margin: 0;
}

/* ------------------------------------------------ */
/* --- RWD 調整 (行動裝置 - 新 CLASS 名稱) --- */
/* ------------------------------------------------ */
@media (max-width: 767px) {
    .method-award-item {
        /* 在手機上改為垂直堆疊 */
        flex-direction: column;
        gap: 5px;
        padding: 15px 10px;
    }

    .method-award-title-wrap {
        width: 100%; 
        max-width: 100%;
        padding-right: 0;
        margin-bottom: 5px;
    }
    
    .method-award-title {
        font-size: 20px;
    }
}

.projects-section-title{
    display: inline-block;
    color: #3A8856;
    font-size:  2.25rem; 
    font-weight: 900; 
    padding-bottom: 15px;
    border-bottom: 5px solid #3A8856; 
    letter-spacing: 10px;
    padding-left: 10px;
}
.projects-section-title2{
    display: inline-block;
    color: #005FA3;
    font-size:  2.25rem; 
    font-weight: 900; 
    padding-bottom: 15px;
    border-bottom: 5px solid #005FA3; 
    letter-spacing: 10px;
    padding-left: 10px;
}


.contact-section {
  /*padding: 60px 0;*/
  background: #fff;
  font-family: "Noto Sans TC", "微軟正黑體", sans-serif;
  color: #2D2D2D;
}

.contact-grid {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.contact-row {
  display: grid;
  gap: 20px;
}

/* 🔹 上排：圖片 + 文字 + 圖片 */
.contact-row.top {
  /*grid-template-columns: 14.6% 39% 46.4%;*/
  /*align-items: start;*/
    grid-template-columns: 
    calc(14.6% - 5.84px) 
    calc(39% - 15.6px) 
    calc(46.4% - 18.56px);
}

/* 🔹 下排：兩張圖 */
.contact-row.bottom {
  grid-template-columns: 
    calc(64.6% - 12.92px)   /* 64.6% / 100% * 20px ≈ 12.92px */
    calc(35.4% - 7.08px);
}

/* ===== 圖片設定 ===== */
.contact-item {
  position: relative;
  width: 100%;
  overflow: hidden;
  /*border-radius: 12px;*/
  /*box-shadow: 0 4px 10px rgba(0,0,0,0.1);*/
}

.contact-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ===== 圖片比例 ===== */
.ratio-061 { aspect-ratio: 0.61 / 1; } 
.ratio-194 { aspect-ratio: 1.94 / 1; } 
.ratio-287 { aspect-ratio: 2.87 / 1; } 
.ratio-104 { aspect-ratio: 1.04 / 1; }

/* ===== 文字區塊 ===== */
.contact-text-block {
  padding: 10px;
  display: flex;
  align-items: top;
  justify-content: top;
}

/* 🔹 RWD 響應式 */
@media (max-width: 992px) {
  .ratio-061 { aspect-ratio: 0.61 / 1; } 
  .ratio-194 { aspect-ratio: 1.94 / 1; } 

  .contact-row.top,
  .contact-row.bottom {
    grid-template-columns: 1fr;
    height: auto;
  }

  .contact-text-block {
    order: 2;
  }
}




/* 整個頁面容器 */
.map-page-wrapper {
    width: 100%;
}

/* 頂部標題/導航區塊 (黑/灰色) */
.map-header {
    display: flex;
    align-items: flex-end;
    /* 根據原圖的比例，給一個固定的高度 */
    height: 50px; 
}

.map-header-icon {
    /* 左側的深色區塊 */
    width: 30%; /* 粗估比例 */
    max-width: 400px;
    background-color: #333333; /* 深灰色 */
    display: flex;
    align-items: center;
    padding-left: 15px;
    height: 100%;
    border: 2px solid #111;
}

/* 左上角的小灰色方塊 */
.map-header-icon::before {
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    background-color: #cccccc; /* 淺灰色 */
}

.map-header-tab {
    /* 右側的淺色區塊 */
    flex-grow: 1; /* 佔據剩餘空間 */
    background-color: #cccccc; /* 淺灰色 */
    border: 2px solid #111;
    border-left: 0;
    height: 50%;
}


/* === 地圖容器 (關鍵的邊框和粉紫色背景) === */

.map-container {
    border: 2px solid #111;
    border-top: 0;
    padding: 20px; /* 模擬地圖區塊與視窗之間的間距 */
}

.map-content {
    border: 1px solid #cccccc; 
    /* 這裡的背景色可以移除，因為 iframe 會覆蓋它，但保留它作為備用 */
    background-color: #fce8f8; 

    /* 響應式高度處理：保持地圖的長寬比 */
    padding-bottom: 51.17%; 
    
    position: relative; /* 關鍵：讓內部的 iframe 能夠絕對定位 */
    width: 100%;

    /* 確保地圖內容不會溢出 */
    overflow: hidden; 
}
iframe.map {
    position: absolute; /* 絕對定位，這樣它才能忽略 padding-bottom 的影響 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* 確保邊框為 0，如果 HTML 中未設置 */
    border: none; 
}


/* 媒體查詢 (可選): 針對超大螢幕或特定排版調整間距 */
@media (min-width: 1200px) {
    .map-container {
        padding: 40px;
    }
}
  
	    /* --- 整體容器樣式 (只保留基本設置，移除背景和 Padding) --- */
.slogan-container {
    text-align: center; /* 保持文字居中 */
    /* 移除背景顏色、圖片和填充 */
}

/* --- 文字共同樣式 --- */
.slogan-line {
    font-family: "Noto Sans TC", "Microsoft JhengHei", sans-serif; /* 選擇一個粗體中文字體 */
    font-weight: 900; /* 超粗體 */
    margin: 10px 0;
    line-height: 1.2;
    font-size: clamp(30px, 8vw, 60px); /* 響應式字體大小 */
    display: block; /* 確保佔據一行 */
    letter-spacing: clamp(1px, 1.5vw, 20px);
}
/* --- 文字共同樣式 --- */
.slogan-line2 {
    font-family: "Noto Sans TC", "Microsoft JhengHei", sans-serif; /* 選擇一個粗體中文字體 */
    font-weight: 900; /* 超粗體 */
    margin: 10px 0;
    line-height: 1.2;
    font-size: clamp(30px, 8vw, 60px); /* 響應式字體大小 */
    display: block; /* 確保佔據一行 */
    letter-spacing: clamp(1px, 1.5vw, 10px);
}

/* --- 第一行文字樣式：壹砂壹石築基業 --- */
.top-line span {
    display: inline-block;
    color: #005FA3; /* 主體深藍色 */
    
    /* 複雜的文字陰影模擬圖片效果 */
    text-shadow: 
        0 0 5px rgba(255, 255, 255, 0.8), 0 0 10px rgb(135 206 250 / 65%), 2px 2px 0 #c9eff5, 4px 4px 0 rgb(224 241 245 / 80%), 6px 6px 4px rgba(0, 0, 0, 0.3)
}  
/* ================================================= */
/* 核心佈局與定位 */
/* ================================================= */
.achievements-project-showcase::before {
    content: "";
    position: absolute;
    /* 這裡使用一個稍微不同的顏色，例如 #EFEFEF */
    background-color: #EFEFEF; 
    top: 0;
    bottom: 0;
    left: 0;
    /* 這裡設定的寬度應大於文字區塊在最大寬度下的位置，並向左延伸 */
    /* 假設文字區塊 flex: 40%，所以從 left: 60% 開始向左延伸 */
    width: 100%; /* 覆蓋左側圖片區域 (60%) 加上一些重疊 */
    z-index: 0; /* 確保在圖片和文字內容之下 */
    height: 50%;
}

/* 右側圖片區塊的後景延伸 (覆蓋圖片區塊右邊，但位置在左邊) */
.achievements-project-showcase::after {
    content: "";
    position: absolute;
    background-color: #EFEFEF;
    top: 0;
    bottom: 0;
    /* 這裡設定從右側開始延伸 */
    right: 0;
    /* 這裡設定的寬度應大於文字區塊在最大寬度下的位置，並向右延伸 */
    width: 100%; /* 覆蓋右側文字區域 (40%) 加上一些重疊 */
    z-index: 0; /* 確保在圖片和文字內容之下 */
    height: 50%;
}

.achievements-project-showcase {
    /* 電腦版：左右兩欄佈局 */
    display: flex;
    max-width: 100%; 
    /*margin: 50px auto; */
    padding: 0 20px;
    background-color: #F8F8F8; 
    position: relative;
    overflow: hidden; /* 確保偽元素不會影響主體內容的滾動條 */
    min-height: 600px; /* 確保有足夠高度容納圖片與重疊 */
}

.achievements-image-area {
    /* 圖片區域佔據左側約 60% 空間 */
    flex: 0 0 60%;
    position: relative;
    z-index: 2; 
    /* 留出空間給圖片向左延伸（視覺錯位） */
    padding: 50px; 
}

.achievements-text-content {
    /* 文字內容佔據右側約 40% 空間 */
    flex: 0 0 40%;
    /* 調整定位使其與圖片錯開 */
    margin: auto 0;
    z-index: 3; /* 文字層級最高 */
    position: relative; /* 確保 Z-index 生效 */
}

/* ================================================= */
/* 圖片 RWD 高度限制 (核心修正) */
/* ================================================= */

.achievements-main-image-container {
    /* 設置 RWD 比例: 假設我們希望圖片大致是 4:3 或 16:9，這裡使用 16:9 比例 */
    /* 1. 現代瀏覽器方案 (推薦) */
    aspect-ratio: 16 / 9; 
    position: relative;
    overflow: hidden; /* 確保裁切邊緣不外溢 */
    /* 2. 舊瀏覽器備用方案 (如果您需要兼容舊版，請加上這兩行) */
    /* height: 0; */
    /* padding-top: 56.25%; /* 16:9 比例 */ */
}

/* 確保圖片填滿容器且保持比例 */
.achievements-main-image-container img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute; /* 確保圖片能完全填滿 aspect-ratio 容器 */
    top: 0;
    left: 0;
}


/* ================================================= */
/* 圖片裁切與邊框 */
/* ================================================= */

.achievements-main-image {
    /* 移除固定高度，讓它填滿 RWD 容器 */
    /* height: 550px; <--- 已移除 */
    position: relative; 
    /* 圖片裁切：實現梯形/錯位邊緣效果 */
    clip-path: polygon(15% 0%, 100% 0, 85% 50%, 100% 50%, 85% 100%, 0 100%, 15% 50%, 0 50%);
} 

/* ================================================= */
/* 文字內容樣式 (精準還原字體與間距) */
/* ================================================= */

.achievements-project-title {
    /* 源泉黑體 regular, 32pt (約 32px) */
    font-family: 'Noto Sans TC', 'sans-serif'; /* 請替換為您網頁使用的字體 */
    font-size: 32px;
    color: #2D2D2D;
    line-height: 1.5; 
    margin-bottom: 70px;
    font-weight: normal;
    text-align: left;
    /* 假設 間距 12pt (約 0.375rem / 6px) */
    letter-spacing: 0.05em; 
}

.achievements-award-item {
    /* 源泉黑體 regular, 26pt (約 26px) */
    font-family: 'Noto Sans TC', 'sans-serif'; /* 請替換為您網頁使用的字體 */
    font-size: 26px;
    color: #C0272D;
    line-height: 1.8; 
    margin-bottom: 25px;
    font-weight: normal;
    text-align: left;
    position: relative;
    padding-left: 25px; /* 為標記留空間 */
}

/* 點標記樣式 (L 形矩形) */
.achievements-dot {
    position: absolute;
    left: 0;
    top: 10px; /* 稍微調整 top 值 */
    width: 12px; /* 較寬的方塊寬度 */
    height: 12px; /* 較寬的方塊高度 */
    border-radius: 0;
    background-color: #FF8C42;
    content: ""; /* 偽元素必須有 content 屬性 */
}

/* 第二個方塊 */
.achievements-dot::after {
    content: "";
    position: absolute;
    top: 15px; /* 相對於 .achievements-dot 定位，向下移動 */
    left: 0;
    width: 6px; /* 較窄的方塊寬度 */
    height: 6px; /* 較窄的方塊高度 */
    background-color: #FF8C42;
    border-radius: 0;
}

.achievements-dot2 {
    position: absolute;
    left: 60px;
    width: 12px; /* 較寬的方塊寬度 */
    height: 12px; /* 較寬的方塊高度 */
    border-radius: 0;
    background-color: #3A8856;
    content: ""; /* 偽元素必須有 content 屬性 */
}

/* 第二個方塊 */
.achievements-dot2::after {
    content: "";
    position: absolute;
    top: 15px;
    left: 0;
    width: 6px; /* 較窄的方塊寬度 */
    height: 6px; /* 較窄的方塊高度 */
    background-color: #3A8856;
    border-radius: 0;
}


/* ================================================= */
/* 響應式優化 (手機與小螢幕) */
/* ================================================= */
@media (min-width: 768px) and (max-width: 1200px) {
    .achievements-project-showcase {
        min-height: auto;
    }
    
    /* 平板: 調整比例為 55/45 或 50/50，這裡用 55/45 */
    .achievements-image-area {
        flex: 0 0 55%;
        padding: 20px; /* 減小內邊距 */
    }
    
    .achievements-text-content {
        flex: 0 0 45%;
        padding-left: 20px;
        padding-top: 30px; /* 減小上邊距 */
    }

    /* 平板: 圖片裁切移除，讓圖片呈現完整矩形 */
    .achievements-main-image {
        clip-path: polygon(15% 0%, 100% 0, 85% 50%, 100% 50%, 85% 100%, 0 100%, 15% 50%, 0 50%);
    }
    
    .achievements-main-image-container {
        aspect-ratio: 16/9; /* 平板上改為 4:3 比例 */
    }

    /* 平板: 調整標題大小 */
    .achievements-project-title {
        font-size: 28px;
        margin-bottom: 40px;
    }
    
    .achievements-award-item {
        font-size: 22px;
    }

    /* 平板: 移除偽元素延伸背景 (如果不需要，就移除) */
    .achievements-project-showcase::before,
    .achievements-project-showcase::after {
        content: none;
    }
}

@media (max-width: 767px) {
    
    /* ------------------------------------------------- */
    /* **手機版：移除偽元素延伸效果** */
    /* ------------------------------------------------- */
    .achievements-project-showcase::before,
    .achievements-project-showcase::after {
        content: none;
    }

    .achievements-project-showcase {
        /* 改為垂直堆疊 */
        flex-direction: column; 
        min-height: auto;
    }
    
    .achievements-image-area, .achievements-text-content {
        flex: 0 0 100%; /* 各佔 100% 寬度 */
        padding: 0 15px;
        background-color: transparent; /* 清除電腦版的背景設定 */
    }

    /* 移除圖片的複雜裁切和錯位定位，使圖片正常顯示 */
    .achievements-image-area {
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        padding-bottom: 20px; /* 底部間距 */
    }
    
    .achievements-main-image-container {
        /* 手機版：可以調整比例，例如更扁平的 2:1 */
        aspect-ratio: 16/9; 
    }

    .achievements-main-image {
        position: static; 
        clip-path: none; /* 移除裁切，變回正常矩形 */
        transform: none;
        margin-bottom: 0;
    }
    
    .achievements-text-content {
        padding-left: 15px;
        padding-right: 15px;
        padding-top: 0; 
    }
    
    .achievements-project-title {
        font-size: 24px;
        margin-bottom: 30px;
    }

    .achievements-award-item {
        font-size: 18px;
    }

    /* 手機版 L 形標記調整 */
    .achievements-dot {
        top: 6px; /* 手機版微調主方塊位置 */
        width: 10px;
        height: 10px;
    }
    .achievements-dot::after {
        top: 13px; /* 手機版微調第二個方塊位置 */
        width: 5px;
        height: 5px;
    }
}


/*
 * 容器與設計圖尺寸還原
 */
.timeline-wrapper {
    width: 100%; 
    margin: 0 auto;
    padding: 45px 25px;
    background-color: #E8F9ED; /* 模擬設計圖上的淺綠色底色 */
    margin-top: -45px;
}


/*
 * 時間軸群組：垂直堆疊佈局
 */
.timeline-group {
    padding :15px 0px;
    display: block; 
    overflow: hidden; 
}

/*
 * 標題：民國年份 (在內容上方)
 */
.timeline-year {
    letter-spacing:3px;
    text-align: left; 
    /* 為垂直線預留空間，年份靠左邊界 20px 處開始 */
    padding-left: 80px; 
    
    /* 文字顏色: #3A8856 */
    color: #3A8856; 
    font-size: 22px; 
    font-weight: bold;
    margin: 0;
    line-height: 1.2;
    /* 年份與下方內容之間加入間距，模擬設計圖上的距離 */
    margin-bottom: 16px; 
}

/*
 * 內容區塊 (包含垂直線和內容)
 */
.timeline-content {
    position: relative;
    /* 內容在左側留下垂直線的空間 */
    padding-left: 110px; 
}

/* 垂直線使用偽元素實現，位於左側 0 處 */
.timeline-content::before {
    /*content: '';*/
    /*position: absolute;*/
    /*top: 0;*/
    /*bottom: 0;*/
    /*left: 0; */
    /*width: 1px; */
    /*background-color: #A9D18E; */
}



/* 內容項目段落樣式 */
.timeline-content p {
    /* 文字顏色: #2D2D2D */
    color: #2D2D2D; 
    /* 字體大小為 22pt，這裡使用接近的 16px (或可設為 22px 讓字體更大) */
    font-size: 20px; 
    margin: 0; 
    line-height: 2;
    /* 字重: Light */
    font-weight: 300; 
    /* 開頭 7pt 間距 (難以精確還原，使用 letter-spacing 模擬) */
    letter-spacing: 0.5px; 
}


/*
 * RWD 響應式優化 (手機/小螢幕)
 * 為了保持 RWD 兼容性，這裡提供適當的斷點優化。
 */
@media (max-width: 767px) {
    .timeline-wrapper {
        /* 取消固定寬度，改為流式佈局 */
        width: 100%; 
        padding: 0 15px; 
    }

    .timeline-year {
        padding-left: 20px; 
    }

    .timeline-content {
        padding-left: 0; 
    }
    
    .achievements-dot2 {
        left: 0;
    }

    /* 移除垂直線 */
    .timeline-content::before {
        content: none;
    }

    /* 簡化精確間距，以確保手機上閱讀體驗 */
    .spacer, .gap-group, .gap-line, .gap-segment {
        height: 20px !important;
    }
}

.contact-border-radius{
    position: relative;
    margin-top: -20px;
    border-radius: 50px;
    z-index: 3;
    width: 100%;
    height: 50px;
    background-color: #FFF;
    margin-bottom: -100px;
}


    #backToTop {
      position: fixed;
    bottom: 40px;
    right: 40px;
    padding: 35px 30px;
    font-size: 20px;
    background-color: #2D2D2D;
    color: white;
    border: none;
    /* border-radius: 5px; */
    cursor: pointer;
    display: none;
    z-index: 9999;
}

#backToTop:hover {
  background-color: #2D2D2D;
}
@media (max-width: 767px) {
    #backToTop {
    padding: 25px 20px;
    }
    
}

   
    /* 容器樣式 (可選，用於居中或其他佈局) */
.projects-title-container {
    text-align: center; /* 讓標題居中 */
    padding-top: 60px;
}

/* 主標題樣式 */
.projects-title {
    /* 字體、大小和顏色 */
    font-family: 'GenJyuuGothic-Heavy', sans-serif; /* 假設使用 GenJyuuGothic-Heavy 來模擬 '源泉黑體black' */
    color: #989898; /* 深灰色 */
    font-size: 38px; /* 38pt ≈ 50.67px */
    font-weight: 900; /* 極粗體 */
    letter-spacing: 3px; /* 12pt ≈ 16px */
    
    /* 佈局和定位 */
    display: inline-block; /* 讓標題包裹內容 */
    position: relative; /* 用於定位偽元素 */
    margin: 0;
    padding: 0 40px; /* 確保兩側有空間容納裝飾條 */
}

/* 左側漸層裝飾條 (使用 ::before) */
.projects-title::before {
    content: '';
    position: absolute;
    top: 50%; /* 垂直居中 */
    left: 0;
    transform: translateY(-50%);
    
    /* 尺寸: 21.8*43.2px */
    width: 21.8px; 
    height: 43.2px;
    
    /* 模擬漸層 (使用線性漸變) */
    background: linear-gradient(to right, #ffffff, #dcdcdc); /* 假設是從白色到淺灰色的漸層 */
}

/* 右側漸層裝飾條 (使用 ::after) */
.projects-title::after {
    content: '';
    position: absolute;
    top: 50%; /* 垂直居中 */
    right: 0;
    transform: translateY(-50%);
    
    /* 尺寸: 21.8*43.2px */
    width: 21.8px;
    height: 43.2px;
    
    /* 模擬漸層 (使用線性漸變) */
    background: linear-gradient(to left, #ffffff, #dcdcdc); /* 假設是從白色到淺灰色的漸層 */
}
	.diamond-line{
         position: absolute;
  left: 50%;          /* 水平置中 */
  bottom: 0;        /* 離底部 30% */
  transform: translateX(-50%); /* 修正置中位移 */
  width: 2px;
  height: 25%;
  background-color: #FFF;
	    
	}
	
	    .diamond-group {
    flex-wrap: wrap; /* 允許換行，以便更容易排列成十字 */
    width: 60px; /* 控制整個菱形組的寬度 */
    height: 60px; /* 控制整個菱形組的高度 */
    
    
         position: absolute;
  left: 50%;          /* 水平置中 */
  bottom: 30%;        /* 離底部 30% */
  transform: translateX(-50%); /* 修正置中位移 */
  display: flex;
  gap: 10px; 
    
}

.diamond {
    width: 20px; /* 每個菱形的正方形邊長 */
    height: 20px;
    background-color: white; /* 菱形填充色 */
    border: 1px solid #dcdcdc; /* 淺灰色邊框 */
    transform: rotate(45deg); /* 將正方形旋轉 45 度變成菱形 */
    position: absolute; /* 使用絕對定位來精確佈局 */
}

/* 定位四個菱形 */
.diamond:nth-child(1) { /* 頂部菱形 */
    top: 0;
    left: 50%;
    transform: translateX(-50%) rotate(45deg); /* 水平居中後旋轉 */
}

.diamond:nth-child(2) { /* 底部菱形 */
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
}

.diamond:nth-child(3) { /* 左側菱形 */
    left: 0;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
}

.diamond:nth-child(4) { /* 右側菱形 */
    right: 0;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
}

    .method-pc {
        display: block;
    }
    .time-pc {
        display: none;
    }
    .time-pc.active {
        display: block;
    }
    .time-phone {
        display: none;
    }
    @media (max-width: 1616px) {
        .time-pc {
            display: none;
        }
        .method-pc {
            display: none;
        }
        .time-phone {
            width: 100%;
            overflow: visible;
            display: none;
            margin-top: -0;
            margin-bottom: 25px;
        }
        .timeline-group {
            margin-bottom: 10px;
        }
        .time-phone.active {
            display: block;
            border-bottom:none;
        }
    }
    
    
    
    .method2-container {
        max-width: 1303px;
        margin: 0 auto;
        box-sizing: border-box;
    }

    /* ---------------------------
    2. 標題與副標題模組 (Title & Subtitle Module)
    --------------------------- */
    .method2-title {
        text-align: center;
        font-size: 36px;
        font-weight: bold;
        color: #005FA3;
        padding-top: 67px;
    }
    .method2-title2 {
        text-align: center;
        font-size: 16px;
        font-weight: bold;
        margin-bottom: 67px;
        color: #005FA3;
    }

    .method2-subtitle {
        background-color: #7FB7B7;
        color: #FFF;
        width: fit-content;
        margin: 43px auto 34px;
        padding: 0 8px;
        font-size: 24px;
        font-weight: bold;
        letter-spacing: 14px;
    }

    .method2-subtitle2 {
        background-color: #7FB7B7;
        color: #FFF;
        width: fit-content;
        margin: 85px auto 34px;
        padding: 0 8px;
        font-size: 24px;
        font-weight: bold;
        letter-spacing: 14px;
    }

    .method2-subtitle .no-space,
    .method2-subtitle2 .no-space {
        letter-spacing: 0;
    }

    .method2-text {
        font-size: 22px;
        line-height: 48px;
        margin-bottom: 0px;
        text-align: justify;
    }

    /* ---------------------------
    3. 步驟/優點模組 (Step/Advantage Module)
       --- .method2-steps: Text Left, Image Right
       --- .method2b-steps: Image Left, Text Right
    --------------------------- */
    .method2-steps,
    .method2b-steps {
        display: flex;
        flex-wrap: wrap;
        margin-top: 0px;
    }

    /* 內容區塊 - 左側 (Text Left) */
    .method2-step-content {
        flex: 1;
        min-width: 300px;
        padding-right: 20px;
        margin: auto;
    }

    /* 內容區塊 - 右側 (Text Right, for method2b-steps/Image Left layout) */
    .method2b-step-content {
        flex: 1;
        min-width: 300px;
        padding-left: 20px;
        margin: auto;
    }

    /* 步驟/優點單項容器 (使用 Grid 實現編號與內容對齊) */
    .method2-step-item,
    .method2b-step-item {
        display: grid;
        grid-template-columns: auto 1fr;
        column-gap: 10px;
        margin-bottom: 51.692px;
        grid-template-rows: auto auto;
    }

    /* 標號樣式 (有標題、垂直置中) */
    .method2-step-num {
        grid-row: 1 / 1;
        grid-column: 1;
        align-self: center;
        font-size: 35px;
        font-weight: bold;
        color: #7FB7B7;
        white-space: nowrap;
    }

    .method2-step-num::after {
        content: "";
        display: inline-block;
        width: 0;
        height: 0;
        border-top: 12px solid transparent;
        border-bottom: 12px solid transparent;
        border-left: 18px solid #7FB7B7;
        margin-left: 6px;
    }

    /* 標號樣式 (無標題、頂部對齊) */
    .method2b-step-num {
        grid-row: 1 / 1;
        grid-column: 1;
        align-self: start;
        font-size: 35px;
        font-weight: bold;
        color: #7FB7B7;
        white-space: nowrap;
        line-height: 46px; /* 配合文字行高 */
    }

    .method2b-step-num::after {
        content: "";
        display: inline-block;
        width: 0;
        height: 0;
        border-top: 12px solid transparent;
        border-bottom: 12px solid transparent;
        border-left: 18px solid #7FB7B7;
        margin-left: 6px;
    }

    /* 標題樣式 (有標題版本) */
    .method2-step-title {
        grid-row: 1 / 2;
        grid-column: 2;
        font-size: 26px;
        font-weight: bold;
        margin: auto 0;
        background-color: gainsboro;
        width: fit-content;
        padding: 5px 8px;
    }

    /* 內容詳情樣式 (有標題版本) */
    .method2-step-detail {
        grid-row: 2 / 3;
        grid-column: 2;
        font-size: 22px;
        line-height: 46px;
        margin-top: 18px;
    }

    /* 內容詳情樣式 (無標題版本，且用於 method2b-steps/Image Left layout) */
    .method2b-step-detail {
        grid-row: 1 / 3; /* 跨越兩行 */
        grid-column: 2;
        font-size: 22px;
        line-height: 46px;
        align-self: start;
    }


    /* ---------------------------
    4. 圖片模組 (Image Module)
    --------------------------- */
    .method2-image-wrapper,
    .method2b-image-wrapper {
        max-width: 540px;
        aspect-ratio: 540 / 330;
        position: relative;
        background-color: #f0f0f0;
        margin: auto;
    }

    .method2-image {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
    }


    /* ---------------------------
    5. 響應式調整 (Responsive Adjustments)
    --------------------------- */
    @media (max-width: 993px) {

        .method2-steps,
        .method2b-steps {
            flex-direction: column;
            padding-left: 20px;
            padding-right: 20px;
        }

        .method2-step-content {
            padding-right: 0;
        }

        .method2-image-wrapper,
        .method2b-image-wrapper {
            width: 100%;
            margin-bottom: 20px;
        }

        /* 調整 Image Left, Text Right (method2b-steps) 在小螢幕下的堆疊順序 */
        .method2b-step-content {
            padding-left: 0;
            order: 1; /* 讓文字在圖片下方 */
        }

        .method2b-image-wrapper {
            padding-left: 0;
            order: 2; /* 讓圖片在文字上方 */
        }

        /* 修復小螢幕下最後一項的間距 */
        .method2-step-item:last-child,
        .method2b-step-item:last-child {
            margin-bottom: 51.692px;
        }
    }


    @media (min-width: 994px) {

        .method2-image-wrapper,
        .method2b-image-wrapper {
            flex: 1;
        }

        .method2-steps,
        .method2b-steps {
            align-items: flex-start;
        }

        .method2-step-content {
            max-width: 715.667px;
        }

        /* 修復大螢幕下最後一項的間距 */
        .method2-step-item:last-child,
        .method2b-step-item:last-child {
            margin-bottom: 0px;
        }
    }