@charset "UTF-8";

/* 共通スタイル */
body {
    margin: 0;
    padding: 0;
    color: black;
    line-height: 1.5;
    justify-content: center; /* 水平方向に中央揃え */
}

/* ヘッダー */
header {
    background-color: white;
}
.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    max-width: 1200px;
    margin: 0 auto;
}
.logo h1 {
    margin: 0;
}

/* ハンバーガーメニュー（スマホ用ハンバーガー、PC非表示） */
.drawer-hamburger {
    display: none;
}


/* ナビゲーション */
.drawer-menu {
    display: flex;/*横並び*/
    list-style: none; /* リストのドットを消す */
    margin: 0;
    justify-content: center; /*中央寄せ*/
    align-items: center; /* 縦方向の中央揃え */
    color: #16160e;
}
/* ナビゲーションのリストアイテム */
.drawer-menu li {
    margin: 0 10px; /* 左右の余白 */
    padding: 10px 0; /* 上下の余白 */
    font-size: 16px;
    color: #16160e;
}
.drawer-menu-item {
    font-size: 20px;
    color: #16160e;
    text-decoration: none; /* 下線を消す */
    text-align: center; /* 中央揃え */
    flex: 0 1 22%; /* 各リンクの幅を均等に */
}

@media screen and (max-width: 768px) {
    .drawer-menu {
        flex-direction: column; /* 縦並びに変更 */
        align-items: flex-start; /* 左寄せ */
    }
    .drawer-menu li {
        margin-left: 0; /* 縦並びでは左余白を削除 */
        margin-bottom: 10px; /* 下に余白を追加 */
    }
}

nav {
    /* 背景色はそのまま */
    padding: 1rem; /* 上下左右の余白 */
    border-radius: 5px; /* 角を丸める */
}

nav ul {
    display: flex; /* 横並びにする */
    justify-content: space-around; /* リンク間のスペースを均等に */
    align-items: center; /* 垂直方向の中央揃え */
    margin: 0;
    padding: 0;
    list-style: none; /* リストマーカーを削除 */
}

nav ul li {
    margin: 0 15px; /* リストアイテム間の余白 */
    position: relative; /* 線を配置するために必要 */
}

nav ul li:not(:last-child)::after {
    content: ""; /* 線を追加 */
    position: absolute;
    right: -8px; /* 線を文字の右側に配置 */
    top: 50%;
    transform: translateY(-50%);
    width: 1px; /* 線の幅 */
    height: 1.5rem; /* 線の高さ */
    background-color: #ccc; /* 線の色 */
}

nav ul li a {
    color: black; /* リンクの文字色を黒に設定 */
    text-decoration: none; /* 下線を削除 */
    font-weight: bold;
    padding: 0.5rem 1rem; /* リンクの内側余白 */
    border-radius: 5px; /* 角を丸める */
    position: relative; /* 線を配置するために必要 */
    transition: color 0.3s ease; /* 色のスムーズな変化 */
}

nav ul li a::after {
    content: ""; /* 線を追加 */
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0; /* 初期状態では線を非表示 */
    height: 2px; /* 線の高さ */
    background-color: black; /* 線の色 */
    transition: width 0.3s ease; /* 線のスムーズな表示 */
}

nav ul li a:hover::after {
    width: 100%; /* ホバー時に線を全幅に広げる */
}

/* フッター */
footer {
    background-color: #626466;
    color: #ffffff;
    padding: 50px 0 20px;
    text-align: center;   
}

/* index.htmlのスタイル */
.cards {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px;
    padding: 40px;
}
.card {
    background-color: #f8f8f8;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 50px;
    width: 300px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* about.htmlのスタイル */

.about-title h1 {
    text-align: center; 
    margin-top: 20px;
    padding: 20px;
    background-color: lightgrey;
}
.about-title h2 {
    text-align: center;
    font-size: 2.5rem;
    margin-top: 60px;
   
   
}
.about-title p {
    text-align: justify;
    max-width: 960px;
    margin: 0 auto;
    padding: 40px 20px;
    

}
.mvv-container { 
    max-width: 960px;
    margin: 0 auto;
    padding: 40px 20px;
    text-align: center;
}
.mvv-section {
    background: #fff;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    text-align: center;
}
.mission-vision {
    display: flex;
    gap: 20px;
    margin-bottom: 30px;
}
.box {
    flex: 1;
    text-align: center;
}
.box p {
    background-color: #dedede;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    justify-content: space-around;
    padding: 20px;
    margin: 10px 0;
    flex-wrap: nowrap;
    display: flex;
}
.box h2 span{
    display: block;
    font-size: 0.8em;
    color: #777;
}
.value {
    margin-top: 40px;
}
.value h2 span {
    display: block;
    font-size: 0.8em;
    color: #777;
    text-align: center;
}

.value-items {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-around;
    gap: 10px;
}
.item {
    flex: 1; /* 各ボックスを均等に広げる */
    max-width: 18%; /* ボックスの最大幅を設定 */
    background-color: #dedede;  
    margin: 5px;
    padding: 15px;
    text-align: center;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.company-overview h2 {
    text-align: center;
    margin-top: 20px;
}

.company-overview table {
    width: 100%;
    max-width: 960px;
    border-collapse: collapse;
    margin: 20px auto;
}


.company-overview th,
.company-overview td {
    border: 1px solid #ccc;
    padding: 20px;
}
.company-overview th {
    font-weight: bold;
    background-color: #dedede;  
}



/* service.htmlのスタイル */

.service-introduction ul{
    max-width: 960px;
    margin: 0 auto;
    padding: 40px 20px;
    text-align: center;
    list-style: none; /* リストのドットを消す */
}
.service-introduction ul p {
    text-align: justify;
    margin-bottom: 60px;
    padding: 0 20px;
    
}
.service-introduction h1 {
    text-align: center;
    margin-top: 20px;
    padding: 20px;
    background-color: lightgrey;
}
.service-introduction p {
    text-align: center;
}


/* contact.htmlのスタイル */

.contact-introduction h1 {
    text-align: center; 
    margin-top: 20px;
    padding: 20px;
    background-color: lightgrey;
}
.contact-introduction p {
    text-align: center;
}




/* フォームのスタイリング */

form {
    max-width: 960px;
    margin: 0 auto;
    padding: 40px 20px;
    display: flex;
    flex-direction: column; /* フィールドを縦に並べる */
    align-items: flex-start; /* フィールドを左揃えにする */
}


/* フォーム内の要素 */
form label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: bold;
    color: #333; /* テキストの色を変更 */
}

form input, form textarea, form button {
    width: 100%; /* 要素の幅をフォーム全体に合わせる */
    margin-bottom: 1rem;
    padding: 0.5rem;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 1rem;
}

form button {
    background-color:  gray;
    color: white;
    border: none;
    cursor: pointer;
    font-size: 1rem;
}

form button:hover, .section button:hover {
    background-color: #005bb5; /* 統一されたホバー色 */
}

.checkbox-area {
    display: flex; /* 横並びにする */
    align-items: center; /* チェックボックスとテキストを中央揃えに */
    white-space: nowrap; /* 改行を防ぐ */
    gap: 8px; /* チェックボックスとテキストの間隔を調整 */
}

label {
    cursor: pointer; /* テキストをクリックしてチェックをつけられるようにする */
}

/* privacy.htmlのスタイル */
.privacy-container {
    max-width: 960px;
    margin: 0 auto;
    padding: 40px 20px;
    border-radius: 10px;
}

.privacy-container h1 {
    text-align: center;
    font-size: 2.5rem;
    margin-bottom: 20px;
    color: black;
}

.privacy-container section {
    margin-bottom: 20px;
}

.privacy-container section h2 {
    font-size: 1.5rem;
    margin-bottom: 10px;
    color: #333;
}

.privacy-container section p {
    font-size: 1rem;
    line-height: 1.6;
    color: #555;
}


/* スマートフォン用のスタイル */
@media screen and (max-width: 768px) {

    .logo img {
        max-width: 100%; /* ロゴの最大幅を100%に */
        height: auto; /* 高さを自動調整 */
    }

    .header-container {
        flex-direction: column; /* ヘッダーの要素を縦に並べる */
        align-items: center; /* 中央揃え */
    }
    .drawer-menu {
        flex-direction: row; /* ナビゲーションを横並びにする */
        align-items: center; /* 中央揃え */
    }
    .drawer-menu-item {
        flex: 1 0 100%; /* 各リンクを全幅にする */
        text-align: center; /* 中央揃え */
        font-size: smaller; /* フォントサイズを小さくする */
    }

    /* contact.htmlのフォーム */
    .contact-introduction p {
        padding: 20px; /* フォームのパディングを調整 */
    }
    form {
        width: 90%; /* フォームの幅を調整 */
        max-width: 80%; /* 最大幅を解除 */    
    }
    .checkbox-area {
        flex-direction: row; /* チェックボックスとテキストを横に並べる */
    }

    /* service.htmlのスタイル */
    .service-introduction p {
        padding: 20px; /* パディングを調整 */
    }

    /* about.htmlのスタイル */
    .about-title p {
        padding: 40px; /* パディングを調整 */
    }
    
    .box  {
        flex-direction: column; /* 縦並びに変更 */
        align-items: center; /* 中央揃え */
        max-width: 100%; /* ボックスの最大幅を解除 */
    }
    .value-items {
        flex-direction: column; /* 縦並びに変更 */
        align-items: center; /* 中央揃え */
        flex: 1 0 100%; /* 各ボックスを全幅にする */
    }
    .item {
        max-width: 100%; /* ボックスの最大幅を解除 */
        margin: 10px 0; /* 上下の余白を追加 */
    }
    .company-overview table {
        width: 90%; /* テーブルの幅を90%に */
        font-size: 0.7rem; /* フォントサイズを小さく */
        
    }
    .company-overview th, .company-overview td {
        padding: 10px; /* パディングを調整 */
    }
    .company-overview th {
        align-items: flex-start; /* テキストの折り返しを防ぐ */
    }
}

/* タブレット用のスタイル */
@media screen and (min-width: 769px) and (max-width: 1024px) {
    .drawer-menu-item {
        font-size: 18px; /* タブレット用のフォントサイズを調整 */
        padding: 12px 16px; /* パディングを調整 */

    }
    
    .item {
        max-width: 100%; /* ボックスの最大幅を解除 */
        margin: 10px 0; /* 上下の余白を追加 */
        flex: 1;
    }

}


