@charset 'UTF-8';

/*
VARIABLES
================================================ */
:root {
    --light-green: #d5edeb;
    --green: #63dbd0;
    --brown: #403632;
    --light-grey: #eee;
    --white: #fff;
    --oswald-font: 'Oswald', sans-serif;
}

/*
SLIDE MENU
================================================ */
/* 開閉ボタン */
.btn-menu {
    position: fixed;
    right: 1rem;
    top: 1rem;
    z-index: 4;
    padding: .5rem 1rem;
    border: 1px solid var(--brown);
    border-radius: 50%;
    height: 4rem;
    width: 4rem;
    transition: .4s;
}
.btn-menu svg {
    fill: var(--brown);
    margin-top: .25rem;
    height: 2rem;
    width: 2rem;
}

/* 閉じるボタン */
#menu-close {
    border: 1px solid var(--light-green);
}
#menu-close svg {
    fill: var(--light-green);
}

/* スライドメニューパネル */
#menu-panel {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 4;
    padding: 8rem 2rem 2rem;
    width: max(32vw, 20rem);
    height: 100vh;
    background-color: var(--brown);
    box-shadow: 0 0 2rem var(--brown);
    font-family: var(--oswald-font);
    translate: 100vw;
}
.menu-list {
    list-style: none;
}
.menu-list li {
    margin: 1.5rem 0;
    opacity: 0;
}
.menu-list a {
    color: var(--light-green);
    text-decoration: none;
    font-size: 2rem;
}

body {
    font-family: "Yu Gothic Medium", "游ゴシック Medium", "YuGothic", "游ゴシック体", "ヒラギノ角ゴ Pro W3", sans-serif;
    line-height: 1.7;
    margin: 0;
    padding: 0;
}



/* ローディング */
#loading {
    background-color: var(--light-grey);
    position: fixed;
    z-index: 9999;
    inset: 0;
    display: grid;
    place-items: center;
}
#loading-screen {
    background-color: #222222;
    position: fixed;
    inset: 0;
    z-index: 9998;
    translate: 0 100vh;
}
#loading p {
    font-size: 2rem;
    font-family: var(--oswald-font);
}


/* フッター */

footer {
    background: #432;
    text-align: center;
    padding: 26px 0;
}

footer p {
    color: #fff;
    font-size: 0.875rem;
}

header{
    position: relative;
    overflow: hidden;
    /* background-color: aqua; */
}

.header-absolute {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    color: #434343;
    /* background-color: #432; */
}

.header-name{
    font-family: 'Times New Roman', Times, serif;
    /* background-color: #432; */
}

.header-text {
    position: absolute;
    top: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #fff;
    font-size: 3.25rem;
    z-index: 2;
}



header video {
    object-fit: cover;
    /* width: 100%; */
    object-position: center top;
    opacity: var(--video-opacity);
    width: 100vh;
    height: 90vh;
}

.header-pattern {
    --bg: #fff;
    position: absolute;
    z-index: 1;
    background-size: auto auto;
    background-image: repeating-linear-gradient(0deg, transparent, transparent 2px, var(--bg) 2px, var(--bg) 2px);
}

.header-text,
.header-pattern{
    width: 100vw;
    height: 90vh;
}

header video {
    width: 100vw;
    height: 100vh;   
}

.big-title {
    width: 70%;
    font-family: 'Times New Roman', Times, serif;
    font-size: 2.5rem;
    padding-top: 40px;
    padding-bottom: 40px;
    display: flex; /* フレックスボックスを有効にする */
    margin: auto; /* 水平方向に中央揃え */
}

.temp-wrap{
    background-color: #222222;
}

.big-title1 {
    width: 70%;
    font-family: 'Times New Roman', Times, serif;
    font-size: 2.5rem;
    padding-top: 40px;
    padding-bottom: 40px;
    display: flex; /* フレックスボックスを有効にする */
    margin: auto; /* 水平方向に中央揃え */
    /* background-color: #222222; */
    color: #fff;
}

.main-section {
    display: flex;
    width: 70%;
    height: 500px;
    margin: auto;
}
  
  
.image-box, .text-box {
    width: 50%; /* main-contentの幅の50%を占める */
}
  
.image-box {
    display: flex;
    justify-content: flex-end; /* image-wrapを右寄せに配置 */
    padding-right: 2.5rem;
}
  
.text-box {
    display: flex;
    justify-content: flex-start; /* text-wrapを左寄せに配置 */
    padding-left: 2.5rem;
}

.service-content{
    background-color: #222222;
}

.service-section {
    display: flex; /* フレックスボックスを有効にする */
    width: 70%; /* 画面の幅の70%を占めるように設定 */
    /* height: 500px; */
    margin: auto; /* 水平方向に中央揃え */
    background-color: #222222;
}

.service-box {
    flex-basis: 48%; /* 追加されたスタイル */
    height: 700px;
    margin-bottom: 1rem;
    margin-right: 2%; /* 追加されたスタイル */
    width: 300px;
    display: flex;
    flex-direction: column; /* 子要素を縦方向に整列 */
    justify-content: flex-start; /* 中央に配置 */
    align-items: center; /* 中心線に沿って配置 */
    /* background-color: #ddd; */
}

.image-wrap1{
    width: 200px;
    height: 200px;
    max-width: 100%; /* 画像がコンテナを超えないように */
    height: auto; /* 画像の縦横比を維持 */
    display: flex;
    justify-content: center;
    /* margin-bottom: auto; */
}

.image-wrap1 img{
    max-width: 100%; /* コンテナの幅に合わせて調整 */
    max-height: 100%; /* コンテナの高さに合わせて調整 */
    object-fit: contain; /* 画像の縦横比を維持しつつ、コンテナに収める */
}

.service-box-text p {
    padding-top: 6rem;
    color: #fff;
}

.service-box-text1 p {
    font-family: 'Times New Roman', Times, serif;
    padding-top: 2rem;
    padding-bottom: 2rem;
    font-size: 2rem;
    color: #fff;
}

.service-box:last-child {
    margin-right: 0; /* 最後のボックスには右マージンが不要な場合に追加されたスタイル */
}

.works-section {
    width: 60%;
    display: grid;
    margin: auto; /* 水平方向に中央揃え */
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 20px;
}

.work-box {
    /* background-color: #ddd; */
    display: flex;
    flex-direction: column; /* 子要素を縦方向に整列 */
    justify-content: space-between; /* 上下の要素をそれぞれ端に配置 */
    align-items: center; /* 横方向の中央に配置 */
    height: 100%; /* 必要に応じて高さを設定 */
    margin-bottom: 1rem;
}

.image-wrap2 {
    width: 75%; /* コンテナの幅を親要素に合わせる */
    overflow: hidden; /* はみ出した部分を隠す */
    border-radius: 50%;
    border: 2px solid black;
}

.image-wrap2 img {
    display: block; /* 画像をブロック要素として扱う */
    width: 100%; /* 画像の幅をコンテナに合わせる */
    max-height: 100%; /* 画像の高さをコンテナに合わせる */
    object-fit: contain; /* 画像の縦横比を保ちながらコンテナに収める */
}

.work-box-text{
    text-align: center;
    width: 50%; /* 親要素の幅に合わせる */
    font-size: 0.1rem;
    position: relative;
    border: 1px solid black;
    font-weight: 600;
    margin: 10px auto;
    cursor: pointer;
    transition: all 0.3s;
}

.work-box-text a{
    color: #222222;
}

.work-box-text a:visited{
    color: #222222;
}

.work-box-text:hover {
    background-color: rgb(164, 164, 164);
    color: white;
    box-shadow: 5px 5px 10px 0 rgba(0, 0, 0, 0.5);
}

.work-space{
    width: 100%;
    height: 40px;
}

.work-box-text p{
    padding-top: 10px;
    padding-bottom: 10px;
    font-size: 1rem;
}

.contact-content{
    text-align: center;
    background-color: #222222;
}

.contact-content p {
    text-align: center;
    color: white;
    font-size: 2.0rem;
    padding-bottom: 50px;
}


.footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    background-color: #f5f5f5;
}

@media (max-width: 768px) {
    .header-name{
        font-size: 3rem;
    }
    .menu {
        display: block;
    }
    .main-content, .service-section, .works-section {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .main-content, .service-section, .works-section, .service-box, .work-box {
        flex-direction: column;
        width: auto; /* サイズ調整のため追加 */
    }

    .service-section{
        height: 1200px;
    }
    .service-box {
        margin-right: 0; /* モバイルビューでは右マージンを取り除く */
    }

    .main-section {
        display: flex;
        flex-direction: column;
    }

    .main-content{
        height: 900px;
    }

    .main-section > * {
        width: 100%;
        box-sizing: border-box; /* paddingとborderを幅に含める */
        margin: 0; /* 外部の余白をリセット */
        padding: 10px; /* 内部の余白（適宜調整） */
        /* height: 500px; */
    }

    .contact-content p{
        font-size: 0.75rem;
        color: #fff;
    }

    .work-box-text p{
        font-size: 0.7rem;
        /* padding: 10px 40px; */
    }

}
