@charset "UTF-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@300;400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Anton&family=Noto+Serif+TC:wght@300;400;500;600;700;900&display=swap');


section, article, aside, footer, header, nav, h2 { display:block;}

body { color: #1a1a1a; font-size:1em; font-family: 'Noto Sans TC', sans-serif, "微軟正黑體", Arial; background-color: #fff; position: relative;}
img { border: 0; display: block;}

html, body { padding: 0; margin: 0;}

.clearfix:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0;}
.clearfix { display: inline-block; }
* html .clearfix { height: 1%; }
.clearfix { display: block; }

div.brk { clear: both;}
span.color-red { color: #D80000;}


/************ video box ************/
.video-container { position:relative; padding-bottom:56.25%; padding-top:30px; width:100%; height: 0px; overflow:hidden;}
.video-container iframe, .video-container object, .video-container embed { position:absolute; top:0; left:0; width:100%; height:100%;}


@media screen and (min-width: 1280px) {

  /************ header#hp + nav ************/

  #nav-menu-float-mo-box { display: none;}

  header#hp { clear: both; width: 100%; padding: 2.5vw 4vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center; position: fixed; top: 0; left: 0; z-index: 9;}
  header#hp .header-hp-logo { width: 10vw;}
  header#hp .header-hp-logo img { width: 5.9vw; height: auto;}
  header#hp nav#hp-mo { display: none;}
  header#hp nav#hp-pc { width: calc(100% - 10vw); display: flex; justify-content: flex-end;}
  header#hp nav#hp-pc ul.nav-menu { width: 24vw; padding: 0; margin: 0; box-sizing: border-box; background-color: #fff; list-style: none; display: flex; justify-content: center; align-items: center;}
  header#hp nav#hp-pc ul.nav-menu li { padding: 0; margin: 0; border-bottom: 2px #fff solid; box-sizing: border-box;}
  header#hp nav#hp-pc ul.nav-menu li a { padding: 1vw 1.5vw; color: #3b3b3b; font-size: 0.9vw; font-weight: 500; text-decoration: none; display: block; box-sizing: border-box;}
  header#hp nav#hp-pc ul.nav-menu li:hover a { color: #D80000;}
  header#hp nav#hp-pc ul.nav-menu li:hover { border-bottom: 2px #D80000 solid;}


  header#hp-fixed { clear: both; width: 100%; padding: 0 4vw; box-sizing: border-box; display: none; position: fixed; top: 0; z-index: 101;}
  header#hp-fixed .header-fixed-con { width: 100%; display: flex; justify-content: flex-start; align-items: center;}
  header#hp-fixed .header-hp-logo { width: 10vw; padding: 0.8vw 0; background-color: #000;}
  header#hp-fixed .header-hp-logo img { width: 5.9vw; height: auto; margin: 0 auto;}
  header#hp-fixed nav#hp-fixed-mo { display: none;}
  header#hp-fixed nav#hp-fixed-pc { width: calc(100% - 10vw); display: flex; justify-content: flex-end; align-items: flex-start;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu { width: 24vw; padding: 0; margin: 0; box-sizing: border-box; background-color: #000; list-style: none; display: flex; justify-content: center; align-items: center;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li { padding: 0; margin: 0; color: #fff; border-bottom: 2px #000 solid; box-sizing: border-box;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li a { padding: 1vw 1.5vw; color: #fff; font-size: 0.9vw; font-weight: 500; text-decoration: none; display: block; box-sizing: border-box;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li:hover a { color: #D80000;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li:hover { border-bottom: 2px #D80000 solid;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li.sel a { color: #D80000;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li.sel { border-bottom: 2px #D80000 solid;}


  /************ index-nav-banner ************/

  section#index-nav-banner { clear: both; width: 100%; background-color: #e7e7e7; position: relative;}
  .hp-banner-content { clear: both; width: 100%;}
  .hp-banner-content .block-right { width: 13.5vw; height: 19.8vw; background-color: rgba(255,255,255,0.3); display: block; position: fixed; top: 20.7vw; right: 0; z-index: 1;}
  .hp-banner-content .block-right-text { width: 18.9vw; color: #3b3b3b; font-size: 2.6vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: right; position: fixed; top: 33.1vw; right: 4vw; z-index: 2;}
  .hp-banner-content .scroll-text { width: 2vw; position: fixed; top: 35.6vw; left: 5.4vw; z-index: 1;}
  .hp-banner-content .scroll-text .text { width: 100%; color: #3b3b3b; font-size: 0.8vw; font-family: 'Noto Serif TC'; font-weight: 600; -webkit-writing-mode: vertical-lr; writing-mode: vertical-lr; display: flex; justify-content: center; align-items: center;}
  .hp-banner-content .scroll-text .line { width: 1px; height: 84px; margin: 0.5vw auto 0 auto; background-color: #3b3b3b; display: block;}
  .hp-banner-content .block-left { width: 16.8vw; height: 12.4vw; padding: 7.7vw 2.3vw 0 1.3vw; color: #3b3b3b; font-size: 0.8vw; font-family: 'Noto Serif TC'; font-weight: 600; background-color: rgba(255,255,255,0.3); display: block; box-sizing: border-box; position: fixed; top: 31.9vw; left: 13.8vw; z-index: 1;}  
  .zoom-section { height: 200vh; position: relative;}
  .sticky-wrapper { width: 100%; height: 94vh; display: flex; justify-content: center; align-items: center; position: sticky; top: 0; z-index: 8; overflow: hidden;}
  #zoom-img { width: 60%; height: 100%; object-fit: cover; object-position: center; transition: width 0.4s ease-out, height 0.4s ease-out;/*transition: width 1s cubic-bezier(0.165, 0.84, 0.44, 1);*/ will-change: width, height;}
  .hp-banner-slogan { width: 40vw; color: #fff; font-size: 1.8vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center; position: fixed; top: 21vw; left: calc(50% - 20vw); z-index: 9;}


  section#index-about { clear: both; width: 100%; background-color: #1a1a1a; display: flex; justify-content: flex-start; align-items: stretch;}
  .hp-about-col-left { width: 70%; padding: 0 15vw 0 18vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;}  
  .hp-sub-title { clear: both; width: 100%;}
  .hp-sub-title .en { width: 100%; display: flex; justify-content: flex-start; align-items: center;}
  .hp-sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-sub-title .en span { color: #fff; font-size: 1rem; line-height: 1em;}
  .hp-sub-title .cn { width: 100%; margin: 0 0 2vw 0; color: #fff; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600;}  
  .hp-about-col-left .intro { clear: both; width: 100%; margin: 0 0 1vw 0; color: #fff; font-size: 1.4rem; font-family: 'Noto Serif TC'; font-weight: 600;}
  .hp-about-col-left .text { clear: both; width: 100%; color: #fff; font-size: 1.1rem; line-height: 1.6em;}
  .hp-about-col-right { width: 30%; height: auto; overflow: hidden;}
  .hp-about-col-right img.img-mo { display: none;}
  .hp-about-col-right img.img-pc { width: 100%; height: 100%; object-fit: cover; object-position: center;}


  section#index-portfolio { clear: both; width: 100%; padding: 100px 0 40px 0; background-image: linear-gradient(to right, #fff 70%, #1a1a1a 30%); position: relative;}
  .hp-portfolio-title { clear: both; width: 100%; padding: 0 0 0 18vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center;}
  .hp-portfolio-title .sub-title { width: 250px;}
  .hp-portfolio-title .sub-title .en { width: 100%; display: flex; justify-content: flex-start; align-items: center;}
  .hp-portfolio-title .sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-portfolio-title .sub-title .en span { color: #1a1a1a; font-size: 1rem; line-height: 1em;}
  .hp-portfolio-title .sub-title .cn { width: 100%; margin: 0 0 2vw 0; color: #1a1a1a; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600;} 
  .hp-portfolio-title .slogan-text { width: calc(100% - 250px); padding: 0 0 2vw 0; color: #1a1a1a; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600;}
  .main-slider .slide-item a { text-decoration: none; color: inherit !important;}
  .main-slider .slide-item a .photo { width: 100%; height: 22vw; padding: 0 1vw; box-sizing: border-box;}
  .main-slider .slide-item a .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: filter 0.5s ease;}
  .main-slider .slide-item a:hover .photo img { filter: brightness(0.6);}
  .main-slider .slide-item .slide-title { width: 100%; padding: 0.5vw 1vw 0 1vw; color: #1a1a1a !important; font-size: 1vw; font-family: 'Noto Serif TC'; font-weight: 600; box-sizing: border-box; transition: color 0.3s ease; text-decoration: none;}
  .main-slider .slick-slide.on-right-side .slide-title { color: #ffffff !important; transition: color 0.1s linear;}
  .main-slider .slick-slide.on-right-side * { color: #ffffff !important; transition: color 0.1s linear;}
  .main-slider .slide-item a:hover .slide-title { color: #D80000 !important;}
  .main-slider .slide-item .portfolio-slide-title { width: 100%; padding: 0.5vw 1vw 0 1vw; color: #1a1a1a !important; font-size: 1vw; font-family: 'Noto Serif TC'; font-weight: 600; box-sizing: border-box; transition: color 0.3s ease; text-decoration: none;}
  .main-slider .slide-item a:hover .portfolio-slide-title { color: #D80000 !important;}
  .slider-controls { display: flex; align-items: center; justify-content: center; gap: 0.5vw; position: absolute; top: 6vw; right: 12vw; z-index: 2;}
  button#arrow-mo { display: none;}
  .slider-controls button { width: 1.5vw; height: 1.5vw; border: 0; background-color: transparent; cursor: pointer;}
  .slider-controls button img { width: 100%; height: auto;}
  .slider-controls .progress-wrapper { width: 9vw; height: 4px; background: #d1d1d1; position: relative;}
  .slider-controls .progress-bar { width: 0%; height: 100%; background: #D80000; transition: width 0.2s ease;}
  .slider-controls .counter { color: #fff; font-size: 0.8vw; display: flex; justify-content: flex-start; align-items: flex-end;}
  .slider-controls .counter .num-1 { padding: 0 0 0.4vw 0;}
  .slider-controls .counter .num-2 { padding: 0;}
  .slider-controls .counter span.current { color: #fff; font-size: 1vw;}
  .slider-controls .counter span.total { color: #5f5f5f;}
  .view-more-btn { clear: both; width: 9.2vw; margin: 4vw auto 2.5vw auto;}
  .view-more-btn a { width: 9.2vw; height: 9.2vw; color: #1a1a1a; font-size: 1.2vw; font-family: 'Noto Serif TC'; font-weight: 600; text-decoration: none; border-radius: 100%; border: 1px #1a1a1a solid; display: flex; justify-content: center; align-items: center;}
  .view-more-btn a:hover { color: #D80000; border: 1px #D80000 solid;}


  section#index-charges { clear: both; width: 100%; padding: 3vw 0 5vw 0; background-color: #e7e7e7;}
  .hp-charges-title { clear: both; width: 100%;}
  .hp-charges-title .sub-title { width: 100%;}
  .hp-charges-title .sub-title .en { width: 100%; display: flex; justify-content: center; align-items: center;}
  .hp-charges-title .sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-charges-title .sub-title .en span { color: #1a1a1a; font-size: 1rem; line-height: 1em;}
  .hp-charges-title .sub-title .cn { width: 100%; margin: 0 0 1vw 0; color: #1a1a1a; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .hp-charges-title .slogan-text { width: 100%; color: #1a1a1a; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .hp-charges-list-full { clear: both; width: 100%; margin: 4vw 0 0 0; border-top: 1px #000 solid; display: flex; justify-content: flex-start; align-items: stretch; flex-wrap: wrap;}
  .hp-charges-list-full .col-left { width: 50%; padding: 3vw 2vw 3vw 14vw; border-right: 1px #000 solid; border-bottom: 1px #000 solid; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center;}  
  .hp-charges-list-full .col-right { width: 50%; padding: 3vw 14vw 3vw 2vw; box-sizing: border-box; border-bottom: 1px #000 solid; display: flex; justify-content: flex-start; align-items: center;}  
  .hp-charges-list-full .col-full { width: 100%; padding: 3vw 14vw; box-sizing: border-box; border-bottom: 1px #000 solid; display: flex; justify-content: flex-start; align-items: center;}
  .hp-charges-list-full .col-left .num-title, 
  .hp-charges-list-full .col-right .num-title, 
  .hp-charges-list-full .col-full .num-title { width: 16vw; display: flex; justify-content: flex-start; align-items: flex-start;}
  .hp-charges-list-full .col-left .num-title .num, 
  .hp-charges-list-full .col-right .num-title .num, 
  .hp-charges-list-full .col-full .num-title .num { width: 4vw; color: #D80000; font-size: 0.9vw; font-weight: 500; line-height: 1em;}
  .hp-charges-list-full .col-left .num-title .title, 
  .hp-charges-list-full .col-right .num-title .title, 
  .hp-charges-list-full .col-full .num-title .title { width: calc(100% - 4vw);}
  .hp-charges-list-full .col-left .num-title .title span.big, 
  .hp-charges-list-full .col-right .num-title .title span.big, 
  .hp-charges-list-full .col-full .num-title .title span.big { font-size: 1.8vw; font-family: 'Noto Serif TC'; font-weight: 700; line-height: 1em;}
  .hp-charges-list-full .col-left .num-title .title span.small, 
  .hp-charges-list-full .col-right .num-title .title span.small, 
  .hp-charges-list-full .col-full .num-title .title span.small { padding: 0.5vw 0 0 0; font-size: 1vw; font-weight: 500; display: block;}
  .hp-charges-list-full .col-text-mo { display: none;}
  .hp-charges-list-full .col-left .text, 
  .hp-charges-list-full .col-right .text, 
  .hp-charges-list-full .col-full .text { width: calc(100% - 16vw); font-size: 0.9vw; line-height: 1.4em;}
  .hp-charges-list-full .col-left:hover.bg-1 { color: #fff; background-image: url("../images/hp_charges_list_bg_1.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-left:hover.bg-1 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-right:hover.bg-2 { color: #fff; background-image: url("../images/hp_charges_list_bg_2.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-right:hover.bg-2 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full:hover.bg-3 { color: #fff; background-image: url("../images/hp_charges_list_bg_3.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full:hover.bg-3 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full:hover.bg-4 { color: #fff; background-image: url("../images/hp_charges_list_bg_4.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full:hover.bg-4 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full:hover.bg-5 { color: #fff; background-image: url("../images/hp_charges_list_bg_5.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full:hover.bg-5 .num-title .num { color: #fff;}


  /************ header#page + nav ************/

  #nav-menu-float-mo-box { display: none;}

  header#page { clear: both; width: 100%; padding: 0 4vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center; position: fixed; top: 0; z-index: 101;}
  header#page .header-page-logo { width: 10vw; padding: 1vw 0; background-color: #1a1a1a;}
  header#page .header-page-logo img { width: 5.9vw; height: auto; margin: 0 auto;}
  header#page nav#page-mo { display: none;}
  header#page nav#page-pc { width: calc(100% - 10vw); display: flex; justify-content: flex-end; align-items: flex-start;}
  header#page nav#page-pc ul.nav-menu { width: 24vw; padding: 0; margin: 0; box-sizing: border-box; background-color: #1a1a1a; list-style: none; display: flex; justify-content: center; align-items: center;}
  header#page nav#page-pc ul.nav-menu li { padding: 0; margin: 0; color: #fff; border-bottom: 2px #000 solid; box-sizing: border-box;}
  header#page nav#page-pc ul.nav-menu li a { padding: 1vw 1.5vw; color: #fff; font-size: 0.9vw; font-weight: 500; text-decoration: none; display: block; box-sizing: border-box;}
  header#page nav#page-pc ul.nav-menu li:hover a { color: #D80000;}
  header#page nav#page-pc ul.nav-menu li:hover { border-bottom: 2px #D80000 solid;}
  header#page nav#page-pc ul.nav-menu li.sel a { color: #D80000;}
  header#page nav#page-pc ul.nav-menu li.sel { border-bottom: 2px #D80000 solid;}


  /************ section page-portfolio ************/

  section#page-portfolio-banner { clear: both; width: 100%; height: 23vw; padding: 0; background-image: linear-gradient(to right, #1a1a1a 80%, #e7e7e7 20%); position: relative;}

  .page-banner-content { width: 100%; display: flex; justify-content: flex-start; align-items: flex-start;}
  .page-banner-content .col-left { width: calc(100% - 63.2vw); padding: 10vw 0 0 17.7vw; box-sizing: border-box;}
  .page-banner-content .col-left .page-portfolio-title { width: 100%;}
  .page-banner-content .col-left .page-portfolio-title .en { width: 100%; color: #D80000; font-size: 1rem;}
  .page-banner-content .col-left .page-portfolio-title .cn { width: 100%; color: #fff; font-size: 2.4rem; font-family: 'Noto Serif TC'; font-weight: 600;}
  .page-banner-content .col-right { width: 63.2vw; position: relative;}
  .page-banner-content .col-right img.pic-mo { display: none;}
  .page-banner-content .col-right img.pic-pc { width: 100%; height: auto; position: relative; z-index: 1;}
  .page-banner-content .col-right .slogan-text { width: 100%; padding: 10.6vw 0 0 8.2vw; color: #fff; font-size: 1.2vw; font-family: 'Noto Serif TC'; font-weight: 600; box-sizing: border-box; position: absolute; top: 0; left: 0; z-index: 2;}


  section#page-portfolio-list { clear: both; width: 100%; padding: 80px 17.7vw; box-sizing: border-box; background-color: #e7e7e7;}
  .portfolio-sort-list-mo { display: none;}
  ul.portfolio-sort-list { width: 100%; padding: 0; margin: 0 0 80px 0; list-style: none; display: flex; justify-content: flex-start; align-items: center;}
  ul.portfolio-sort-list li { width: 7vw; padding: 0 0.3vw; margin: 0;}
  ul.portfolio-sort-list li a { width: 100%; padding: 0.5vw 0; color: #1a1a1a; font-size: 1vw; text-align: center; text-decoration: none; border-radius: 40px; background-color: #d9d9d9; display: block;}
  ul.portfolio-sort-list li a:hover { background-color: #ccc;}
  ul.portfolio-sort-list li a.sel { color: #fff; background-color: #D80000;}
  .portfolio-case-odd, 
  .portfolio-case-even { clear: both; width: 100%; margin: 0 0 60px 0;}
  .portfolio-case-odd a, 
  .portfolio-case-even a { width: 100%; padding: 3vw 0 0 0; text-decoration: none; display: block; position: relative;}
  .portfolio-case-odd a .mask-more, 
  .portfolio-case-even a .mask-more { width: 100%; height: 100%; background-color: #000; display: flex; justify-content: center; align-items: center; position: absolute; top: 0; left: 0; z-index: 3; opacity: 0; transition: opacity 0.6s ease;}
  .portfolio-case-odd a .mask-more .view, 
  .portfolio-case-even a .mask-more .view { width: 9.3vw; height: 9.3vw; color: #fff; font-size: 1.1vw; font-family: 'Noto Serif TC'; font-weight: 600; border-radius: 100%; border: 1px #fff solid; display: flex; justify-content: center; align-items: center; opacity: 0; transition: opacity 0.6s ease;}
  .portfolio-case-odd a .photo { width: 34.8vw; height: 23.5vw; overflow: hidden; position: absolute; top: 0; left: 0; z-index: 2;}
  .portfolio-case-odd a .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center;}
  .portfolio-case-odd a .content { width: 95%; min-height: 23vw; padding: 6vw 0 2vw 34.8vw; margin: 0 0 0 5%; box-sizing: border-box; background-image: linear-gradient(to right, #fff, #e7e7e7); position: relative;}
  .portfolio-case-odd a .content .case-num { width: 100%; color: #d4d2d2; font-size: 2.4vw; font-weight: 700; text-align: right; position: absolute; top: -2vw; right: 0; z-index: 2;}
  .portfolio-case-odd a .content .case-con-box, 
  .portfolio-case-even a .content .case-con-box { width: 100%; padding: 2vw 0 0 0; border-top: 1px #bdbdbd solid;}
  .portfolio-case-odd a .content .case-con-box .case-sort, 
  .portfolio-case-even a .content .case-con-box .case-sort { width: 6vw; padding: 0.2vw 0; margin: 0 0 2vw 0; color: #fff; font-size: 0.9vw; text-align: center; background-color: #000; transition: 0.6s;}
  .portfolio-case-odd a .content .case-con-box .case-title, 
  .portfolio-case-even a .content .case-con-box .case-title { width: 100%; padding: 0 0 1vw 0; color: #1a1a1a; font-size: 1.2vw; font-family: 'Noto Serif TC'; font-weight: 600; transition: 0.6s;}
  .portfolio-case-odd a .content .case-con-box .case-intro, 
  .portfolio-case-even a .content .case-con-box .case-intro { width: 100%; color: #1a1a1a; font-size: 0.9vw; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;}
  .portfolio-case-odd a:hover .mask-more, 
  .portfolio-case-even a:hover .mask-more { opacity: 0.7;}
  .portfolio-case-odd a:hover .mask-more .view, 
  .portfolio-case-even a:hover .mask-more .view { opacity: 1;}
  .portfolio-case-odd a:hover .content .case-con-box .case-sort, 
  .portfolio-case-even a:hover .content .case-con-box .case-sort { color: #fff; background-color: #D80000;}
  .portfolio-case-odd a:hover .content .case-con-box .case-title, 
  .portfolio-case-even a:hover .content .case-con-box .case-title { color: #D80000;}
  .portfolio-case-even a .photo { width: 34.8vw; height: 23.5vw; overflow: hidden; position: absolute; top: 0; right: 0; z-index: 2;}
  .portfolio-case-even a .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center;}
  .portfolio-case-even a .content { width: 95%; min-height: 23vw; padding: 6vw 34.8vw 2vw 0; margin: 0 5% 0 0; box-sizing: border-box; background-image: linear-gradient(to right, #e7e7e7, #fff); position: relative;}
  .portfolio-case-even a .content .case-num { width: 100%; color: #d4d2d2; font-size: 2.4vw; font-weight: 700; text-align: left; position: absolute; top: -2vw; right: 0; z-index: 2;}


  ul#page-num { clear: both; width: 100%; padding: 0; margin: 4vw 0 0 0; list-style: none; display: flex; justify-content: center; align-items: center; flex-wrap: wrap;}
  ul#page-num li { padding: 0.5vw; margin: 0;}
  ul#page-num li a { width: 2.25vw; height: 2.25vw; color: #1a1a1a; font-size: 0.9vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center; text-decoration: none; border-radius: 100%; display: flex; justify-content: center; align-items: center;}
  ul#page-num li a img.arrow { width: 0.7vw; height: auto;}
  ul#page-num li a:hover { background-color: #ccc;}
  ul#page-num li a.sel { color: #fff; background-color: #D80000;}


  /************ section page-portfolio-detail ************/

  section#page-portfolio-detail { clear: both; width: 100%; padding: 80px 17.7vw; box-sizing: border-box; background-color: #e7e7e7;}
  .portfolio-case-detail-mo { display: none;}
  .portfolio-case-detail { clear: both; width: 100%; margin: -80px 0 0 0;}
  .portfolio-case-detail .case-num-mo { display: none;}
  .portfolio-case-detail .case-num { width: 100%; color: #d4d2d2; font-size: 2.4vw; font-weight: 700; text-align: right; position: relative; top: 4vw;}
  .portfolio-case-detail .case-title { width: 100%; padding: 0 0 1vw 0; color: #1a1a1a; font-size: 2vw; font-family: 'Noto Serif TC'; font-weight: 600;}
  .portfolio-case-detail .case-sort { width: 5vw; padding: 0.2vw 0; margin: 0 0 2vw 0; color: #fff; font-size: 0.9vw; text-align: center; background-color: #000;}
  .portfolio-case-detail .case-content { clear: both; width: 100%; display: flex; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap;}
  .portfolio-case-detail .case-content img.pic-single { clear: both; width: 100%; height: auto;}
  .portfolio-case-detail .case-content .text-box { clear: both; width: 100%; padding: 0 0 0 1vw; margin: 2vw 0; color: #3b3b3b; font-size: 1vw; border-left: 8px #D80000 solid; box-sizing: border-box;}
  .portfolio-case-detail .case-content .text-box .line-mo { display: none;}
  .portfolio-case-detail .case-content img.pic-colx2 { width: calc(50% - 20px); margin: 0 10px 20px 10px;}
  .portfolio-case-detail .case-content img.pic-colx3 { width: calc(100% / 3 - 20px); margin: 0 10px 20px 10px;}


  section#portfolio-other-context { clear: both; width: 100%;}
  .page-portfolio-other-context { width: 100%; position: relative;}
  .page-portfolio-other-context img.bg-mo { display: none;}
  .page-portfolio-other-context img.bg { width: 100%; height: auto; position: relative; z-index: 1;}
  .page-portfolio-other-context .title { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 2;}
  .page-portfolio-other-context .title a { width: 100%; height: 100%; color: #fff; font-size: 2vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center; text-decoration: none; display: flex; justify-content: center; align-items: center;}
  .page-portfolio-other-context .title a:hover { color: #D80000;}

  .portfolio-goback-bar { clear: both; width: 100%; height: 3vw;}
  .portfolio-goback-bar a { width: 100%; height: 100%; color: #fff; font-size: 1.2vw; line-height: 1em; font-family: 'Noto Serif TC'; font-weight: 600; text-decoration: none; background-color: #000; display: flex; justify-content: center; align-items: center;}
  .portfolio-goback-bar a img.arrow { width: 0.7vw; height: auto; margin: 0 0.5vw 0 0;}
  .portfolio-goback-bar a:hover { background-color: #D80000;}


  section#portfolio-viewmore { clear: both; width: 100%; padding: 4vw 0; background-color: #fff;}
  

  /************ go to back ************/

  section#gotop { clear: both; width: 100%; padding: 2vw 2vw; box-sizing: border-box; background-color: #e7e7e7; display: flex; justify-content: flex-end;}
  #gotop-bt { width: 4.2vw; cursor: pointer; position: relative; display: inline-block;}
  #gotop-bt img.gotop-img-hover { width: 100%; height: auto; opacity: 0; z-index: 2; transition: opacity 0.8s ease;}
  #gotop-bt img.gotop-img { width: 100%; height: auto; opacity: 1; position: absolute; top: 0; left: 0; transition: opacity 0.8s ease;}
  #gotop-bt:hover img.gotop-img-hover { opacity: 1;}
  #gotop-bt:hover img.gotop-img { opacity: 0;}
  #gotop-bt .text { width: 100%; color: #3b3b3b; font-size: 1vw; font-weight: 500; text-align: center;}
 

  /************ footer ************/

  footer { clear: both; width: 100%; background-image: url("../images/footer_bg.jpg"); background-repeat: no-repeat; background-size: cover; background-position: left center;}

  .footer-content { clear: both; width: 100%; padding: 3vw 6.2vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center;}
  .footer-content .footer-logo { width: 15.3vw;}
  .footer-content .footer-logo img.logo { width: 9.6vw; height: auto; margin: 0 auto;}
  .footer-content .footer-logo .title { width: 100%; margin: 1vw 0 0 0; color: #fff; font-size: 1.3vw; font-weight: 600; text-align: center;}
  .footer-content .footer-infor { width: 38.6vw; padding: 0 8vw; display: flex; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap; box-sizing: border-box;}
  .footer-content .footer-infor .caption { width: 4.6vw; padding: 0.4vw 0; color: #8C704F; font-size: 0.9vw;}
  .footer-content .footer-infor .column { width: calc(100% - 4.6vw); padding: 0.3vw 0; color: #fff; font-size: 0.9vw;}
  .footer-content .footer-infor .column a { color: #fff; text-decoration: none;}
  .footer-content .footer-infor .column a:hover { border-bottom: 1px #fff solid;}
  .footer-content .footer-contact { width: 23.5vw; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; box-sizing: border-box;}
  .footer-content .footer-contact .qrcode { width: 6.5vw; margin: 0 1vw 0 0; height: auto;}
  .footer-content .footer-contact .qrcode img { width: 100%; height: auto;}
  .footer-content .footer-contact .line-text { width: calc(100% - 6.5vw - 1vw); color: #fff; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;}
  .footer-content .footer-contact .line-text .line { width: calc(50% - 2.5vw); height: 1px; background-image: url("../images/dot_w.png"); background-repeat: repeat-x; background-position: left center; display: block;}
  .footer-content .footer-contact .line-text .text { width: 5vw; margin: 0 auto; color: #fff; font-size: 1.4vw; font-weight: 700; text-align: center; line-height: 1em;}
  .footer-content .footer-contact .line-text .slogan { width: 100%; margin: 0.8vw 0 0 0; color: #fff; font-size: 1.3vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .footer-content .footer-contact .address-1 { clear: both; width: 100%; margin: 1.5vw 0 0 0;}
  .footer-content .footer-contact .address-2 { clear: both; width: 100%; margin: 0.3vw 0 0 0;}
  .footer-content .footer-contact .address-1 a, 
  .footer-content .footer-contact .address-2 a { width: 100%; padding: 0.3vw 1vw; color: #fff; font-size: 0.8vw; text-decoration: none; background-color: #8C704F; box-sizing: border-box; display: block;}
  .footer-content .footer-contact .address-1 a:hover, 
  .footer-content .footer-contact .address-2 a:hover { color: #bdbdbd;}
  .footer-copyright { clear: both; width: 100%; padding: 0.5vw 0; color: #fff; font-size: 0.7vw; text-align: center; background-color: #1a1a1a;}
  

}

@media screen and (min-width: 1024px) and (max-width: 1280px) {

  /************ header#hp + nav ************/

  #nav-menu-float-mo-box { display: none;}

  header#hp { clear: both; width: 100%; padding: 2.5vw 4vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center; position: fixed; top: 0; left: 0; z-index: 9;}
  header#hp .header-hp-logo { width: 10vw;}
  header#hp .header-hp-logo img { width: 5.9vw; height: auto;}
  header#hp nav#hp-mo { display: none;}
  header#hp nav#hp-pc { width: calc(100% - 10vw); display: flex; justify-content: flex-end;}
  header#hp nav#hp-pc ul.nav-menu { width: 24vw; padding: 0; margin: 0; box-sizing: border-box; background-color: #fff; list-style: none; display: flex; justify-content: center; align-items: center;}
  header#hp nav#hp-pc ul.nav-menu li { padding: 0; margin: 0; border-bottom: 2px #fff solid; box-sizing: border-box;}
  header#hp nav#hp-pc ul.nav-menu li a { padding: 1vw 1.5vw; color: #3b3b3b; font-size: 0.9vw; font-weight: 500; text-decoration: none; display: block; box-sizing: border-box;}
  header#hp nav#hp-pc ul.nav-menu li:hover a { color: #D80000;}
  header#hp nav#hp-pc ul.nav-menu li:hover { border-bottom: 2px #D80000 solid;}


  header#hp-fixed { clear: both; width: 100%; padding: 0 4vw; box-sizing: border-box; display: none; position: fixed; top: 0; z-index: 101;}
  header#hp-fixed .header-fixed-con { width: 100%; display: flex; justify-content: flex-start; align-items: center;}
  header#hp-fixed .header-hp-logo { width: 10vw; padding: 0.8vw 0; background-color: #000;}
  header#hp-fixed .header-hp-logo img { width: 5.9vw; height: auto; margin: 0 auto;}
  header#hp-fixed nav#hp-fixed-mo { display: none;}
  header#hp-fixed nav#hp-fixed-pc { width: calc(100% - 10vw); display: flex; justify-content: flex-end; align-items: flex-start;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu { width: 24vw; padding: 0; margin: 0; box-sizing: border-box; background-color: #000; list-style: none; display: flex; justify-content: center; align-items: center;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li { padding: 0; margin: 0; color: #fff; border-bottom: 2px #000 solid; box-sizing: border-box;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li a { padding: 1vw 1.5vw; color: #fff; font-size: 0.9vw; font-weight: 500; text-decoration: none; display: block; box-sizing: border-box;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li:hover a { color: #D80000;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li:hover { border-bottom: 2px #D80000 solid;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li.sel a { color: #D80000;}
  header#hp-fixed nav#hp-fixed-pc ul.nav-menu li.sel { border-bottom: 2px #D80000 solid;}


  /************ index-nav-banner ************/

  section#index-nav-banner { clear: both; width: 100%; background-color: #e7e7e7; position: relative;}
  .hp-banner-content { clear: both; width: 100%;}
  .hp-banner-content .block-right { width: 13.5vw; height: 19.8vw; background-color: rgba(255,255,255,0.3); display: block; position: fixed; top: 23vw; right: 0; z-index: 1;}
  .hp-banner-content .block-right-text { width: 18.9vw; color: #3b3b3b; font-size: 2.6vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: right; position: fixed; top: 35vw; right: 4vw; z-index: 2;}
  .hp-banner-content .scroll-text { width: 2vw; position: fixed; top: 36vw; left: 5.4vw; z-index: 1;}
  .hp-banner-content .scroll-text .text { width: 100%; color: #3b3b3b; font-size: 0.8vw; font-family: 'Noto Serif TC'; font-weight: 600; -webkit-writing-mode: vertical-lr; writing-mode: vertical-lr; display: flex; justify-content: center; align-items: center;}
  .hp-banner-content .scroll-text .line { width: 1px; height: 84px; margin: 0.5vw auto 0 auto; background-color: #3b3b3b; display: block;}
  .hp-banner-content .block-left { width: 16.8vw; height: 12.4vw; padding: 7.7vw 2.3vw 0 1.3vw; color: #3b3b3b; font-size: 0.8vw; font-family: 'Noto Serif TC'; font-weight: 600; background-color: rgba(255,255,255,0.3); display: block; box-sizing: border-box; position: fixed; top: 35vw; left: 13.8vw; z-index: 1;}  
  .zoom-section { height: 200vh; position: relative;}
  .sticky-wrapper { width: 100%; height: 94vh; display: flex; justify-content: center; align-items: center; position: sticky; top: 0; z-index: 8; overflow: hidden;}
  #zoom-img { width: 60%; height: 100%; object-fit: cover; object-position: center; transition: width 0.4s ease-out, height 0.4s ease-out;/*transition: width 1s cubic-bezier(0.165, 0.84, 0.44, 1);*/ will-change: width, height;}
  .hp-banner-slogan { width: 40vw; color: #fff; font-size: 1.8vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center; position: fixed; top: 21vw; left: calc(50% - 20vw); z-index: 9;}


  section#index-about { clear: both; width: 100%; background-color: #1a1a1a; display: flex; justify-content: flex-start; align-items: stretch;}
  .hp-about-col-left { width: 70%; padding: 0 15vw 0 18vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;}  
  .hp-sub-title { clear: both; width: 100%;}
  .hp-sub-title .en { width: 100%; display: flex; justify-content: flex-start; align-items: center;}
  .hp-sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-sub-title .en span { color: #fff; font-size: 1rem; line-height: 1em;}
  .hp-sub-title .cn { width: 100%; margin: 0 0 2vw 0; color: #fff; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600;}  
  .hp-about-col-left .intro { clear: both; width: 100%; margin: 0 0 1vw 0; color: #fff; font-size: 1.4rem; font-family: 'Noto Serif TC'; font-weight: 600;}
  .hp-about-col-left .text { clear: both; width: 100%; color: #fff; font-size: 1.1rem; line-height: 1.6em;}
  .hp-about-col-right { width: 30%; height: auto; overflow: hidden;}
  .hp-about-col-right img.img-mo { display: none;}
  .hp-about-col-right img.img-pc { width: 100%; height: 100%; object-fit: cover; object-position: center;}


  section#index-portfolio { clear: both; width: 100%; padding: 100px 0 40px 0; background-image: linear-gradient(to right, #fff 70%, #1a1a1a 30%); position: relative;}
  .hp-portfolio-title { clear: both; width: 100%; padding: 0 0 0 18vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center;}
  .hp-portfolio-title .sub-title { width: 250px;}
  .hp-portfolio-title .sub-title .en { width: 100%; display: flex; justify-content: flex-start; align-items: center;}
  .hp-portfolio-title .sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-portfolio-title .sub-title .en span { color: #1a1a1a; font-size: 1rem; line-height: 1em;}
  .hp-portfolio-title .sub-title .cn { width: 100%; margin: 0 0 2vw 0; color: #1a1a1a; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600;} 
  .hp-portfolio-title .slogan-text { width: calc(100% - 250px); padding: 0 0 2vw 0; color: #1a1a1a; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-shadow: 0px 0px 3px #fff,0px 0px 2px #fff,0px 0px 2px #fff,0px 0px 2px #fff;}
  .main-slider .slide-item a { text-decoration: none; color: inherit !important;}
  .main-slider .slide-item a .photo { width: 100%; height: 22vw; padding: 0 1vw; box-sizing: border-box;}
  .main-slider .slide-item a .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: filter 0.5s ease;}
  .main-slider .slide-item a:hover .photo img { filter: brightness(0.6);}
  .main-slider .slide-item .slide-title { width: 100%; padding: 0.5vw 1vw 0 1vw; color: #1a1a1a !important; font-size: 1vw; font-family: 'Noto Serif TC'; font-weight: 600; box-sizing: border-box; transition: color 0.3s ease; text-decoration: none;}
  .main-slider .slick-slide.on-right-side .slide-title { color: #ffffff !important; transition: color 0.1s linear;}
  .main-slider .slick-slide.on-right-side * { color: #ffffff !important; transition: color 0.1s linear;}
  .main-slider .slide-item a:hover .slide-title { color: #D80000 !important;}
  .main-slider .slide-item .portfolio-slide-title { width: 100%; padding: 0.5vw 1vw 0 1vw; color: #1a1a1a !important; font-size: 1vw; font-family: 'Noto Serif TC'; font-weight: 600; box-sizing: border-box; transition: color 0.3s ease; text-decoration: none;}
  .main-slider .slide-item a:hover .portfolio-slide-title { color: #D80000 !important;}
  .slider-controls { display: flex; align-items: center; justify-content: center; gap: 0.5vw; position: absolute; top: 6vw; right: 12vw; z-index: 2;}
  button#arrow-mo { display: none;}
  .slider-controls button { width: 1.5vw; height: 1.5vw; border: 0; background-color: transparent; cursor: pointer;}
  .slider-controls button img { width: 100%; height: auto;}
  .slider-controls .progress-wrapper { width: 9vw; height: 4px; background: #d1d1d1; position: relative;}
  .slider-controls .progress-bar { width: 0%; height: 100%; background: #D80000; transition: width 0.2s ease;}
  .slider-controls .counter { color: #fff; font-size: 0.8vw; display: flex; justify-content: flex-start; align-items: flex-end;}
  .slider-controls .counter .num-1 { padding: 0 0 0.4vw 0;}
  .slider-controls .counter .num-2 { padding: 0;}
  .slider-controls .counter span.current { color: #fff; font-size: 1vw;}
  .slider-controls .counter span.total { color: #5f5f5f;}
  .view-more-btn { clear: both; width: 9.2vw; margin: 4vw auto 2.5vw auto;}
  .view-more-btn a { width: 9.2vw; height: 9.2vw; color: #1a1a1a; font-size: 1.2vw; font-family: 'Noto Serif TC'; font-weight: 600; text-decoration: none; border-radius: 100%; border: 1px #1a1a1a solid; display: flex; justify-content: center; align-items: center;}
  .view-more-btn a:hover { color: #D80000; border: 1px #D80000 solid;}


  section#index-charges { clear: both; width: 100%; padding: 3vw 0 5vw 0; background-color: #e7e7e7;}
  .hp-charges-title { clear: both; width: 100%;}
  .hp-charges-title .sub-title { width: 100%;}
  .hp-charges-title .sub-title .en { width: 100%; display: flex; justify-content: center; align-items: center;}
  .hp-charges-title .sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-charges-title .sub-title .en span { color: #1a1a1a; font-size: 1rem; line-height: 1em;}
  .hp-charges-title .sub-title .cn { width: 100%; margin: 0 0 1vw 0; color: #1a1a1a; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .hp-charges-title .slogan-text { width: 100%; color: #1a1a1a; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .hp-charges-list-full { clear: both; width: 100%; margin: 4vw 0 0 0; border-top: 1px #000 solid; display: flex; justify-content: flex-start; align-items: stretch; flex-wrap: wrap;}
  .hp-charges-list-full .col-left { width: 50%; padding: 3vw 2vw 3vw 8vw; border-right: 1px #000 solid; border-bottom: 1px #000 solid; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center;}  
  .hp-charges-list-full .col-right { width: 50%; padding: 3vw 8vw 3vw 2vw; box-sizing: border-box; border-bottom: 1px #000 solid; display: flex; justify-content: flex-start; align-items: center;}  
  .hp-charges-list-full .col-full { width: 100%; padding: 3vw 8vw; box-sizing: border-box; border-bottom: 1px #000 solid; display: flex; justify-content: flex-start; align-items: center;}
  .hp-charges-list-full .col-left .num-title, 
  .hp-charges-list-full .col-right .num-title, 
  .hp-charges-list-full .col-full .num-title { width: 20vw; display: flex; justify-content: flex-start; align-items: flex-start;}
  .hp-charges-list-full .col-left .num-title .num, 
  .hp-charges-list-full .col-right .num-title .num, 
  .hp-charges-list-full .col-full .num-title .num { width: 5vw; color: #D80000; font-size: 1.2vw; font-weight: 500; line-height: 1em;}
  .hp-charges-list-full .col-left .num-title .title, 
  .hp-charges-list-full .col-right .num-title .title, 
  .hp-charges-list-full .col-full .num-title .title { width: calc(100% - 5vw);}
  .hp-charges-list-full .col-left .num-title .title span.big, 
  .hp-charges-list-full .col-right .num-title .title span.big, 
  .hp-charges-list-full .col-full .num-title .title span.big { font-size: 2.4vw; font-family: 'Noto Serif TC'; font-weight: 700; line-height: 1em;}
  .hp-charges-list-full .col-left .num-title .title span.small, 
  .hp-charges-list-full .col-right .num-title .title span.small, 
  .hp-charges-list-full .col-full .num-title .title span.small { padding: 0.8vw 0 0 0; font-size: 1.4vw; font-weight: 500; display: block;}
  .hp-charges-list-full .col-text-mo { display: none;}
  .hp-charges-list-full .col-left .text, 
  .hp-charges-list-full .col-right .text, 
  .hp-charges-list-full .col-full .text { width: calc(100% - 20vw); font-size: 1.4vw; line-height: 1.4em;}
  .hp-charges-list-full .col-left:hover.bg-1 { color: #fff; background-image: url("../images/hp_charges_list_bg_1.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-left:hover.bg-1 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-right:hover.bg-2 { color: #fff; background-image: url("../images/hp_charges_list_bg_2.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-right:hover.bg-2 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full:hover.bg-3 { color: #fff; background-image: url("../images/hp_charges_list_bg_3.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full:hover.bg-3 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full:hover.bg-4 { color: #fff; background-image: url("../images/hp_charges_list_bg_4.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full:hover.bg-4 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full:hover.bg-5 { color: #fff; background-image: url("../images/hp_charges_list_bg_5.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full:hover.bg-5 .num-title .num { color: #fff;}


  /************ header#page + nav ************/

  #nav-menu-float-mo-box { display: none;}

  header#page { clear: both; width: 100%; padding: 0 4vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center; position: fixed; top: 0; z-index: 101;}
  header#page .header-page-logo { width: 10vw; padding: 1vw 0; background-color: #1a1a1a;}
  header#page .header-page-logo img { width: 5.9vw; height: auto; margin: 0 auto;}
  header#page nav#page-mo { display: none;}
  header#page nav#page-pc { width: calc(100% - 10vw); display: flex; justify-content: flex-end; align-items: flex-start;}
  header#page nav#page-pc ul.nav-menu { width: 24vw; padding: 0; margin: 0; box-sizing: border-box; background-color: #1a1a1a; list-style: none; display: flex; justify-content: center; align-items: center;}
  header#page nav#page-pc ul.nav-menu li { padding: 0; margin: 0; color: #fff; border-bottom: 2px #000 solid; box-sizing: border-box;}
  header#page nav#page-pc ul.nav-menu li a { padding: 1vw 1.5vw; color: #fff; font-size: 0.9vw; font-weight: 500; text-decoration: none; display: block; box-sizing: border-box;}
  header#page nav#page-pc ul.nav-menu li:hover a { color: #D80000;}
  header#page nav#page-pc ul.nav-menu li:hover { border-bottom: 2px #D80000 solid;}
  header#page nav#page-pc ul.nav-menu li.sel a { color: #D80000;}
  header#page nav#page-pc ul.nav-menu li.sel { border-bottom: 2px #D80000 solid;}


  /************ section page-portfolio ************/

  section#page-portfolio-banner { clear: both; width: 100%; height: 23vw; padding: 0; background-image: linear-gradient(to right, #1a1a1a 80%, #e7e7e7 20%); position: relative;}

  .page-banner-content { width: 100%; display: flex; justify-content: flex-start; align-items: flex-start;}
  .page-banner-content .col-left { width: calc(100% - 63.2vw); padding: 10vw 0 0 17.7vw; box-sizing: border-box;}
  .page-banner-content .col-left .page-portfolio-title { width: 100%;}
  .page-banner-content .col-left .page-portfolio-title .en { width: 100%; color: #D80000; font-size: 1rem;}
  .page-banner-content .col-left .page-portfolio-title .cn { width: 100%; color: #fff; font-size: 2.4rem; font-family: 'Noto Serif TC'; font-weight: 600;}
  .page-banner-content .col-right { width: 63.2vw; position: relative;}
  .page-banner-content .col-right img.pic-mo { display: none;}
  .page-banner-content .col-right img.pic-pc { width: 100%; height: auto; position: relative; z-index: 1;}
  .page-banner-content .col-right .slogan-text { width: 100%; padding: 10.6vw 0 0 8.2vw; color: #fff; font-size: 1.4vw; font-family: 'Noto Serif TC'; font-weight: 600; box-sizing: border-box; position: absolute; top: 0; left: 0; z-index: 2;}


  section#page-portfolio-list { clear: both; width: 100%; padding: 80px 10vw; box-sizing: border-box; background-color: #e7e7e7;}
  .portfolio-sort-list-mo { display: none;}
  ul.portfolio-sort-list { width: 100%; padding: 0; margin: 0 0 80px 0; list-style: none; display: flex; justify-content: flex-start; align-items: center;}
  ul.portfolio-sort-list li { width: 7vw; padding: 0 0.3vw; margin: 0;}
  ul.portfolio-sort-list li a { width: 100%; padding: 0.5vw 0; color: #1a1a1a; font-size: 1vw; text-align: center; text-decoration: none; border-radius: 40px; background-color: #d9d9d9; display: block;}
  ul.portfolio-sort-list li a:hover { background-color: #ccc;}
  ul.portfolio-sort-list li a.sel { color: #fff; background-color: #D80000;}
  .portfolio-case-odd, 
  .portfolio-case-even { clear: both; width: 100%; margin: 0 0 60px 0;}
  .portfolio-case-odd a, 
  .portfolio-case-even a { width: 100%; padding: 3vw 0 0 0; text-decoration: none; display: block; position: relative;}
  .portfolio-case-odd a .mask-more, 
  .portfolio-case-even a .mask-more { width: 100%; height: 100%; background-color: rgba(0,0,0,0.7); display: flex; justify-content: center; align-items: center; position: absolute; top: 0; left: 0; z-index: 3; opacity: 0; transition: opacity 0.6s ease;}
  .portfolio-case-odd a .mask-more .view, 
  .portfolio-case-even a .mask-more .view { width: 9.3vw; height: 9.3vw; color: #fff; font-size: 1.1vw; font-family: 'Noto Serif TC'; font-weight: 600; border-radius: 100%; border: 1px #fff solid; display: flex; justify-content: center; align-items: center; opacity: 0; transition: opacity 0.6s ease;}
  .portfolio-case-odd a .photo { width: 34.8vw; height: 23.5vw; overflow: hidden; position: absolute; top: 0; left: 0; z-index: 2;}
  .portfolio-case-odd a .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center;}
  .portfolio-case-odd a .content { width: 95%; min-height: 23vw; padding: 6vw 0 2vw 34.8vw; margin: 0 0 0 5%; box-sizing: border-box; background-image: linear-gradient(to right, #fff, #e7e7e7); position: relative;}
  .portfolio-case-odd a .content .case-num { width: 100%; color: #d4d2d2; font-size: 2.4vw; font-weight: 700; text-align: right; position: absolute; top: -2vw; right: 0; z-index: 2;}
  .portfolio-case-odd a .content .case-con-box, 
  .portfolio-case-even a .content .case-con-box { width: 100%; padding: 2vw 0 0 0; border-top: 1px #bdbdbd solid;}
  .portfolio-case-odd a .content .case-con-box .case-sort, 
  .portfolio-case-even a .content .case-con-box .case-sort { width: 6vw; padding: 0.2vw 0; margin: 0 0 2vw 0; color: #fff; font-size: 0.9vw; text-align: center; background-color: #000; transition: 0.6s;}
  .portfolio-case-odd a .content .case-con-box .case-title, 
  .portfolio-case-even a .content .case-con-box .case-title { width: 100%; padding: 0 0 1vw 0; color: #1a1a1a; font-size: 1.2vw; font-family: 'Noto Serif TC'; font-weight: 600; transition: 0.6s;}
  .portfolio-case-odd a .content .case-con-box .case-intro, 
  .portfolio-case-even a .content .case-con-box .case-intro { width: 100%; color: #1a1a1a; font-size: 0.9vw; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;}
  .portfolio-case-odd a:hover .mask-more, 
  .portfolio-case-even a:hover .mask-more { opacity: 0.7;}
  .portfolio-case-odd a:hover .mask-more .view, 
  .portfolio-case-even a:hover .mask-more .view { opacity: 1;}
  .portfolio-case-odd a:hover .content .case-con-box .case-sort, 
  .portfolio-case-even a:hover .content .case-con-box .case-sort { color: #fff; background-color: #D80000;}
  .portfolio-case-odd a:hover .content .case-con-box .case-title, 
  .portfolio-case-even a:hover .content .case-con-box .case-title { color: #D80000;}
  .portfolio-case-even a .photo { width: 34.8vw; height: 23.5vw; overflow: hidden; position: absolute; top: 0; right: 0; z-index: 2;}
  .portfolio-case-even a .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center;}
  .portfolio-case-even a .content { width: 95%; min-height: 23vw; padding: 6vw 34.8vw 2vw 0; margin: 0 5% 0 0; box-sizing: border-box; background-image: linear-gradient(to right, #e7e7e7, #fff); position: relative;}
  .portfolio-case-even a .content .case-num { width: 100%; color: #d4d2d2; font-size: 2.4vw; font-weight: 700; text-align: left; position: absolute; top: -2vw; right: 0; z-index: 2;}


  ul#page-num { clear: both; width: 100%; padding: 0; margin: 4vw 0 0 0; list-style: none; display: flex; justify-content: center; align-items: center; flex-wrap: wrap;}
  ul#page-num li { padding: 0.5vw; margin: 0;}
  ul#page-num li a { width: 2.25vw; height: 2.25vw; color: #1a1a1a; font-size: 0.9vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center; text-decoration: none; border-radius: 100%; display: flex; justify-content: center; align-items: center;}
  ul#page-num li a img.arrow { width: 0.7vw; height: auto;}
  ul#page-num li a:hover { background-color: #ccc;}
  ul#page-num li a.sel { color: #fff; background-color: #D80000;}


  /************ section page-portfolio-detail ************/

  section#page-portfolio-detail { clear: both; width: 100%; padding: 80px 10vw; box-sizing: border-box; background-color: #e7e7e7;}
  .portfolio-case-detail-mo { display: none;}
  .portfolio-case-detail { clear: both; width: 100%; margin: -80px 0 0 0;}
  .portfolio-case-detail .case-num-mo { display: none;}
  .portfolio-case-detail .case-num { width: 100%; color: #d4d2d2; font-size: 2.4vw; font-weight: 700; text-align: right; position: relative; top: 4vw;}
  .portfolio-case-detail .case-title { width: 100%; padding: 0 0 1vw 0; color: #1a1a1a; font-size: 2vw; font-family: 'Noto Serif TC'; font-weight: 600;}
  .portfolio-case-detail .case-sort { width: 5vw; padding: 0.2vw 0; margin: 0 0 2vw 0; color: #fff; font-size: 0.9vw; text-align: center; background-color: #000;}
  .portfolio-case-detail .case-content { clear: both; width: 100%; display: flex; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap;}
  .portfolio-case-detail .case-content img.pic-single { clear: both; width: 100%; height: auto;}
  .portfolio-case-detail .case-content .text-box { clear: both; width: 100%; padding: 0 0 0 1vw; margin: 2vw 0; color: #3b3b3b; font-size: 1vw; border-left: 8px #D80000 solid; box-sizing: border-box;}
  .portfolio-case-detail .case-content .text-box .line-mo { display: none;}
  .portfolio-case-detail .case-content img.pic-colx2 { width: calc(50% - 20px); margin: 0 10px 20px 10px;}
  .portfolio-case-detail .case-content img.pic-colx3 { width: calc(100% / 3 - 20px); margin: 0 10px 20px 10px;}


  section#portfolio-other-context { clear: both; width: 100%;}
  .page-portfolio-other-context { width: 100%; position: relative;}
  .page-portfolio-other-context img.bg-mo { display: none;}
  .page-portfolio-other-context img.bg { width: 100%; height: auto; position: relative; z-index: 1;}
  .page-portfolio-other-context .title { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 2;}
  .page-portfolio-other-context .title a { width: 100%; height: 100%; color: #fff; font-size: 2vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center; text-decoration: none; display: flex; justify-content: center; align-items: center;}
  .page-portfolio-other-context .title a:hover { color: #D80000;}

  .portfolio-goback-bar { clear: both; width: 100%; height: 3vw;}
  .portfolio-goback-bar a { width: 100%; height: 100%; color: #fff; font-size: 1.2vw; line-height: 1em; font-family: 'Noto Serif TC'; font-weight: 600; text-decoration: none; background-color: #000; display: flex; justify-content: center; align-items: center;}
  .portfolio-goback-bar a img.arrow { width: 0.7vw; height: auto; margin: 0 0.5vw 0 0;}
  .portfolio-goback-bar a:hover { background-color: #D80000;}


  section#portfolio-viewmore { clear: both; width: 100%; padding: 4vw 0; background-color: #fff;}


  /************ go to back ************/

  section#gotop { clear: both; width: 100%; padding: 2vw 2vw; box-sizing: border-box; background-color: #e7e7e7; display: flex; justify-content: flex-end;}
  #gotop-bt { width: 4.2vw; cursor: pointer; position: relative; display: inline-block;}
  #gotop-bt img.gotop-img-hover { width: 100%; height: auto; opacity: 0; z-index: 2; transition: opacity 0.8s ease;}
  #gotop-bt img.gotop-img { width: 100%; height: auto; opacity: 1; position: absolute; top: 0; left: 0; transition: opacity 0.8s ease;}
  #gotop-bt:hover img.gotop-img-hover { opacity: 1;}
  #gotop-bt:hover img.gotop-img { opacity: 0;}
  #gotop-bt .text { width: 100%; color: #3b3b3b; font-size: 1vw; font-weight: 500; text-align: center;}


  /************ footer ************/

  footer { clear: both; width: 100%; background-image: url("../images/footer_bg.jpg"); background-repeat: no-repeat; background-size: cover; background-position: left center;}

  .footer-content { clear: both; width: 100%; padding: 3vw 6.2vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center;}
  .footer-content .footer-logo { width: 15.3vw;}
  .footer-content .footer-logo img.logo { width: 9.6vw; height: auto; margin: 0 auto;}
  .footer-content .footer-logo .title { width: 100%; margin: 1vw 0 0 0; color: #fff; font-size: 1.3vw; font-weight: 600; text-align: center;}
  .footer-content .footer-infor { width: 38.6vw; padding: 0 8vw; display: flex; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap; box-sizing: border-box;}
  .footer-content .footer-infor .caption { width: 4.6vw; padding: 0.4vw 0; color: #8C704F; font-size: 0.9vw;}
  .footer-content .footer-infor .column { width: calc(100% - 4.6vw); padding: 0.3vw 0; color: #fff; font-size: 0.9vw;}
  .footer-content .footer-infor .column a { color: #fff; text-decoration: none;}
  .footer-content .footer-infor .column a:hover { border-bottom: 1px #fff solid;}
  .footer-content .footer-contact { width: 23.5vw; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; box-sizing: border-box;}
  .footer-content .footer-contact .qrcode { width: 6.5vw; margin: 0 1vw 0 0; height: auto;}
  .footer-content .footer-contact .qrcode img { width: 100%; height: auto;}
  .footer-content .footer-contact .line-text { width: calc(100% - 6.5vw - 1vw); color: #fff; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;}
  .footer-content .footer-contact .line-text .line { width: calc(50% - 2.5vw); height: 1px; background-image: url("../images/dot_w.png"); background-repeat: repeat-x; background-position: left center; display: block;}
  .footer-content .footer-contact .line-text .text { width: 5vw; margin: 0 auto; color: #fff; font-size: 1.4vw; font-weight: 700; text-align: center; line-height: 1em;}
  .footer-content .footer-contact .line-text .slogan { width: 100%; margin: 0.8vw 0 0 0; color: #fff; font-size: 1.3vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .footer-content .footer-contact .address-1 { clear: both; width: 100%; margin: 1.5vw 0 0 0;}
  .footer-content .footer-contact .address-2 { clear: both; width: 100%; margin: 0.3vw 0 0 0;}
  .footer-content .footer-contact .address-1 a, 
  .footer-content .footer-contact .address-2 a { width: 100%; padding: 0.3vw 1vw; color: #fff; font-size: 0.8vw; text-decoration: none; background-color: #8C704F; box-sizing: border-box; display: block;}
  .footer-content .footer-contact .address-1 a:hover, 
  .footer-content .footer-contact .address-2 a:hover { color: #bdbdbd;}
  .footer-copyright { clear: both; width: 100%; padding: 0.5vw 0; color: #fff; font-size: 0.7vw; text-align: center; background-color: #1a1a1a;}


}

@media screen and (min-width: 768px) and (max-width: 1024px) {

  /************ header#hp + nav ************/

  header#hp { clear: both; width: 100%; padding: 4vw 4vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center; position: fixed; top: 0; left: 0; z-index: 9;}
  header#hp .header-hp-logo { width: 20vw;}
  header#hp .header-hp-logo img { width: 12vw; height: auto;}
  header#hp nav#hp-pc { display: none;}
  header#hp nav#hp-mo { width: calc(100% - 20vw); display: flex; justify-content: flex-end;}
  header#hp nav#hp-mo .nav-icon { width: 6vw;}
  header#hp nav#hp-mo .nav-icon img { width: 100%; height: auto;} 
  
  #nav-menu-float-mo-box { width: 100%; height: 100vh; background-image: url("../images/nav_menu_mo_bg.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center top; display: none; justify-content: center; align-items: center; position: fixed; top: 0; left: 0; z-index: 999;}
  #nav-menu-float-mo-box .logo-icon-bar { width: 100%; padding: 0 50px; box-sizing: border-box; display: flex; justify-content: space-between; align-items: center; position: absolute; top: 50px; left: 0; z-index: 9;}
  #nav-menu-float-mo-box .logo-icon-bar .logo-mo { width: 117px;}
  #nav-menu-float-mo-box .logo-icon-bar .logo-mo img { width: 100%; height: auto;}
  #nav-menu-float-mo-box .logo-icon-bar .nav-close { width: 58px; height: auto;}
  #nav-menu-float-mo-box .logo-icon-bar .nav-close img { width: 100%; height: auto;}
  #nav-menu-float-mo-box ul.nav-menu-mo { width: 80%; padding: 0; margin: 0; box-sizing: border-box; list-style: none; display: block; position: relative; z-index: 1;}
  #nav-menu-float-mo-box ul.nav-menu-mo li { width: 100%; padding: 80px 0; margin: 0; border-bottom: 1px #fff solid; box-sizing: border-box;}
  #nav-menu-float-mo-box ul.nav-menu-mo li:last-child { border-bottom: 0;}
  #nav-menu-float-mo-box ul.nav-menu-mo li a { width: 100%; color: #fff; font-size: 1.4rem; font-weight: 500; text-align: center; text-decoration: none; display: block;}


  header#hp-fixed { clear: both; width: 100%; padding: 0 4vw; box-sizing: border-box; display: none; position: fixed; top: 0; z-index: 101;}
  header#hp-fixed .header-fixed-con { width: 100%; display: flex; justify-content: flex-start; align-items: center;}
  header#hp-fixed .header-hp-logo { width: 20vw; padding: 1.5vw 0; background-color: #000;}
  header#hp-fixed .header-hp-logo img { width: 12vw; height: auto; margin: 0 auto;}
  header#hp-fixed nav#hp-fixed-pc { display: none;}  
  header#hp-fixed nav#hp-fixed-mo { width: calc(100% - 20vw); display: flex; justify-content: flex-end; align-items: flex-start;}
  header#hp-fixed nav#hp-fixed-mo .nav-icon { width: 10vw; padding: 2vw 0; background-color: #000;}
  header#hp-fixed nav#hp-fixed-mo .nav-icon img { width: 6vw; height: auto; margin: 0 auto;}
  

  /************ index-nav-banner ************/

  section#index-nav-banner { clear: both; width: 100%; box-sizing: border-box; background-color: #e7e7e7; position: relative;}
  .hp-banner-content { clear: both; width: 100%;}
  .hp-banner-content .block-right { width: 36vw; height: 17vw; background-color: rgba(255,255,255,0.4); display: block; position: fixed; bottom: 5vw; right: 0; z-index: 4;}
  .hp-banner-content .block-right-text { width: 24vw; color: #3b3b3b; font-size: 3vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: right; position: fixed; bottom: 7vw; right: 4vw; z-index: 5;}
  .hp-banner-content .scroll-text { width: 2vw; position: fixed; bottom: 3vw; left: 5vw; z-index: 1;}
  .hp-banner-content .scroll-text .text { width: 100%; color: #3b3b3b; font-size: 2.4vw; font-family: 'Noto Serif TC'; font-weight: 600; -webkit-writing-mode: vertical-lr; writing-mode: vertical-lr; display: flex; justify-content: center; align-items: center;}
  .hp-banner-content .scroll-text .line { width: 1px; height: 84px; margin: 1vw auto 0 auto; background-color: #3b3b3b; display: block;}
  .hp-banner-content .block-left { width: 40vw; padding: 3vw 4vw; color: #3b3b3b; font-size: 2.2vw; font-family: 'Noto Serif TC'; font-weight: 600; background-color: rgba(255,255,255,0.4); display: block; box-sizing: border-box; position: fixed; top: 15vw; left: 0; z-index: 4;}  
  .zoom-section { height: 200vh; position: relative;}
  .sticky-wrapper { width: 100%; height: 100vh; display: flex; justify-content: center; align-items: flex-end; position: sticky; top: 0; z-index: 3; overflow: hidden;}
  #zoom-img { width: 45%; height: 90vh; max-height: 100%; object-fit: cover; object-position: center; transition: width 0.4s ease-out, height 0.4s ease-out;/*transition: width 1s cubic-bezier(0.165, 0.84, 0.44, 1);*/ will-change: width, height;}
  .hp-banner-slogan { width: 40vw; color: #fff; font-size: 2.4vw; line-height: 2em; font-family: 'Noto Serif TC'; font-weight: 600; -webkit-writing-mode: vertical-lr; writing-mode: vertical-lr; display: flex; justify-content: flex-start; align-items: center; position: fixed; top: 24vw; left: calc(50% - 20vw); z-index: 9;}


  section#index-about { clear: both; width: 100%; background-color: #1a1a1a; display: flex; justify-content: flex-start; align-items: stretch;}
  .hp-about-col-left { width: 65%; padding: 10vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;}  
  .hp-sub-title { clear: both; width: 100%;}
  .hp-sub-title .en { width: 100%; display: flex; justify-content: flex-start; align-items: center;}
  .hp-sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-sub-title .en span { color: #fff; font-size: 1rem; line-height: 1em;}
  .hp-sub-title .cn { width: 100%; margin: 0 0 2vw 0; color: #fff; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600;}  
  .hp-about-col-left .intro { clear: both; width: 100%; margin: 0 0 1vw 0; color: #fff; font-size: 1.4rem; font-family: 'Noto Serif TC'; font-weight: 600;}
  .hp-about-col-left .text { clear: both; width: 100%; color: #fff; font-size: 1.1rem; line-height: 1.6em;}
  .hp-about-col-right { width: 35%; height: auto; overflow: hidden;}
  .hp-about-col-right img.img-mo { display: none;}
  .hp-about-col-right img.img-pc { width: 100%; height: 100%; object-fit: cover; object-position: center;}


  section#index-portfolio { clear: both; width: 100%; padding: 100px 0 40px 0; background-image: linear-gradient(to right, #fff 70%, #1a1a1a 30%); position: relative;}
  .hp-portfolio-title { clear: both; width: 100%; padding: 0 0 0 10vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center;}
  .hp-portfolio-title .sub-title { width: 180px;}
  .hp-portfolio-title .sub-title .en { width: 100%; display: flex; justify-content: flex-start; align-items: center;}
  .hp-portfolio-title .sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-portfolio-title .sub-title .en span { color: #1a1a1a; font-size: 1rem; line-height: 1em;}
  .hp-portfolio-title .sub-title .cn { width: 100%; margin: 0 0 2vw 0; color: #1a1a1a; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600;} 
  .hp-portfolio-title .slogan-text { width: calc(100% - 180px); padding: 0 0 2vw 0; color: #1a1a1a; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-shadow: 0px 0px 3px #fff,0px 0px 2px #fff,0px 0px 2px #fff,0px 0px 2px #fff;}
  .main-slider .slide-item a { text-decoration: none; color: inherit !important;}
  .main-slider .slide-item a .photo { width: 100%; height: 22vw; padding: 0 1vw; box-sizing: border-box;}
  .main-slider .slide-item a .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: filter 0.5s ease;}
  .main-slider .slide-item a:active .photo img { filter: brightness(0.6);}
  .main-slider .slide-item .slide-title { width: 100%; padding: 0.5vw 1vw 0 1vw; color: #1a1a1a !important; font-size: 2vw; font-family: 'Noto Serif TC'; font-weight: 600; box-sizing: border-box; transition: color 0.3s ease; text-decoration: none;}
  .main-slider .slick-slide.on-right-side .slide-title { color: #ffffff !important; transition: color 0.1s linear;}
  .main-slider .slick-slide.on-right-side * { color: #ffffff !important; transition: color 0.1s linear;}
  .main-slider .slide-item a:active .slide-title { color: #D80000 !important;}
  .main-slider .slide-item .portfolio-slide-title { width: 100%; padding: 0.5vw 1vw 0 1vw; color: #1a1a1a !important; font-size: 2vw; font-family: 'Noto Serif TC'; font-weight: 600; box-sizing: border-box; transition: color 0.3s ease; text-decoration: none;}
  .main-slider .slide-item a:active .portfolio-slide-title { color: #D80000 !important;}
  .slider-controls { display: flex; align-items: center; justify-content: center; gap: 0.5vw; position: absolute; top: 6vw; right: 6vw; z-index: 2;}
  button#arrow-mo { display: none;}
  .slider-controls button { width: 4vw; height: 4vw; border: 0; background-color: transparent; cursor: pointer;}
  .slider-controls button img { width: 100%; height: auto;}
  .slider-controls .progress-wrapper { width: 14vw; height: 4px; background: #d1d1d1; position: relative;}
  .slider-controls .progress-bar { width: 0%; height: 100%; background: #D80000; transition: width 0.2s ease;}
  .slider-controls .counter { color: #fff; font-size: 1.6vw; display: flex; justify-content: flex-start; align-items: flex-end;}
  .slider-controls .counter .num-1 { padding: 0 0 1vw 0;}
  .slider-controls .counter .num-2 { padding: 0;}
  .slider-controls .counter span.current { color: #fff; font-size: 1.8vw;}
  .slider-controls .counter span.total { color: #5f5f5f;}
  .view-more-btn { clear: both; width: 14vw; margin: 8vw auto 5vw auto;}
  .view-more-btn a { width: 14vw; height: 14vw; color: #1a1a1a; font-size: 1.6vw; font-family: 'Noto Serif TC'; font-weight: 600; text-decoration: none; border-radius: 100%; border: 1px #1a1a1a solid; display: flex; justify-content: center; align-items: center;}
  .view-more-btn a:active { color: #D80000; border: 1px #D80000 solid;}


  section#index-charges { clear: both; width: 100%; padding: 60px 0 50px 0; background-color: #e7e7e7;}
  .hp-charges-title { clear: both; width: 100%;}
  .hp-charges-title .sub-title { width: 100%;}
  .hp-charges-title .sub-title .en { width: 100%; display: flex; justify-content: center; align-items: center;}
  .hp-charges-title .sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-charges-title .sub-title .en span { color: #1a1a1a; font-size: 1rem; line-height: 1em;}
  .hp-charges-title .sub-title .cn { width: 100%; margin: 0 0 1vw 0; color: #1a1a1a; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .hp-charges-title .slogan-text { width: 100%; color: #1a1a1a; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .hp-charges-list-full { clear: both; width: 100%; margin: 6vw 0 0 0; border-top: 1px #000 solid; display: flex; justify-content: flex-start; align-items: stretch; flex-wrap: wrap;}
  .hp-charges-list-full .col-left { width: 50%; padding: 3vw 2vw 3vw 2vw; border-right: 1px #000 solid; border-bottom: 1px #000 solid; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center;}  
  .hp-charges-list-full .col-right { width: 50%; padding: 3vw 2vw 3vw 2vw; box-sizing: border-box; border-bottom: 1px #000 solid; display: flex; justify-content: flex-start; align-items: center;}  
  .hp-charges-list-full .col-full { width: 100%; padding: 3vw 2vw; box-sizing: border-box; border-bottom: 1px #000 solid; display: flex; justify-content: flex-start; align-items: center;}
  .hp-charges-list-full .col-left .num-title, 
  .hp-charges-list-full .col-right .num-title, 
  .hp-charges-list-full .col-full .num-title { width: 26vw; display: flex; justify-content: flex-start; align-items: flex-start;}
  .hp-charges-list-full .col-left .num-title .num, 
  .hp-charges-list-full .col-right .num-title .num, 
  .hp-charges-list-full .col-full .num-title .num { width: 6vw; color: #D80000; font-size: 1.6vw; font-weight: 500; line-height: 1em;}
  .hp-charges-list-full .col-left .num-title .title, 
  .hp-charges-list-full .col-right .num-title .title, 
  .hp-charges-list-full .col-full .num-title .title { width: calc(100% - 6vw);}
  .hp-charges-list-full .col-left .num-title .title span.big, 
  .hp-charges-list-full .col-right .num-title .title span.big, 
  .hp-charges-list-full .col-full .num-title .title span.big { font-size: 3.4vw; font-family: 'Noto Serif TC'; font-weight: 700; line-height: 1em;}
  .hp-charges-list-full .col-left .num-title .title span.small, 
  .hp-charges-list-full .col-right .num-title .title span.small, 
  .hp-charges-list-full .col-full .num-title .title span.small { padding: 0.8vw 0 0 0; font-size: 1.8vw; font-weight: 500; display: block;}
  .hp-charges-list-full .col-text-mo { display: none;}
  .hp-charges-list-full .col-left .text, 
  .hp-charges-list-full .col-right .text, 
  .hp-charges-list-full .col-full .text { width: calc(100% - 26vw); font-size: 1.8vw; line-height: 1.4em;}
  .hp-charges-list-full .col-left:hover.bg-1 { color: #fff; background-image: url("../images/hp_charges_list_bg_1.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-left:hover.bg-1 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-right:hover.bg-2 { color: #fff; background-image: url("../images/hp_charges_list_bg_2.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-right:hover.bg-2 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full:hover.bg-3 { color: #fff; background-image: url("../images/hp_charges_list_bg_3.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full:hover.bg-3 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full:hover.bg-4 { color: #fff; background-image: url("../images/hp_charges_list_bg_4.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full:hover.bg-4 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full:hover.bg-5 { color: #fff; background-image: url("../images/hp_charges_list_bg_5.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full:hover.bg-5 .num-title .num { color: #fff;}


  /************ header#page + nav ************/

  #nav-menu-float-mo-box { display: none;}

  header#page { clear: both; width: 100%; padding: 0 4vw; box-sizing: border-box; position: fixed; display: flex; justify-content: flex-start; align-items: center; top: 0; z-index: 101;}
  header#page .header-page-logo { width: 20vw; padding: 2vw 0; background-color: #1a1a1a;}
  header#page .header-page-logo img { width: 12vw; height: auto; margin: 0 auto;}
  header#page nav#page-pc { display: none;}
  header#page nav#page-mo { width: calc(100% - 20vw); display: flex; justify-content: flex-end; align-items: flex-start;}
  header#page nav#page-mo .nav-icon { width: 10vw; padding: 2vw 0; background-color: #1a1a1a;}
  header#page nav#page-mo .nav-icon img { width: 6vw; height: auto; margin: 0 auto;}


  /************ section page-portfolio ************/

  section#page-portfolio-banner { clear: both; width: 100%; height: 40vw; padding: 0; background-image: linear-gradient(to right, #1a1a1a 80%, #e7e7e7 20%); position: relative;}

  .page-banner-content { width: 100%; display: flex; justify-content: flex-start; align-items: flex-start;}
  .page-banner-content .col-left { width: calc(100% - 60vw); padding: 20vw 0 0 10vw; box-sizing: border-box;}
  .page-banner-content .col-left .page-portfolio-title { width: 100%;}
  .page-banner-content .col-left .page-portfolio-title .en { width: 100%; color: #D80000; font-size: 1rem;}
  .page-banner-content .col-left .page-portfolio-title .cn { width: 100%; color: #fff; font-size: 2.4rem; font-family: 'Noto Serif TC'; font-weight: 600;}
  .page-banner-content .col-right { width: 60vw; height: 34vw; overflow: hidden; position: relative;}
  .page-banner-content .col-right img.pic-mo { display: none;}
  .page-banner-content .col-right img.pic-pc { width: 100%; height: 100%; object-fit: cover; object-fit: center; position: relative; z-index: 1;}
  .page-banner-content .col-right .slogan-text { width: 100%; padding: 20vw 0 0 8.2vw; color: #fff; font-size: 2vw; font-family: 'Noto Serif TC'; font-weight: 600; box-sizing: border-box; position: absolute; top: 0; left: 0; z-index: 2;}


  section#page-portfolio-list { clear: both; width: 100%; padding: 80px 4vw; box-sizing: border-box; background-color: #e7e7e7;}
  .portfolio-sort-list-mo { display: none;}
  ul.portfolio-sort-list { width: 100%; padding: 0; margin: 0 0 80px 0; list-style: none; display: flex; justify-content: flex-start; align-items: center;}
  ul.portfolio-sort-list li { width: 14vw; padding: 0 0.5vw; margin: 0;}
  ul.portfolio-sort-list li a { width: 100%; padding: 0.8vw 0; color: #1a1a1a; font-size: 2vw; text-align: center; text-decoration: none; border-radius: 40px; background-color: #d9d9d9; display: block;}
  ul.portfolio-sort-list li a:active { background-color: #ccc;}
  ul.portfolio-sort-list li a.sel { color: #fff; background-color: #D80000;}
  .portfolio-case-odd, 
  .portfolio-case-even { clear: both; width: 100%; margin: 0 0 60px 0;}
  .portfolio-case-odd a, 
  .portfolio-case-even a { width: 100%; padding: 3vw 0 0 0; text-decoration: none; display: block; position: relative; transition: 0.5s;}
  .portfolio-case-odd a .mask-more, 
  .portfolio-case-even a .mask-more { width: 100%; height: 100%; background-color: rgba(0,0,0,0.7); display: none; justify-content: center; align-items: center; position: absolute; top: 0; left: 0; z-index: 3; transition: 0.5s;}
  .portfolio-case-odd a .mask-more .view, 
  .portfolio-case-even a .mask-more .view { width: 9.3vw; height: 9.3vw; color: #fff; font-size: 1.1vw; font-family: 'Noto Serif TC'; font-weight: 600; border-radius: 100%; border: 1px #fff solid; display: none; justify-content: center; align-items: center;}
  .portfolio-case-odd a .photo { width: 34.8vw; height: 23.5vw; overflow: hidden; position: absolute; top: 0; left: 0; z-index: 2;}
  .portfolio-case-odd a .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center;}
  .portfolio-case-odd a .content { width: 95%; min-height: 23vw; padding: 6vw 0 2vw 34.8vw; margin: 0 0 0 5%; box-sizing: border-box; background-image: linear-gradient(to right, #fff, #e7e7e7); position: relative;}
  .portfolio-case-odd a .content .case-num { width: 100%; color: #d4d2d2; font-size: 3.4vw; font-weight: 700; text-align: right; position: absolute; top: -3vw; right: 0; z-index: 2;}
  .portfolio-case-odd a .content .case-con-box, 
  .portfolio-case-even a .content .case-con-box { width: 100%; padding: 2vw 0 0 0; border-top: 1px #bdbdbd solid;}
  .portfolio-case-odd a .content .case-con-box .case-sort, 
  .portfolio-case-even a .content .case-con-box .case-sort { width: 10vw; padding: 0.3vw 0; margin: 0 0 2vw 0; color: #fff; font-size: 1.6vw; text-align: center; background-color: #000; transition: 0.5s;}
  .portfolio-case-odd a .content .case-con-box .case-title, 
  .portfolio-case-even a .content .case-con-box .case-title { width: 100%; padding: 0 0 1vw 0; color: #1a1a1a; font-size: 2.2vw; font-family: 'Noto Serif TC'; font-weight: 600; transition: 0.5s;}
  .portfolio-case-odd a .content .case-con-box .case-intro, 
  .portfolio-case-even a .content .case-con-box .case-intro { width: 100%; color: #1a1a1a; font-size: 1.4vw; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;}
  .portfolio-case-odd a:active .mask-more, 
  .portfolio-case-even a:active .mask-more { display: flex;}
  .portfolio-case-odd a:active .mask-more .view, 
  .portfolio-case-even a:active .mask-more .view { display: flex;}
  .portfolio-case-odd a:active .content .case-con-box .case-sort, 
  .portfolio-case-even a:active .content .case-con-box .case-sort { color: #fff; background-color: #D80000;}
  .portfolio-case-odd a:active .content .case-con-box .case-title, 
  .portfolio-case-even a:active .content .case-con-box .case-title { color: #D80000;}
  .portfolio-case-even a .photo { width: 34.8vw; height: 23.5vw; overflow: hidden; position: absolute; top: 0; right: 0; z-index: 2;}
  .portfolio-case-even a .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center;}
  .portfolio-case-even a .content { width: 95%; min-height: 23vw; padding: 6vw 34.8vw 2vw 0; margin: 0 5% 0 0; box-sizing: border-box; background-image: linear-gradient(to right, #e7e7e7, #fff); position: relative;}
  .portfolio-case-even a .content .case-num { width: 100%; color: #d4d2d2; font-size: 2.4vw; font-weight: 700; text-align: left; position: absolute; top: -2vw; right: 0; z-index: 2;}


  ul#page-num { clear: both; width: 100%; padding: 0; margin: 4vw 0 0 0; list-style: none; display: flex; justify-content: center; align-items: center; flex-wrap: wrap;}
  ul#page-num li { padding: 0.5vw; margin: 0;}
  ul#page-num li a { width: 4vw; height: 4vw; color: #1a1a1a; font-size: 1.4vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center; text-decoration: none; border-radius: 100%; display: flex; justify-content: center; align-items: center;}
  ul#page-num li a img.arrow { width: 1vw; height: auto;}
  ul#page-num li a:active { background-color: #ccc;}
  ul#page-num li a.sel { color: #fff; background-color: #D80000;}


  /************ section page-portfolio-detail ************/

  section#page-portfolio-detail { clear: both; width: 100%; padding: 80px 4vw; box-sizing: border-box; background-color: #e7e7e7;}
  .portfolio-case-detail-mo { display: none;}
  .portfolio-case-detail { clear: both; width: 100%; margin: -80px 0 0 0;}
  .portfolio-case-detail .case-num-mo { display: none;}
  .portfolio-case-detail .case-num { width: 100%; color: #d4d2d2; font-size: 3.4vw; font-weight: 700; text-align: right; position: relative; top: 6vw;}
  .portfolio-case-detail .case-title { width: 100%; padding: 0 0 1vw 0; color: #1a1a1a; font-size: 3.4vw; font-family: 'Noto Serif TC'; font-weight: 600;}
  .portfolio-case-detail .case-sort { width: 10vw; padding: 0.3vw 0; margin: 0 0 4vw 0; color: #fff; font-size: 1.6vw; text-align: center; background-color: #000;}
  .portfolio-case-detail .case-content { clear: both; width: 100%; display: flex; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap;}
  .portfolio-case-detail .case-content img.pic-single { clear: both; width: 100%; height: auto;}
  .portfolio-case-detail .case-content .text-box { clear: both; width: 100%; padding: 0 0 0 2vw; margin: 4vw 0; color: #3b3b3b; font-size: 2vw; border-left: 8px #D80000 solid; box-sizing: border-box;}
  .portfolio-case-detail .case-content .text-box .line-mo { display: none;}
  .portfolio-case-detail .case-content img.pic-colx2 { width: calc(50% - 20px); margin: 0 10px 20px 10px;}
  .portfolio-case-detail .case-content img.pic-colx3 { width: calc(100% / 3 - 20px); margin: 0 10px 20px 10px;}


  section#portfolio-other-context { clear: both; width: 100%;}
  .page-portfolio-other-context { width: 100%; position: relative;}
  .page-portfolio-other-context img.bg-mo { display: none;}
  .page-portfolio-other-context img.bg { width: 100%; height: auto; position: relative; z-index: 1;}
  .page-portfolio-other-context .title { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 2;}
  .page-portfolio-other-context .title a { width: 100%; height: 100%; color: #fff; font-size: 3vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center; text-decoration: none; display: flex; justify-content: center; align-items: center;}
  .page-portfolio-other-context .title a:active { color: #D80000;}

  .portfolio-goback-bar { clear: both; width: 100%; height: 4vw;}
  .portfolio-goback-bar a { width: 100%; height: 100%; color: #fff; font-size: 1.8vw; line-height: 1em; font-family: 'Noto Serif TC'; font-weight: 600; text-decoration: none; background-color: #000; display: flex; justify-content: center; align-items: center;}
  .portfolio-goback-bar a img.arrow { width: 1vw; height: auto; margin: 0 0.5vw 0 0;}
  .portfolio-goback-bar a:active { background-color: #D80000;}


  section#portfolio-viewmore { clear: both; width: 100%; padding: 4vw 0; background-color: #fff;}


  /************ go to back ************/

  section#gotop { clear: both; width: 100%; padding: 4vw 2vw; box-sizing: border-box; background-color: #e7e7e7; display: flex; justify-content: flex-end;}
  #gotop-bt { width: 6.5vw; cursor: pointer; position: relative; display: inline-block;}
  #gotop-bt img.gotop-img-hover { width: 100%; height: auto; opacity: 0; z-index: 2; transition: opacity 0.8s ease;}
  #gotop-bt img.gotop-img { width: 100%; height: auto; opacity: 1; position: absolute; top: 0; left: 0; transition: opacity 0.8s ease;}
  #gotop-bt:active img.gotop-img-hover { opacity: 1;}
  #gotop-bt:active img.gotop-img { opacity: 0;}
  #gotop-bt .text { width: 100%; color: #3b3b3b; font-size: 1vw; font-weight: 500; text-align: center;}


  /************ footer ************/

  footer { clear: both; width: 100%; background-image: url("../images/footer_bg.jpg"); background-repeat: no-repeat; background-size: cover; background-position: left center;}

  .footer-content { clear: both; width: 100%; padding: 3vw 4vw; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center;}
  .footer-content .footer-logo { width: 20vw;}
  .footer-content .footer-logo img.logo { width: 12vw; height: auto; margin: 0 auto;}
  .footer-content .footer-logo .title { width: 100%; margin: 1.5vw 0 0 0; color: #fff; font-size: 1.8vw; font-weight: 600; text-align: center;}
  .footer-content .footer-infor { width: 40vw; padding: 0 8vw; display: flex; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap; box-sizing: border-box;}
  .footer-content .footer-infor .caption { width: 8vw; padding: 0.4vw 0; color: #8C704F; font-size: 1.4vw;}
  .footer-content .footer-infor .column { width: calc(100% - 8vw); padding: 0.3vw 0; color: #fff; font-size: 1.4vw;}
  .footer-content .footer-infor .column a { color: #fff; text-decoration: none;}
  .footer-content .footer-infor .column a:active { border-bottom: 1px #fff solid;}
  .footer-content .footer-contact { width: 30vw; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; box-sizing: border-box;}
  .footer-content .footer-contact .qrcode { width: 8vw; margin: 0 1vw 0 0; height: auto;}
  .footer-content .footer-contact .qrcode img { width: 100%; height: auto;}
  .footer-content .footer-contact .line-text { width: calc(100% - 8vw - 1vw); color: #fff; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;}
  .footer-content .footer-contact .line-text .line { width: calc(50% - 4vw); height: 1px; background-image: url("../images/dot_w.png"); background-repeat: repeat-x; background-position: left center; display: block;}
  .footer-content .footer-contact .line-text .text { width: 8vw; margin: 0 auto; color: #fff; font-size: 1.8vw; font-weight: 700; text-align: center; line-height: 1em;}
  .footer-content .footer-contact .line-text .slogan { width: 100%; margin: 0.8vw 0 0 0; color: #fff; font-size: 1.7vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .footer-content .footer-contact .address-1 { clear: both; width: 100%; margin: 2vw 0 0 0;}
  .footer-content .footer-contact .address-2 { clear: both; width: 100%; margin: 0.5vw 0 0 0;}
  .footer-content .footer-contact .address-1 a, 
  .footer-content .footer-contact .address-2 a { width: 100%; padding: 0.5vw 1vw; color: #fff; font-size: 0.8vw; text-decoration: none; background-color: #8C704F; box-sizing: border-box; display: block;}
  .footer-content .footer-contact .address-1 a:active, 
  .footer-content .footer-contact .address-2 a:active { color: #bdbdbd;}
  .footer-copyright { clear: both; width: 100%; padding: 0.5vw 0; color: #fff; font-size: 0.7vw; text-align: center; background-color: #1a1a1a;}


}

@media screen and (max-width: 768px) {

  /************ header#hp + nav ************/

  header#hp { clear: both; width: 100%; padding: 40px 20px; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center; position: fixed; top: 0; left: 0; z-index: 9;}
  header#hp .header-hp-logo { width: 80px;}
  header#hp .header-hp-logo img { width: 100%; height: auto;}
  header#hp nav#hp-pc { display: none;}
  header#hp nav#hp-mo { width: calc(100% - 80px); display: flex; justify-content: flex-end;}
  header#hp nav#hp-mo .nav-icon { width: 50px;}
  header#hp nav#hp-mo .nav-icon img { width: 100%; height: auto;} 
  
  #nav-menu-float-mo-box { width: 100%; height: 100vh; background-image: url("../images/nav_menu_mo_bg.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center top; display: none; justify-content: center; align-items: center; position: fixed; top: 0; left: 0; z-index: 999;}
  #nav-menu-float-mo-box .logo-icon-bar { width: 100%; padding: 0 20px; box-sizing: border-box; display: flex; justify-content: space-between; align-items: center; position: absolute; top: 50px; left: 0; z-index: 9;}
  #nav-menu-float-mo-box .logo-icon-bar .logo-mo { width: 80px;}
  #nav-menu-float-mo-box .logo-icon-bar .logo-mo img { width: 100%; height: auto;}
  #nav-menu-float-mo-box .logo-icon-bar .nav-close { width: 40px; height: auto;}
  #nav-menu-float-mo-box .logo-icon-bar .nav-close img { width: 100%; height: auto;}
  #nav-menu-float-mo-box ul.nav-menu-mo { width: 80%; padding: 0; margin: 0; box-sizing: border-box; list-style: none; display: block; position: relative; z-index: 1;}
  #nav-menu-float-mo-box ul.nav-menu-mo li { width: 100%; padding: 60px 0; margin: 0; border-bottom: 1px #fff solid; box-sizing: border-box;}
  #nav-menu-float-mo-box ul.nav-menu-mo li:last-child { border-bottom: 0;}
  #nav-menu-float-mo-box ul.nav-menu-mo li a { width: 100%; color: #fff; font-size: 1.4rem; font-weight: 500; text-align: center; text-decoration: none; display: block;}

  header#hp-fixed { clear: both; width: 100%; padding: 0 4vw; box-sizing: border-box; display: none; position: fixed; top: 0; z-index: 101;}
  header#hp-fixed .header-fixed-con { width: 100%; display: flex; justify-content: flex-start; align-items: center;}
  header#hp-fixed .header-hp-logo { width: 100px; padding: 15px 0; background-color: #000;}
  header#hp-fixed .header-hp-logo img { width: 80px; height: auto; margin: 0 auto;}
  header#hp-fixed nav#hp-fixed-pc { display: none;}  
  header#hp-fixed nav#hp-fixed-mo { width: calc(100% - 100px); display: flex; justify-content: flex-end; align-items: flex-start;}
  header#hp-fixed nav#hp-fixed-mo .nav-icon { width: 70px; padding: 15px 0; background-color: #000;}
  header#hp-fixed nav#hp-fixed-mo .nav-icon img { width: 50px; height: auto; margin: 0 auto;}
  

  /************ index-nav-banner ************/

  section#index-nav-banner { clear: both; width: 100%; box-sizing: border-box; background-color: #e7e7e7; position: relative;}
  .hp-banner-content { clear: both; width: 100%;}
  .hp-banner-content .block-right { width: 42vw; height: 26vw; background-color: rgba(255,255,255,0.4); display: block; position: fixed; bottom: 5vw; right: 0; z-index: 4;}
  .hp-banner-content .block-right-text { width: 40vw; color: #3b3b3b; font-size: 5vw; font-family: 'Noto Serif TC'; font-weight: 600; text-align: right; position: fixed; bottom: 7vw; right: 4vw; z-index: 5;}
  .hp-banner-content .scroll-text { width: 2vw; position: fixed; bottom: 3vw; left: 8vw; z-index: 1;}
  .hp-banner-content .scroll-text .text { width: 100%; color: #3b3b3b; font-size: 4.6vw; font-family: 'Noto Serif TC'; font-weight: 600; -webkit-writing-mode: vertical-lr; writing-mode: vertical-lr; display: flex; justify-content: center; align-items: center;}
  .hp-banner-content .scroll-text .line { width: 1px; height: 84px; margin: 1vw auto 0 auto; background-color: #3b3b3b; display: block;}
  .hp-banner-content .block-left { width: 54vw; padding: 3vw 4vw; color: #3b3b3b; font-size: 3.6vw; font-family: 'Noto Serif TC'; font-weight: 600; background-color: rgba(255,255,255,0.4); display: block; box-sizing: border-box; position: fixed; top: 26vw; left: 0; z-index: 4;}  
  .zoom-section { height: 200vh; position: relative;}
  .sticky-wrapper { width: 100%; height: 100vh; display: flex; justify-content: center; align-items: flex-end; position: sticky; top: 0; z-index: 3; overflow: hidden;}
  #zoom-img { width: 45%; height: 92vh; max-height: 100%; object-fit: cover; object-position: center; transition: width 0.4s ease-out, height 0.4s ease-out;/*transition: width 1s cubic-bezier(0.165, 0.84, 0.44, 1);*/ will-change: width, height;}
  .hp-banner-slogan { width: 40vw; color: #fff; font-size: 5vw; line-height: 2em; font-family: 'Noto Serif TC'; font-weight: 600; -webkit-writing-mode: vertical-lr; writing-mode: vertical-lr; display: flex; justify-content: flex-start; align-items: center; position: fixed; top: 52vw; left: calc(50% - 20vw); z-index: 9;}


  section#index-about { clear: both; width: 100%; background-color: #1a1a1a;}
  .hp-about-col-left { width: 100%; padding: 60px 20px; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;}  
  .hp-sub-title { clear: both; width: 100%;}
  .hp-sub-title .en { width: 100%; display: flex; justify-content: center; align-items: center;}
  .hp-sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-sub-title .en span { color: #fff; font-size: 1rem; line-height: 1em;}
  .hp-sub-title .cn { width: 100%; margin: 0 0 40px 0; color: #fff; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}  
  .hp-about-col-left .intro { clear: both; width: 100%; margin: 0 0 20px 0; color: #fff; font-size: 1.4rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .hp-about-col-left .text { clear: both; width: 100%; color: #fff; font-size: 1.1rem; line-height: 1.6em;}
  .hp-about-col-right { width: 100%; height: auto; overflow: hidden;}
  .hp-about-col-right img.img-pc { display: none;}
  .hp-about-col-right img.img-mo { width: 100%; height: auto;}


  section#index-portfolio { clear: both; width: 100%; padding: 80px 0 40px 0; background-image: linear-gradient(to right, #fff 75%, #1a1a1a 25%); position: relative;}
  .hp-portfolio-title { clear: both; width: 100%; padding: 0 20px; box-sizing: border-box;}
  .hp-portfolio-title .sub-title { width: 180px;}
  .hp-portfolio-title .sub-title .en { width: 100%; display: flex; justify-content: flex-start; align-items: center;}
  .hp-portfolio-title .sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-portfolio-title .sub-title .en span { color: #1a1a1a; font-size: 1rem; line-height: 1em;}
  .hp-portfolio-title .sub-title .cn { width: 100%; margin: 0 0 20px 0; color: #1a1a1a; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600;} 
  .hp-portfolio-title .slogan-text { width: 75%; padding: 0 0 60px 0; color: #1a1a1a; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-shadow: 0px 0px 3px #fff,0px 0px 2px #fff,0px 0px 2px #fff,0px 0px 2px #fff;}
  .slider-main-arrow { clear: both; width: 100%; position: relative;}
  button#arrow-pc { display: none;}
  button#arrow-mo { width: 50px; height: 50px; border: 0; background-color: transparent; cursor: pointer;}
  button#arrow-mo img { width: 100%; height: auto;}
  button.prev-btn { position: absolute; top: calc(50% - 35px); left: 5px; z-index: 9;}
  button.next-btn { position: absolute; top: calc(50% - 35px); right: 5px; z-index: 9;}
  .slide-item a { color: inherit; text-decoration: none;}
  .slide-item a .photo { width: 100%; height: 60vw; padding: 0; display: flex; justify-content: center; align-items: center; overflow: hidden;}
  .slide-item a .photo img { width: 100%; height: auto; transition: filter 0.5s ease;}
  .slide-item a:active .photo img { filter: brightness(0.6);}
  .slide-item a .slide-title { width: 100%; padding: 10px 20px; color: #1a1a1a; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600; box-sizing: border-box; transition: color 0.5s ease;}
  .slide-item a:active .slide-title { color: #D80000;}
  .slide-item a .portfolio-slide-title { width: 100%; padding: 10px 20px; color: #1a1a1a; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600; box-sizing: border-box; transition: color 0.5s ease;}
  .slide-item a:active .portfolio-slide-title { color: #D80000 !important;}
  .slider-controls { display: flex; align-items: center; justify-content: center; gap: 0.5vw; position: absolute; top: 0; right: 3vw; z-index: 2;}
  .slider-controls .progress-wrapper { display: none;}
  .slider-controls .counter { padding: 160px 0 0 0; color: #fff; font-size: 1.1rem; display: flex; justify-content: flex-end; align-items: flex-end; box-sizing: border-box;}
  .slider-controls .counter .num-1 { padding: 0 0 10px 0;}
  .slider-controls .counter .num-2 { padding: 0;}
  .slider-controls .counter span.current { color: #fff; font-size: 1.5rem;}
  .slider-controls .counter span.total { color: #5f5f5f;}
  .view-more-btn { clear: both; width: 140px; margin: 60px auto;}
  .view-more-btn a { width: 140px; height: 140px; color: #1a1a1a; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-decoration: none; border-radius: 100%; border: 1px #1a1a1a solid; display: flex; justify-content: center; align-items: center;}
  .view-more-btn a:active { color: #D80000; border: 1px #D80000 solid;}


  section#index-charges { clear: both; width: 100%; padding: 60px 0 50px 0; background-color: #e7e7e7;}
  .hp-charges-title { clear: both; width: 100%; padding: 0 20px; box-sizing: border-box;}
  .hp-charges-title .sub-title { width: 100%;}
  .hp-charges-title .sub-title .en { width: 100%; display: flex; justify-content: center; align-items: center;}
  .hp-charges-title .sub-title .en .dot { width: 12px; height: 12px; border-radius: 100%; background-color: #D80000; display: block; margin: 0 5px 0 0;}
  .hp-charges-title .sub-title .en span { color: #1a1a1a; font-size: 1rem; line-height: 1em;}
  .hp-charges-title .sub-title .cn { width: 100%; margin: 0 0 20px 0; color: #1a1a1a; font-size: 2.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .hp-charges-title .slogan-text { width: 100%; color: #1a1a1a; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .hp-charges-list-full { clear: both; width: 100%; margin: 6vw 0 0 0; border-top: 1px #000 solid;}
  .hp-charges-list-full .col-left { width: 100%; padding: 40px; box-sizing: border-box; }  
  .hp-charges-list-full .col-right { width: 100%; padding: 40px; box-sizing: border-box;}  
  .hp-charges-list-full .col-full { width: 100%; padding: 40px; box-sizing: border-box;}
  .hp-charges-list-full .col-left .num-title, 
  .hp-charges-list-full .col-right .num-title, 
  .hp-charges-list-full .col-full .num-title { width: 100%;}
  .hp-charges-list-full .col-left .num-title .num, 
  .hp-charges-list-full .col-right .num-title .num, 
  .hp-charges-list-full .col-full .num-title .num { width: 100%; padding: 0 0 10px 0; color: #fff; font-size: 1.1rem;}
  .hp-charges-list-full .col-left .num-title .title, 
  .hp-charges-list-full .col-right .num-title .title, 
  .hp-charges-list-full .col-full .num-title .title { width: 100%;}
  .hp-charges-list-full .col-left .num-title .title span.big, 
  .hp-charges-list-full .col-right .num-title .title span.big, 
  .hp-charges-list-full .col-full .num-title .title span.big { font-size: 2rem; padding: 0 0 0 0; font-family: 'Noto Serif TC'; font-weight: 600; display: block;}
  .hp-charges-list-full .col-left .num-title .title span.small, 
  .hp-charges-list-full .col-right .num-title .title span.small, 
  .hp-charges-list-full .col-full .num-title .title span.small { font-size: 1.4rem; font-family: 'Noto Serif TC'; font-weight: 600;}
  .hp-charges-list-full .col-left .text, 
  .hp-charges-list-full .col-right .text, 
  .hp-charges-list-full .col-full .text { display: none;}
  .hp-charges-list-full .col-text-mo { width: 100%; padding: 20px 20px 50px 20px; color: #3b3b3b; font-size: 1.2rem; box-sizing: border-box;}
  .hp-charges-list-full .col-left.bg-1 { color: #fff; background-image: url("../images/hp_charges_list_bg_1_mo.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-left.bg-1 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-right.bg-2 { color: #fff; background-image: url("../images/hp_charges_list_bg_2_mo.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-right.bg-2 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full.bg-3 { color: #fff; background-image: url("../images/hp_charges_list_bg_3_mo.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full.bg-3 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full.bg-4 { color: #fff; background-image: url("../images/hp_charges_list_bg_4_mo.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full.bg-4 .num-title .num { color: #fff;}
  .hp-charges-list-full .col-full.bg-5 { color: #fff; background-image: url("../images/hp_charges_list_bg_5_mo.jpg"); background-repeat: no-repeat; background-size: cover; background-position: center center;}
  .hp-charges-list-full .col-full.bg-5 .num-title .num { color: #fff;}


  /************ header#page + nav ************/

  #nav-menu-float-mo-box { display: none;}

  header#page { clear: both; width: 100%; padding: 20px 4vw 0 4vw; box-sizing: border-box; position: fixed; display: flex; justify-content: flex-start; align-items: center; top: 0; z-index: 9;}
  header#page .header-page-logo { width: 100px; padding: 15px 0; background-color: #1a1a1a;}
  header#page .header-page-logo img { width: 80px; height: auto; margin: 0 auto;}
  header#page nav#page-pc { display: none;}
  header#page nav#page-mo { width: calc(100% - 100px); display: flex; justify-content: flex-end; align-items: flex-start;}
  header#page nav#page-mo .nav-icon { width: 70px; padding: 15px 0; background-color: #1a1a1a;}
  header#page nav#page-mo .nav-icon img { width: 50px; height: auto; margin: 0 auto;}


  /************ section page-portfolio ************/

  section#page-portfolio-banner { clear: both; width: 100%; padding: 0; background-image: linear-gradient(to right, #1a1a1a 75%, #e7e7e7 25%); position: relative;}

  .page-banner-content { width: 100%;}
  .page-banner-content .col-left { width: 100%; padding: 30vw 0 0 10vw; box-sizing: border-box;}
  .page-banner-content .col-left .page-portfolio-title { width: 100%;}
  .page-banner-content .col-left .page-portfolio-title .en { width: 100%; color: #D80000; font-size: 1rem;}
  .page-banner-content .col-left .page-portfolio-title .cn { width: 100%; color: #fff; font-size: 2.4rem; font-family: 'Noto Serif TC'; font-weight: 600;}
  .page-banner-content .col-left .slogan-text { width: 100%; padding: 4vw 0 0 0; color: #fff; font-size: 1.4rem; font-family: 'Noto Serif TC'; font-weight: 600;}
  .page-banner-content .col-right { clear: both; width: 100%; margin: 6vw 0 0 0; display: flex; justify-content: flex-end;}
  .page-banner-content .col-right img.pic-pc { display: none;}
  .page-banner-content .col-right img.pic-mo { width: calc(100% - 10vw); height: auto; margin: 0 0 -60px 0;}
  .page-banner-content .col-right .slogan-text { display: none;}


  section#page-portfolio-list { clear: both; width: 100%; padding: 100px 0 80px 0; box-sizing: border-box; background-color: #e7e7e7;}
  .portfolio-sort-list-mo { width: 100%; padding: 0 0 80px 20px; box-sizing: border-box;}
  .portfolio-sort-list-mo a { width: 130px; padding: 10px 0; margin: 0 5px; color: #1a1a1a; font-size: 1.2rem; text-align: center; text-decoration: none; border-radius: 40px; background-color: #d9d9d9; display: block;}
  .portfolio-sort-list-mo a:active { background-color: #ccc;}
  .portfolio-sort-list-mo a.sel { color: #fff; background-color: #D80000;}
  ul.portfolio-sort-list { display: none;}
  .portfolio-case-odd, 
  .portfolio-case-even { clear: both; width: 100%; margin: 0 0 60px 0;}
  .portfolio-case-odd a, 
  .portfolio-case-even a { width: 100%; padding: 3vw 0 0 0; text-decoration: none; display: block; position: relative; transition: 0.5s;}
  .portfolio-case-odd a .mask-more, 
  .portfolio-case-even a .mask-more { width: 100%; height: 100%; background-color: rgba(0,0,0,0.7); display: none; justify-content: center; align-items: center; position: absolute; top: 0; left: 0; z-index: 3; transition: 0.5s;}
  .portfolio-case-odd a .mask-more .view, 
  .portfolio-case-even a .mask-more .view { width: 150px; height: 150px; color: #fff; font-size: 1.2rem; font-family: 'Noto Serif TC'; font-weight: 600; border-radius: 100%; border: 1px #fff solid; display: none; justify-content: center; align-items: center;}
  .portfolio-case-odd a .photo { width: 100%; height: 60vw; padding: 0 40px 0 0; box-sizing: border-box; overflow: hidden; position: relative; z-index: 2;}
  .portfolio-case-odd a .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center;}
  .portfolio-case-odd a .content, 
  .portfolio-case-even a .content { width: 100%; padding: 14vw 20px 60px 20px; margin: -20vw 0 0 0; box-sizing: border-box; background-image: linear-gradient(to bottom, #fff, #e7e7e7); position: relative; z-index: 1;}
  .portfolio-case-odd a .content .case-num, 
  .portfolio-case-even a .content .case-num { width: 100%; color: #d4d2d2; font-size: 2.4rem; font-weight: 700; text-align: right; position: relative; top: 45px;}
  .portfolio-case-odd a .content .case-con-box, 
  .portfolio-case-even a .content .case-con-box { width: 100%;}
  .portfolio-case-odd a .content .case-con-box .case-sort, 
  .portfolio-case-even a .content .case-con-box .case-sort { width: 120px; padding: 10px 0; margin: 0 0 20px 0; color: #fff; font-size: 1.1rem; text-align: center; background-color: #000; transition: 0.5s;}
  .portfolio-case-odd a .content .case-con-box .case-title, 
  .portfolio-case-even a .content .case-con-box .case-title { width: 100%; padding: 0 0 20px 0; color: #1a1a1a; font-size: 2rem; font-family: 'Noto Serif TC'; font-weight: 600; transition: 0.5s;}
  .portfolio-case-odd a .content .case-con-box .case-intro, 
  .portfolio-case-even a .content .case-con-box .case-intro { width: 100%; color: #1a1a1a; font-size: 1.1rem; line-height: 1.6em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;}
  .portfolio-case-odd a:active .mask-more, 
  .portfolio-case-even a:active .mask-more { display: flex;}
  .portfolio-case-odd a:active .mask-more .view, 
  .portfolio-case-even a:active .mask-more .view { display: flex;}
  .portfolio-case-odd a:active .content .case-con-box .case-sort, 
  .portfolio-case-even a:active .content .case-con-box .case-sort { color: #fff; background-color: #D80000;}
  .portfolio-case-odd a:active .content .case-con-box .case-title, 
  .portfolio-case-even a:active .content .case-con-box .case-title { color: #D80000;}
  .portfolio-case-even a .photo { width: 100%; height: 60vw; padding: 0 0 0 40px; box-sizing: border-box; overflow: hidden; position: relative; z-index: 2;}
  .portfolio-case-even a .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center;}
  

  ul#page-num { clear: both; width: 100%; padding: 0; margin: 60px 0 0 0; list-style: none; display: flex; justify-content: center; align-items: center; flex-wrap: wrap;}
  ul#page-num li { padding: 10px 5px; margin: 0;}
  ul#page-num li a { width: 34px; height: 34px; color: #1a1a1a; font-size: 1rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center; text-decoration: none; border-radius: 100%; display: flex; justify-content: center; align-items: center;}
  ul#page-num li a img.arrow { width: 10px; height: auto;}
  ul#page-num li a:active { background-color: #ccc;}
  ul#page-num li a.sel { color: #fff; background-color: #D80000;}


  /************ section page-portfolio-detail ************/

  section#page-portfolio-detail { clear: both; width: 100%; padding: 80px 20px; box-sizing: border-box; background-color: #e7e7e7;}
  .portfolio-case-detail { display: none;}
  .portfolio-case-detail-mo { clear: both; width: 100%;}
  .portfolio-case-detail-mo .case-num-mo { width: 100%; margin: -90px 0 40px 0; color: #d4d2d2; font-size: 2.4rem; font-weight: 700; text-align: right;}
  .portfolio-case-detail-mo .case-num { display: none;}
  .portfolio-case-detail-mo .case-title { width: 100%; padding: 0 0 20px 0; color: #1a1a1a; font-size: 2rem; font-family: 'Noto Serif TC'; font-weight: 600;}
  .portfolio-case-detail-mo .case-sort { width: 120px; padding: 10px 0; margin: 0 0 40px 0; color: #fff; font-size: 1.1rem; text-align: center; background-color: #000;}
  .portfolio-case-detail-mo .case-content { clear: both; width: 100%; display: flex; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap;}
  .portfolio-case-detail-mo .case-content img.pic-single { clear: both; width: 100%; height: auto;}
  .portfolio-case-detail-mo .case-content .text-box { clear: both; width: 100%; padding: 0; margin: 40px 0; color: #3b3b3b; font-size: 1.1rem; line-height: 1.6em;}
  .portfolio-case-detail-mo .case-content .text-box .line-mo { width: 80px; height: 8px; margin: 0 0 15px 0; background-color: #D80000; display: block;}
  .portfolio-case-detail-mo .case-content img.pic-colx2 { width: 100%; height: auto; margin: 0 0 20px 0;}
  .portfolio-case-detail-mo .case-content img.pic-colx3 { width: 100%; height: auto; margin: 0 0 20px 0;}


  section#portfolio-other-context { clear: both; width: 100%;}
  .page-portfolio-other-context { width: 100%; position: relative;}
  .page-portfolio-other-context img.bg { display: none;}
  .page-portfolio-other-context img.bg-mo { width: 100%; height: auto; position: relative; z-index: 1;}
  .page-portfolio-other-context .title { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 2;}
  .page-portfolio-other-context .title a { width: 100%; height: 100%; color: #fff; font-size: 2.4rem; line-height: 1.4em; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center; text-decoration: none; display: flex; justify-content: center; align-items: center;}
  .page-portfolio-other-context .title a:active { color: #D80000;}

  .portfolio-goback-bar { clear: both; width: 100%; height: 50px;}
  .portfolio-goback-bar a { width: 100%; height: 100%; color: #fff; font-size: 1.1rem; line-height: 1em; font-family: 'Noto Serif TC'; font-weight: 600; text-decoration: none; background-color: #000; display: flex; justify-content: center; align-items: center;}
  .portfolio-goback-bar a img.arrow { width: 15px; height: auto; margin: 0 10px 0 0;}
  .portfolio-goback-bar a:active { background-color: #D80000;}


  section#portfolio-viewmore { clear: both; width: 100%; padding: 80px 0; background-color: #fff;}


  /************ go to back ************/

  section#gotop { clear: both; width: 100%; padding: 40px 20px; box-sizing: border-box; background-color: #e7e7e7; display: flex; justify-content: flex-end;}
  #gotop-bt { width: 80px; cursor: pointer; position: relative; display: inline-block;}
  #gotop-bt img.gotop-img-hover { width: 100%; height: auto; opacity: 0; z-index: 2; transition: opacity 0.8s ease;}
  #gotop-bt img.gotop-img { width: 100%; height: auto; opacity: 1; position: absolute; top: 0; left: 0; transition: opacity 0.8s ease;}
  #gotop-bt:active img.gotop-img-hover { opacity: 1;}
  #gotop-bt:active img.gotop-img { opacity: 0;}
  #gotop-bt .text { width: 100%; color: #3b3b3b; font-size: 1.2rem; font-weight: 500; text-align: center;}
  

  /************ footer ************/

  footer { clear: both; width: 100%; background-image: url("../images/footer_bg.jpg"); background-repeat: no-repeat; background-size: cover; background-position: left center;}

  .footer-content { clear: both; width: 100%; padding: 40px 20px; box-sizing: border-box;}
  .footer-content .footer-logo { width: 100%;}
  .footer-content .footer-logo img.logo { width: 120px; height: auto;}
  .footer-content .footer-logo .title { display: none;}
  .footer-content .footer-infor { width: 100%; padding: 30px 0; display: flex; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap; box-sizing: border-box;}
  .footer-content .footer-infor .caption { width: 100px; padding: 8px 0; color: #8C704F; font-size: 1.1rem;}
  .footer-content .footer-infor .column { width: calc(100% - 100px); padding: 8px 0; color: #fff; font-size: 1.1rem;}
  .footer-content .footer-infor .column a { color: #fff; text-decoration: none;}
  .footer-content .footer-infor .column a:active { border-bottom: 1px #fff solid;}
  .footer-content .footer-contact { width: 100%; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; box-sizing: border-box;}
  .footer-content .footer-contact .qrcode { width: 100px; margin: 0 20px 0 0; height: auto;}
  .footer-content .footer-contact .qrcode img { width: 100%; height: auto;}
  .footer-content .footer-contact .line-text { width: calc(100% - 100px - 20px); color: #fff; display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;}
  .footer-content .footer-contact .line-text .line { width: calc(50% - 50px); height: 1px; background-image: url("../images/dot_w.png"); background-repeat: repeat-x; background-position: left center; display: block;}
  .footer-content .footer-contact .line-text .text { width: 100px; margin: 0 auto; color: #fff; font-size: 2rem; font-weight: 700; text-align: center; line-height: 1em;}
  .footer-content .footer-contact .line-text .slogan { width: 100%; margin: 10px 0 0 0; color: #fff; font-size: 1.1rem; font-family: 'Noto Serif TC'; font-weight: 600; text-align: center;}
  .footer-content .footer-contact .address-1 { clear: both; width: 100%; margin: 20px 0 0 0;}
  .footer-content .footer-contact .address-2 { clear: both; width: 100%; margin: 10px 0 0 0;}
  .footer-content .footer-contact .address-1 a, 
  .footer-content .footer-contact .address-2 a { width: 100%; padding: 5px 10px; color: #fff; font-size: 1rem; text-decoration: none; background-color: #8C704F; box-sizing: border-box; display: block;}
  .footer-content .footer-contact .address-1 a:active, 
  .footer-content .footer-contact .address-2 a:active { color: #bdbdbd;}
  .footer-copyright { clear: both; width: 100%; padding: 10px 0; color: #fff; font-size: 0.8rem; text-align: center; background-color: #1a1a1a;}


}
