


li{
    list-style:none;
}
a{
  position: relative;
  text-decoration: none;
  color: inherit;
}
a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom:-0.4rem;
  height: 2px;
  width: 0;
  background-color: currentColor;
  transition: width 0.3s ease;
}

a:hover::after {
  width: 100%;
}

/**
 * 
 */
header#top{
    position:absolute;
    width:100%;
    z-index:2;
    display:flex;
    flex-direction:row;
    width:100%;
    padding:0.5rem 1rem;
    color:#fff;
    text-shadow:0 0 2px #000, 0 0 2px #000;
    h1{
        line-height:1;
        white-space:nowrap;
        a{
            color:#fff;
            text-decoration:none;
            font-size:1.2rem;
        }
        img.ja{
            width:240px;
            height:auto;
            vertical-align:sub;
        }
        img.en{
            width:30px;
            height:auto;
            vertical-align: middle;
            margin-right:2px;

        }
    }
    nav#global_menu{
        display:inline-block;
        align-content:center;
        margin-left:auto;
        width:auto;
        font-size:1rem;
        a{
            color:#000;
            color:#fff;
            font-weight:bold;
            text-decoration:none;
        }

        /**
         * 「≡メニュー」
         */
        button{
            color:#fff;
            font-weight:bold;
            text-shadow:0 0 2px #000, 0 0 2px #000;
            background:none;
            border:none;
            font-size:1rem;
            .icon-text{
                display:inline-flex;
                align-items:center;
                gap:0.5rem;
            }
            .icon-text span{
                font-size:0.7rem;
            }
            .icon-text svg{
                display:block;
            }
        }
        width:100%;
        display:flex;
        justify-content:flex-end;

        ul{
            display:none;
            position:absolute;
            top:3rem;
            left:0;
            background:rgba(0, 0, 0, 0.75);
            width:100%;
            padding:0.5rem 1rem;
            li{
                list-style:none;
                text-align:center;
                line-height:3;
            }
        }
    }
}
/* 
 * First View
 */
@keyframes fadein{
    0% { opacity: 0; }
    100% { opacity: 1; }
}
#first_view.top{
    background: url(../images2/arumi_black.png) #000;
    background:#aaa;
    padding:80px 2rem 0 2rem;
    color:#fff;
    font-family:"Noto Serif JP", serif;
    font-size:1.5rem;
    line-height:1;


    height:60vh;

    position:relative;
    display:flex;
    padding:0 2rem;
    width:100%;
    align-items:center;
    color:#FFF;
    .video_wrap{
        height:60vh;
        
        position:fixed;
        width:100%;
        top:0;
        left:0;
        opacity:0;
    }
    .video_wrap::before{
        content:"";
        position:absolute;
        display:block;
        width:100%;
        height:100%;
        background: url(../images2/dot.png) repeat;
        opacity:0.6;
        z-index:1;
    }
    .video_wrap.onload{ /* index.js */
        animation:fadein 1.0s forwards;
    }
    #first_view_video{
        position:absolute;
        top:50%;
        left:50%;
        transform:translate(-50%, -50%);
        
        width:178vh;
        height:80vw; /* youtube control を表示させないように、大きめに設定して上下を切る */
        min-height:100%;
        min-width:100%;
    }
    .top_msg{
        letter-spacing: 0.1rem;
        font-weight:bold;
        font-family:"Noto Serif JP", serif;
        text-shadow:0 0 2px #000, 0 0 2px #000;
        font-size: 1.6rem;
        position:relative;
        z-index:1;

        > :first-child{
            font-family:"Oswald", sans-serif;
            font-weight:bold;
            line-height:1.2;
            font-size:2.0rem;
        }
        > :nth-child(2){
            font-family:"Noto Serif JP", serif;
            font-weight:bold;
            line-height:1.5;
            font-size:1.5rem;
            margin-top:2rem;
        }
    }
}
/**
 * ページタイトル
 */
#first_view.other {
    height:200px;

    position:relative;
    overflow:hidden;
}
#first_view.other .image_wrap {
    height:200px;

    position:fixed;
    width:100%;
    top:0;
    left:0;
    z-index:-1;
}
#first_view.other .image_wrap::after {
    content:"";
    position:absolute;
    bottom:0;
    right:0;
    width:100%;
    height:100%;
    background:rgba(0, 0, 0, 0.40);
}
#first_view.other .image_wrap figure {
    height:100%;
}
#first_view.other .image_wrap figure img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
}
#first_view.other h1 {
    display:flex;
    align-items:flex-end;
    width:100%;
    height:100%;
    padding:0 4% 4%;
    color:#FFF;
    font-size:1.5rem;
    font-weight:bold;
    font-family:"Noto Serif JP", serif;
    letter-spacing:0.1em;
}













/**
 * 
 */
main, aside, footer{
    position:relative;
    background:#fff;
    margin:0;
    padding:1rem;
    z-index:1;
}
/**
 * main
 */
main{
    h1{
        font-family:"Noto Serif JP", serif;
        font-size:32px;
        font-weight:600;
        line-height:52px;
        margin-bottom:1rem;

        padding:0 0 0 60px;
        background-image: url(../images2/h1_marker2.png);
        background-size:46px;
        background-repeat: no-repeat;
        background-clip: padding-box;
        background-position:top left;

        position: relative;
        display: inline-block;
        width:100%;
    }
    h1::after {
        content: '';
        position: absolute;
        left: 0;
        bottom:-0.5rem;
        height: 1px;
        width: 100%;
        background: linear-gradient(
            to right,
            rgba(0, 0, 0, 0) 0%,
            #000 15%,
            #000 85%,
            rgba(0, 0, 0, 0) 100%
        );
        pointer-events: none;
    }
    h2{
        font-family:"Noto Serif JP", serif;
        margin-bottom:0.5rem;
    }
    
    article{
        margin:1rem 0;
        img{
            /*
            */
            max-width:80%;
        }
        .split{
            opacity:0;
            height:3rem;
        }
        .main-content-indent{
            margin: 0.2rem 0.2rem 4rem 0.2rem;
        }
        .main-content-indent.last{
            margin: 0.2rem 0.2rem 0.2rem 0.2rem;
        }
        .case-images{
            position:relative;
            padding:20px 0;
            padding:2rem 0.8rem;
            background: #000 url(../images2/arumi.png);
            background:#eee;

            display:flex;
            flex-wrap:wrap;
            justify-content:space-around;

            border-top: 2px solid #fff;
            border-left: 2px solid #eee;
            border-bottom: 2px solid #999;
            border-right: 2px solid #ccc;
            img{
                width:200px;
                height:auto;
                margin:1rem;
                border-top: 2px solid #666;
                border-left: 2px solid #999;
                border-bottom: 2px solid #fff;
                border-right: 2px solid #eee;
            }
        }
        .machine-images{
            display:flex;
            flex-wrap:wrap;
            justify-content:space-around;
            h2{
                margin:0;
            }
        }
        .selling-point{
            display:flex;
            flex-direction:column;
            margin-top:2rem;
            padding:2rem 0.8rem;
            background: #000 url(../images2/arumi.png);
            background:#eee;

            text-shadow: 1px 1px 1px #fff;

            border-top: 2px solid #fff;
            border-left: 2px solid #eee;
            border-bottom: 2px solid #999;
            border-right: 2px solid #ccc;
            img{
                margin:0 2rem;
                border-top: 2px solid #666;
                border-left: 2px solid #999;
                border-bottom: 2px solid #fff;
                border-right: 2px solid #eee;
            }
            ul{
                margin:0.8rem 0 0 0;
            }
        }
        .stack_responsive-start{
            display:flex;
            flex-direction:column;
            > *{
                margin-right:2rem;
                margin-bottom:2rem;
                width: fit-content;
            }
        }
        .attention04{
            font-weight: bold;
            color:#06e;
        }
        table{
            border-collapse:separate;
            border-spacing:3px;
            border:1px solid #aaa;
            background-color:#e0e0e0;
            width:100%;
            th{
                /*
                */
                padding:0.5em;
                font-weight:normal;
                background-color:#fff;
                border-right:1px solid #999;
                /*border-bottom:2px solid #8fcb00;*/
                border-bottom:2px solid #6ae;
                margin-right:-2px;
                text-align:center;
                white-space: nowrap;
            }
            td{
                padding:8px 10px;
                padding:0.5em;
                background-color:#fff;
                border-right:1px solid #999;
                border-bottom:2px solid #999;
                margin-left:-2px;
            }
        }
    }
    .photo-frame02 img{
        margin-bottom: 10px;
        border: 12px solid #fff;
        display: inline-block;
        box-shadow:
            0px 0px 1px 0px #000,
            2px 2px 15px 2px #aaa;
    }
    img.photo{
        border:10px solid #fff;
        box-shadow        :2px 2px 8px 0px #bbb;
        margin-right:1rem;
        margin-bottom:1rem;
    }
    /*
    .label_photo{
        display:table;
        text-align:center;
        margin-right:15px;
        margin-bottom:20px;
        border:1px solid #888;
        border-top:1px solid #000;
        border-left:1px solid #555;
        letter-spacing:2px;
        background:url('../images/arumi.png') repeat-y top center;
        box-shadow        :2px 2px 8px 0px #bbb;
        
        header{
            background:url('../images/arumi_black.png') repeat-y top center;
            margin:0;
            border-bottom:2px solid #000;
            text-shadow:
                1px 2px 0px #000;
        }
        header:after{
            position:relative;
            top:4px;
            content:'';
            display:block;
            width:100%;
            margin:0;
            padding:0;
            border-bottom:2px solid #fff;
        }
        h2{
            padding:0 0.8rem;
            color:#fff;
        }
        img{
            margin:15px 30px;
            border-top   :1px solid #888;
            border-left  :1px solid #888;
            border-bottom:1px solid #fff;
            border-right :1px solid #fff;
        }
    }
    */
    .label_photo{
        display:flex;
        padding:12px;
        background:#fff;
        flex-direction: column-reverse;
        /*
        justify-content:center;
        align-items: flex-start;
        */
        text-align:center;
        background:linear-gradient(
            160deg,
            rgba(255, 255, 255, 1) 0%, 
            rgba(  0,   0,   0, 0.08) 80%, 
            rgba(255, 255, 255, 1) 90%, 
            rgba(255, 255, 255, 1) 100%
        );
        box-shadow:
            0px 0px 1px 0px #000,
            2px 2px 15px 2px #aaa;

        img{
            margin:0 auto;
            padding:0;
            max-width:100%;
            width:200px;
            height:150px;
            border-top: 1px solid #ccc;
            border-left: 1px solid #ccc;
            border-bottom: 2px solid #fff;
            border-right: 2px solid #fff;
        }
        header{
            margin:0;
            padding:0;
            h2{
                margin:10px 0 0 0;
                padding:0;
                line-height:1;
            }
        }
    }

    .map_wrap{
        margin:0.5rem 0;
        padding:20px;
        background:#e0e0e0;
        line-height:1;
        /*
        border:1px solid #aaa;
        */
    }
    .google_maps{
        margin:0;
        width:100%;
        height:50vh;
        line-height:1;
        /*
        border:1px solid #aaa !important;
        */
    }
    #reference-as9100 blockquote {
        border: 1px dashed #999;
        margin: 10px 10px 10px 20px;
        padding: 20px;
    }
    #contact{
        width:100%;
        th{
            font-size:0.85rem;
        }
        textarea{
            height:10rem;
        }
    }
    #contact-ctrl{
        input{
            border: 1px solid #000;
            border-radius: 4px;
            padding: 0.5rem 1rem;
            margin-top: 1rem;
            font-size: 1.2rem;
            color:#000;
        }
    }
    #content-sitemap{
        td > ul{
            margin:1rem 0;
        }
        ul{
            li{
                margin-left:2rem;
                color:#05c;
            }
        }
    }
    table#machine-list .multi-col span{
        display:block;
    }
    #privacy{
        h2{
            margin-top:2rem;
        }
        ul{
            margin-left:2rem;
            li{
                list-style:disc;
            }
        }
    }

}

/**
 * aside
 */
aside{
    background: url(../images2/arumi.png) #fff;
    background:#e4e9ea;

    /*
    border-top: solid 1px #bbb;
    border-bottom:2px solid #aaa;
    */
    text-shadow: 0px 0px 8px #fff, 1px 1px 1px #fff;
    h1{
        font-family:"Noto Serif JP", serif;
        font-size: 1.5rem;
    }
    .badge{
        display:flex;
        p{
            margin:0 1rem 1rem 1rem;
            display:flex;
            flex-wrap:nowrap;
            justify-content:start;
            flex-direction:column;

            img{
                display: inline-block;
                vertical-align: bottom;
                height:96px;
                width:auto;
                aspect-ratio: auto;
                object-fit: contain;
            }
            span{
                font-size:0.9rem;
            }
        }
    }
}
/**
 * footer
 */
footer{
    border-top:1px solid #fff;
    background: url(../images2/arumi_black.png) #000;
    background:#27272a;

    color:#fff;
    text-shadow: -1px -1px 1px #000;
    nav{
        display:flex;
        flex-wrap:nowrap;
        flex-direction:column;
        img.ja{
            width:280px;
            height:auto;
        }
        img.en{
            width:30px;
            height:auto;
            vertical-align: middle;
            margin-right:2px;

        }
        p{
            margin:0;
        }
        ul{
            display:flex;
            flex-direction:column;
            li{
                margin-left:1rem;
                a{
                    color:#fff;
                    text-decoration: none;
                }
            }
        }
    }
    #address{
        margin:2rem 1rem;
        display:flex;
        flex-wrap:nowrap;
        justify-content:start;
        flex-direction:column;
    }
}
#lang-selector{
    position:fixed;
    bottom:1rem;
    right:1rem;
    border:1px solid #ddd;
    background:#fff;
    box-shadow:2px 2px 8px 0px rgba(0, 0, 0, 0.5);
    padding:0.5rem 1rem;
    z-index:2;
    select{
        appearance: auto;
    }
}

/**
 * shared
 */
p{
    line-height:1.8;
    margin:1rem 0.3rem;
}
.selling-point ul, footer nav ul{
    padding:0;
    list-style:none;
    li {
        position: relative;
        padding-left: 28px;
        text-indent: 0;
        font-weight:bold;
        line-height:2;
    }
    li::before {
        content: '';
        position: absolute;
        top: 0.5em;
        left: 0;
        width: 18px;
        height: 18px;

        background-image: url(../images2/marker2.png);
        background-size: contain;
        background-repeat: no-repeat;
    }
}
.contact{
    display:flex;
    flex-wrap:nowrap;
    justify-content:start;
    flex-direction:column;
    > p{
        font-size: 1.3rem;
        font-weight: bold;
        letter-spacing: 0.1rem;
        color:#0e629d;
        i{
            text-shadow:none;
            border-bottom: 1px solid #fff;
            border-right: 1px solid #fff;
            padding:0.8rem;
            color:#fff;
            background:#0e629d;
            border-radius:100px;
        }
        span > span{
            font-size:0.9rem;
            vertical-align:text-bottom;
        }
        a{
            color:#0e629d;
        }
    }
}

/**
 * スライドイン要素
 */
.fade-in{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.4s ease-out 0.2s, transform 0.4s ease-out 0.2s;
}
.fade-in.active{
    opacity:1;
    transform:translateY(0);
}



/* ====================
 * Media Query
 * ====================
 */

/**
 * PC
 */
@media screen and (min-width: 900px){
/**
 * top menu
 */
header#top{
    h1{
        a{
            font-size:2rem;
        }
        img.ja{
            width:300px;
        }
    }
    flex-direction:row;
    nav#global_menu{
        display:inline-block;
        align-content:center;
        margin-left:auto;
        width:auto;
        a{
            color:#fff;
        }

        button{
            display:none;
        }
        ul{
            position:static;
            background:none;
            display:flex;
            li{
                display:inline-block;
                margin:0 0.5rem;
                width:auto;
                line-height:1;
            }
        }
    }
}
/**
 * First View
 */
#first_view.top{
    height:100vh;
    .video_wrap {
        height:100vh;
    }
    .top_msg > :first-child{
        font-size:5rem;
    }
    .top_msg > :nth-child(2){
        font-size:2rem;
    }
}
/**
 * main
 */
main{
    article{
        .main-content-indent{
            margin: 2rem 2rem 4rem 2rem;
        }
        .selling-point{
            flex-direction:row;
            padding:2rem;
            img{
                margin:0 1rem;
                max-width:50%;
            }
            ul{
                margin:0 0 0 0.5rem;
                li {
                    
                    line-height:2;
                }
            }
        }
        .stack_responsive-start{
            flex-direction:row;
        }
    }
    #contact{
        width:70%;
        min-width:800px;
        margin: 0 auto;
        th{
            font-size:1rem;
        }
    }
    /**
     * 機械設備リスト
     */
    table#machine-list .multi-col{
        display:flex;
        justify-content:space-between;
    }
    table#machine-list .multi-col span{
        flex-basis: 33%;
        text-align:center;
    }
}
/**
 * aside
 */
aside{
    .contact{
        justify-content:start;
    }
}
/**
 * 
 */
footer{
    nav{
        flex-wrap:wrap;
        justify-content:space-between;
        flex-direction:row;
        ul{
            flex-direction:row;
        }
    }
    #address{
        flex-wrap:wrap;
        justify-content:start;
        flex-direction:row;
    }
}

/**
 * shared
 */
p{
    margin:1rem;
}
.contact{
    flex-wrap:wrap;
    justify-content:space-around;
    flex-direction:row;

    > p{
        font-size: 1.5rem;
    }
}

/**
 * ページタイトル
 */
#first_view.other {
    height:300px;
    padding:0 50px;
}
#first_view.other .image_wrap {
    height:300px;
    position:fixed;
}
#first_view.other h1 {
    margin:0 auto;
    padding:0 0 50px 0;
    font-size:3rem;
    letter-spacing:0.2em;
}
}