body {
    position: relative;
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}
body,h1,h2,h3,h4,h5,h6,p,span,a,button{
    font-family: "微軟正黑體", "Microsoft JhengHei", sans-serif, Arial;
}
.main-container{
    flex: 1;
    position: relative;
}
/* -------------------- 整體樣式 -------------------- */
a{ 
    text-decoration: none; 
    transition: all 0.2s linear 0s;
}
.transition-all{ transition: all 0.2s linear 0s;}
.hidden{ display: none;}
.word-break{ word-break: break-all;}
.text-justify{ text-align: justify;}
.opacity-9{ opacity: 0.9;}
.img-cover{
    object-fit: cover;
    object-position: center;
    width: 100%;
    height: 100%;
}
.wrap-block{
    white-space: pre-wrap;
    word-break: break-all;
}
.fs-22px{ font-size: 22px;}
.fs-20px{ font-size: 20px;}
.fs-19px{ font-size: 19px;}
.fs-18px{ font-size: 18px;}
.fs-17px{ font-size: 17px;}
.fs-16px{ font-size: 16px;}
.fs-15px{ font-size: 15px;}
.fs-14px{ font-size: 14px;}
.fs-13px{ font-size: 13px;}
.fs-12px{ font-size: 12px;}
.ls-1{ letter-spacing: 1px;}
.ls-2{ letter-spacing: 2px;}
.lh-1{ line-height: 1;}
.lh-15{ line-height: 1.5;}
.lh-17{ line-height: 1.7;}
.ps-20{ padding-left: 20px;}
.bg-main{ background-color: rgba(237,248,242,0.5);}
.bg-major{ background-color: #1A5F7A;}
.bg-minor{ background-color: #26A38B;}
.bg-lightblue{ background-color: #F0F5FA;}
.text-major{ color: #1A5F7A;}
.text-minor{ color: #ef5049;}
.text-black{ color: #262626;}
.text-gray{ color: #454545;}
.text-green{ color: #26A38B;}
.text-neutral{ color: #717171;}
.text-lightgray{ color: #696D73;}
.text-darkblue{ color: #00296C;}
.form-control,
.form-select,
.form-label{
    color: #1C1D1F;
}
.form-check-input[type=checkbox]{
    width: 18px;
    height: 18px;
    border-radius: 0px;
    margin-right: 8px;
    border-width: 1px;
}
.form-check-input[type=checkbox]:checked {
    background-color: #26A38B;
    border-color: #26A38B;
}
button,
.btn:focus,
.btn:active,
.btn:focus,
.navbar-toggler:focus,
a:focus,
.btn-close:focus,
.btn-warning:focus,
.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.accordion-button:focus,
.page-link:focus{
  outline: none;
  box-shadow: none;
}
@media screen and (max-width: 1199.9px){
    .lg-fs-22px{ font-size: 22px;}
    .lg-fs-20px{ font-size: 20px;}
    .lg-fs-18px{ font-size: 18px;}
    .lg-fs-17px{ font-size: 17px;}
}
@media screen and (max-width: 768.9px){
    .md-fs-16px{ font-size: 16px;}
}
@media screen and (max-width: 575.9px) {
    .sm-fs-24px{ font-size: 24px;}
    .sm-fs-22px{ font-size: 22px;}
    .sm-fs-20px{ font-size: 20px;}
    .sm-fs-18px{ font-size: 18px;}
    .sm-fs-17px{ font-size: 17px;}
    .sm-fs-16px{ font-size: 16px;}
    .sm-fs-15px{ font-size: 15px;}
    .sm-fs-14px{ font-size: 14px;}
    .form-control,
    .form-select{
        font-size: 15px;
    }
}
/* --------------------- 自訂統一樣式 -------------------- */
.btn-major{
    font-weight: 700;
    color: #ffffff;
    padding: 0.4rem 2.2rem;
    background: #1A5F7A;
    border-radius: 0.3rem;
    transition: all 0.2s linear 0s;
}
.btn-major:hover{ 
    color: #ffffff;
    background: #214D7D;
}
.btn-minor{
    font-weight: 700;
    color: #ffffff;
    padding: 0.4rem 2.2rem;
    background: #FFBF00;
    border-radius: 0.3rem;
    transition: all 0.2s linear 0s;
}
.btn-minor:hover{ 
    color: #ffffff;
    background: #ecbe33;
}
.btn-outline-minor{
    font-weight: 700;
    color: #FFBF00;
    padding: 0.4rem 2.2rem;
    border: 2px solid #FFBF00;
    border-radius: 0.3rem;
    transition: all 0.2s linear 0s;
}
.btn-outline-minor:hover{ 
    color: #ffffff;
    background: #FFBF00;
}
/* 頁面標題 */
.block-title{ 
    position: relative;
    background-color: #002C6C;
    font-weight: bold;
    padding: 6px 12px 6px 48px;
    color: #ffffff;
    font-size: 24px;
}
.ribbon {  
    display: inline-block;
    position: absolute;
    top: -6px;
    left: 10px;
    margin: 0;
    padding: 15px 0;
    z-index: 2;
    width: 24px;
    text-align: center;
    color: white;
    background: #FFBF00;
    border-radius: 2px 0 0 0;
}
.ribbon:before {
    position: absolute;
    content: '';
    top: 0;
    left: 24px;
    border: none;
    border-bottom: solid 6px #E8960F;
    border-right: solid 5px transparent;
}
.ribbon:after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    height: 0;
    width: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-bottom: 10px solid #002C6C;
}
/* input */
.form-control{
    border-radius: 0px;
    border-color: #D6D6D6;
    padding: 10px 20px;
}
.form-control::placeholder{ color: #8D9DA3;}
.form-select{
    border-radius: 0px;
    border-color: #D6D6D6;
    padding: 10px 36px 10px 20px;
}
.form-check-input{
    border-radius: 2px;
    border-width: 2px;
    border-color: #8D9DA3;
    margin-top: 0.2em;
}
.form-check-input:checked{ background-color: #8D9DA3;}
/* back to top */
.back-to-top{
  position: fixed;
  z-index: 99999;
  right: 20px;
  bottom: 20px;
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  border-radius: 50%;
  border-width: 0px;
  padding: 0px;
  background-color: #fff;
  filter: drop-shadow(0px 0px 4px rgba(0,0,0,0.3));
  opacity: 100%;
  transition: opacity 0.5s;
}
.back-to-top:hover{ opacity: 60%;}
.opacity-0{ opacity: 0%;}
/* 分頁 */
.page-item:first-child .page-link {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
.page-item:last-child .page-link {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.page-item .page-link{
    color: #8a8a8a;
    font-size: 15px;
    padding: 0px;
    border: 1px solid #8a8a8a;
    width: 28px;
    height: 28px;
    line-height: 26px;
    text-align: center;
    background: #ffffff;
    margin: 0 8px;
}
.page-item.disabled .page-link{
    color: #bbbbbb;
    pointer-events: none;
    background-color: #ffffff;
    border: 1px solid rgba(138,138,138,0.3);
}
.page-item.active .page-link{
    color: #ffffff;
    background-color: #002C6C;
    border: 1px solid #002C6C;
}
@media screen and (max-width: 575.9px) {
    .form-control{ padding: 8px 14px;}
    .form-select{ padding: 8px 30px 8px 14px;}
    .block-title{ font-size: 20px;}
}
/* --------------------- 登入註冊 -------------------- */
.login-box{
    border: 1px solid #d2d2d2;
    border-top: 7px solid #FFBF00;
    background-color: #ffffff;
}
.login-container .form-control.login-pw{
    padding: 10px 36px 10px 20px;
}
.login-container .icon-toggler{
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #606060;
    font-size: 20px;
}
/* 註冊成功 */
.checkmark{
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: block;
  stroke-width: 4;
  stroke: #4bb71b;
  stroke-miterlimit: 10;
  box-shadow: inset 0px 0px 0px #4bb71b;
  animation: fill .4s ease-in-out .4s forwards, scale .3s ease-in-out .9s both;
  position:relative;
  top: 0px;
  right: 0px;
  margin: 0 auto;
}
.checkmark__circle{
  stroke-dasharray: 166;
  stroke-dashoffset: 166;
  stroke-width: 4;
  stroke-miterlimit: 10;
  stroke: #4bb71b;
  fill: #fff;
  animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}
.checkmark__check{
  transform-origin: 50% 50%;
  stroke-dasharray: 48;
  stroke-dashoffset: 48;
  animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
}
@keyframes stroke {
  100%{ stroke-dashoffset: 0;}
}
@keyframes scale {
  0%, 100%{ transform: none;}
  50%{ transform: scale3d(1.1, 1.1, 1);}
}
@keyframes fill {
  100%{ box-shadow: inset 0px 0px 0px 30px #4bb71b;}
}
@media screen and (max-width: 575.9px) {
    .login-container .form-control.login-pw{ padding: 8px 30px 8px 14px;}
}
/* --------------------- header footer -------------------- */
.header.index-container{
    position: relative;
    background-image: url(../images/26342336_m.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    min-height: 500px;
}
.header{
    box-shadow: 0px 2px 6px rgba(0,0,0,0.1);
    border-bottom: 1px solid #dddddd;
}
.btn-logout{
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
}
.header .nav-item{ padding: 0px 12px;}
.header .nav-link{
    padding: 12px 4px;
    font-size: 17px;
    color: #164B60;
    font-weight: 700;
    line-height: 1.2;
}
.offcanvas-start{ width: 300px;}
.offcanvas-menu .nav-link{
    border-bottom: 1px solid #dddddd;
    font-size: 15px;
    padding: 12px 0px;
}
.offcanvas-menu .block-title{ font-size: 18px;}
.footer{
    background: #1E2641;
    padding: 24px 12px
}
.footer .footer-contact{
    color: rgba(255,255,255,0.9);
    font-size: 14px;
}
.footer .footer-contact i{ flex: 0 0 28px;}
@media screen and (max-width: 575.9px) {
    .header-logo{ height: 40px;}
    .btn-header-login{ 
        display: inline-block;
        border-radius: 50%;
        width: 34px;
        height: 34px;
        text-align: center;
        padding: 0px;
        line-height: 34px;
    }
    .footer{ padding: 60px 0px 24px;}
}
/* --------------------- 首頁 -------------------- */
.page-header{
    background-image: url('../images/sectors02.jpg');
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 280px;
    padding: 3em 1em;
    background-color: #C8C3BF;
    background-position: center;
    background-size: cover;
    text-align: left;
}
.frame-bk{ border: 1px solid #A6B0BB;}
.btn-moreInfo[aria-expanded="true"] .fa-chevron-down:before {
    content: "\f077";
}
@media screen and (max-width: 767.9px) {
   .page-header{
        background-image: url('../images/sectors02-sm.jpg');
        height: 240px;
        background-position: center;
    } 
}
/* --------------------- 會員編輯 -------------------- */
.pw-modal .modal-content{ border-radius: 0px;}
.pw-modal .modal-header{
    border-radius: 0px;
    border-top: 7px solid #1A5F7A;
    border-bottom-width: 0px;
}
.pw-modal .form-control{
    border-radius: 0px;
    line-height: 1.8;
    font-size: 15px;
}
/* --------------------- 檔案管理 -------------------- */
.search-card{ position: relative;}
.search-card .form-control{
    border: 1px solid #002C6C;
    padding: 7px 12px 7px 60px;
}
.search-card .search-icon{
    position: absolute;
    top: 50%;
    left: 20px;
    transform: translateY(-50%);
    z-index: 99;
}
.btn-search{
    width: 41px;
    height: 41px;
    text-align: center;
    line-height: 37px;
    padding: 0px;
    background-color: #001987;
    border-radius: 50%;
    border-top-left-radius: 50%!important;
    border-bottom-left-radius: 50%!important;
    color: #ffffff;
}
.btn-search:hover{
    background-color: #0a1a5b;
    transition: all 0.2s linear 0s;
    color: #ffffff;
}
/* 表格 */
.table-style thead tr th{
    border-bottom-width: 1px;
    border-color: #dfdfdf!important;
    padding: 10px 8px;
    font-size: 14px;
}
.table-style tbody tr td{
    font-size: 14px;
    word-break: break-all;
    color: #4d4d4d;
    border-bottom-width: 1px;
    padding: 10px 8px;
}
.table-style .row-hide{ 
    flex: 0 0 100%;
    padding: 4px 0px;
}
.table-style .mobile-title{
    flex: 0 0 72px;
    color: #a1a1a1;
}
.table-style .mobile-content{
    flex-grow: 1;
    color: #5a5a5a;
}
.table-style .list-img{
    display: inline-block;
    width: 40px;
    height: 40px;
    padding: 0px;
    position: relative;
    background-color: #ffffff;
}
.table-style .list-img img{
    width: 38px;
    height: 38px;
    object-fit: contain;
    object-position: center;
    background-color: #ffffff;
}
.table-style .img-zoom{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    padding: 0px;
    width: 40px;
    height: 40px;
    font-size: 23px;
    color: #ffffff;
    opacity: 0.75;
    z-index: 2;
    transition: all 0.2s linear 0s;
}
.table-style .img-zoom i{
    position: absolute;
    font-size: 14px;
    top: 4px;
    right: 4px;
}
.table-style .img-zoom:hover{ opacity: 1;}
.table-style .list-img:after{
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    content: "";
    background-color: rgba(0,0,0,0.2);
    z-index: 1;
}
/* 商品列表單獨調整 */
.table-products .th-img{ width: 108px;}
.table-products .th-action{ width: 210px;}
.table-products .th-title{ width: 360px;}
.table-products .mobile-items .mobile-img{ flex: 0 0 56px;}
.text-overflow{
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}
/*Img Modal*/
.imgModal .modal-content {
  background-color: transparent;
  border: 0px solid rgba(0,0,0,.2);
}
.imgModal .modal-body{
    background-color: #ffffff;
    border-radius: 4px;
}
.imgModal .btn-close {
  opacity: 1;
  line-height: 0;;
  font-size: 18px;
  color: #fff;
  font-weight: 500;
  background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
}
/* 掃描樣式 */
.scan-block{
    width: 100%;
    height: 360px;
    max-width: 360px;
    margin: 0px auto;
    position: relative;
}
.scan-block .scan-border{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 100%;
    height: auto;
    max-width: 360px;
}
@media screen and (max-width: 1199.9px) {
    .table-products .th-action{ width: 120px;}
    .table-style .mobile-action a{ margin: 2px 0px;}
}
@media screen and (max-width: 991.9px) {
    .table-style tbody tr td {
        border-top-width: 1px;
    }
    .table-style .mobile-action{
        flex: 0 0 220px;
        text-align: right;
    }
    .table-style .mobile-action a{
        margin: 0px 4px 8px 0px;
    }
    .table-style .row-mobile,
    .table-style .th-mobile{
        display: none;
    }
    .table-style .mobile-action { align-self: center;}
}
@media screen and (max-width: 575.9px) {
    .table-style .mobile-action {
        flex: 0 0 100%;
        display: flex;
        margin-top: 12px;
    }
    .table-style .mobile-action a{
        flex-grow: 1;
        text-align: center;
        border-radius: 0px;
        padding: 8px;
    }
}
/* --------------------- 新增或編輯商品 -------------------- */
.tab-edit{ border-width: 0px;}
.tab-edit .nav-link{
    background-color: #ededed;
    color: #aaaaaa;
    margin: 4px 8px 4px 0px;
}
.tab-edit .nav-link:last-child{ margin-right: 0px;}
.tab-edit .nav-link:hover{
    background-color: #0D6EFD;
    color: #ffffff;
}
.btn-add{
    width: 44px;
    height: 44px;
    padding: 0px;
    line-height: 44px;
    text-align: center;
    border-radius: 50%;
    margin: 20px;
    margin-left: 40px;
}
/* 編輯器 */
.editor-info{ overflow-x: hidden;}
.ck-content{
    min-height: 360px;
    max-height: 600px;
    overflow-y: auto;
}
/* 上傳檔案 */
input[type=file].uploadPdf{
    background-color: #ffffff;
}
input[type=file].uploadPdf::-webkit-file-upload-button,
input[type=file].uploadPdf::file-selector-button{
    border-width: 0px;
}
/* 上傳圖片 */
.box{
    position: relative;
    width: 240px;
    height: 280px;
    border: 1px solid #D6D6D6;
    background-color: #ffffff;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.clear-img{
    position: absolute;
    top: 8px;
    right: 8px;
    width: 24px;
    height: 24px;
    padding: 0px;
    line-height: 22px;
    text-align: center;
    border-radius: 50%;
    font-size: 13px;
}
.btn-delete-item{
    position: absolute;
    top: 8px;
    left: 8px;
    width: 24px;
    height: 24px;
    padding: 0px;
    line-height: 22px;
    text-align: center;
    border-radius: 50%;
    font-size: 13px;
}
.upload-options{
    position: relative;
    height: 40px;
    background-color: #002C6C;
    cursor: pointer;
    overflow: hidden;
    text-align: center;
    transition: background-color ease-in-out 150ms;
}
.upload-options:hover{ background-color: #008DBD;}
.upload-options input{
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1;
}
.upload-options label{
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
    font-weight: 400;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
    overflow: hidden;
}
.upload-options label::after{
    content: "選擇圖片";
    position: absolute;
    font-size: 15px;
    top: 50%;
    left: 50%;
    color: #ffffff;
    transform: translate(-50%,-50%);
    z-index: 0;
}
.js--image-preview{
    height: 240px;
    width: 100%;
    position: relative;
    overflow: hidden;
    background-image: url("../images/uploadimg.jpg");
    background-color: #ffffff;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
}
.js--image-preview.js--no-default::after{ display: none;}
@media screen and (max-width: 575.9px) {
    .ck-content{ max-height: 520px;}
    input[type=file].uploadPdf::-webkit-file-upload-button,
    input[type=file].uploadPdf::file-selector-button{
        font-size: 15px;
    }
}
/* --------------------- 顯示個人檔案頁 -------------------- */
.product-profile-container .top-banner{
    background-repeat: no-repeat;
    background-size: cover;
    background-image: url('../images/profile-header.jpg');
    background-position: center;
}
.page-title-start{
    padding-right: 30px;
    margin-right: 30px;
    border-right: 4px solid #009FBD;
}
.product-img{
    position: relative;
    text-align: center;
    z-index: 1;
}
.product-img-show{
    width: 240px;
    height: 240px;
    max-width: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
    padding: 8px;
    background-color: #ffffff;
    box-shadow: 0 0 6px rgba(0,0,0,0.2);
}
.product-img-prev{
    position: absolute;
    top: 50%;
    left: 0px;
    border-width: 0px;
    background-color: #F26334;
    color: #ffffff;
    opacity: 0.75;
}
.product-img-next{
    position: absolute;
    top: 50%;
    right: 0px;
    border-width: 0px;
    background-color: #F26334;
    color: #ffffff;
    opacity: 0.75;
}
.product-img-prev:hover,
.product-img-next:hover{
    opacity: 1;
}
.product-img-next.disabled,
.product-img-prev.disabled,
.product-img-next.disabled:hover,
.product-img-prev.disabled:hover{
    pointer-events: none;
    opacity: 0.4;
}

/*基本資料*/
.basic-info-box{
    background-color: #FAF6F1;
    margin-left: -120px;
    padding: 24px 0px 24px 160px;
}
.basic-info-box.account-only{
    margin-left: 0px;
    padding: 24px 0px 24px 24px;
}
.contact-info-box{
    position: relative;
    background-color: #E3DBCC;
    padding: 12px 20px 12px 12px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-right: -8px;
    word-break: break-all;
}
.contact-info-box:after{
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    top: 100%;
    right: 0px;
    border: none;
    border-top: solid 10px #9B6F5E;
    border-right: solid 10px transparent;
}
.contact-info-box .contact-items{
    font-size: 15px;
    color: #4d4d4d;
    margin-bottom: 4px;
    margin-right: 16px;
}
.contact-info-box .contact-items:last-child{
    margin-right: 0px;
}
.contact-info-box .contact-items i{
    color: #745237;
    width: 24px;
    text-align: center;
}
/*個人介紹*/
.personal-items,
.personal-items p,
.personal-items span,
.personal-items li{
    font-size: 16px;
    line-height: 1.7;
    color: #5a5a5a;
    word-break: break-all;
}
.personal-items li{ margin-bottom: 8px;}
.personal-items p{ margin-bottom: 16px;}
.personal-items img{ max-width: 100%;}
.personal-items h5.personal-items-title{
    position: relative;
    margin: 48px 0 24px;
}
.personal-items h5.personal-items-title span{
    position: relative;
    display: inline-block;
    padding: 6px 36px;
    font-size: 1.1rem;
    font-weight: 600;
    background-color: #ffffff;
    color: #009FBD;
    border-radius: 40px;
    border: 2px solid #009FBD;
    z-index: 2;
}
.personal-items h5.personal-items-title:after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    display: inline-block;
    width: 100%;
    height: 2px;
    background-color: #009FBD;
    z-index: 1;
}
@media screen and (max-width: 767.9px) {
    .page-title-start{
        padding-right: 0px;
        padding-bottom: 12px;
        margin: 12px 0px;
        border-right-width: 0px;
        border-bottom: 1px solid #ffffff;
        flex: 0 0 100%;
    }
    .basic-info-box{
        margin-left: 0px;
        padding: 24px 0px 24px 24px;
    }
}
@media screen and (max-width: 575.9px) {
    .personal-items,
    .personal-items p,
    .personal-items span,
    .personal-items li{
        font-size: 15px;
        line-height: 1.5;
    }
    .contact-info-box{ font-size: 15px;}
    .personal-items h5.personal-items-title span{
        padding: 8px 28px;
        font-size: 1rem;
    }
}