/*  Default
-------------------------------------------------
    - reset
    - z-index rule

    - df-text
    - df-color

    - df-link
    - df-list : clear-both;
    - df-height
    - df-center
    - df-img
    - df-hr

    - df-gotop
    - scrollbar
    - df-table
    - df-pagination
    - df-input
    - df-viedo
    - df-box : close_ +cover
    - df-btn
------------------------------------------------*/

/*-----------------------------------------------
    reset
-----------------------------------------------*/

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

button,
select,
textarea,
option,
input {
    line-height: inherit;
    border: 0;
    border-style: none;
    font-family: inherit;
    font-size: inherit;
    outline: none;
    background: transparent;
}

html,
body,
header,
section,
article,
footer,
.df-width {
    position: relative;
}

/*  z-index rule
-------------------------------------------------
    - box :  z-index:101;
    - close    :  z-index:102;
    - cover    :  z-index:100;
    - menu-top :  z-index:99;
    - go-top   :  z-index:99;
    - btn      :  z-index:50;
-------------------------------------------------*/

/*  df-text
-------------------------------------------------
    - h1-h3
    - p
    - ellipsis
-------------------------------------------------*/


.df-table,
.df-width,
.box-text,
.tab,
header,
section,
ul,
li,
ol,
p,
th,
td,
a {
    line-height: 1.5;
    color: #212529;
    font-family: 'Noto Sans JP', 'Roboto', Arial, sans-serif;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.01em;
    word-wrap: break-word;
    word-break: break-all;
    outline: none;
    margin: 0;
    padding: 0;
}

@media screen and (max-width: 768px) {

    .df-table,
    .df-width,
    .box-text,
    header,
    section,
    ul,
    li,
    ol,
    p,
    th,
    td,
    a {
        font-size: 14px;
    }
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
    margin-bottom: 0.5rem;
    font-weight: 500;
    line-height: 1.2;
}

h1,
.h1 {
    font-size: 2.5rem;
}

h2,
.h2 {
    font-size: 2rem;
}

h3,
.h3 {
    font-size: 1.75rem;
}

h4,
.h4 {
    font-size: 1.3rem;
}

h5,
.h5 {
    font-size: 1.25rem;
}

h6,
.h6 {
    font-size: 1rem;
}

p {
    margin-top: 0;
    margin-bottom: 1rem;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

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

.ellipsis/*省略超過字元*/
 {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;

    /*超過2行以上*/
    /*
    text-overflow: -o-ellipsis-lastline;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;   /*這裡可改行數
    -webkit-box-orient: vertical;
*/
}

/*外框字
{

text-shadow:rgba(255, 255, 255, 0.5) 0 1.5px, rgba(255, 255, 255, 0.5) 1.5px 0, rgba(255, 255, 255, 0.5) -1.5px 0, rgba(255, 255, 255, 0.5) 0 -1.5px, rgba(255, 255, 255, 0.5) -1px -1px, rgba(255, 255, 255, 0.5) 1px 1px, rgba(255, 255, 255, 0.5) 1px -1px, rgba(255, 255, 255, 0.5) -1px 1px;

}

*/

/*-----------------------------------------------
    df-color
-----------------------------------------------*/

.text-white {
    color: #fff;
}

.text-primary {
    color: #007bff;
}

.text-secondary {
    color: #6c757d;
}

.text-success {
    color: #28a745;
}

.text-info {
    color: #17a2b8;
}

.text-warning {
    color: #ffc107;
}

.text-danger {
    color: #dc3545;
}

.text-light {
    color: #f8f9fa;
}

.text-dark {
    color: #343a40;
}

.text-muted {
    color: #6c757d;
}

.text-black-50 {
    color: rgba(0, 0, 0, 0.5);
}

.text-white-50 {
    color: rgba(255, 255, 255, 0.5);
}

.bg-white {
    background-color: #fff;
}

.bg-primary {
    background-color: #007bff;
}

.bg-secondary {
    background-color: #6c757d;
}

.bg-success {
    background-color: #28a745;
}

.bg-info {
    background-color: #17a2b8;
}

.bg-warning {
    background-color: #ffc107;
}

.bg-danger {
    background-color: #dc3545;
}

.bg-light {
    background-color: #f8f9fa;
}

.bg-dark {
    background-color: #343a40;
}

.bg-muted {
    background-color: #6c757d;
}

.bg-black-50 {
    background-color: rgba(0, 0, 0, 0.5);
}

.bg-white-50 {
    background-color: rgba(255, 255, 255, 0.5);
}

/*-----------------------------------------------
    df-link
-----------------------------------------------*/

a,
a:active,
a:hover,
a:focus {
    /*display: block;*/
    color: #000;
    -webkit-user-select: none;
    transition: all 0.3s;
    text-decoration: none;
    outline: 0;

    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    -webkit-touch-callout: none;
}
a:hover {
    text-decoration: none;
    /*transition   : all .3s;*/
}

/*可穿透上層div*/
/*.pointer-events: none;*/

/*-----------------------------------------------
    df-list
    clear-both
-----------------------------------------------*/

ul {
    margin-top: 0;
    padding: 0;
    height: 100%;
    /*margin-bottom: 10px;*/
}
ol {
    margin: 0;
    padding: 0 0 0 4%;
}
ul ul,
ol ul,
ul ol,
ol ol {
    margin-bottom: 0;
}

ul li {
    /*height: 100%;*/
    list-style: none;
}

li a {
    display: block;
    width: 100%;
    cursor: pointer;
    overflow: hidden;
}

ol > li > a {
    color: #007bff;
    text-decoration: none;
}

/*加在li的上一層*/
.clear-both::after {
    content: '';
    margin: 0;
    padding: 0;
    clear: both;
    display: block;
}

@media screen and (max-width: 768px) {
    ol > li,
    .ol > li > a {
        font-family: 'Noto Sans JP', 'Roboto', Arial, sans-serif;
    }
}

/*-----------------------------------------------
    df-height
-----------------------------------------------*/

.df-height {
    position: relative;
    display: inline-block;
    width: 100%;
    height: 20px;
    background-color: rgba(220, 20, 220, 0.5);
    margin: 0;
    padding: 0;
}
.df-height-50 {
    height: 50px;
}
.df-height-1p {
    height: 1%;
    display: inline-block;
}
.df-height-3p {
    height: 3%;
    display: inline-block;
}
.df-height-5p {
    height: 5%;
    display: inline-block;
}

/*-----------------------------------------------
    df-center
-----------------------------------------------*/

.center_ {
    position: relative;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    width: 100%;
    text-align: center;
}

/*垂直置中*/
.center-ver {
    display: flex;
    align-items: center;
    justify-content: center;
}

/*-----------------------------------------------
    df-img
-----------------------------------------------*/

* > img {
    max-width: 100%;
}

img {
    vertical-align: middle;
    border-style: none;
}

/*.img-fluid ,
.img-fluid > img ,
.img-fluid > a > img ,
ul.img-fluid > li > img ,
li > img ,
li > a > img
{
    max-width: 100%;
    height   : auto;
}
*/

.img-thumbnail {
    padding: 0.25rem;
    background-color: #fff;
    border: 1px solid #dee2e6;
    border-radius: 0.25rem;
    max-width: 100%;
    height: auto;
}

/*-----------------------------------------------
    df-hr
-----------------------------------------------*/

hr {
    display: block;
    margin: 20px auto;
    width: 100%;
    height: 5px;
    border: 0;
    border-top: 1px solid #eee;
    /*border-bottom:5px dotted #fff;*/
}


/*-----------------------------------------------
    df-gotop
-----------------------------------------------*/

/*#gotop {
    display: none;
    position: fixed;
    right: 0px;
    bottom: 0px;
    z-index: 99;
    opacity: 1;
    cursor: pointer;
    transition: all 0.3s;

}

#gotop:hover {
    opacity: 1;
    transition: all 0.3s;

}

@media screen and (max-width: 767px) {
    #gotop {
        right: 0;
         transform: scale(0.8);
        bottom: 0;
    }
}
*/

/*-----------------------------------------------
    df-table
-----------------------------------------------*/

.df-table {
    /*display      : none;*/
    margin: 5% auto 5%;
    width: 100%;
    border: 5px;
    border-collapse: collapse;
}

.df-table th {
    width: 25%;
    height: 3em;
    color: #fff;
    border: 5px;
    font-weight: 300;
    text-align: inherit;
    letter-spacing: 2px;
    background: #7e2727;
}

.df-table th:nth-child(1) {
    width: 12%;
}

.df-table td {
    padding: 0 15px 0 5px;
    height: 3em;
    border-bottom: 1px solid #7e272787;
    text-align: center;
}

.df-table tr:hover {
    border-radius: 5px;
    background-color: rgba(204, 0, 0, 0.3);
}

/*-----------------------------------------------
    df-pagination
-----------------------------------------------*/

/*.pagination
{
    margin        : 0 auto;
    width         : 180px;
    text-align    : center;
    letter-spacing: .4em;
}

.pagination li
{
    margin       : 0 0 0 2px;
    padding      : 0 6px 0 7px;
    float        : left;
    width        : 25px;
    height       : 25px;
    line-height  : 25px;
    cursor       : pointer;
    color        : #426e9e;
    border       : 1px solid #4c89b730;
    border-radius: 3px;
    list-style   : none;
}
.pagination-now { background: #6ca9d86b; }


*/
.pagination {
    margin: 0 auto;
    /*! width     : 254px; */
    text-align: center;
    letter-spacing: 0.4em;
    color: #426e9e;
    /*! background: #fff; */
}
.pagination li {
    float: left;
    line-height: 38px;
    list-style: none;
    min-width: 38px;
    height: 37px;
    margin: 0 0 0 -1px;
    /*! background: #fff; */
}
.pagination li > a {
    padding: 5px;
    width: 100%;
    height: 100%;
    border: 1px solid #ddd;
    color: #0275d8;
    background: #fff;
}
.pagination li > a:hover {
    background: #eceeef;
    color: #0275d8;
}
.pagination-pre > a {
    width: 80px;
    padding: 4px 4px 4px 4px;
    border-radius: 5px 0 0 5px;
    border: 1px solid #ddd;
    color: #c4ced5;
    background: #fff;
}

.pagination-next > a {
    width: 60px;
    padding: 4px 4px 4px 4px;
    border-radius: 0 5px 5px 0;
    border: 1px solid #ddd;
    color: #0275d8;
    background: #fff;
}

.pagination-now > a {
    background: #0275d8;
    color: #fff;
    padding: 4px;
    border: 1px solid #0275d8;
}
/*-----------------------------------------------
    df-input
-----------------------------------------------*/

.df-form {
    display: block;
    margin: 3% auto;
    width: 100%;
    height: 40px;
    line-height: 40px;
    border: 1px solid #111111a8;
    border-radius: 5px;
    background-color: transparent;
    /*! box-shadow      : -6px -3px 18px #353e5430 inset; */
    padding: 0 0 0 10px;
}

/*下拉圖示*/
.down_bg {
    cursor: pointer;
    background: url(../images/down_bg.png) 98% center no-repeat;
    /*隱藏預設的下拉圖示*/
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
}

/*清除ie的默認選擇框樣式清除，隱藏下拉箭頭*/
select::-ms-expand {
    display: none;
}

/*option樣式的簡單清除*/
option::-ms-expand {
    display: none;
}
option {
    -moz-appearance: none; /* Firefox */
    -webkit-appearance: none; /* Safari 和 Chrome */
    appearance: none;
}
/*背景色字體顏色*/
option:hover {
    color: #fff;
    background-color: #1e90ff;
}
/*-----------------------------------------------
    df-viedo
-----------------------------------------------*/

.df-video {
    display: block;
    position: relative;
    /*! padding: 4px 0 52.9% 0; */
    padding-bottom: 52.8%; /*16by9*/
    height: 0;
    overflow: hidden;
    /*! border: 1px solid #fff; */

}
.df-video-full{
padding-bottom: 52.9%;
/*background: url(../images/bg_content.png) center top  repeat ;*/
}
.df-video-item {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    /*! border: 1px solid #fff; */
    margin: 0px 0;
}

/*-----------------------------------------------
    scrollbar
-----------------------------------------------*/

/*for body*/
.wrapper {
    width: 100%;
    height: 100%;
    overflow: auto;
}

.wrapper.scrollbar-dynamic {
    max-height: none;
}

.wrapper.scroll-x {
    display: none !important;
}

/*for box*/
.box-text {
    width: 100%;
    height: 100%;
    overflow: auto;
}

.box-text.scrollbar-dynamic {
    max-height: none;
}

.box-text.scroll-x {
    display: none !important;
}

.box-content > .scroll-wrapper > .scroll-content {
    padding: 0 20px;
}

/*  df-box
-------------------------------------------------
    - close_
    - cover
    - df-box
    - box-close + open
------------------------------------------------*/

.df-close:hover {
    transform: rotateZ(180deg);
}

.df-close {
    display: inline-block;
    /*! overflow: hidden; */

    position: absolute;
    top: -9%;
    right: -4px;
    z-index: 101;
    opacity: 1;
    width: 40px;
    height: 40px;
    cursor: pointer;

    transition: all 0.5s;

    z-index: 140;
    transform-origin: 50% 50%;
    /*! background: #313131; */
}

/*    .df-close:hover::before,
    .df-close:hover::after {
        background: #1ebcc5;

    }*/

.df-close::before,
.df-close::after {
    content: '';
    position: absolute;
    height: 2px;
    width: 100%;
    top: 50%;
    left: 0;
    margin-top: -1px;
    background: #fff;
    border-radius: 5px;
}

.df-close::before {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

.df-close::after {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

.df-cover {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: rgba(0, 0, 0, 0.8);
}

.df-box {
    display: none;
    position: fixed;
    top: 22vh;
    right: 0;
    left: 0;
    margin: auto;
    z-index: 101;
    width: 90%;
    /*! max-width    : 600px; */
    /*transition : all .3s ease-out;*/
    bottom: 0;

    padding: 10px;
    /*! background   : #fff; */
    border-radius: 5px;
    /*! max-height   : 600px; */
}

.box-content {
    position: relative;
    z-index: 10;
    width: 100%;
    height: 67.4%%;
    padding: 5px 4px 4px 4px;
    max-width: 900px;
    left: 0;
    right: 0;
    margin: 0 auto;
    border: 1px solid #ffffff82;
}

.box-open {
    display: block;
    /*! animation: scale-up-center 0.2s cubic-bezier(0.390, 0.575, 0.565, 1.000) both; */
    /*animation: box-open 0.3s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;*/
}

.box-close {
    opacity: 0;
    transform: scale(0);
}

@media screen and (max-width: 768px) {
    .df-close {
        top: -32px;
        right: 6px;
        width: 30px;
        height: 30px;
        z-index: 999;
        /*! color: #fff; */
    }

    .df-close::before,
    .df-close::after {
        background: #fff;
    }

    .df-box {
        /*! position: relative; */
        /*! margin  : -60% auto 50px; */
        padding: 0;
        max-height: 90vh;
        /*! overflow: auto; */
    }

    .box-content {
        /*! height    : auto; */
        /*! background: #fff; */
        /*! padding   : 50px 5% 5% 5%; */
        overflow: initial;
    }
}

/*  df-btn
------------------------------------------------
    - button

    - df-btn
    - df-btn-1
    - df-btn-2
-----------------------------------------------*/

/*-----------------------------------------------
    df-btn
-----------------------------------------------*/
.df-btn,
button,
button a .df-btn:before,
.df-btn:after {
    box-sizing: border-box;
    transition: 0.5s;
    overflow: hidden;
    text-align: center;
    text-decoration: none;
    outline: none;
}

.df-btn {
    margin: 30px auto;
}

.df-btn a,
.df-btn {
    display: block;
    position: relative;
    height: 50px;
    line-height: 50px;
    max-width: 180px;
    color: #000;
    border-radius: 5px;
    font-weight: bolder;
    cursor: pointer;
}

.df-btn a:hover,
.df-btn:hover {
    color: #dba3dd;
    z-index: 102;
    background: #ffffff17;
}

/*-----------------------------------------------
    button
-----------------------------------------------*/

button {
    max-width: 90px;
    height: 35px;
    margin: 10px 4% 0 0;
    line-height: 40px;
    color: #ffffff69; /*邊框色*/
    /*! background: #dba3dd; */ /*背景色*/
    /*! border: 1px solid currentColor; */

    display: block;

    width: 100%;
    border-radius: 6px;
    font-size: 14px;

    padding: 0;
    /*! height: 100%; */
    float: right;
    /*! left: 90%; */
    z-index: 50;
    position: relative;
}

button a {
    color: #fff;
    width: 100%;
    display: inline-block;
    height: 100%;
}

button:hover,
button a:hover {
    color: #55acee;
    background: transparent;
}

/*-----------------------------------------------
    df-btn-1
-----------------------------------------------*/

/* NO using html as bg */
/* bg color must be RGBA*/

.df-btn-1 a {
    color: #fff;
    border: 2px solid #fff;
    /*background: rgba(88, 29, 29, 0.2);*/
}

.df-btn-1 a:after {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: -1;
    opacity: 0.5;
    width: 100%;
    width: 0;
    height: 0;
    border-radius: 50%;
    content: '';
    transition: all 0.3s ease 0s;
    transform: translateX(-50%) translateY(-50%);
    background: none repeat scroll 0 0 #fff;
}

.df-btn-1 a:hover {
    color: #333;
    border: 2px solid #fff;
    text-shadow: none;
}
.df-btn-1 a:hover:after {
    height: 420%;
}

.df-btn-1 a:hover:after {
    opacity: 1;
    width: 110%;
    height: 450%;
}

/*-----------------------------------------------
    df-btn2
-----------------------------------------------*/

.df-btn-2 {
    color: #fff;
    border: 0 solid #dc3939;
    background: #dc3939; /*change-btn-bg-color*/
}
.df-btn-2 span {
    position: relative;
    z-index: 1;
}

.df-btn-2:after {
    position: absolute;
    top: -10%;
    right: -10%;
    z-index: 0;
    width: 0;
    height: 120%;
    content: '';
    transition: all 0.3s;
    transform: skewX(30deg);
    background: #fff;
}

/*.df-btn-2:hover { color: #444; }*/

.df-btn-2:hover:after {
    left: -10%;
    width: 120%;
    transform: skewX(0deg);
}




/*  show
-------------------------------------------------
    - visible-lg : show 960px ↑
    - visible-sm : show 768px ↑
    - visible-xs : show 480px ↑
-------------------------------------------------*/

/*   show-960px ↑   */
.visible-lg {
    display: block;
    opacity: 1;
}

@media screen and (max-width: 960px) {
    .visible-lg {
        display: none;
        opacity: 0;
    }
}

/*  show 768px ↑  */
.visible-sm {
    display: block;
    opacity: 1;
}

@media screen and (max-width: 768px) {
    .visible-sm {
        display: none;
        opacity: 0;
    }
}

/*   show 480px ↑   */
.visible-xs {
    display: block;
    opacity: 1;
}

@media screen and (max-width: 480px) {
    .visible-xs {
        display: none;
        opacity: 0;
    }
}

/*  hide
-------------------------------------------------
    - hidden-lg  : show 0-960px
    - hidden-sm  : show 0-768px
    - hidden-xs  : show 0-480px
-------------------------------------------------*/

/*   show 0-960px */
.hidden-lg {
    display: none;
    width: 0;
    height: 0;
}

@media screen and (max-width: 960px) {
    .hidden-lg {
        display: block;
        width: auto;
        height: auto;
    }
}

/*   show 0-768px   */
.hidden-sm {
    display: none;
    width: 0;
    height: 0;
}

@media screen and (max-width: 768px) {
    .hidden-sm {
        display: block;
        width: auto;
        height: auto;
    }
}

/*   show 0-480px  */
.hidden-xs {
    display: none;
    width: 0;
    height: 0;
}

@media screen and (max-width: 480px) {
    .hidden-xs {
        display: block;
        width: auto;
        height: auto;
    }
}


/* pc-only 768px ↑ */
/*.pc-only{display:block;opacity:1;}*/
@media screen and (min-width:768px){.pc-only{display:block;opacity:1;}
}