/*
Theme Name: takutec
Description: タクテック オリジナルテーマ
Version: 1.0.1
Author: HARADA-WORKS
*/



@charset "utf-8";
/* ************************    Initialize   ************************ */
@font-face {
    font-family: 'Zen Old Mincho';
    src:url('../takutec/fonts/Zen_Old_Mincho/ZenOldMincho-Medium.ttf') format('truetype');
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'NotoSans JP';
    src:url('../takutec/fonts/Noto_Sans_JP/NotoSansJP-VariableFont_wght.ttf') format('truetype');
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Chakra Petch';
    src:url('../takutec/fonts/Chakra_Petch/ChakraPetch-Bold.ttf') format('truetype');
    font-style: normal;
    font-display: swap;
}


:root{
    /*  カラー　*/
    --main-color:#AD0306;/* メインカラー */
    --base-color:#F2F2F2;/* ベースカラー */
    --base2-color:#F4F4F4;/* ベース2カラー */
    --text-color:#333333;/* テキストカラー */
    --hover-color:#aeaeae;/* テキストホバーカラー */
    --border-color:#DDDDDD;/* ボーダーカラー */
    --border2-color:#AAAAAA;/* ボーダー2カラー */
    --gray-color:#AAAAAA;/* グレーカラー */
    --darkgray-color:#777777;/* ダークグレーカラー */
    /*  フォント　*/
    --jp-font:'NotoSans JP', serif;/* 日本語フォント */
    --jp2-font:'Zen Old Mincho', serif;/* 日本語2フォント */
    --en-font:'Chakra Petch', serif;/* 英語フォント */
    --font-size-SS: 1.2rem;
    --font-size-S: 1.6rem;
    --font-size-M: 1.8rem;
    --font-size-L: 2rem;
    --font-size-LL: 2.4rem;
    --font-size-3L: 4.8rem;
    --font-size-4L: 5vw;
}
*,
*:before,
*:after{
    box-sizing: inherit;
}
html{
    font-size: var(--font-size-S);
    box-sizing: border-box;
    scroll-behavior: smooth;
    scroll-padding-top:1.5rem;
    font-size: 62.5%;
}
body{
    background-color: var(--base-color);
    -webkit-appearance: none;/* ブラウザのデフォルトデザイン解除 */
            appearance: none;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    font-size: var(--font-size-S);
    font-family: var(--jp-font);
    font-weight: 200;
    letter-spacing: 0.2rem;
    line-height: 1.5;
    font-feature-settings: "palt";
    color: var(--text-color);
    width: 100%;
    position: relative;
}
p,h1,h2,h3,h4,h5,h6{
    margin:0;
}
img{
    vertical-align:bottom;
}
ul{
    margin: 0;
    padding: 0;
    list-style: none;
}
a{
    text-decoration: none;
    cursor: pointer;
    color: var(--text-color);
}
p{
    font-family: var(--jp-font);
    line-height: 1.25;
    letter-spacing: 0.2rem;
    text-align: justify;
}
i{
    font-size: var(--font-size-LL);
}
ol{
    list-style: none;
    padding: 0;
}
iframe{
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    :root{
        --font-size-4L: 6vw;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    :root{
        --font-size-3L: 4rem;
        --font-size-4L: 11vw;
    }
    body{
        letter-spacing: 0.05rem;
    }
}
/* ************************      Common     ************************ */
.bold{
    font-weight: 700;
}
.jp{
    font-family: var(--jp-font);
}
.fa-solid{
    font-size: var(--font-size-M);
}
.logo{}
.logo a{
    display: flex;
    justify-content: start;
    align-items: center;
}
.logo img{
    width: 4.8rem;
    margin-right: 1.6rem;
}
.logo h1{
    font-size: var(--font-size-LL);
    letter-spacing: 0.1rem;
}
.logo h1 > span{
    display: block;
    font-size: var(--font-size-SS);
    letter-spacing: 0rem;
}
.logo p{
    font-size: var(--font-size-L);
    letter-spacing: 0.1rem;
    line-height: 1.5;
}
.logo p > span{
    display: block;
    font-size: var(--font-size-SS);
    letter-spacing: 0rem;
}
.fontsize-ss{
    font-size: var(--font-size-SS);
}
.fontsize-s{
    font-size: var(--font-size-S);
}
.fontsize-m{
    font-size: var(--font-size-M);
}
.fontsize-l{
    font-size: var(--font-size-L);
}
.fontsize-ll{
    font-size: var(--font-size-LL);
}
.fontsize-3l{
    font-size: var(--font-size-3L);
}
.fontsize-4l{
    font-size: var(--font-size-4L);
}
.column2{
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 4rem;
}
.column2 img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.fillter{
    background: rgba(51, 51, 51, 0.5);
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
}
.page-content{
    margin-top: 16rem;
    background-size: contain;
    position: relative;
    border-top: solid 1px rgba(0,0,0,0.1);
    border-bottom: solid 1px rgba(0,0,0,0.1);
}
.container{
    width: 90%;
    /*max-width: 120rem;*/
    margin: 0 auto;
    position: relative;
}
.text-justify{
    text-align: justify;
}
.text-center{
    text-align: center;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    .page-content{
        margin-top: 8rem;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    .column2{
        flex-direction: column;
    }
    .logo h1{
        font-size: var(--font-size-M);
    }
}
/* ************************      Bg-line     ************************ */
.bg-line{
    width: 90%;
    height: 100%;
    /*max-width: 120rem;*/
    display: flex;
    justify-content: space-between;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 0;
}
.bg-line > span{
    width: 1px;
    height: 100%;
    display: block;
    background-color: rgba(0,0,0,0.1);
}





/* ************************      Button     ************************ */
.btn1{
    width: 20rem;
    background-color: var(--main-color);
    color: #FFF;
    display: inline-flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.4rem 0.4rem 0.4rem 1rem;
    transition: .3s ease-out;
}
.btn1 > .arrow{
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(255,255,255,0.3);
    aspect-ratio: 1 / 1;
    width: 4rem;
    height: 4rem;
}
.btn1:hover{
    width: 22rem;
}
.btn2{
    width: 20rem;
    padding: 0.4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    border: solid 1px var(--border2-color);
    
}
.slide-btn{
    width: 20rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
    border: solid 1px var(--border2-color);
    padding: 0.4rem;
}
.slide-btn a{
    width: 4rem;
    height: 4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(0,0,0,0.1);
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{}
/* ************************      Section-ttl     ************************ */
.section-ttl{
    display: flex;
    flex-direction: column;
    justify-content: start;
    align-items: start;
    margin-bottom: 4rem;
    font-size: var(--font-size-3L);
    font-family: var(--jp2-font);
    line-height: 1;
}
.section-ttl .en-ttl{
    font-size: var(--font-size-M);
    font-family: var(--en-font);
    letter-spacing: 0;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    text-transform: uppercase;
    margin-top: 1rem;
}
.section-ttl .en-ttl::before{
    content: '';
    width: 0.5rem;
    height: 0.5rem;
    display: inline-block;
    background-color: var(--main-color);
    margin-right: 0.4rem;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    .section-ttl{
        flex-wrap: wrap;
        margin-bottom: 3rem;
    }
    .section-ttl::before{
        margin-bottom: 1rem;
        white-space: nowrap;
    }
}
/* ************************      Subpage-header    ************************ */
#subpage-header{
    padding-top: 16rem;
    padding-bottom: 4.8rem;
    width: 100%;
}
#subpage-header h1,
#subpage-header p{
    font-size: var(--font-size-4L);
    font-family: var(--jp2-font);
    text-align: center;
}
.page-ttl{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: 4rem;
}
.page-ttl .en-ttl{
    font-size: var(--font-size-M);
    font-family: var(--en-font);
    letter-spacing: 0;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    text-transform: uppercase;
    margin-top: 1rem;
}
.page-ttl .en-ttl::before{
    content: '';
    width: 0.5rem;
    height: 0.5rem;
    display: inline-block;
    background-color: var(--main-color);
    margin-right: 0.4rem;
}
.subpage-header-img{
    width: 100%;
    aspect-ratio: 3 / 1;
}
.subpage-header-img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    .subpage-header-img{
        aspect-ratio: 2 / 1;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{}
/* ************************      width      ************************ */
.width-l{
    width: 100%;
    max-width: none;
}
.width-m{
    width: 90%;
    max-width: 135rem;
    margin: 0 auto;
}
.width-s{
    width: 75%;
    max-width: 100rem;
    margin: 0 auto;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    .width-s{
        width: 90%;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{}
/* ************************      Animation     ************************ */



@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{}
/* ************************      Header     ************************ */
header{
    width: 100vw;
    max-width: 100%;
    z-index: 1000;
    position: fixed;
    transition: transform 0.3s ease, background-color 0.3s ease;
    border-top: solid 1px rgba(0,0,0,0.1);
    border-bottom: solid 1px rgba(0,0,0,0.1);
    margin-top: 1rem;
}
header > .container{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.logo-ttl{
    font-family: var(--jp2-font);
}
#header.color1{
    background-color: rgba(51, 51, 51, 0.75);
}
#header.down{
    transform: translateY(-100%);
}
#menu-global ul{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
#menu-global li{
    position: relative;
    padding: 0 15px;
}
#menu-global li.current:after{
    content: '';
    width: 7px;
    height: 7px;
    background-color: var(--main-color);
    display: block;
    border-radius: 50%;
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
}
#menu-global li:last-of-type{
    padding: 0 0 0 15px;
}
#menu-global li.contact-btn a{
    background-color: var(--main-color);
    color: #FFF;
    padding: 1.5rem 3rem;
}
#menu-global a{
    color: var(--text-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    line-height: 1;
    white-space: nowrap;
    font-family: var(--jp2-font);
}
#menu-global .main-menu .arrow{
    display: none;
}
#menu-global .sub-menu{
    display: none;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    #hamburger-menu{
        position: relative;
        width: 7rem;
        height: 5rem;
        cursor: pointer;
        caret-color: transparent;
        z-index: 1020;
        background-color: var(--main-color);
        padding: 1.5rem 1rem;
    }
    #hamburger-menu > div{
        position: relative;
        height: 100%;
    }
    #hamburger-menu span{
        display: inline-block;
        transition: all .4s;/*アニメーションの設定*/
        position: absolute;
        top: 0;
        right: 0;
        height: 2px;
        background-color: #FFF;
    }
    #hamburger-menu .bar:nth-of-type(1) {
        top:0;	
        width: 100%;
    }
    #hamburger-menu .bar:nth-of-type(2) {
        top:50%;
        transform: translateY(-50%);
        width:100%;
    }
    #hamburger-menu .bar:nth-of-type(3) {
        top:100%;
        transform: translateY(-50%);
        width:100%;
    }
    /*activeクラスが付与されると線が回転して×に*/
    #hamburger-menu.active .bar:nth-of-type(1) {
        top: 50%;
        left: 0;
        transform: translateY(-50%) rotate(-45deg);
        width: 100%;
        background-color: #FFF;
    }
    #hamburger-menu.active .bar:nth-of-type(2) {
        opacity: 0;
    }
    #hamburger-menu.active .bar:nth-of-type(3) {
        top: 50%;
        left: 0;
        transform: translateY(-50%) rotate(45deg);
        width:100%;
        background-color: #FFF;
    }
    #menu-global{
        position: fixed;
        top: 0;
        right: 0;
        width: 100vw;
        height: 100%;
        overflow: auto;
        transition: 0.5s ease-in-out;
        opacity: 0;
        pointer-events: none;
        background-color: rgba(255,255,255,0.5);
        z-index: 1010;
        opacity: 0;
        pointer-events: none;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    #menu-global::-webkit-scrollbar{
        display: none;
    }
    #menu-global.active{
        opacity: 1;
        pointer-events: all;
    }
    #menu-global__cover{
        position: relative;
        height: 100%;
        background-color: rgba(0,0,0,.35);
    }
    #menu-global ul{
        display: block;
        width: fit-content;
        max-width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        right: -100%;
        transition: 0.3s ease-in-out;
        background-color: var(--text-color);
        padding: 3rem 3rem 6rem 3rem;
        overflow: auto;
    }
    #menu-global.active ul{
        right: 0;
    }
    #menu-global li{
        margin-top: 4rem;
        margin-bottom: 4rem;
    }
    #menu-global li:last-of-type{
        margin-bottom: 0;
    }
    #menu-global li a{
        font-size: var(--font-size-L);
        letter-spacing: 0.25em;
        align-items: start;
        color: #FFF;
    }
    #menu-global li.current:after{
        display: none;
    }
    header.color1 #menu-global li a{
        color: #FFF;
    }
    #menu-global li a::after{
        content: attr(data-en);
        font-family: var(--en-font);
        letter-spacing: 0;
        color: var(--darkgray-color);
        text-transform: capitalize;
        margin-top: 8px;
    }
    #menu-global li.contact-btn a {
        padding: 2rem 3rem;
    }
    #menu-global li.contact-btn a::after{
        content: '';
        display: none;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    #hamburger-menu{
        width: 5rem;
        height: 5rem;
    }
}
/* ************************   front-page.php    ************************ */
/*---------------------  top-fv */
#fv{
    width: 100%;
    position: relative;
    border-bottom: 1px solid var(--border-color);
}
#fv-area{
    padding-top: 25rem;
    position: relative;
}
#fv-img{
    width: 100%;
    height: 100%;
    aspect-ratio: 2 / 1;
    position: relative;
}
#fv-img video{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
#fv-img .catch{
    font-size: var(--font-size-4L);
    font-family: var(--jp2-font);
    position: absolute;
    top: 0;
    left: 0;
    transform: translateY(-100%);
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    #fv-img{
        aspect-ratio: 1 / 1.414;
    }
}
/*---------------------  top-service */
.text-area{
    display: flex;
    justify-content: start;
    align-items: start;
    flex-direction: column;
}
#top-service .container{}
#top-service .section-img{
    position: absolute;
    width: 75%;
    height: 100%;
    margin-left: 25%;
}
.section-img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
#top-service .contents{
    position: relative;
    z-index: 1;
    height: 100%;
}
#top-service .text-area{
    width: 40%;
}
.btn-area{
    margin-top: 12rem;
    display: flex;
}
.sub-catch{
    font-size: var(--font-size-LL);
    font-family: var(--jp2-font);
    color: #FFF;
    background-color: var(--text-color);
    display: inline-block;
    padding: 0.5rem;
    margin-bottom: 1rem;
}
.bg-text > span{
    background-color: #FFF;
}
.text-area .bg-text{
    line-height: 1.5em;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    #top-service .text-area{
        width: 50%;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    #top-service .section-img{
        position: relative;
        width: 100%;
        height: auto;
        aspect-ratio: 1.414 / 1;
        margin-left: 0;
    }
    #top-service .text-area{
        width: 100%;
        margin-top: 4rem;
    }
    .btn-area{
        margin-top: 4rem;
    }
}
/*---------------------  top-company */
#top-company .col2-1{
    width: 50%;
    aspect-ratio: 1.414 / 1;
}
#top-company .col2-2{
    width: calc(50% - 4rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: start;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    #top-company .col2-1{
        width: 100%;
    }
    #top-company .col2-2{
        width: 100%;
    }
    #top-company .col2-2 .img-area{
        margin-bottom: 1rem;
    }
}
/*---------------------  top-works */
#top-works .col2-1{
    width: calc(25% - 4rem);
}
#top-works .col2-2{
    width: 75%;
}
#top-works .container{
}
.slide{
    display: flex;
    justify-content: start;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 2rem;
    height: 100%;
}
.slide > li{
    width: 30%;
    aspect-ratio: 1 / 1.414;
    position: relative;
}
.slide > li img{
    object-fit: cover;
}
.slide{
    display: flex;
    justify-content: start;
    align-items: stretch;
    flex-wrap: nowrap;
    position: relative;
    overflow: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: #333 transparent;
    color: transparent;
}
.slide > li{
    width: 40%;
    aspect-ratio: 1 / 1.414;
    flex: 0 0 auto;
    margin: 0 5px;
    scroll-snap-align: start;
    position: relative;
}
.slide > li img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.slide h3{
    font-size: var(--font-size-3L);
    font-family: var(--jp2-font);
    color: #FFF;
    writing-mode: vertical-lr;
    position: absolute;
    top: 2rem;
    right: 2rem;
}
.slide .en-ttl{
    color: #FFF;
    font-family: var(--en-font);
    position: absolute;
    top: 2rem;
    text-transform: uppercase;
    left: 2rem;
}
.slide .more{
    position: absolute;
    width: calc(100% - 4rem);
    bottom: 2rem;
    left: 2rem;
    color: #FFF;
    display: flex;
    justify-content: start;
    align-items: center;
    gap: 2rem;
}
.slide .more::before{
    content: '';
    display: inline-block;
    flex: 1;
    height: 1px;
    background-color: #FFF;
}
.slide a{
    width: 100%;
    height: 100%;
    display: block;
    position: relative;
}
.slide-btn-area{
    margin-top: 8rem;
}
/* === Text Loop Animation === */
.loop-text {
    position: relative;
    bottom: 0;
    left: 0;
    width: 100vw;
    display: flex;
    align-items: center;
    overflow: hidden;
    white-space: nowrap;
    margin-top: 8rem;
}
.loop-text p{
    font-family: var(--jp2-font);
    line-height: 1;
}
.loop-text__item {
    font-size: 20vw;/*フォントサイズは1行が画面からはみ出るサイズ*/
    animation: loopText 30s linear infinite;
    padding-right: 10rem;
    color: rgba(0,0,0,0.1);
}
@keyframes loopText {
    from {
    transform: translateX(0%);
    }
    to {
    transform: translateX(-100%);
    }
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    #top-works .col2-1{
        width: calc(40% - 4rem);
    }
    #top-works .col2-2{
        width: 60%;
    }
    .slide > li{
        width: 80%;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    #top-works .col2-1{
        width: 100%;
    }
    #top-works .col2-2{
        width: 100%;
    }
    .loop-text__item{
        font-size: 30vw;
    }

}
/* ************************      service.php     ************************ */
#service-contents.page-content{
    border: none;
}
.service-list > li{
    border-top: solid 1px rgba(0,0,0,0.1);
}
.service-list > li:last-of-type{
    border-bottom: solid 1px rgba(0,0,0,0.1);
}
.service-list > li .container{
    display: flex;
    justify-content: start;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 6rem;
}
.service-list .list-img{
    width: 50%;
    aspect-ratio: 1.618 / 1;
}
.service-list .list-img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.service-list .list-contents{
    width: calc(50% - 6rem);
    padding: 6rem 6rem 6rem 0;
}
.service-list h3{
    font-size: var(--font-size-M);
    font-family: var(--jp2-font);
}
.service-list .list-contents .wrap{
    margin-bottom: 4rem;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    .service-list .list-img{
        width: 100%;
        margin-bottom: 4rem;
    }
    .service-list .list-contents{
        width: 100%;
        padding: 0 0 6rem 0;
    }
    .service-list > li:last-of-type .list-contents{
        padding: 0;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{}
/* ************************      works.php     ************************ */
.list003{
    display: flex;
    justify-content: start;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 2rem;
    height: 100%;
}
.list003 > li{
    width: calc((100% - 6rem) / 3);
    aspect-ratio: 1 / 1.414;
    position: relative;
}
.list003 > li img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.list003 h3{
    font-size: var(--font-size-3L);
    font-family: var(--jp2-font);
    color: #FFF;
    writing-mode: vertical-lr;
    position: absolute;
    top: 2rem;
    right: 2rem;
}
.list003 .en-ttl{
    color: #FFF;
    font-family: var(--en-font);
    position: absolute;
    top: 2rem;
    text-transform: uppercase;
    left: 2rem;
}
.list003 .more{
    position: absolute;
    width: calc(100% - 4rem);
    bottom: 2rem;
    left: 2rem;
    color: #FFF;
    display: flex;
    justify-content: start;
    align-items: center;
    gap: 2rem;
}
.list003 .more::before{
    content: '';
    display: inline-block;
    flex: 1;
    height: 1px;
    background-color: #FFF;
}
.list003 a{
    width: 100%;
    height: 100%;
    display: block;
    position: relative;
}
.works-detail{
    width: 50%;
    margin-bottom: 10rem;
}
.list002{
    display: flex;
    justify-content: start;
    align-items: start;
    flex-wrap: wrap;
}
.list002 > li{
    width: 50%;
    margin-top: 2rem;
}
.list002 > li a{
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 1.414 / 1;
}
.list002 > li img{
    object-fit: cover;
    width: 100%;
    height: 100%;
}
#works-detail-contents .btn-area{
    justify-content: space-between;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    .list003 > li{
        width: calc((100% - 2rem) / 2);
    }
    .works-detail{
        width: 100%;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    .list003 > li{
        width: 100%;
    }
    #works-detail-contents.page-content{
        margin-top: 0;
    }
    .works-detail{
        margin-bottom: 4rem;
    }
    .list002 > li{
        width: 100%;
    }
}
/* ************************      company.php     ************************ */
#profile-contents .section-ttl,
#access-contents .section-ttl{
    align-items: center;
}
.table001{
    border-collapse: separate;
    width: 100%;
}
.table001 th{
    background-color: var(--text-color);
    color: #FFF;
    width: 30%;
    padding: 1rem;
}
.table001 td{
    background-color: #FFF;
    padding: 1rem;
    width: 70%;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{}
/* ************************      recruit.php     ************************ */
.text-box{
    width: 70%;
    margin: 4rem auto;
}
.text-box p{
    font-size: var(--font-size-L);
    font-family: var(--jp2-font);
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    .text-box{
        width: 100%;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{}




































/* ************************   contact-form    ************************ */
/* ************************   contact.php    ************************ */
.contact-area{
    padding: 8%;
}
.cf{
    width: 100%;
}
.cf-list li {
    margin-bottom: 24px;
}
.cf-list li p{
    text-align: start;
}
.cf-list label{
    display: flex;
    flex-direction: column;
    justify-content: start;
    align-items: start;
}
.label-name{
    font-family: var(--en-font);
    font-size: var(--font-size-LL);
}
.wpcf7-form-control{
    padding-top: 1rem;
}
.wpcf7-form-control-wrap{
    width: 100%;
}
.cf-input{
    border: solid 1px var(--border-color);
    width: 100%;
    padding: 1rem;
    background-color: #FFF;
}
.cf-check{
    width: 24px;
    height: 24px;
    border: 1px solid var(--border-color);
    position: relative;
    background-color: #FFF;
    margin-right: 8px;
    aspect-ratio: 1 / 1;
}
.cf-radio {
    display: flex;
    flex-wrap: wrap;
    gap: .3em 2em;
    border: none;
}
.cf-radio label {
    display: flex;
    align-items: center;
    gap: 0 .5em;
    position: relative;
    cursor: pointer;
    padding-left: 16px;
}
.cf-radio label::before,
.cf-radio label::after {
    border-radius: 50%;
    content: '';
}
.cf-radio label::before {
    width: 16px;
    height: 16px;
    border: 2px solid var(--border-color);
    box-sizing: border-box;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(-50%,-50%);
}
.cf-radio label::after {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    background-color: #FFF;
}
.cf-radio label:has(:checked)::after {
    background-color: var(--sub-color);
}
.cf-radio  input {
    display: none;
}
.checkbox-2 {
    display: flex;
    flex-wrap: wrap;
    gap: .5em 2em;
    border: none;
}
.checkbox-2 label {
    display: flex;
    flex-direction: row;
    justify-content: start;
    align-items: center;
    gap: 0 .25em;
    position: relative;
    cursor: pointer;
    width: 45%;
    box-sizing: border-box;
    text-align: justify;
    margin: 0.5rem 0;
}
.checkbox-2 label::before {
    display: inline-block;
    width: 16px;
    height: 16px;
    border-radius: 1rem;
    border: 2px solid var(--border-color);
    background-color: #FFF;
    content: '';
    margin-top: 3px;
    flex-shrink: 0;
}
.checkbox-2 label:has(:checked)::before{
    background: #FFF;
    border: 2px solid var(--sub-color);
}
.checkbox-2 label:has(:checked)::after {
    position: absolute;
    top: 8px;
    left: 8px;
    transform: translate(-50%,-50%) rotate(45deg);
    width: 8px;
    height: 16px;
    border: solid var(--main-color);
    border-width: 0 3px 3px 0;
    content: '';
}
.cf-check:checked::before{
    content: '✔';
    line-height: 1;
    font-size: var(--font-size-L);
    display: block;
    width: 100%;
    height: 100%;
    color: var(--sub-color);
    position: absolute;
    top: 0;
    text-align: center;
}
.cf-textarea{
    border: solid 1px var(--border-color);
    width: 100%;
    padding: 8px 16px;
    background-color: #FFF;
}
.cf-input:focus,
.cf-input:focus-visible{
    border: solid 4px var(--sub-color);
    outline: none;
}
.cf-textarea:focus,
.cf-textarea:focus-visible{
    border: solid 4px var(--sub-color);
    outline: none;
}
.cf-num:focus,
.cf-num:focus-visible{
    border: solid 4px var(--sub-color);
    outline: none;
}
.cf-date:focus,
.cf-date:focus-visible{
    border: solid 4px var(--sub-color);
    outline: none;
}
.cf-click{
    width: 100%;
}
.cf-num{
    border: 1px solid var(--border-color);
    padding: 5px;
    background-color: #FFF;
}
.cf-date{
    width: 100%;
    min-height: 5rem;
    padding: 8px;
    border: solid 1px var(--border-color);
    background-color: #FFF;
    position: relative;
}
input[type=date]::-webkit-calendar-picker-indicator {
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0;
}
.cf-btn{
    display: block;
    width: 100%;
    padding: 16px 0;
    margin-top: 24px;
    background: var(--main-color);
    color: #FFF;
    transition: .3s;
    text-align: center;
}
.cf-btn:hover{
    transition: .3s;
}
.wpcf7-spinner{
    display: none;
}
.cf-input:-internal-autofill-selected{
    background-color: transparent;
}
.wpcf7 form .wpcf7-response-output{
    margin: 2em 0 1em;
}
.checkbox__list .wpcf7-list-item{
    display: inline-block;
}
.checkbox__list .wpcf7-list-item-label{
    white-space: nowrap;
    text-align: start;
}
.wpcf7-list-item label{
    display: flex;
    flex-wrap: nowrap;
}
.cf-click .wpcf7-form-control-wrap{
    display: block;
    margin-bottom: 8px;

}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    #contact-contents.page-content{
        margin-top: 0;
    }
    .contact-area{
        padding: 8% 0;
    }
}



/* ************************      footer     ************************ */
footer{
    background-color: var(--text-color);
    padding: 8rem 0 0 0;
}
footer p{
    color: #FFF;
}
footer .container > .column2 > .col2-1{
    width: calc(50% - 4rem);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: start;
}
footer .container > .column2 > .col2-2{
    width: 50%;
}
.footer-logo{
    display: flex;
    justify-content: start;
    align-items: center;
    flex-wrap: nowrap;
    gap: 1rem;
    margin-bottom: 2rem;
}
.footer-logo img{
    width: 5rem;
    height: 5rem;
}
.footer-logo p{
    font-family: var(--jp2-font);
    font-size: var(--font-size-3L);
}
.footer-tel p{
    text-transform: uppercase;
}
.footer-tel .tel{
    font-family: var(--en-font);
    font-size: var(--font-size-3L);
}
.footer-tel .tel > span{
    font-size: var(--font-size-M);
}
.footer-nav > li{
    background-color: rgba(255,255,255,0.3);
    padding: 2rem;
    margin-bottom: 2rem;
}
footer .section-ttl{
    color: #FFF;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    font-size: var(--font-size-3L);
    border-bottom: solid 1px var(--border-color);
}
.footer-nav .lower-area{
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
    gap: 4rem;
}
.footer-nav .text-area{
    width: calc(60% - 4rem);
}
.footer-nav .btn-area{
    width: 40%;
    margin-top: 0;
}
.footer-buttom{
    position: relative;
    width: 100%;
    border-top: solid 1px rgba(255,255,255,0.3);
    margin-top: 2rem;
    height: 5rem;
}
.footer-buttom .pp{
    position: absolute;
    top: 50%;
    left: 4rem;
    transform: translateY(-50%);
    color: var(--gray-color);
}
.footer-buttom .copyright{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    text-transform: uppercase;
    font-family: var(--en-font);
    color: var(--gray-color);
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    footer .container > .column2{
        flex-direction: column-reverse;
    }
    footer .container > .column2 > .col2-1{
        width: 100%;
    }
    footer .container > .column2 > .col2-1 .upper-area{
        margin-bottom: 4rem;
    }
    footer .container > .column2 > .col2-2{
        width: 100%;
    }
    .footer-nav .btn-area{
        width: auto;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    .footer-nav .lower-area{
        flex-wrap: wrap;
    }
    .footer-nav .text-area{
        width: 100%;
    }
    .footer-logo p{
        font-size: var(--font-size-LL);
    }
    .footer-tel .tel{
        font-size: var(--font-size-LL);
    }
    .footer-buttom{
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 2rem;
    }
    .footer-buttom .pp{
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        font-size: var(--font-size-SS);
    }
    .footer-buttom .copyright{
        position: relative;
        top: auto;
        left: auto;
        transform: none;
    }
}
/* ************************   display    ************************ */
.pc-off{
    display: none;
}
.tablet-on{
    display: none;
}
.mobile-on{
    display: none;
}
#menu-global li.tablet-on{
    display: none;
}
@media screen and (max-width: 1024px)/*1024px以下(タブレット用)*/{
    .pc-off{
        display: block;
    }
    .tablet-off{
        display: none;
    }
    .tablet-on{
        display: block;
    }
    #menu-global li.tablet-on{
        display: block;
    }
}
@media screen and (max-width: 599px)/*599px以下(スマホ用)*/{
    .mobile-off{
        display: none;
    }
    .mobile-on{
        display: block;
    }
}