@charset "UTF-8";

/* 共通部分
------------------------------------------ */
html {
    font-size: 100%;
}
body {
    font-family: sans-serif;
    line-height: 1.7;
    color: #432;
    background-color: #d9eaec;
    /*color: #74a64c;*/
}
a {
    text-decoration: none;
}
img {
    max-width: 100%;
}
/* HEADER
------------------------------------------ */
.logo {
    width: 200px;
    margin-top: 10px;
}
.menu-toggle {
    display: none;  /* ハンバーガーメニューを非表示 */
}
.main-nav {
    display: flex;
    font-size: 1.25rem;
    margin-top: 34px;
    list-style-type: none;
    position: static; /* モーダルの影響を受けないようにデフォルトに戻す */
    background-color: transparent; /* モーダルの影響を受けないようにデフォルトに戻す */
    flex-direction: row; /* 横並びに表示 */
    justify-content: flex-start; /* 左寄せにする */
    align-items: center; /* 垂直中央揃え */
    width: auto; /* デフォルトの幅 */
    height: auto; /* デフォルトの高さ */
    z-index: auto; /* デフォルトのz-index */
}
.main-nav li {
    margin-left: 36px;
}
.main-nav a {
    color: #432;
}
.main-nav a:hover {
    color: #47763c;
}
.modal {
    display: none;
}
.page-header {
    display: flex;
    justify-content: space-between;
    
}
.wrapper {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 4%;
}

/* HOME
------------------------------------------ */
.home-content {
    text-align: center;
    margin-top: 12%;  
}
.home-content p {
    font-size: 1.5rem;
    margin: 0 0 10px;
}
.page-title {
    font-size: 5rem;
    font-family: serif;
    font-weight: normal;
}

/* 大きな背景画像 */
.big-bg {
    background-size: cover;
    background-position: center 80px;
    background-repeat: no-repeat;
}
#home {
    background-image: url(../images/main-bg6.png);
    min-height: 100vh;

}

/* ABOUT
------------------------------------------ */
#about {
    background-image: url(../images/header-bg2.jpeg);
    height: 270px;
    margin-bottom: 40px;
    background-position: 0 80px;
}
#about .page-title {
    text-align: center;
    padding: 30px;
}
/* 記事部分 */
article {
    width: 60%;

    
}
/* サイドバー部分 */
aside {
    width: 35%;
}
.about-contents {
    display: flex;
    justify-content: space-between;
    margin-bottom: 50px;
}
.post-title {
    font-family: "Yu Mincho","YuMincho",serif;
    font-size: 2rem;
    font-weight: bold;
    
    text-align: center;
}
h2.post-title {
    margin-top: 20px;
}

article img {
    margin-top: 10px;
    margin-bottom: 20px;    

}
article p {
    margin-bottom: 1rem;
}
.sub-title {
    font-family: "Yu Mincho","YuMincho",serif;
    font-size: 2rem;
    font-weight: bold;
    border-bottom: 2px solid #47763c;
    padding: 0 8px 8px;
    margin-top: 20px;
    text-align: center;
}
.sub-place {
    padding: 10px;
    list-style-type: none;
}
.sub-place li {
    border-bottom: 1px solid #ddd;
}
aside p {
    width: 100%;
    padding: 12px 10px;
}
aside ul,h3 {
    width: 100%;    
}

/* USE
------------------------------------------ */
#use {
    background-image: url(../images/header-bg2.jpeg);
    height: 270px;
    margin-bottom: 40px;
    background-position: 0 80px;
}
#use .page-title {
    text-align: center; 
    padding: 30px;
}
.container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
}
.last {
    text-align: center;
}


/* RECRUIT
------------------------------------------ */
#recruit {
    background-image: url(../images/header-bg2.jpeg);
    height: 270px;
    margin-bottom: 40px;
}
#recruit .page-title {
    text-align: center;  
    padding: 30px; 
}
.recruit-text p {
    text-align: center;
    padding: 0 1rem; /* 左右に16pxの余白 */
    line-height: 1.8; /* 行間も少し広げて読みやすく */
}
.post-info p {
    text-align: center;
    margin: 30px;
}
.post-table {
    margin: auto;
    margin-top: 30px;  
}

/* CONTACT
------------------------------------------ */
#contact {
    background-image: url(../images/header-bg2.jpeg);
    height: 270px;
    margin-bottom: 40px;

}
#contact .page-title {
    text-align: center; 
    padding: 30px;  
}


.post-title {
    margin: 50px;
}
 section .post-info {
    
    margin: 0 10%;
    text-align: center;
    border-width: 4px;
    border-style: solid;
    border-color: #47763c;
    border-radius: 10px;
}


.post-flex {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
} 

.post-flex p {
    font-size: 2rem;
    font-weight: bold;
}
.post-flex a {
    color: #432;
}
.post-flex a:hover {
    color: #47763c;
}

.post-last {
    text-align: center;
    margin: 80px;
}
.post-sub {
    font-size: 80%;
    margin-top: 5px;
    margin-bottom: 105px;
}

/* CONTACT.PHP
------------------------------------------ */

.form {
    width: 80%;
    max-width: 600px;
    margin: 0 auto;
    display: block;
}
.button{
    text-align: center;
    margin-top: 30px;
}
/* ボタンが非活性の時にグレーにするCSS */
input[type="submit"]:disabled {
    background-color: #ccc !important;  /* グレーに */
    color: #666 !important;             /* 文字色も */
    border-color: #ccc !important;      /* ボーダー色 */
    cursor: not-allowed !important;     /* カーソル変更 */
    opacity: 1 !important;              /* Bootstrapが薄くしすぎるのを防ぐ */
}
.finish{
    text-align: center;
}
.privacy-content {
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid #8fbf8f; /* 優しい緑色の枠線 */
    padding: 15px;
    background-color: #f6fff6; /* やや白に近い薄い緑背景 */
    color: #333;
    border-radius: 5px;
    font-size: 14px;
    line-height: 1.6;
}

/* スクロールバーのスタイル（モダンブラウザ対応） */
.privacy-content::-webkit-scrollbar {
    width: 8px;
}

.privacy-content::-webkit-scrollbar-track {
    background: #e0f2e0; /* トラックの背景色 */
    border-radius: 4px;
}

.privacy-content::-webkit-scrollbar-thumb {
    background-color: #8fbf8f; /* スクロールのつまみ */
    border-radius: 4px;
}
.privacy-policy {
    margin-top: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}



/* GRID
------------------------------------------ */
.grid {
    display: grid;
    gap: 26px;
    grid-template-columns: repeat(auto-fit,minmax(240px,1fr));
    margin-top: 6%;
    margin-bottom: 50px;
}


/* フッター
------------------------------------------ */
footer {
    background-color: #432;
    text-align: center;
    padding: 26px 0;
    margin-top: 50px;
}
footer p {
    color: #fff;
    font-size: 0.875rem;
}

/* モバイル版
------------------------------------------ */
@media (max-width: 900px) {
    .page-title {
        font-size: 2.4rem;
    }
    .page-header {
        /* flex-direction: column;
        align-items: center; */
        display: flex;
        justify-content: space-between; /* ロゴとハンバーガーを左右に配置 */
        align-items: center; /* 垂直方向に中央揃え */
        /* padding: 10px; 少しの余白を追加 */
    }
    /* HEADER */
    .menu-toggle {
        display: block;
        font-size: 2.5rem;
        cursor: pointer;
        margin-right: 10px;
        color: #432;
    }
    /* ハンバーガーメニューのボタンにホバーしたときのスタイル */
    .menu-toggle:hover {
        color: #47763c; /* ホバー時のアイコンの色を変更 */
    }

    /* ナビゲーションメニューの基本スタイル */
    nav {
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transition: max-height 0.5s ease, opacity 0.5s ease;
        background-image: none; /* グラデーションを完全に消す */
        background-color: rgba(34, 43, 34, 0.7);
        position: absolute;
        top: 60px; /* メニューがヘッダーの下に表示される */
        left: 0;
        right: 0;
        z-index: 1000;
    }

    /* メニューが表示された状態 */
    nav.open {
        max-height: 500px; /* メニューの高さを調整 */
        opacity: 1;
    }
    .main-nav {
        list-style: none;
        padding: 0;
        margin: 0;
        display: block;
        /* font-size: 1rem;
        margin-top: 10px;
        display: none; */
    }
    .main-nav li {
        margin: 15px 0;
        opacity: 0;
        transform: translateY(-20px);
        animation: slide-in 0.3s forwards ease;
    }
    .main-nav li:nth-child(1) {
        animation-delay: 0.1s;
    }
    .main-nav li:nth-child(2) {
        animation-delay: 0.2s;
    }
    .main-nav li:nth-child(3) {
        animation-delay: 0.3s;
    }
    .main-nav li:nth-child(4) {
        animation-delay: 0.4s;
    }
    .main-nav a {
        writing-mode: horizontal-tb; /* 横書きにする */
        text-orientation: mixed; /* 通常の横書きの向き */
        display: inline-block;
        color: #e0e0e0;; /* デフォルトのリンクカラー */
        font-size: 1.5rem; /* メニューの文字サイズを調整 */
        text-decoration: none; /* 下線をなくす */
        padding: 10px 20px; /* 文字の周りに余白を追加 */
    }
    .main-nav a:hover {
        color: #0a2f07; /* マウスオーバー時の色を変更 */
    }
    /* アニメーション */
    @keyframes slide-in {
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    /* HOME */
    #home {
        background-image: url(../images/main-bg7.png);
        min-height: calc(100vh - 1px);
        background-position: center 80px; /*165px */
    }

    .home-content {
        margin-top: 20%;
    }
    .home-content p {
        font-size: 1.4rem;
    }
    

    /* ABOUT */
    .about-contents {
        flex-direction: column;
    }
    article,aside {
        width: 100%;
    }
    .page-title {
        margin-top: 1px;
        margin-bottom: 40px;
    }
    aside {
        margin-top: 60px;
    }
    .post-info {
        margin-bottom: 30px;
    }
    .post-title {
        font-size: 1.375rem;   
    }
    .sub-title {
        font-size: 1.375rem;
    }

    /* RECRUIT */
    .recruit-text p {
        text-align: left;
    }
    .ex p {
        text-align: left;
    }

    /* CONTACT */
    section .post-title {
        text-align: left;
        font-size: 1.3rem;
    }
    .post-flex a {
        font-size: 1.3rem;
    }
    .post-last {
        margin: 50px 1% 0;   
        text-align: left;
    }
    section .post-info {
        font-size: 1rem;
        text-align: left;
    }
    .post-flex img {
        width: 25px;
        height: 30px;
        margin-top: 45px;
        margin-left: 10px;
        margin-bottom: 80px;
    }
    
    
}
    
