/* ------------------------------------------
CSS
------------------------------------------ */


/* ====================
GLOBAL USE VARIABLES
==================== */

/* →59ccff */

:root {
    /*--default-font: "M PLUS 1p", "M PLUS Rounded 1c", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;*/
    --default-font: "M PLUS 1p", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
    --lato-font: 'Lato', sans-serif;
    --default-transition: 0.3s;
    --transition-50: 0.5s;
    --transition-80: 0.8s;
    --text-size: 16px;
    --text-color: #ddd;
    --default-line-height: 180%;
    --a-text-color: #aaf;
    --bg-color: #333;
    --bg-color-50: rgba(0, 0, 0, .5);
    --bg-color-75: rgba(0, 0, 0, .75);
    --title-bg-color: #111;
    --title-text-color: #ddd;
    --primary-color: #52a5dc;
    --second-color: #a552dc;
    --third-color: #dca552;
    --border-white-50: rgba(255, 255, 255, .5);
    --border-default: #333;
    --border-default-25: rgba(255, 255, 255, .25);
    --border-default-50: rgba(255, 255, 255, .5);
    --footer-bg: #111;
    --primaty-stripe: repeating-linear-gradient(-45deg, transparent, transparent 10px, rgba(82, 165, 220, 0.1) 10px, rgba(82, 165, 220, 0.1) 20px);
    --selection-color: #ddd;
}

/*====================
GENERAL SETTING
====================*/

body {
    font-family: var(--default-font) !important;
    background-color: var(--bg-color);
    background-attachment: fixed;
    background-image: url(./img/bg.png);
    color: var(--text-color);
    font-size: var(--text-size);
    padding-top: 0 !important;
    overflow-x: hidden;
    line-height: var(--default-line-height);
}

body.en {
    font-family: var(--lato-font) !important;
}

::selection {
    background: var(--selection-color);
    color: var(--bg-color);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--default-font) !important;
}

a,
a:hover,
a:focus,
a:visited {
    text-decoration: underline;
    color: var(--a-text-color);
    transition: var(--default-transition);
}

dd,
dt {
    padding-left: 10px;
    border-left-width: 2px;
    border-left-style: solid;
    margin-bottom: 10px;
}

dt {
    border-left-color: #ff6666;
    border-top: 1px solid var(--border-default-50);
}

dd {
    border-left-color: #e5e5e5;
    padding-left: 2em;
}

.well,
.panel .panel-body {
    color: var(--bg-color);
}

.flex {
    display: flex;
    flex-wrap: wrap;
}

.img-thumbnail {
    border-radius: 0;
}

input.has-error,
textarea.has-error,
select.has-error {
    background-color: #f2dede;
}

.table-striped>tbody>tr:nth-of-type(odd) {
    background-color: var(--bg-color-75);
}

#main {
    min-height: 1500px;
}

a.img-expand {
    position: relative;
    display: inline-block;
}

a.img-expand .zoom {
    position: absolute;
    color: var(--primary-color);
    top: 1px;
    right: 5px;
    font-size: 20px;
}

/* ====================
FOR HOME
==================== */

body.home {
    /*background-image: url(./img/home.jpg);
    background-position: center top;
    background-repeat: no-repeat;*/
    background-color: #000;
    background-image: none;
}

body.home a {
    color: var(--text-color);
}

body.home #main .container {
    min-height: 100vh;
    background-image: url(./img/home.jpg);
    background-position: center top;
    background-repeat: no-repeat;
    background-size: contain;
}

body.home #main .container .row {
    padding-top: 30vh;
}

body.home #main .container .row .language {
    padding: 15px 0;
}

body.home #main .container .row .language img {
    height: 15px;
    width: auto;
    padding-right: 10px;
}

/* ====================
FOR LOADING
==================== */

#loading {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    background-color: var(--bg-color);
    z-index: 1050;
}

#loading .loading-img {
    position: fixed;
    top: calc(50vh - 32px);
    left: calc(50vw - 32px);
}

/* ====================
FOR METAL
==================== */

/* Metal ------------------------- */

.metal {
    position: relative;
    margin: 40px auto;
    outline: none;

    font: bold 6em/2em "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
    text-align: center;
    color: hsla(0, 0%, 20%, 1);
    text-shadow: hsla(0, 0%, 40%, .5) 0 -1px 0, hsla(0, 0%, 100%, .6) 0 2px 1px;

    background-color: hsl(0, 0%, 90%);
    /*box-shadow: inset hsla(0, 0%, 15%, 1) 0 0px 0px 4px,
        inset hsla(0, 0%, 15%, .8) 0 -1px 5px 4px,
        inset hsla(0, 0%, 0%, .25) 0 -1px 0px 7px,
        inset hsla(0, 0%, 100%, .7) 0 2px 1px 7px,
        hsla(0, 0%, 0%, .15) 0 -5px 6px 4px,
        hsla(0, 0%, 100%, .5) 0 5px 6px 4px;*/

}

/* Radial ------------------------- */

.radial.metal {
    width: 60px;
    height: 60px;
    line-height: 60px;
    border-radius: 30px;
    background-image: -webkit-radial-gradient(50% 0%, 8% 50%, hsla(0, 0%, 100%, .5) 0%, hsla(0, 0%, 100%, 0) 100%),
        -webkit-radial-gradient(50% 100%, 12% 50%, hsla(0, 0%, 100%, .6) 0%, hsla(0, 0%, 100%, 0) 100%),
        -webkit-radial-gradient(0% 50%, 50% 7%, hsla(0, 0%, 100%, .5) 0%, hsla(0, 0%, 100%, 0) 100%),
        -webkit-radial-gradient(100% 50%, 50% 5%, hsla(0, 0%, 100%, .5) 0%, hsla(0, 0%, 100%, 0) 100%),

        -webkit-repeating-radial-gradient(50% 50%, 100% 100%, hsla(0, 0%, 0%, 0) 0%, hsla(0, 0%, 0%, 0) 3%, hsla(0, 0%, 0%, .1) 3.5%),
        -webkit-repeating-radial-gradient(50% 50%, 100% 100%, hsla(0, 0%, 100%, 0) 0%, hsla(0, 0%, 100%, 0) 6%, hsla(0, 0%, 100%, .1) 7.5%),
        -webkit-repeating-radial-gradient(50% 50%, 100% 100%, hsla(0, 0%, 100%, 0) 0%, hsla(0, 0%, 100%, 0) 1.2%, hsla(0, 0%, 100%, .2) 2.2%),

        -webkit-radial-gradient(50% 50%, 200% 50%, hsla(0, 0%, 90%, 1) 5%, hsla(0, 0%, 85%, 1) 30%, hsla(0, 0%, 60%, 1) 100%);
}


.metal.radial:before,
.metal.radial:after {
    content: "";
    top: 0;
    left: 0;
    position: absolute;
    width: inherit;
    height: inherit;
    border-radius: inherit;

    /* fake conical gradients */
    background-image: -webkit-radial-gradient(50% 0%, 10% 50%, hsla(0, 0%, 0%, .1) 0%, hsla(0, 0%, 0%, 0) 100%),
        -webkit-radial-gradient(50% 100%, 10% 50%, hsla(0, 0%, 0%, .1) 0%, hsla(0, 0%, 0%, 0) 100%),
        -webkit-radial-gradient(0% 50%, 50% 10%, hsla(0, 0%, 0%, .1) 0%, hsla(0, 0%, 0%, 0) 100%),
        -webkit-radial-gradient(100% 50%, 50% 06%, hsla(0, 0%, 0%, .1) 0%, hsla(0, 0%, 0%, 0) 100%);
}

.metal.radial:before {
    transform: rotate(65deg);
}

.metal.radial:after {
    transform: rotate(-65deg);
}

/* Linear ------------------------- */

.metal.linear {
    width: 100px;
    font-size: 4em;
    height: 80px;
    border-radius: .5em;
    background-image: -webkit-repeating-linear-gradient(left, hsla(0, 0%, 100%, 0) 0%, hsla(0, 0%, 100%, 0) 6%, hsla(0, 0%, 100%, .1) 7.5%),
        -webkit-repeating-linear-gradient(left, hsla(0, 0%, 0%, 0) 0%, hsla(0, 0%, 0%, 0) 4%, hsla(0, 0%, 0%, .03) 4.5%),
        -webkit-repeating-linear-gradient(left, hsla(0, 0%, 100%, 0) 0%, hsla(0, 0%, 100%, 0) 1.2%, hsla(0, 0%, 100%, .15) 2.2%),

        linear-gradient(180deg, hsl(0, 0%, 78%) 0%,
            hsl(0, 0%, 90%) 47%,
            hsl(0, 0%, 78%) 53%,
            hsl(0, 0%, 70%)100%);
}

/* Oval ------------------------- */

.metal.linear.oval {
    margin-top: 100px;
    width: 70px;
    height: 60px;
    line-height: 60px !important;
    border-radius: 50%;
    font: italic bold 3em/50px Georgia, "Times New Roman", Times, serif;
}

/* active ------------------------- */

.metal:active,
.metal:hover {
    color: hsl(210, 100%, 40%);
    text-shadow: hsla(210, 100%, 20%, .3) 0 -1px 0, hsl(210, 100%, 85%) 0 2px 1px, hsla(200, 100%, 80%, 1) 0 0 5px, hsla(210, 100%, 50%, .6) 0 0 20px;
    box-shadow:
        inset hsla(210, 100%, 30%, 1) 0 0px 0px 4px,
        /* border */
        inset hsla(210, 100%, 15%, .4) 0 -1px 5px 4px,
        /* soft SD */
        inset hsla(210, 100%, 20%, .25) 0 -1px 0px 7px,
        /* bottom SD */
        inset hsla(210, 100%, 100%, .7) 0 2px 1px 7px,
        /* top HL */

        hsla(210, 100%, 75%, .8) 0 0px 3px 2px,
        /* outer SD */
        hsla(210, 50%, 40%, .25) 0 -5px 6px 4px,
        /* outer SD */
        hsla(210, 80%, 95%, 1) 0 5px 6px 4px;
    /* outer HL */
}

/* ====================
FOR HEADER
==================== */

header #navbar {
    font-family: var(--lato-font);
}

header .nav li>a,
header .nav li>a:hover,
header .nav li>a:focus,
header .nav li>a:visited {
    text-decoration: none;
    text-transform: uppercase;
}

header a.navbar-brand img.blue {
    display: none;
}

header .carousel {
    height: 500px;
    margin-bottom: 60px;
    margin-bottom: 0;
    background-color: var(--bg-color);
}

header header .carousel-caption {
    z-index: 10;
    /* Since positioning the image, we need to help out the caption */
}

header .carousel .item {
    background-color: #777;
}

header .carousel-inner>.item>img {
    position: absolute;
    top: 0;
    left: 0;
    min-width: 100%;
    object-fit: cover;
}

/* ====================
FOR FORM.PHP
==================== */

body.confirm main {
    margin-top: 111px;
}

body.confirm main section {
    margin-top: 50px;
}

/* ====================
FOR FOOTER
==================== */

footer {
    background-color: var(--footer-bg);
    color: var(--text-color);
    font-family: var(--lato-font);
}

footer p {
    padding: 10px 0;
    margin: 1em;
    font-size: 80%;
}

/* ====================
FOR PAGE TOP BUTTON
==================== */

#page-top {
    position: fixed;
    bottom: 20px;
    right: 20px;
    font-size: 14px;
    line-height: 1;
    z-index: 99;
    box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.8);
    cursor: pointer;
}

#page-top a {
    /*background-color: var(--a-text-color);*/
    text-decoration: none;
    color: #333;
    width: 60px;
    padding: 23px 5px;
    text-align: center;
    display: block;
    border-radius: 90px;
    opacity: 0.9;
    transition: all .3s ease;
}

#page-top a:hover {
    text-decoration: none;
    opacity: .5;
}

/* ====================
FOR SECTION
==================== */

section {
    padding-bottom: 50px;
}

section h3 {
    box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.8);
    text-align: center;
    background-color: var(--title-bg-color);
    color: var(--title-text-color);
    padding: 20px 0;
    margin-top: 0;
    margin-bottom: 50px;
    background-image: url(./img/title-bg.jpg);
    background-position: center center;
}

section.about h3,
section.contact h3 {
    margin-top: 0;
}

section.product h3,
section.works h3 {
    margin-bottom: 50px;
}

section p.lead {
    margin-top: 30px;
    margin-bottom: 80px;
}

section.about p span {
    font-size: 160%;
    font-weight: bold;
    text-decoration: underline;
    padding: 10px;
}

section.about .well {
    margin-top: 50px;
    background-color: var(--bg-color);
    font-size: 90%;
    color: var(--text-color);
    border-color: var(--bg-color);
}

section.product h5.example {
    margin-top: 20px;
    padding-bottom: 5px;
    text-align: center;
    border-bottom: 1px solid var(--text-color);
}

section.product .container.product {
    margin-top: 50px;
}

section.product .product-example {
    margin-top: 10px;
}

section.product .product-example .row .col-xs-3 {
    padding-left: 1px;
    padding-right: 1px;
}

section.product .product-title.main {
    margin-bottom: 2em;
    border-bottom: 2px solid var(--text-color);
}

section.product .product-title.main .h3 {
    font-size: 28px;
}

section.product .product-box .product-title {
    margin-bottom: 0;
    border-bottom: 1px solid var(--text-color);
}

section.product .product-title .h3,
section.product .product-box .product-title .h3 {
    margin-top: 0;
    font-weight: bold;
    text-align: center;
}

section.product .product-box .product-title .h3 .label {
    font-size: 50%;
    vertical-align: middle;
}

section.product .product-box .product-price {
    text-align: right;
}

section.product .product-box .product-price p {
    margin: 10px 0;
    font-size: 180%;
}

section.product .product-box .product-price .small {
    margin: 0;
    line-height: 100%;
    font-size: 85%;
}

section.product .product-box .product-desc {
    margin-top: 20px;
}

section.product .product-box .product-desc .alert {
    border-radius: 0;
}

section.product .product-box .product-desc .alert  .product-price {
    border-top: 1px solid #a94442;
    margin-top: 10px;
}

section.product .product-box .product-desc .alert .middle {
    font-size: 150% !important;
}


section.contact .collapse-privacy h3 {
    margin-bottom: 20px;
}

section.contact .flex div[class^="col-"] {
    max-height: 115px;
}

section.contact .flex div.textarea {
    max-height: 230px;
}

section.contact .alert {
    text-align: center;
    padding: 5px 10px;
    margin-top: 5px;
    margin-bottom: 10px;
}

section.contact .flex div.collapse-privacy-wrap {
    height: auto;
    max-height: none;
}

section.contact .well.collapse-privacy {
    background-color: var(--bg-color);
    font-size: 90%;
    color: var(--text-color);
}

section.contact .policy {
    width: 100%;
    height: 300px;
    overflow-y: scroll;
    padding: 10px;
    border: 1px solid var(--border-default-25);
}

section.contact .submit {
    margin: 40px 10px;
}

/* ====================
FOR RESPONSIVE
==================== */

@media (min-width: 992px) {}

@media (min-width: 768px) {

    header .nav li>a,
    header .nav li>a:hover,
    header .nav li>a:focus,
    header .nav li>a:visited {
        color: #fff;
        background-color: transparent;
    }

    header #navbar {
        border-top: 1px solid var(--border-white-50);
        border-bottom: 1px solid var(--border-white-50);
        transition: var(--transition-80);
    }

    header .navbar-wrapper {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        z-index: 20;
    }

    header .navbar-header {
        float: none;
    }

    header a.navbar-brand {
        float: none;
        text-align: center;
        display: block;
        line-height: 70px;
        height: 100px;
    }

    header a.navbar-brand img {
        max-width: 300px;
    }

    header a.navbar-brand>img {
        display: inline;
    }

    header .navbar-nav {
        margin: 0 auto;
        display: table;
        table-layout: fixed;
        float: none;
        transition: var(--default-transition);
    }

    header .nav li,
    header .nav li a {
        transition: var(--default-transition);
    }

    header .nav li>a:hover {
        background-color: rgba(255, 255, 255, .2);
        text-decoration: underline;
    }

    header .carousel-caption p {
        margin-bottom: 20px;
        font-size: 21px;
        line-height: 1.4;
    }

    header nav.scrolling {
        background-color: var(--bg-color-75);
    }

    header nav.scrolling a.navbar-brand {
        line-height: 20px;
        height: 50px;
        padding: 10px 15px 5px;
    }

    header nav.scrolling .nav li>a,
    header nav.scrolling .nav li>a:hover,
    header nav.scrolling .nav li>a:focus,
    header nav.scrolling .nav li>a:visited {
        color: var(--text-color);
    }

    header nav.scrolling .nav li:hover {
        background-color: var(--border-default-25);
    }

    header nav.scrolling #navbar {
        border-top: 1px solid var(--border-default-50);
        border-bottom: 1px solid var(--border-default-50);
    }

    section.activity .activity-title .subtitle {
        /*background-color: var(--title-bg-color);*/
        position: relative;
        z-index: 2;
    }

    section.activity .activity-title .subtitle::before {
        transform: skewX(-45deg);
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: -1;
        background-color: var(--title-bg-color);
    }

    section.activity .activity-title.right .subtitle::before {
        transform: skewX(45deg);
    }

    section.activity .activity-title.left {
        background: linear-gradient(90deg, rgba(82, 165, 220, 1) 33.33%, rgba(255, 255, 255, 0) 33.33%, rgba(255, 255, 255, 0) 100%);
        text-align: right;

    }

    section.activity .activity-title.right {
        background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 66.66%, rgba(82, 165, 220, 1) 66.66%);
        text-align: left;
    }
}

@media (max-width: 991px) {}

@media (min-width: 768px) and (max-width: 991px) {
    section.activity .activity-title .subtitle::before {
        transform: skewX(-30deg);
    }

    section.activity .activity-title.right .subtitle::before {
        transform: skewX(30deg);
    }

    section.activity h4 {
        font-size: 22px;
    }
}

@media (max-width: 767px) {

    #main {
        min-height: 100vh;
    }

    body.home #main .container {
        background-image: url(./img/home-sp.jpg);
    }

    header .nav li>a,
    header .nav li>a:hover,
    header .nav li>a:focus,
    header .nav li>a:visited {
        color: var(--text-color);
    }

    header .navbar {
        margin-bottom: 0;
        background-color: var(--bg-color);
        box-shadow: 0px 2px 5px 0px rgba(51, 51, 51, 0.8);
    }

    header a.navbar-brand img {
        max-height: 25px;
    }

    header .navbar-nav li {
        border-top: 1px solid var(--text-color);
    }

    header .navbar-toggle {
        border-color: var(--text-color);
    }

    header .navbar-toggle .icon-bar {
        background-color: var(--text-color);
    }

    header .carousel-inner>.item>img {
        object-position: 50% 50%;
    }

    header .navbar-toggle .icon-bar {
        width: 22px;
        transition: all 0.2s;
    }

    header .navbar-toggle .top-bar {
        transform: translate(3px)rotate(45deg);
        transform-origin: 10% 10%;
    }

    header .navbar-toggle .middle-bar {
        opacity: 0;
    }

    header .navbar-toggle .bottom-bar {
        transform: translate(3px)rotate(-45deg);
        transform-origin: 10% 90%;
    }

    header .navbar-toggle.collapsed .top-bar {
        transform: rotate(0);
    }

    header .navbar-toggle.collapsed .middle-bar {
        opacity: 1;
    }

    header .navbar-toggle.collapsed .bottom-bar {
        transform: rotate(0);
    }

    section.product .product-box {
        margin-top: 20px;
    }

}

@media (max-width: 320px) {}