﻿/* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
for details on configuring this project to bundle and minify static web assets. */
:root {
    --primary: #9b2418;
    --trans-white: #ffffff80;
    --trans-black: #000000cc;
}

@font-face {
    font-family: 'CP-Font';
    src: local('CP Font'), url('/fonts/CP-Font.ttf') format('truetype');
    font-display: swap;
}

@font-face {
    font-family: 'NotoSansTC-ExtraBold';
    src: local('NotoSansTC-ExtraBold'), url('/fonts/NotoSansTC-ExtraBold.ttf') format('truetype');
    font-display: swap;
}

@font-face {
    font-family: 'NotoSansTC-Thin';
    src: local('NotoSansTC-Thin'), url('/fonts/NotoSansTC-Thin.ttf') format('truetype');
    font-display: swap;
}

@font-face {
    font-family: 'NotoSansTC-Black';
    src: local('NotoSansTC-Black'), url('/fonts/NotoSansTC-Black.ttf') format('truetype');
    font-display: swap;
}

@font-face {
    font-family: 'Impact';
    src: local('Impact'), url('/fonts/IMPACT.TTF') format('truetype');
    font-display: swap;
}

.fm-cp {
    font-family: 'CP-Font';
}

* {
    color: white;
    font-family: 'NotoSansTC-Thin';
}

html {
    position: relative;
    min-height: 100%;
    font-size: 16px;
}

header {
    position:fixed;
    z-index: 1;
    right: 0;
    top: 0;
    height: 100vh;
}

body {
    background-color: black;
    overflow-x: hidden;
}

footer {
    position: fixed;
    top: 0;
    height: 100vh;
    transition: all 2s ease;
}

footer.move-up {
    top: -120px;
}

.logo {
    width: 160px;
}

/*text-color*/
.text-custom-primary {
    color:var(--primary);
}

.text-trans-white{
    color: var(--trans-white)
}

/*text-layout*/
.space-prewrap {
    white-space: pre !important;
}

.letter-spacing-sm {
    letter-spacing: 5px;
}

.letter-spacing-lg {
    letter-spacing: 30px;
}

.text-verticle {
    writing-mode: vertical-lr;
}

.fs-sm {
    font-size: 0.75rem;
}
/*bg-color*/
.bg-trans-black {
    background-color: var(--trans-black);
}

.bg-custom-primary {
    background-color: var(--primary);
}

/*bg-image*/
.bg-banner {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}
.bg-hero {
    background-image: url('/image/home-banner.png');
}

/*button*/
.btn-none {
    background-color: transparent;
    border: none;
    width: 100%;
    padding: 0;
}

/*section*/
.vh-200 {
    height: 200vh;
}

.navbar-custom {
    height: 100%;
    width: 76px;
    display: flex;
    flex-flow: column;
    justify-content: space-between;
    overflow: hidden;
    background-color: #00000080;
    position: relative;
}
    .navbar-custom::before {
        content: "";
        position: absolute;
        z-index: 2;
        height: 100%;
        border-left: 1px solid white;
    }

.bottom-box-rotate {
    background-color: #1a1a1acc;
    height: 75px; /*同nav寬度*/
    padding: 0 34px 0 59px;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: translateY(75px) rotate(270deg);
    transform-origin: left top;
    position: absolute;
    bottom: 0;
    left: 0;
}

.nav-open {
    position: fixed;
    z-index: 10;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: var(--primary);
    clip-path: polygon(100% 0%, 100% 0%, 100% 0%);
    padding: 40px;
    transition: clip-path .3s linear;
}

    .nav-open.show {
        clip-path: polygon(100% 0%, -100% 0%, 100% 200%)
    }

.nav-close-box {
    height: 100%;
    width: 76px;
    position: absolute;
    top: 0;
    right: 0;
    border-left: 1px solid white;
    display: flex;
    justify-content: center;
}

.custom-footer {
    height: 100%;
    padding: 0 40px 40px 40px;
    display: flex;
    flex-flow: column;
    align-items: center;
}

.logo-box {
    margin-bottom: 1rem;
    margin: 40px 0 1rem 0;
}

.footer-white-border {
    flex-grow: 1;
    border-left: 1px solid white;
}

.sns-box {
    padding: 24px;
    text-align: center;
}

.nav-custom-item {
    color: white;
    font-weight: bolder;
    letter-spacing: 5px;
    padding: 3rem;
}

.nav-custom-link {
    color: white;
    text-decoration: none;
}

    .category-move {
        position: relative;
    }
    .category-move * {
        transition: .5s ease;
    }
        .category-move::before {
            content: "";
            position: absolute;
            bottom: 1rem;
            width: 100%;
            opacity: 0;
            transform: scaleX(0);
            transform-origin: left;
            border-bottom: 1px solid white;
            transition: .5s ease;
        }
.nav-custom-link:hover .category-move h1 {
    transform: translateX(100%);
}
    .nav-custom-link:hover .category-move::before {
        transform: scaleX(1);
        opacity: 1;
    }

    .section-title {
        font-size: 10rem;
        font-family: 'CP-Font';
        white-space: nowrap;
    }

.section-title-cn {
    font-size: 9rem;
    font-family: NotoSansTC-Black;
    white-space: nowrap;
}

.title-sm {
    font-size: 4rem;
}

.page-content {
    max-width: 1040px;
    width: 80%;
    margin-left: auto;
    margin-right: auto;
}

.core-value-item {
    display: flex;
    justify-content: center;
    padding: 1.5rem 0;
}
.core-value-item * {
    transition: .5s ease;
}

.img-core-value {
    max-width: 590px;
    width: 55%;
    filter: grayscale(1);
}
.img-core-value img {
    width: 100%;
}

.detail-core-value {
    opacity: 0;
}

.core-value-item:hover .detail-core-value, .core-value-item:hover .text-core-value {
    opacity: 1;
}
.core-value-item:hover .img-core-value {
    filter: unset;
}

.equal-width {
    flex: 1 1 0;
}

.text-core-value {
    font-size: 5rem;
    writing-mode: vertical-lr;
    margin: 0;
    opacity: 0;
}

.philosophy-box {
    padding: 2rem;
    color: var(--primary);
    border-bottom: 2px solid var(--primary);
    border-right: 2px solid var(--primary);
    position: relative;
    height: 100%;
}
    .philosophy-box::before {
        content: "";
        height: 50%;
        border-left: 2px solid var(--primary);
        position: absolute;
        left: 0;
        bottom: 0;
        transition: all 1s;
    }
    .philosophy-box::after {
        content: "";
        width: 50%;
        border-top: 2px solid var(--primary);
        position: absolute;
        right: 0;
        top: 0;
        transition: all 1s;
    }

    .philosophy-box .img-philosophy {
        width: 127px;
        position: absolute;
        left: 0;
        top: 0;
        transform: translate(0, -50%);
    }

    .philosophy-box, .philosophy-box * {
        transition: all 1s;
    }

    .philosophy-box:hover {
        border-color: white;
    }
.philosophy-box:hover::before, .philosophy-box:hover::after {
    border-color: white;
}
        .philosophy-box.primary-box:hover img {
            filter: brightness(0) invert(1);
        }
    .philosophy-box:hover * {
        color: white;
    }

        .philosophy-box.white-box, .philosophy-box.white-box *, .philosophy-box.white-box::before, .philosophy-box.white-box::after {
            color: white;
            border-color: white;
        }

.story-arrow {
    position: absolute;
    width: 3rem;
    height: 5rem;
}

.arrow-1 {
    top: 50%;
    right: 0;
    transform: translate(100%, -50%);
}

.arrow-2 {
    bottom: 0;
    left: 50%;
    transform-origin: 0 50%;
    transform: translateY(50%) rotate(90deg);
}

.arrow-3 {
    top: 0;
    left: 50%;
    transform-origin: 0 50%;
    transform: translateY(-50%) rotate(270deg);
}

.arrow-4 {
    top: 50%;
    left: 0;
    transform-origin: 0 50%;
    transform: translateY(-50%) rotate(180deg);
}

.service-section {
    background-color: var(--primary);
    background-image: url(/image/service-title.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    padding: 3rem 0 3rem 0;
}

.service-circle {
    opacity: 0.5;
    border-radius: 50%;
    transition: all 0.5s;
    cursor: pointer;
    position: relative
}
    .service-circle img {
        width: 100%;
    }

.service-item-1 {
    width: 60%;
    align-self: end;
}

.service-item-2 {
    position: absolute;
    bottom: 50%;
    width: 40%;
}

.service-item-3 {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 40%;
}

.service-item-4 {
    width: 50%;
}

.service-text-box {
    position: absolute;
    top: 50%;
    padding: 0 20%;
}
.service-circle:hover {
    opacity: 1;
    border: 4px solid white;
}
    .service-circle:hover * {
        text-shadow: 2px 3px 3px black
    }

.project-section {
    background-color: black;
    background-image: url(/image/project-title.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top;
}

.project-link {
    color: white;
    text-decoration: none;
    display: flex;
}
    .project-link h1 {
        position: relative;
    }

        .project-link h1::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            height: 2px;
            width: 0;
            background-color: white;
            transition: width 0.5s ease;
        }

    .project-link:hover h1::after {
        width: 100%;
    }

.coop-box {
    flex-grow: 1;
    overflow: auto;
    padding-top: 3rem;
    position: relative;
}
    .coop-box::-webkit-scrollbar{
        width: 0;
    }


    .input-box {
        margin-bottom: 3rem;
    }

.custom-input {
    width: 100%;
    background-color: transparent;
    padding: 1rem;
    border: none;
    border-bottom: 2px solid #b3b3b3;
    color: #b3b3b3;
}

textarea.custom-input {
    height: 200px;
}

.coop-line {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.coop-line::after {
    content: '';
    width: 50%;
    height: 6rem;
    border-right: 2px solid white;
    align-self: start;
}

.coop-num-box {
    width: 4rem;
    height: 4rem;
    color: var(--primary);
    background-color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 3rem;
    font-family: NotoSansTC-Black;
}

.white-stroke::before {
    content: "";
    position: absolute;
    height: 10rem;
    width: 150%;
    top: 0;
    left: 0;
    border-bottom: 2px solid white;
}

.btn-custom {
    border: none;
    color: white;
    background-color: #1a1a1acc;
    padding: 1.5rem 4rem;
    position: relative;
}
    .btn-custom span{
        position:relative;
        z-index: 1;
    }
    .btn-custom::before {
        content: '';
        position: absolute;
        z-index: 0;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: white;
        transition: clip-path .5s ease;
        clip-path: polygon(100% 0%,100% 0%,100% 0%)
    }
.btn-custom:hover span {
    color: black;
}

.btn-custom:hover::before {
    clip-path: polygon(100% 0%,-200% 0%,100% 200%)
}

.btn-next {
    border: none;
    color: #b3b3b3;
    background-color: #1a1a1acc;
    padding: 0 0.25rem;
    height: 100%;
    display: flex;
    align-items: center;
}

.btn-next:disabled img {
    opacity: 0.2;
}

.page-banner {
    height: 100vh;
    position: relative;
    overflow: hidden;
}
    .page-banner::before {
        content: '';
        position: absolute;
        z-index: -1;
        left: 0;
        top: 0;
        height: 70%;
        width: 100%;
        background-size: cover;
        background-repeat: no-repeat;
        background-position: top center;
    }

.bg-banner-about::before {
    background-image: url('/image/about-banner.png');
}

.bg-banner-project::before {
    background-image: url('/image/project-banner.png');
}
.bg-banner-service::before {
    background-image: url('/image/service-banner.png');
}
.bg-banner-news::before {
    background-image: url('/image/news-banner.png');
}
.bg-banner-client::before {
    background-image: url('/image/client-banner.png');
}
.bg-banner-connact::before {
    background-image: url('/image/connact-banner.png');
}
.bg-banner-joinus::before {
    background-image: url('/image/joinus-banner.png');
}

.banner-title {
    width: 100%;
    position: absolute;
    top: 57%;
    left: 0;
    text-align: center;
    letter-spacing: 1rem;
}

.about-image {
    position: relative;
    right: 3rem;
    margin-bottom: -1rem;
    z-index: -1;
    width: 100%;
}

.core-box {
    width: 100%;
    aspect-ratio: 460/152;
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
}
    .core-box::before {
        content: '';
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        filter: grayscale(1);
        background-size: cover;
        background-position: center;
    }
    .core-box::after {
        content: '';
        width: 100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
        background-color: var(--primary);
        clip-path: polygon(100% 0%, 100% 0%, 100% 0%);
        transition: 0.5s ease;
    }

.bg-core-box-1::before {
    background-image: url('/image/core1.png');
}
.bg-core-box-2::before {
    background-image: url('/image/core2.png');
}
.bg-core-box-3::before {
    background-image: url('/image/core3.png');
}
.bg-core-box-4::before {
    background-image: url('/image/core4.png');
}

.core-detail {
    font-weight: lighter;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    padding: 1rem 3rem;
    width: 100%;
    height: 100%;
    transition: 1s ease;
    z-index: 2;
}

.core-box:hover .core-detail {
    opacity: 1;
}
.core-box:hover::after {
    clip-path: polygon(100% 0%, -100% 0%, 100% 200%);
}

.category-list {
    display: flex;
    padding: 0.5rem 0;
    margin:0;
    transition: 0.5s ease;
}

.category-item {
    list-style: none;
    width: 25%;
    padding: 1.5rem 0;
    font-size: 1.5rem;
    text-align: center;
    flex: 1 0 auto;
    position: relative;
    cursor: pointer;
}
    .category-item::after {
        content: '';
        position: absolute;
        width: 100%;
        left: 0;
        bottom: 0;
        border-bottom: 6px solid var(--primary);
        transform-origin: center;
        opacity: 0;
        transform: scaleX(0);
        transition: .5s ease;
    }
    .category-item:hover::after, .category-item.active::after {
        opacity: 1;
        transform: scaleX(1);
    }

.project-row {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
}
.project-container {
    width: 33.3333%;
    padding: 1.5rem 0;
}

.project-image {
    width: 100%;
    aspect-ratio: 327/184;
}

.project-intro {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 0 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 0;
    transition: 1s ease;
}
    .project-intro::before {
        content: '';
        position: absolute;
        background-color: #9b241899;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: -1;
    }

.project-intro:hover {
    opacity: 1;
}

.pagination-container {
    display: flex;
    justify-content: center;
    margin-top: 100px;
}

.pagination-custom {
    display: flex;
    margin: 0;
    padding: 0;
}

.page-item-custom {
    list-style: none;
    width: 20px;
    height: 20px;
    margin: 0 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--trans-white);
    cursor: pointer;
    font-weight: bolder;
}

    .page-item-custom.active {
        border: 1px solid white;
        color: white;
        cursor: default;
    }
    .page-item-custom.disabled {
        cursor: default;
    }

    .page-item-custom img {
        height: 20px;
    }
    .page-item-custom.disabled img {
        opacity: 0.2;
    }

.video-section {
    width: 100%;
    aspect-ratio: 1132/637;
    background-color: #666666;
    margin-bottom: 44px;
}

.comment-box {
    display: flex;
    background-color: #1a1a1acc;
    padding: 2rem 1rem;
}

.comment-thumbnail {
    height: 6rem;
    width: 6rem;
    border-radius: 50%;
    margin-right: 1rem;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}

.comment-thumbnail img {
    width: 100%;
}

.btn-prev-item, .btn-next-item {
    border: none;
    padding: 0.5rem 2rem;
    font-weight: bolder;
    font-size: 1.25rem;
}

.btn-prev-item {
    background-color: transparent;
}

.btn-next-item {
    background-color: var(--primary);
}

.btn-prev-item img,
.btn-next-item img {
    height: 2rem;
}

.service-title-box {
    width: 35%;
}

.service-img-box {
    width: 65%;
    display: flex;
    align-items: center;
}

.service-img-box img {
    width: 100%;
    aspect-ratio: 675/380;
}

.service-cnbox {
    font-size: 4rem;
    padding: 1.5rem 0;
    position: relative;
}
    .service-cnbox::before {
        content: '';
        position: absolute;
        z-index: -1;
        background-color: var(--primary);
        top: 0;
        width: 100vw;
        height: 100%;
    }
    .service-cnbox.cnbox-left::before {
        right: 0;
    }

    .service-cnbox.cnbox-right::before {
        left: 0;
    }

.contact-list li {
    list-style: none;
    padding: 2rem 0;
    text-decoration: underline;
    display: flex;
    align-items: center;
}

    .contact-list li span{
        width: 2.5rem;
        height: 2.5rem;
        background-color: var(--primary);
        display: inline-block;
        margin-right: 1rem;
        padding: 0.5rem;
    }

        .contact-list li span::before {
            content: "";
            height: 100%;
            width: 100%;
            background-size: contain;
            background-position: center;
            background-repeat: no-repeat;
            display: inline-block;
        }

    .contact-list li span.contact-item-address::before {
        background-image: url('/image/address.svg');
    }

    .contact-list li span.contact-item-phone::before {
        background-image: url('/image/phone.svg');
    }

    .contact-list li span.contact-item-email::before {
        background-image: url('/image/email.svg');
    }

    .contact-list li span.contact-item-line::before {
        background-image: url('/image/line.svg');
    }

    .contact-list li span.contact-item-messenger::before {
        background-image: url('/image/messenger.svg');
    }

.contact-list li p {
    margin: 0;
}

.img-pc {
    display: inline;
}

.img-pad {
    display: none
}

.img-mobile {
    display: none;
}

@media(max-width: 1400px) {
    .logo {
        width: 145px;
    }

    .custom-footer {
        padding: 0 20px 20px 20px;
    }
}

@media(max-width: 1200px) {
    .section-title {
        font-size: 8rem;
    }

    ..section-title-cn {
        font-size: 6rem;
    }
}

@media(max-width: 992px) {
    .section-title {
        font-size: 4rem;
    }

    .section-title-cn {
        font-size: 3.5rem;
        white-space: unset;
    }

    .custom-footer {
        padding: 0 0 40px 0;
    }

    .logo {
        width: 120px;
    }

    .text-core-value {
        font-size: 3rem;
    }

    .img-pc {
        display: none;
    }

    .img-pad {
        display: inline
    }

    .img-mobile {
        display: none;
    }
}

@media(max-width: 768px) {
    html {
        font-size: 8px;
    }

    .logo {
        width: 80px;
    }

    .navbar-custom {
        width: 40px;
    }

    .nav-open {
        padding: 40px 5px;
    }

    .nav-close-box {
        width: 40px;
    }

    .bottom-box-rotate {
        height: 39px;
        padding: 0 1rem 0 2rem;
        transform: translateY(39px) rotate(270deg);
    }

    .philosophy-box {
        padding: 2rem 1rem;
    }
    .philosophy-box .img-philosophy {
        width: 48px;
    }

    .service-text-box {
        top: 30%;
        padding: 0 10%;
    }

    .title-sm {
        font-size: 2rem;
    }

    .service-cnbox {
        font-size: 2rem;
    }

    .service-cnbox::before {
        width: 100%;
    }

    .w-md-100 {
        width: 100%;
        margin: 0;
    }

    .img-pc {
        display: none;
    }

    .img-pad {
        display: none
    }

    .img-mobile {
        display: inline;
    }
}

.img-white {
    filter: brightness(0) invert(1);
}

#digitalker {
    width: 100%;
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    animation: digitalker both;
    animation-timeline: view(auto 60%);
    opacity: 0.25;
}

@keyframes digitalker {
    from {
        transform: translateY(-50%) scale(1);
        opacity: 0.25;
    }
    to {
        transform: translateY(0) scaleY(2);
        opacity: 0;
        visibility: hidden;
    }
} 

.cursor-disabled{
    cursor: not-allowed !important;
}

.animate-bg-primary {
    animation: bgPrimary both;
    animation-timeline: view(95% 2%);
}

@keyframes bgPrimary {
    from {
        background-color: black;
    }

    to {
        background-color: var(--primary);
    }
}

.animate-title-size {
    animation: titleSize both;
    animation-timeline: view(40% 40%);
}

@keyframes titleSize {
    from {
        width: 100%;
    }

    to {
        width: 60%;
    }
}
