/* 全体 */
body {
    font-family: 'M PLUS 1p', sans-serif;
    margin: 0;
    letter-spacing: 0.1em;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
}

/* PC・SPのオンオフ */
.pc{
    display: block !important;
}
/* 初期状態ではスマホ用 h2 を非表示 */
.sp-h2 {
    display: none !important;
}

/* スマホ（768px 以下）の時だけ h2 を切り替える */
@media (max-width: 768px) {
    .pc-h2 {
        display: none !important;  /* PC用 h2 を消す */
    }
    .sp-h2 {
        display: block !important; /* スマホ用 h2 を表示 */
    }
}

/* PCではハンバーガーメニューを非表示 */
@media (min-width: 768px) {
    .menu-btn {
        display: none !important;
    }
}




.container {
    max-width: 960px;
    margin: 0 auto;
    padding: 20px;
}

/* ヘッダー */
header {
    width: 100%;
    display: flex;
    justify-content: start; /* 子要素を左揃え */
    align-items: center;
    padding: 10px 20px; /* 左右に20pxの余白を追加 */
    background-color: #fff;
}

.header_img {
    width: 200px;
    height: auto;
    margin: 0; /* マージンはリセット */
}

.header_wrapper {
    width: 100%;
    max-width: 1320px;
    margin: auto;
    display: flex;
    align-items: center;
    position: relative;
    height:80px; /* 高さを固定 */
}

.header_wrapper h1 {
    width: auto;
    display: flex;
    align-items: center;
}

.header_wrapper h1 a {
    display: block;
    color: #333;
    text-decoration: none;
    font-size: 34px;
}

.header_wrapper h1 span {
    display: block;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
    margin-left: 10px;
}

.header_right{
    display: flex;
}

@media (max-width: 767px){
    header{
        position: fixed;
        top: 0;
        z-index: 100;
        padding: 0;
        background-color: #fff;
    }
}

@media screen and (max-width: 768px) {
    header {
        justify-content: center; /* スマホでロゴを中央揃え */
        position: relative; /* 子要素の位置を制御するためにrelative */
    }

    header img {
        margin: 0 auto; /* ロゴを中央揃え */
    }
}

/* 各セクション */
#hero,
#prologue,
#company,
#services,
#products,
#careers,
#access,
#contact {
    padding: 40px 0;
}

/* ヒーローセクション */
#hero {
    background-color: #e0e0e0;
    text-align: center;
    background-image: url("img/AdobeStock_498131753.jpeg");
    background-size: cover;
    background-position: center;
    padding-top: 130px;
    padding-bottom: 130px;
}

/* 見出し */
h1,
h2,
h3,
h4,
h5 {
    font-family: 'Zen Maru Gothic', sans-serif;
    font-weight: bold;
    text-align: center;
}

h1 {
    font-size: 2.5em;
}

h2 {
    font-size: 2.5em;
}

h3 {
    font-size: 2em;
    display: block;
    width: 100%;
    margin-bottom: 30px;
}

h4 {
    font-size: 1.5em;
    margin-bottom: 30px;
}

h5 {
    font-size: 1.2em;
}

#hero h2 {
    color: #006400; /* 文字色（変更可能） */
    font-size: 2.5em; /* 必要に応じて調整 */
    font-weight: bold;
    text-align: center;
    text-shadow: 
        -2px -2px 0 #fff,  
         2px -2px 0 #fff,  
        -2px  2px 0 #fff,  
         2px  2px 0 #fff; /* 文字の周囲に白い影をつける */
}

/* 初期状態ではスマホ用 h2 を非表示 */
.sp-h2 {
    display: none;
}

/* スマホ（767px 以下）の時だけ表示を切り替える */
@media (max-width: 767px) {
    .pc-h2 {
        display: none; /* PC用の h2 を非表示 */
    }
    .sp-h2 {
        display: block; /* スマホ用の h2 を表示 */
    }
}


/* 本文 */
p {
    line-height: 2.0;
}

/* プロローグ */
#prologue {
    font-size: 18px;
    line-height: 1.6;
}

/* 会社概要 */
#company .dl-item {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1em;
}

#company dt {
    width: 150px;
    line-height: 1.6;
    font-size: 1em;
}

#company dd {
    margin-left: 20px;
    display: flex;
    flex-direction: column;
    white-space: nowrap;
}

@media (max-width: 767px) {
    #company .dl-item {
        flex-direction: column; /* 上下に並べる */
        align-items: flex-start; /* 左揃え */
        text-align: center; /* テキストのセンター揃え */
    }

    #company dt {
        width: 100%; /* 幅を100%に */
        margin-bottom: 0.5em; /* 下に余白を追加 */
        text-align: center; /* テキストのセンター揃え */
    }

    #company dd {
        width: 100%; /* 幅を全体に広げる */
        margin-left: 0; /* 左の余白をリセット */
        text-align: center; /* テキストのセンター揃え */
        display: flex; /* フレックスボックス */
        flex-direction: column; /* 垂直方向に要素を並べる */
        align-items: center; /* 内容を中央揃え */
    }

    #company dd span {
        width: auto; /* 各行を自動サイズに */
        display: block; /* 各行を独立させる */
    }
}

/* 事業内容 */
#services h4 {
    margin-bottom: 40px;
}

#services h5 {
    margin-bottom: 20px;
}

#services h4+p {
    margin-bottom: 20px;
}

#services p {
    text-align: left;
}

#services .services-items {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

#services .services-item {
    flex: 1 0 30%;
    box-sizing: border-box;
    margin: 0 1%;
    text-align: center;
}

#services .services-item img {
    max-width: 100%;
    height: auto;
    width: 300px;
    margin-bottom: 30px;
}

@media (max-width: 767px) {
    #services .services-items {
        display: flex;
        flex-direction: column; /* 上下に並ぶように */
        align-items: center; /* 中央揃え */
    }

    #services .services-item {
        flex: none; /* 横幅の比率をリセット */
        width: 100%; /* スマホ画面いっぱいに広げる場合 */
        margin-bottom: 30px; /* 下に余白を追加 */
        text-align: center; /* 中央揃え */
    }

    #services .services-item img {
        margin-bottom: 30px; /* 画像とテキスト間に余白を追加 */
        width: auto; /* 画像サイズの横幅を自動調整 */
        max-width: 80%; /* スマホでの見栄えを保つために制限 */
    }

    #services p {
        text-align: left;
    }
}

/* 取り扱い商品 */
#products p {
    margin-bottom: 30px;
    font-size: 1em;
    line-height: 1.6;
}

#products .image-items {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 40px;
}

#products .image-items img {
    width: calc(33.33% - 20px);
    height: auto; /* 高さは自動調整 */
    aspect-ratio: auto; /* 自然な比率を維持 */
    object-fit: contain; /* 画像が切れないように調整 */
}

#products .center-image {
    text-align: center;
    margin-bottom: 80px;
}

#products .center-image img {
    display: block;
    margin: 0 auto;
    width: 300px;
    height: auto;
}

.text-block {
    text-align: center;
}

.text-block p {
    display: inline-block;
    text-align: left;
}

.narrow-text {
    max-width: 85%; /* 横幅を狭める */
    margin: 0 auto; /* 中央揃え */
    text-align: left; /* 左揃え */
    line-height: 1.8; /* 行間を広げる */
}


@media (max-width: 767px) {
    #products .image-items {
        display: flex;
        flex-direction: column; /* 上下に並べる */
        align-items: flex-start;
        align-items: center; /* 画像を中央揃え */
        gap: 40px; /* 画像間の余白 */
    }

    #products .image-items img {
        width: 80%; /* スマホで画像を縮小 */
        height: auto;
        margin-bottom: 10px; /* 画像と次の要素間に余白を追加 */
    }

    #products .center-image img {
        width: 80%; /* 中央画像のサイズをスマホ用に調整 */
        height: auto;
        margin: 0 auto;
    }

    .text-block {
        text-align: center; /* テキスト全体を中央揃え */
        margin-bottom: 20px; /* テキストブロックの下に余白 */
    }

    .text-block p {
        text-align: left; /* テキスト内容は左揃え */
        margin: 20px; auto;
    }
}

/* 求人情報 */
#careers h4 {
    margin-bottom: 40px;
}

#careers h5 {
    margin-bottom: 30px;
}

#careers h4+p {
    margin-bottom: 20px;
}

#careers .careers-items {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

#careers .careers-item {
    flex: 1 0 30%;
    box-sizing: border-box;
    margin: 0 1%;
    text-align: center;
}

#careers .careers-item img {
    max-width: 100%;
    height: auto;
    width: 300px;
    margin-bottom: 30px;
}

#careers .careers-item p {
    text-align: left; 
  }

@media (max-width: 767px) {
    #careers .careers-items {
        display: flex;
        flex-direction: column; /* 上下に並ぶように */
        align-items: center; /* 中央揃え */
    }

    #careers .careers-item {
        flex: none; /* 横幅の比率をリセット */
        width: 100%; /* スマホ画面いっぱいに広げる場合 */
        margin-bottom: 20px; /* 下に余白を追加 */
        text-align: center; /* 中央揃え */
    }

    #careers .careers-item img {
        margin-bottom: 10px; /* 画像とテキスト間に余白を追加 */
        width: auto; /* 画像サイズの横幅を自動調整 */
        max-width: 80%; /* スマホでの見栄えを保つために制限 */
    }

    #careers .careers-item p {
        text-align: left; 
    }
}

/*
#careers .careers-content {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#careers h4 {
    margin-top: 20px;
}

#careers .careers-text-image {
    display: flex;
    align-items: center;
    width: 100%;
}

#careers .careers-content p {
    margin-right: 20px;
}

#careers .careers-content img {
    width: 48%;
    max-width: none;
    height: auto;
} */

/* @media (max-width: 767px) {
    #careers .careers-text-image {
        display: flex;
        flex-direction: column; /* 上下に並べる 
        align-items: center; /* 要素を中央揃え 
    }

    #careers .careers-content img {
        width: 80%; /* 画像サイズを調整 
        height: auto;
        margin-bottom: 20px; /* 画像下に余白を追加 
    }

    #careers .careers-content p {
        margin: 20px; auto; /* テキストを中央揃え 
        text-align: left; /* スマホ表示で左揃え 
        margin-bottom: 40px; /* テキスト全体の下に余白を追加 
    }
} */

/* アクセス */
#access .access-info {
    text-align: center;
}

#map iframe {
    width: 100%;
}

/* お問い合わせ */
#contact {
    text-align: center;
}

/* フッター */
footer {
    background-color: #fff;
    padding: 20px 0;
    text-align: center;
    background-image: linear-gradient(to top, #ccc, #fff);
}

footer p {
    color: #006400;
}

/* ページトップボタン */
#page-top {
    display: none;
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 999;
    cursor: pointer;
}

#page-top a {
    display: block;
    padding: 10px 20px;
    background-color: #006400;
    color: #fff;
    text-decoration: none;
    border-radius: 10px;
    box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.3);
    text-align: center;
}

/* ナビゲーション */
.gnav{
    width: 100%;
    /* background-color: #333; */
}

.gnav_wrapper{
    max-width: 980px;
    margin: auto;
    display: flex;
}

.gnav_wrapper li{
    /* border-left: #888 1px solid; */
    text-align: center;
    width: calc(100%/7);
    transition: all  0.3s ease;
    list-style: none;
}

/* .gnav_wrapper li:last-child{
    border-right: #888 1px solid;
} */

.gnav_wrapper li:hover{
    background-color: #a6d4ac;
}

.gnav_wrapper li a{
    display: block;
    padding: 1.3em 0;
    color: #333;
    text-decoration: none;
}

@media (max-width: 767px){
    .gnav_wrapper{
        position: fixed;
        display: table;
        top: 10px;
        right: 0;
        width: 100%;
        height: 100%;
        background: #fff;
        visibility: hidden;
        opacity: 0;
        padding-top: 20%;
    }

    .gnav_wrapper li{
        max-width: 300px;
        margin: 0 auto;
        text-align: center;
        width: 100%;
        border-bottom: none; /* #888 1px solid; */
        border-left: none;
    }

    .gnav_wrapper li:last-child{
        border-right: none;
    }

    .menu-btn{
        position: fixed; /* または fixed */
        top: 10px; /* 上からの距離 */
        right: 10px; /* 右からの距離 */
        color: #333;
        cursor: pointer;
        z-index: 100;
        background-color: none; /* #333; */
        max-width: 80px;
        width: 80px;
    }

    .menu-btn i{
        display: block;
        font-size: 24px;
        text-align: center;
        padding-top: 10px;
    }

    .menu-btn span{
        display: block;
        padding: 0 0 10px 0;
        font-size: 10px;
        text-align: center;
    }

    .open{
        transition: all .5s;
        visibility: visible;
        opacity: 1;
        z-index: 10;
    }

    .menu-btn span::after{
        content: attr(data-txt-menu);
    }

    .open span::after{
        content: attr(data-txt-close);
    }
    
}