/* 表示マップブロック全体の余白と整理 */
#nomal .area_f {
    padding: 0 0 5px 0px;
}

/* ラベル部分のスタイル */
#nomal .selectmap-inner span {
    display: inline-block;
    margin-bottom: 6px;
    font-weight: 600;
    font-size: 16px;
    color: #333;
}

/* プルダウン（共通スタイル） */
#MapSelect {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 100%;
    height: 30px;
    line-height: 30px;
    padding: 0 0 0 12px;
    font-size: 16px;
    color: #333;
    background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='%233F7A04'><path d='M7 10l5 5 5-5z'/></svg>") no-repeat right 12px center;
    background-size: 18px;
    border: 1px solid #cfd7c9;
    border-radius: 8px;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

/* hover・focus */
#MapSelect:hover {
    border-color: #9fc28e;
    background-color: #fafdf7;
}

#MapSelect:focus {
    outline: none;
    border-color: #6fa55b;
    box-shadow: 0 0 0 3px rgba(111, 165, 91, 0.25);
}

/* 無効時 */
#MapSelect:disabled {
    background: #f3f3f3;
    color: #888;
    border-color: #ddd;
    background-image: none;
}

/* optgroup 見出しの強調（ブラウザによっては反映されない場合あり） */
#MapSelect optgroup {
    font-weight: bold;
    color: #2c2c2c;
}

/* レイアウト（地図 左・検索 右） */
#contents {
    width: 980px;
    margin: 0 auto;
    padding: 0 0 15px;
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.map-pane {
    flex: 1 1 auto;
    min-width: 0;
}

.search-pane {
    flex: 0 0 360px;
}

/* 見出しは従来のまま踏襲 */
.search-pane h3,
.map-pane h3 {
    background: #3F7A04;
    color: #fff;
    border: 1px solid #dcdcdc;
    background: url(../img/btns.png) no-repeat 0 -2px #3F7A04;
    padding: 3px 0 5px 30px;
    margin-top: 0;
    font-size: 15px;
    border-radius: 8px;
}

/* 地図枠 */
.map-box {
    border: 1px solid #dcdcdc;
    background: #fff;
    padding: 8px;
    text-align: center;
    border-radius: 8px;
}

/* --- タブUI --- */
.tabs {
    border: 1px solid #dcdcdc;
    background: #fff;
    border-radius: 8px;
}

.tab-list {
    display: flex;
    gap: 4px;
    padding: 8px;
    background: #f5f5f5;
    border-bottom: 1px solid #dcdcdc;
}

.tab {
    appearance: none;
    border: 1px solid #c8c8c8;
    background: #fff;
    padding: 6px 10px;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 600;
}

.tab[aria-selected="true"] {
    background: #3F7A04;
    color: #fff;
    border-color: #2f5c03;
}

.tab-panel {
    display: none;
    padding: 12px
}

.tab-panel[data-active="true"] {
    display: block
}

/* 既存フォームの微調整（幅合わせ） */
.search-pane select,
.search-pane input[type="text"],
.search-pane datalist {
    width: 100%;
}

#majorLandmarkList li {
    width: 49%;
    display: inline-block;
    vertical-align: top;
}

.area div a {
    width: auto;
    padding-left: 14px;
    background: url(../img/arrow.png) 6px 6px no-repeat;
    line-height: 1.5;
    display: block;
    word-break: break-all;
}

input.buttonType {
    height: 24px;
    text-align: center;
    padding: 0 4px;
    background: #F0F0F0;
    border: 1px solid #999;
    font-weight: bold;
    border-radius: 2px;
    cursor: pointer;
}

.h_20 {
    height: 20px !important
}

.w_50 {
    width: 50px !important
}

.layerct_li ul li.layer_li {
    margin: 10px 0 5px 0
}

/* 汎用ボタン：幅いっぱい×行政グリーン */
.btn-primary:hover {
    background: #356704;
}

.btn-primary:active {
    transform: translateY(1px);
}

.btn-primary:disabled,
.btn-primary[disabled] {
    background: #b9c9a8;
    cursor: not-allowed;
    box-shadow: none;
}

/* 入力ブロックの下マージン統一 */
.form-block {
    margin-bottom: 12px;
}

#placeInputFac,
#placeInputPub,
#placeInputRoad,
#freeWordInput {
    width: -webkit-fill-available;
    width: -moz-available;
    height: 30px;
    padding: 0 0 0 12px;
    font-size: 16px;
    color: #333;
    border: 1px solid #cfd7c9;
    border-radius: 8px;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
    cursor: pointer;
}

.addressSearch p,
.form-block p,
.tab-panel label,
.tab-panel p,
.tab-panel span,
.result,
.list {
    font-size: 13px;
    margin-bottom: 5px;
}

/* 既存フォームの幅は100%に（最大280pxは残す） */
.search-pane select,
.search-pane input[type="text"] {
    width: 100%;
}

.area_d {
    border: 1px solid #dcdcdc;
    background: #fff;
    padding: 10px;
    border-radius: 8px;
}

#majorLandmarkList li {
    width: 49%;
    display: inline-block;
    vertical-align: top;
    font-size: 13px;
}

.area div a {
    width: auto;
    padding-left: 14px;
    background: url(../img/arrow.png) 6px 6px no-repeat;
    line-height: 1.5;
    display: block;
    word-break: break-all;
}

/* 幅いっぱい×行政グリーン（共通ボタン） */
.btn-primary {
    display: inline-block;
    width: auto;
    min-width: 120px;
    height: 30px;
    line-height: 30px;
    background: #3F7A04;
    color: #fff;
    font-weight: 600;
    text-align: center;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    font-size: 16px;
    text-decoration: none;
    transition: background .2s ease, transform .15s ease;
    box-shadow: 0 2px 6px rgba(63, 122, 4, .3);
}

.btn-primary:hover {
    background: #356704;
}

.btn-primary:active {
    transform: translateY(1px);
}

.btn-primary:disabled {
    background: #b9c9a8;
    box-shadow: none;
    cursor: not-allowed;
}

/* ブロックの下余白 */
.form-block {
    margin-bottom: 12px;
}

/* 共通：幅いっぱい・大きめ・はっきり */
.select-control {
    appearance: none;
    /* 矢印を消す（後でカスタム矢印を背景で足す） */
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 100%;
    /* 既存の幅制約を維持 */
    height: 30px;
    /* 高さを大きく */
    line-height: 30px;
    padding: 0 0 0 12px;
    /* 右は矢印分を空ける */
    font-size: 16px;
    /* 文字大きめ */
    color: #333;
    background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='%233F7A04'><path d='M7 10l5 5 5-5z'/></svg>") no-repeat right 12px center;
    /* 行政グリーンの下向き矢印 */
    border: 1px solid #cfd7c9;
    /* ほんのり緑がかった枠 */
    border-radius: 8px;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
    cursor: pointer;
}

.select-control:hover {
    border-color: #9fc28e;
    background-color: #fafdf7;
}

.select-control:focus {
    outline: none;
    border-color: #6fa55b;
    box-shadow: 0 0 0 3px rgba(111, 165, 91, .25);
    /* 分かりやすいフォーカスリング */
}

/* 無効時 */
.select-control:disabled {
    color: #888;
    background-color: #f3f3f3;
    border-color: #ddd;
    cursor: not-allowed;
    background-image: none;
    /* 矢印も消す */
}

/* placeholder（最初の選択肢を未選択扱いにする場合） */
.select-control:invalid {
    color: #777;
    /* うっすら */
}

/* Windows の既定の▼を隠す */
.select-control::-ms-expand {
    display: none;
}

/* optgroup 見出しを少し強調（ブラウザ依存で効かない場合あり） */
select optgroup[label] {
    font-weight: 700;
    color: #2b2b2b;
}

p {
    font-size: 15px;
}

#AddressSelectImg {
    border-radius: 8px;
}

#nextBtn,
#prevBtn {
    margin-right: 10px;
    margin-top: 10px;
    display: inline-block;
    width: auto;
    min-width: 120px;
    height: 30px;
    line-height: 30px;
    background: #3F7A04;
    color: #fff;
    font-weight: 600;
    text-align: center;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    font-size: 16px;
    text-decoration: none;
    transition: background .2s ease, transform .15s ease;
    box-shadow: 0 2px 6px rgba(63, 122, 4, .3);
}

/* 簡易レスポンシブ（狭い時は縦積み） */
@media (max-width:980px) {
    #contents {
        display: block;
        width: auto;
    }

    .search-pane {
        width: 100%;
        margin-top: 12px;
    }
}