/*------------------------------------*\
  #SETTINGS
\*------------------------------------*/

body {
    font-family: "Noto Sans TC", "Microsoft JhengHei", "微軟正黑體", sans-serif;
    color: #000;
    font-size: 16px;
    font-weight: 300;
    background-color: #fff;
}

a {
    color: #000;
}

a:hover {
    color: #000;
    text-decoration: none;
    transition: 0.3s;
}

ul {
    padding-left: 0;
    margin-bottom: 0;
}

li {
    list-style: none;
}


/**
 * Form
 */

input:focus {
    outline: none;
}

::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
    color: rgba(216, 216, 216, 0.8);
    font-weight: 300;
    letter-spacing: 2px;
    font-size: 14px;
    opacity: 1; /* Firefox */
}
  
:-ms-input-placeholder { /* Internet Explorer 10-11 */
    color: rgba(216, 216, 216, 0.8);
    font-weight: 300;
    letter-spacing: 2px;
    font-size: 14px;
}

::-ms-input-placeholder { /* Microsoft Edge */
    color: rgba(216, 216, 216, 0.8);
    font-weight: 300;
    font-size: 14px;
}


/**
 * Display
 */

.m-d-show {
    display: none;
}

@media (max-width: 1211px) {
    .m-d-none {
        display: none !important;
    }

    .m-d-show {
        display: block;
    }

    .m-d-block {
        display: block;
    }
}


/*------------------------------------*\
  #BASE
\*------------------------------------*/

/**
 * Align
 */

.total-center {
    align-items: center;
    justify-content: center;
}

.justify-space-between {
    justify-content: space-between;
}

.flex-1 {
    flex: 1;
}

.flex-2 {
    flex: 2;
}

.flex-3 {
    flex: 3;
}


/**
 * Layout
 */

.layout {
    margin-left: 8%;
    margin-right: 8%;
}

@media (max-width: 576px) {
    .layout {
        margin-left: 5%;
        margin-right: 5%;
    }
}


/**
 * Headings
 */

.heading {
    font-size: 28px;
    font-family: "Noto Sans TC", sans-serif;
    letter-spacing: 1px;
    font-style: normal;
    padding-top: 2px;
    padding-bottom: 2px;
}

.heading--underline {
    display: table;
    border-bottom: 3px solid #F39800;
    margin-bottom: 40px;
}


/**
 * Section Basic
 */

.section {
    padding-top: 80px;
    padding-bottom: 80px;
}
.section--page {
    padding-bottom: 80px;
}

    .section__header {
        text-align: center;
        margin-bottom: 40px;
    }

        .section__heading {
            font-size: 36px;
            margin-bottom: 5px;
        }

        .section__subheading {
            font-size: 18px;
        }

    .section__content {
        position: relative;
    }


.section--carousel .container {
    position: relative;
}

@media (max-width: 1211px) {
    .section {
        padding-top: 60px;
    }
}


/**
 * Page Basic
 */

.page__flex {
    display: -webkit-flex;
    display: flex;
    justify-content: space-between;
}

.page__content {
    width: calc(100% - 300px);
}

@media(max-width: 1211px) {
    .page__flex {
        flex-direction: column;
    }

    .page__content {
        width: 100%;
    }
    
}


/**
 * Flex Grid
 */

.grid {
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
    margin-left: -15px;
    margin-right: -15px;
    flex-wrap: wrap;
}

.grid.vertical {
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
}

    .grid__item {
        padding-left: 15px;
        padding-right: 15px;
    }

    .grid-7 > .grid__item {
        width: 14.2%;
    }

    .grid-4 > .grid__item {
        width: 25%;
    }

    .grid-3 > .grid__item {
        width: 33.333333%;
    }

    .grid-2 > .grid__item {
        width: 50%;
    }


@media (max-width: 1024px) {
    .grid-3 .grid__item,
    .grid-2 .grid__item {
        width: 50%;
    }
}

@media (max-width: 768px) {
    .grid-7 > .grid__item {
        width: 100%;
    }
}

@media (max-width: 576px) {
    .grid-3 .grid__item,
    .grid-2 .grid__item {
        width: 100%;
    }
}


/**
 * Text
 */

.text-box {
    margin-top: 30px;
}

.text-small {
    font-size: 0.9em;
}


/**
 * Colors
 */

.text-color-primary {
    color: #F39800;
}

.text-color-light {
    color: #fff;
}

.text-color-dark {
    color: #000;
}

.text-color-gray {
    color: #595757;
}

.bg-color-dark {
    background-color: #101010;
}

.box-shadow {   
    box-shadow: 0 3px 6px 1px rgb(212 212 212 / 60%);
}

.hover--outline {
    border: 1px solid transparent;
    transition: 0.2s;
}

.hover--outline:hover {
    border: 10px solid #f39800;
}


/**
 * Tools
 */

.ellipsis {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ellipsis--3 {
    -webkit-line-clamp: 3;
}

.ellipsis--2 {
    -webkit-line-clamp: 2;
}