html,body{
    margin:0;
    padding:0;
    font-size:18px;
}

/* ハンバーガーアイコンの外側 */
header .hamburger {
    /* ボタン全体サイズを50pxの正方形に設定 */
    width: 50px;
    height: 50px;
    background-color: #003a7c;
    border-radius: 10px;
    /* マウスポインターを指に変更 */
    cursor: pointer;
    position: fixed;
    top: 15px;
    right: 30px;
    /* 優先度を変更 */
    z-index: 30;
}

/* ハンバーガーアイコンの内側の線 */
header .hamburger span {
    /* ボタン横線の長さと高さを設定 */
    width: 30px;
    height: 3px;
    background-color: #fff;
    /* 絶対位置指定（親は.hamburger） */
    position: absolute;
    left: 10px;
    /* ボタンが押されてXに切り替わるときの動作設定 */
    transition: all 0.4s;
}

/* ハンバーガーメニュー3本の線の縦の位置を設定 */
header .hamburger span:nth-of-type(1) {
    top: 15px;
}
header .hamburger span:nth-of-type(2) {
    top: 25px;
}
header .hamburger span:nth-of-type(3) {
    top: 35px;
}

/* メニューの外側を設定 */
header .nav {
    background-color: #003a7c93;
    backdrop-filter:blur(10px);
    /* メニュー開いた時の幅を設定 */
    width: 50%;
    max-width:400px;
    /* メニュー開いた時の高さを設定（画面いっぱいに広げる） */
    height: 100vh;
    position: fixed;
    top: 0;
    right: -80%;
    z-index: 20;
    /* スライド表示する際の速度を設定 */
    transition: all 0.6s;
}

/* メニュー内の設定 */
header .nav ul {
    width: 100%;
    height: 100vh;
    flex-direction: column;
    padding: 120px 0;
    overflow: auto;
    gap: 30px;
    text-align: center;
}

/* ボタンを押した際の動作を作成 */
header .nav.active {
    right: 0;
}

/* ボタンをXにするCSS */
/* アイコンの親要素(.hamburger)にactiveクラスが付いているとき */
header .hamburger.active span:nth-of-type(1) {
    top: 24px;
    transform: rotate(-45deg); /* 反時計回りに45°回転 */
}
header .hamburger.active span:nth-of-type(2) {
    opacity: 0; /* 中央の線は非表示 */
}
header .hamburger.active span:nth-of-type(3) {
    top: 24px;
    transform: rotate(45deg); /* 時計回りに45°回転 */
}

nav li{
    margin-bottom:20px;
}

nav ul li a{
    text-decoration: none;
    color:#fff;
    padding: 0 10px;
    background-image: linear-gradient(90deg, #fff, #fff); /* マーカーの色を指定 */
    background-repeat: no-repeat;
    background-position: left bottom; /* マーカーの発生位置を左下に設定 */
    background-size: 0 100%; /* マーカーの横幅 / 縦幅 */
    transition: all 0.3s ease; /* マーカーを引く速度 */
    cursor: pointer; /* ホバー時のカーソルをポインターにする */
}
nav ul li a:hover{
    background-size: 100% 100%; /* マーカーの横幅を100%にする */
    color:#000;
}

.button{
    color:#fff;
    background-color: #003a7c;
    max-width:500px;
    width:100%;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    outline: none;
    transition: 0.3s;
}

.button:disabled{
    background-color: #b6b6b6;
    color:#262626;
}
.button:disabled:hover{
    opacity: 1;
    cursor: not-allowed;
}

.button:hover{
    opacity:0.5;
}

.card{
    transition: 0.3s;
}
.card:hover{
    opacity:0.5;
}

.news-link, .inquiry{
    transition:all 0.3s;
    text-decoration: none;
}
.news-link:hover, .inquiry:hover{
    opacity:0.5;
}

.card-text{
    color:#fff;
    padding:0 10px;
    background-color: #6666667a;
    backdrop-filter: blur(10px);
    border-radius: 10px;
}

#item-img:hover{
    cursor:pointer;
}

#magnifier-container {
    position: relative;
    display: inline-block;
}

#magnify-image {
    border-radius: 10px;
    cursor: none;
}

#lens {
    position: absolute;
    border: 3px solid #fff;
    border-radius: 50%;
    width: 150px;
    height: 150px;
    background-repeat: no-repeat;
    box-shadow: 0 0 10px rgba(255,255,255,0.4);
    display: none;
    pointer-events: none;
}

.category{
    border-bottom:5px solid #003a7c;
}

.list{

    border-bottom:3px solid #003a7c;
}

.info-wrapper{
    list-style: none;
    padding: 0;
    margin: 0;
}

textarea{
    width:100%;
    height: 300px;
}

input[type="checkbox"]{
    transform: scale(1.5);
}

input[type="checkbox"]:hover,input[type="file"]:hover{
    cursor: pointer;
}

footer{
    background-color: #003a7c;
    color:#fff;
}

footer a{
    color:#fff;
    transition: all 0.3s;
}

footer a:hover{
    opacity:0.5;
}

footer input[type="button"] {
    border: none;
    cursor: pointer;
    outline: none;
    background-color: #fff;
    border-radius:5px;
    transition:all 0.3s;
}

footer input[type="button"]:hover {
    opacity: 0.5;
}

#item-wrapper, #recruit-wrapper, #count-detail, #file, #file-list{
    display: none;
}

.custom-button {
    background-color: #003a7c;
    color:#fff;
    cursor: pointer;
    padding:10px;
    border-radius: 10px;
    transition: 0.3s;
    outline: none;
    border: none;
}
.custom-button:hover{
    opacity:0.5;
}

input[type="text"],textarea,select{
    border:none;
    outline:1px solid #000;
    border-radius: 4px;
}

input[type="text"]:focus,textarea:focus,select:focus{
    outline:2px solid #0067dd;
    border:1px solid rgba(0,0,0,0);
}

/* 1. ツールチップの文字が入る背景部分を赤くする */
.tooltip-inner {
    color: #f00;
    font-size: 0.85rem;
    padding: 0.5rem 0.75rem;
    border-radius: 4px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
    max-width: none !important;
    text-wrap: nowrap;
}


/* ==========================================================================
   チェックボックスのエラー枠線（自作クラス）
   ========================================================================== */

/* 3. エラーが起きたチェックボックスの周りを赤く目立たせる */
.is-invalid {
    border:1px solid rgba(0,0,0,0);
    outline: 2px solid #dc3545 !important; /* 外枠に2pxの赤線を引く */
    background-color: #dc35467f;
    border-radius: 10px;
    color:#000;
}

.is-invalid:focus{
    border:1px solid rgba(0,0,0,0);
}


/* ==========================================================================
   レイアウトの微調整（※ツールチップ消滅防止）
   ========================================================================== */

/* 4. ツールチップを表示する親要素（.form-group）の設定 */
.form-group {
    position: relative; /* ツールチップの位置計算の基準にする */
}

#map {
    width: 100%;
    height: 400px; /* 任意の高さ */
    background-color: #eee; /* 読み込み前の確認用 */
}

@media (max-width: 670px) {
    header .hamburger {
        top: 5px;
        right: 10px;
    }
}