/* ---------- Box Style ---------- */
.contact-wrapper {
  max-width: 800px;
  margin: auto;
  padding: 40px;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

h2 {
  text-align: center;
  margin-bottom: 25px;
  color: #333;
}

/* ---------- Inputs ---------- */
.form-group {
  margin-bottom: 18px;
}

label {
  font-weight: 600;
  display: block;
  margin-bottom: 6px;
  color: #444;
}

input,
textarea {
  width: 100%;
  padding: 14px;
  border: 1px solid #ddd;
  border-radius: 10px;
  font-size: 16px;
  transition: 0.2s;
}

input:focus,
textarea:focus {
  border-color: #4a90e2;
  box-shadow: 0 0 0 4px rgba(74,144,226,0.15);
}

/* ---------- Textarea ---------- */
textarea {
  min-height: 150px;
}

/* ---------- Submit Button ---------- */
.submit-btn {
  width: 100%;
  padding: 16px;
  margin-top: 10px;
  background: #4a90e2;
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: 24px;
  cursor: pointer;
  transition: .25s;
}

.submit-btn:hover {
  background: #3a78c4;
}

/* ---------- Responsive ---------- */
@media (max-width: 600px) {
  .contact-wrapper {
    padding: 50px;
  }

  h2 {
    font-size: 32px;
  }

  input,
  textarea {
    font-size: 24px;
  }

  .submit-btn {
    font-size: 36px;
    padding: 36px;
  }

@media (max-width: 600px) {

button[type="submit"] {
  font-size: 1.2rem; /* または 18px, 110% など */
}

}

}




/* 3カラム */
.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

/* 入力欄共通 */
.form-group label {
  display: block;
  margin-bottom: 6px;
  font-weight: bold;
}

.form-group input {
  width: 80%;
  padding: 12px;
  font-size: 16px; /* スマホで小さくならない */
  box-sizing: border-box;
}

/* スマホでは縦並び */
@media (max-width: 768px) {
  .grid-3 {
    grid-template-columns: 1fr;
  }
}


/* 4カラム */
.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
}

/* 入力欄共通 */
.form-group2 label {
  display: block;
  margin-bottom: 6px;
  font-weight: bold;
}

.form-group2 input {
  width: 30%;
  padding: 12px;
  font-size: 16px; /* スマホで小さくならない */
  box-sizing: border-box;
}

/* スマホでは縦並び */
@media (max-width: 768px) {
  .grid-4 {
    grid-template-columns: 1fr;
  }
}


.radio-item2 {
  width: 90%;

  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.radio-item2 input {
  width: 5%;
  margin: 0;
}


.button-container {
    display: flex; /* Flexboxを有効にする */
    justify-content: center; /* ボタンを水平方向の中央に配置 */
    gap: 10px; /* ボタン間の余白を設定 */
    flex-wrap: wrap; /* 画面幅が狭い場合にボタンを折り返す */
    padding: 5px;
  margin-bottom: 50px;
}

.button {
    flex: 1; /* ボタンがコンテナの幅に合わせて伸縮するように設定 */
    min-width: 150px; /* ボタンの最小幅を指定し、これ以上狭くならないようにする */
/*height: 50px;*/
    padding: 12px 20px;
    text-align: center;
    text-decoration: none;
    color: white;
    background-color: #007bff; /* 好みの色に変更 */
    border-radius: 5px; /* 角丸デザイン */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); /* 見栄えを良くするための影 */
    transition: background-color 0.3s, transform 0.2s; /* ホバー時のアニメーション */
}

.button:hover {
    background-color: #0056b3;
    transform: translateY(-2px); /* ホバー時に少し浮き上がる効果 */
}

/* スマートフォンなど画面が狭い場合のメディアクエリ */
@media (max-width: 600px) {
    .button {
        flex: 1 100%; /* 画面幅600px以下の場合、ボタンを縦積みにする (幅100%) */
        margin-bottom: 10px; /* 縦積み時のボタン間の余白 */
    }
}

.container-flex {
  display: flex; /* 子要素を横並びにする */
  justify-content: space-around; /* 枠間のスペースを均等にする (任意) */
}

.item {
  border: 1px solid black;
  padding: 10px;
  text-align: center;
}


.field {
display: flex;
  width: 50%; /* 枠の幅を設定 */

}

.kasenn h1 {
  /*線の種類（実線） 太さ 色*/
  border-bottom: solid 3px black;
}


.uline h2{
/*font-size: 12px;*/
text-align:left;
padding-top:1em;
 /* padding: 0.1em; *//*文字周りの余白*/
  color: #010101;/*文字色*/
  background: #eaf3ff;/*背景色*/
  border-bottom: solid 1px #516ab6;/*下線*/
}

.uline{
font-size: 12px;
text-align:left;
padding-top:1em;
 padding: 0.1em; /*文字周りの余白*/
  color: #010101;/*文字色*/
  background: #eaf3ff;/*背景色*/
  border-bottom: solid 1px #516ab6;/*下線*/
}



@scope (waku) {
  p{
  margin: 50%;

  padding: 0px;
  border: 4px solid;
  border-top-color: red;
  border-right-color: red;
  border-bottom-color: red;
  border-left-color: red;
  }
}


#taitoruba {
  line-height: 1;
  padding: 7px 0 0px 18px;
  border-left: solid 5px #483d8b;
  border-bottom: solid 1px #483d8b;
}

.hidariyohaku01{
	margin-left: 30px;
}

.title-bar{
  background-color: #B3424A; /* 背景色 */
  font-size:1.5em;
  color: #fff;            /* 文字色 */
  padding: 5px 15px;     /* 上下・左右の余白 */
margin-bottom:1em;
  font-weight: bold;      /* 太字 */
  border-radius: 4px;     /* 角丸（任意） */
	font-family: "游ゴシック", "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, Osaka, "ＭＳ ゴシック", "MS Gothic", sans-serif;

}


.box {
  /* gapの分を差し引いて2分割する */
  flex: 1 1 calc((100% - 20px) / 2);
  /* 背景色や枠線（動作確認用） */
  /*background-color: #FFF;*/
  /*padding: 20px;*/
  box-sizing: border-box; /* paddingを含めた幅計算 */
}

.box2 {
  /* gapの分を差し引いて2分割する */
  flex: 1 1 calc((100% - 20px) / 2);
  /* 背景色や枠線（動作確認用） */
  /*background-color: #FFF;*/
  font-size:1.0em;
  padding-left: 4em;
  padding-right: 4em;

  box-sizing: border-box; /* paddingを含めた幅計算 */
}

/* レスポンシブ対応：画面が狭いときは1列にする */
@media (max-width: 767px) {
  .container {
    flex-direction: column; /* 縦並びに変更 */

  .box2{
    width: 100%; /* 幅を100%に */
    flex: none; /* flexの計算を解除 */
  }

  }
  .box{
    width: 100%; /* 幅を100%に */
    flex: none; /* flexの計算を解除 */
  }

}

.container {
  display: flex;
  flex-wrap: wrap; /* スマホ時に折り返す */
  gap: 20px; /* ボックス間の余白 */
  padding: 20px; /* 親要素の周囲の余白 */
}

.container h1 {
	font-size: 1.0em;
  padding: 0.3em;
margin-bottom:1em;

	font-family: "游ゴシック", "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, Osaka, "ＭＳ ゴシック", "MS Gothic", sans-serif;

  font-weight: bold;
  border-left: 5px solid #4c9ac0;
  border-bottom: 2px solid #4c9ac0;
  padding: 0.1em 0 0.3em 0.5em;
}


.googlemap_iframe {
	margin-top: 20px;

  margin: auto;

    aspect-ratio: 8 / 10;
    /*max-width: 600px;*/
    width: 100%;
    height: 100%;
}


.marker01 div{
  color: #191970;
  text-decoration-line: underline;
  text-underline-offset: 5px; //位置
  text-decoration-thickness: 5px; //太さ
}


.button01 {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 250px;
    /*margin:0 auto;*/
    padding: 0.5em 2em;
    border: 1px solid #2589d0;
    border-radius: 5px;
    background-color: #fff;
    color: #2589d0;
    font-size: 1em;
}

.button01::after {
    transform: rotate(45deg);
    width: 5px;
    height: 5px;
    margin-left: 10px;
    border-top: 2px solid #2589d0;
    border-right: 2px solid #2589d0;
    content: '';
}

/*
.button-55 {
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 250px;
    /*margin: 0 auto;*/
    padding: .9em 2em;
    border: none;
    border-radius: 5px;
    background-color: #2589d0;
    color: #fff;
    font-weight: 600;
    font-size: 1em;
}

.button-55::after {
    width: 1.25em;
    height: 1.25em;
    margin-left: 8px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 6V8H5V19H16V14H18V20C18 20.5523 17.5523 21 17 21H4C3.44772 21 3 20.5523 3 20V7C3 6.44772 3.44772 6 4 6H10ZM21 3V11H19L18.9999 6.413L11.2071 14.2071L9.79289 12.7929L17.5849 5H13V3H21Z' fill='%23fff'%3E%3C/path%3E%3C/svg%3E");
    content: '';
}

.button-55:hover {
    background-color: #1579c0;
}
*/

li.indent{
  padding-left: 1em;
  text-indent: -1em;
}

/* 親要素にスクロールを設定 */
.table-container {
  width: 100%;
  overflow-x: auto; /* はみ出たらスクロール */
}

.no-header-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 500px; /* PCではこの幅を確保、スマホでスクロール発生 */
}

.no-header-table td {
  border: 1px solid #ccc;
  padding: 10px;
  text-align: center;
}

/* 画面幅が小さいとき（例：600px以下）のスタイル */
@media screen and (max-width: 600px) {
  .no-header-table {
    /* 必要に応じてスタイルを追加 */
  }
}




.box0001 {
    border-collapse: collapse;
    table-layout: fixed;
    width: 90%; /* table幅を100%に指定 */
    background: #fff;
    border: none;
}
.box0001 th,
.box0001 td {
    display: block; /* セルをブロック要素に指定 */
    width: 100%; /* セルを親要素いっぱいの幅に指定 */
    border: none;
    font-size: 14px;   
    padding: 10px;
    vertical-align: top;
    text-align: left;
    box-sizing: border-box;
}
.box0001 th {
    font-weight: 700;
    color: #fff;
    background: #14116e; /* thの背景色 */
}

@media screen and (min-width: 768px) {
    .box0001 th,
    .box0001 td {
        width: 100%; /* thの固定幅 */

        display: table-cell; /* デフォルト値に指定 */
        border-bottom: 1px solid #ccc;
        color: #000;
        background: #fff;
    }
    .box0001 th {
        color: #000;
        background: #fff; /* thの背景色 */
    }
    .box0001 tr th:first-child {
        width: 100%; /* thの固定幅 */
    }
}


@scope (indent) {
  div{
  text-indent: 1em;
  }
}


.ticker-wrap {
  width: 100%;
  overflow: hidden; /* はみ出た部分を隠す */
  background-color: #f0f0f0;
}

.ticker {
  display: inline-block;
  white-space: nowrap; /* 改行させない */
  padding-left: 100%; /* 初期位置を右端に */
  animation: ticker-animation 30s linear infinite; /* 10秒で無限ループ */
}

@keyframes ticker-animation {
  0% { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(-100%, 0, 0); } /* 左端へ移動 */
}



.tabl0001 {
    border-collapse: collapse;
    table-layout: fixed;
    width: 60%; /* table幅を100%に指定 */
    background: #fff;
    border: none;
margin-left: 0;   /* 左寄せ */
    margin-left: 4em;

}
.tabl0001 th,
.tabl0001 td {
    display: block; /* セルをブロック要素に指定 */
    width: 100%; /* セルを親要素いっぱいの幅に指定 */
    border: none;
    font-size: 14px;   
    padding: 10px;
    vertical-align: top;
    text-align: left;
    box-sizing: border-box;
}
.tabl0001 th {
    font-weight: 700;
    color: #fff;
    background: #14116e; /* thの背景色 */
}

@media screen and (min-width: 768px) {
    .tabl0001 th,
    .tabl0001 td {
        display: table-cell; /* デフォルト値に指定 */
        border-bottom: 1px solid #ccc;
        color: #000;
        background: #fff;
    }
    .tabl0001 th {
        color: #000;
        background: #fff; /* thの背景色 */
    }
    .tabl0001 tr th:first-child {
        width: 15%; /* thの固定幅 */
    }
}



.image-container {
  display: flex;
  flex-direction: column; /* 縦並び */
  align-items: center; /* 中央寄せにする場合 */
  gap: 10px; /* 画像の間の隙間 */
}