﻿@charset "utf-8";

.contact {
	max-width: 600px;
    padding: 20px;
    border: 1px solid #ccc;
    margin-bottom: 20px;
}

.box {/*注釈・引用*/
	margin-top:1em;
	margin-bottom:2em;
	padding:1em;
	background: #E6E6EA;
}

.box2{
	padding:0.5em;
	background: #E6E6EA;
}

/*=====　以下特定の場所に適用されるCSS群　=====*/
/*=====　ページ内の適用される装飾文字　=====*/
.note1 {/*青文字*/
	color: #4882b4;
}
.note2 {/*赤文字*/
	color: #FF0000;
}

/* .special-area 内の ul に異なるマージンを適用 */
#middle_right .special-area ul {
  margin: 0 0 1em 0;
  padding: 1em;
  background-color: #e0ffff;
  gap: 30px; /* ボタン間のスペースを設定 */
}

#middle_right .special-area ul li {
  margin: 0;           /* li のマージンをリセット */
  padding: 0;          /* li のパディングをリセット */
}

p.sousai {/*ラジオボタンとチェックボックス上のpタグ*/
	padding: 0;
	margin: 0;
}
p.tokumei {
	margin-top: 2em;
}
 .error {
    color: red;
    text-align: center;
}

 .error-message {
     color: red;
     margin-bottom: 10px;
     border: 1px solid red;
     padding: 10px;
     background-color: #ffe0e0;
}

/*=====　ページ内のフォームのデザイン ul、li　=====*/
.contact ul {
  display: flex; 
  flex-direction: row; /* 要素を横方向に並べる */
  align-items: center;
  list-style: none; /* リストの点を非表示 */
  border-radius: 5px; /* 必要に応じて角を丸くする */
}

/*=====　フォーム部の装飾　=====*/
.form-group {
    margin-bottom: 15px;
}

.form-group-flex {
    display: flex;
    align-items: center; /* 縦の位置を揃える */
    margin-bottom: 10px; /* 項目ごとの間隔 */
}

.form-label {
    width: 200px; /* ラベルの幅を固定 */
    font-weight: bold;
}

.form-value {
    flex-grow: 1; /* 値の部分は可変 */
    background-color: #f8f9fa; /* 背景色をつけて見やすく */
    padding: 5px;
    border-radius: 5px;
}

/* 画面幅が 600px 以下の場合に縦並びにする */
@media (max-width: 600px) {
    .form-group-flex {
        display: block; /* flex を解除して縦並びにする */
    }

    .form-label {
        display: block;
        width: 100%; /* 幅を 100% にして上に配置 */
        font-weight: bold;
        margin-bottom: 5px; /* ラベルと値の間のスペース */
    }

    .form-value {
        display: block;
        width: 100%; /* 幅を 100% にして下に配置 */
    }
}

/* 個別の入力フォームの長さを指定 */
.input-company-name {
  width: 400px; /* 法人名入力欄を少し長く */
}

.input-hall {
  width: 400px; /* ホール名入力欄 */
}

/**  小さい画面サイズ対応  **/
@media screen and (max-width: 600px){
.contact input[type='text'],
.contact textarea {
  padding: 10px;
  font-size: 16px;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
  width: 100%;
  }
  form {
    display: flex;
    flex-direction: column;
  }
}

.contact input[type='text'],
.contact input[type='email'],
.contact input[type='tel'],
.contact select,
.contact textarea {
  /*width: 100%;*/
  padding: 10px;
  font-size: 16px; /* フォントサイズを調整 */
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}

.contact textarea {
  height: 120px;
}

.button {
  display: inline-block;
  border-radius: 5%;
  font-size: 13pt;
  text-align: center;
  cursor: pointer;
  padding: 12px 12px;
  background: #4da6ff;
  color: #ffffff;
  line-height: 1em;
  transition: .3s;
  box-shadow: 6px 6px 3px #666666;
  border: 2px solid #4da6ff;
}

.button:hover {
  box-shadow: none;
  color: #4da6ff;
  background: #ffffff;
}

/* 確認画面のボタンを並列に配置 */
.confirm-buttons {
  display: flex;
  justify-content: center; /* 中央寄せ */
  gap: 40px; /* ボタン間の間隔 */
  margin-top: 30px;
}

.confirm-buttons button {
  background-color: #4da6ff;
  color: white;
  padding: 15px 30px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  font-size: 16px;
  transition: background 0.3s ease;
}

.confirm-buttons button:hover {
  background-color: #003f80;
}

/* 戻るボタンのスタイル */
.confirm-buttons a button.red {
  background-color: #dc3545; /* 赤色にする */
  border: 2px solid #dc3545; /* 枠線も赤色に */
}

.confirm-buttons a button.red:hover {
  background-color: #c82333; /* ホバー時の赤色 */
  border: 2px solid #c82333; /* ホバー時の枠線も赤色に */
}

/* 赤いボタンのスタイル */
.confirm-buttons button.button.red {
  background-color: #dc3545; /* 赤色にする */
}

.confirm-buttons button.button.red:hover {
  background-color: #c82333; /* ホバー時の赤色 */
}

.dl-table {
    padding: 0;
    background: #efefef;
    border: 1px solid #ddd; 
}

.dl-child {
    margin: 0;
}

/*フォーム確認ページ装飾*/
dl.dl-table dt, 
dl.dl-table dd {
    margin: 0;
    box-sizing: border-box;
}

dl.dl-table dt {
    padding: .5rem 1rem;
    background: inherit;
    border-top: 0;
    border-right: 0;
    border-bottom: 1px solid #ececec;
    border-left: 0;
}

dl.dl-table dd {
    padding: 1rem;
    border-bottom: 1px solid #ececec;
    background: #fff;
}
 
dl.dl-table dd:last-of-type {
    border-bottom: 0;
}
/**  768px以上でパソコンの表示になる  **/
@media screen and (min-width: 768px){

    /****
    *  dl-table PC
    ****/
   dl.dl-table dt {
        float: left;
        width: 30%;
        padding: .5rem;
        font-weight: bold;
        border-top: 1px solid #cdcdcd;
        border-bottom: 0;
    }

    dl.dl-table dd {
        margin-left: 30%;
        padding: .5rem .5rem 0;
        border-top: 1px solid #cdcdcd;
        border-bottom: 0;
        border-left: 1px solid #cdcdcd; 
        background: #fff;
    }

    dl.dl-table dt:first-of-type, 
    dl.dl-table dd:first-of-type {
        border-top: 0;
    }

    dl.dl-table dd:after {
        content : '';
        display : table;
        clear : both;
        height: 0;
    }

}


.search-form {
   margin-left: 2em;
  max-width: 600px; /* フォーム全体の最大幅（必要に応じて調整） */
  padding: 15px;
  border: 1px solid #ccc;
  border-radius: 5px;
  margin-bottom: 20px;
}

.form-row {
  display: flex;
  align-items: baseline; /* ラベルと入力欄のベースラインを揃える */
  margin-bottom: 10px;
  flex-wrap: wrap; /* 画面幅が狭くなったら要素を折り返す */
}

.search-label {
    width: 150px; /* 少し幅を調整 */
    font-weight: bold;
    margin-right: 10px; /* 入力欄との間隔 */
    flex-shrink: 0; /* ラベルが縮小しない */
    margin-bottom: 5px; /* 折り返した際のスペース */
}

.form-row label {
  width: 80px; /* ラベルの幅を調整（必要に応じて） */
  text-align: left;
  margin-right: 10px;
  font-weight: bold;
  margin-bottom: 5px; /* ラベルが折り返した際に下の要素との間隔を確保 */
  flex-shrink: 0; /* ラベルが縮小しないように */
}

.form-control {
    flex-grow: 1; /* 残りのスペースを埋める */
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: 3px;
    font-size: 16px;
    min-width: 0;
    box-sizing: border-box;
}

.form-control-small {
    width: 120px; /* 小さいサイズのコントロール */
    flex-grow: 0;
}

.form-control-xsmall {
    width: 80px; /* より小さいサイズのコントロール */
    flex-grow: 0;
}

.input-group {
    display: flex;
    align-items: baseline; /* グループ内の要素のベースラインを揃える */
}

.input-group .form-control {
    margin-right: 5px; /* グループ内のコントロール間のスペース */
}

.input-group .input-group-separator {
    margin: 0 5px;
}

.input-suffix {
    margin-left: 5px;
    flex-shrink: 0;
}

/* 特定のレイアウト調整 */
.title-row {
    align-items: center; /* タイトル行は中央揃え */
}

.title-row .input-suffix {
    margin-left: auto; /* タイトル行の「含む」を右寄せ */
}

.region-row {
    align-items: center; /* 地域行は中央揃え */
}

.input-group-date {
    align-items: center; /* 日付グループは中央揃え */
}

.search-button-area {
  margin-top: 20px;
}

.search-button-area button {
  padding: 8px 15px;
  background-color: #f0f0f0;
  border: 1px solid #ccc;
  border-radius: 3px;
  cursor: pointer;
  font-size: 16px;
}

.search-button-area button:hover {
  background-color: #e0e0e0;
}

.search-box {
  /*background-color: #f9f9f9; /* 薄いグレーの背景色 */
  padding: 5px; /* 内側の余白 */
  border-radius: 5px; /* 角の丸み（任意） */
  /*margin-left:1em;*/
  margin-right:1em;
  margin-bottom:2em;
}
.input-flat-border {
  padding: 10px 10px;
  margin-right:5px;
  width: auto;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 16px;
  /*color: #333;*/
  background-color: #fff;
}


/*20250520　新規追加*/
.searchform-single-layout {
    /* 親要素の幅に合わせて100%の幅にする */
    width: 100%;
    margin-bottom: 2em;
    max-width: 800px; 
    box-sizing: border-box;
}
.searchform-layout {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 600px;
  margin-left: 2em;
  margin-bottom: 2em;
  font-size: 14px;
}

.searchform-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  background-color: #f9f9f9;
  padding: 0.75rem;
  border-radius: 6px;
}

/*横並びラジオボタンのクラス*/
.searchform-group-vertical {
  display: flex;
  align-items: flex-start; /* ラジオボタンの上端をラベルに揃える */
  gap: 1.5rem;
  background-color: #f9f9f9;
  padding: 0.75rem;
  border-radius: 6px;
}

/* 縦並びラジオボタンのクラス */
.radio-vertical {
  display: flex;
  flex-direction: column;
  gap: 1em;
  align-items: flex-start;
}

/* 縦並びラジオボタンのラベル */
.radio-vertical-label {
  display: flex;
  align-items: center;
  margin: 0;
  white-space: nowrap;
}

.searchform-label-vertical {
  display: inline-block;
  width: 120px;  /* 必要に応じて調整 */
  font-weight: bold;
}

.searchform-label {
  width: 120px;
  font-weight: bold;
}

/* 横並びラジオボタン全体をまとめるコンテナ */
.searchform-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 2em; /* 縦・横間隔 */
  align-items: center;
}

/* 横並びラジオボタンとラベルの基本整形 */
.searchform-radio-group input[type="radio"] {
  margin-right: 0.2em;
}

.searchform-radio-label {
  margin-right: 1.5em;
  margin-left: 1em;
  white-space: nowrap;
}

.radio-vertical-label input[type="radio"]{
  margin-right: .4em;       /* ◯ とテキストの間隔 */
}

.searchform-row {
  display: flex; /* 内部の要素（ラベルとフォーム）を横並びにする */
  flex-wrap: wrap; /* 小さな画面で折り返す */
  align-items: center; /* 垂直方向の中央揃え */
  gap: 0.5rem; /* 要素間の隙間 */
  /* searchform-group の padding-left と同じ位置から開始したい場合 */
  /* padding-left: 0.75rem; /* searchform-group の padding-left と合わせる */
}

/* 新規追加：このクラスが付いた行を常に親要素の全幅に広げる */
.searchform-row-fullwidth {
  width: 100%; /* 親要素の利用可能な全幅を占める */
  /* padding-left: 0.75rem; /* searchform-group の padding-left と合わせる */
  /* align-items: flex-start; /* 複数行になった場合に、ラベルの上がフォームの入力フィールドの先頭に揃うように */
}

/* 狭い画面では縦並びにする */
@media (max-width: 600px) {
  .searchform-radio-group {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5em 1em;
      align-items: center;
  }

  .searchform-radio-label {
      display: inline-flex;
      align-items: center;
      margin-right: 1.5em;
      white-space: nowrap;
  }
}

/* 基本のフォームコントロール */
.searchform-input,
.searchform-select,
.searchform-textarea {
  padding: 4px 8px;
  margin-left: 20px;
  font-size: 14px;
}

/* 幅バリエーション */
.searchform-width-sm {
  width: 120px;
  max-width: 100%;
}

.searchform-width-md {
  width: 200px;
  max-width: 100%;
}

.searchform-width-lg {
  width: 100%;
  max-width: 400px;
}

.searchform-inline-label {
  white-space: nowrap;
}

.searchform-inline-text {
  margin: 0 4px;
  vertical-align: middle;
  line-height: 1.5;
  display: inline-block;
}

.searchform-group-column {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.searchform-note {
  /* 既存のスタイル */
  padding-left: 0.5rem; /* または 8px など、適切な単位で */
  font-size: 0.9em;
  color: #444;

  /* 追加・修正するスタイル */
  width: 100%; /* 親要素の利用可能な全幅を占めるようにする */
  text-align: left; /* テキストを左寄せにする */
  box-sizing: border-box; /* paddingを含めてwidthが計算されるようにする */
}

@media (min-width: 600px) {
    .searchform-note{
        margin-left: 140px;
    }
}


.searchform-footer {
  margin-top: 1em;
}

.searchform-button {
  padding: 4px 10px;
  margin-left: 4px;
}

/*20250520　新規追加ここまで*/