@charset "UTF-8";
main{padding-top:10px;}
h2{font-size: clamp(2.6rem, calc(2.6rem + (3.0 - 2.6) * ((100vw - 740px) / (1200 - 740))), 3.0rem); color:#2e59a6;}
h3{margin:20px 0; color:#000; padding-bottom:8px; border-bottom:1px solid #000; font-weight:500; font-size:1.8rem;}
@media only screen and (min-width:740px) {
h3{font-size:1.9rem; font-weight:500;}
}

.textarea{max-width:800px; margin:20px auto 8px; font-size:1.5rem; font-weight:400; line-height:1.6; line-break:strict; text-align:justify; word-break:break-all; text-justify:inter-character; text-justify:inter-character; word-wrap:break-word; overflow-wrap:break-word; line-break:strict;}
.textarea p{margin-bottom:16px;}


.maincontent table{margin-bottom:20px;}

.page .box{padding:0 20px; max-width:1100px;}
@media only screen and (min-width:1140px) {
.page .box{padding:0;}
}

.moviebox{text-align:center; max-width:660px;}
.moviebox .movie{width: 100%; aspect-ratio: 16 / 9;}
.moviebox .movie iframe{width: 100%; height: 100%;}

.mapbox{text-align:center; max-width:100%;}
.mapbox .map{width: 100%; aspect-ratio: 16 / 9;}
.mapbox .map iframe{width: 100%; height: 100%;}


#news{position:relative; padding:20px; text-align:left; max-width:800px; margin: 0 auto;}
#news h3{margin:0; font-size:4.8rem; line-height:.8;}
#news .btn3{position:absolute; top:15px; right:20px;}
#news ul{margin-top:10px;}
#news li{margin-bottom:8px;}
#news .date{display:inline-block;font-family: "Ubuntu", sans-serif; font-style: normal; font-size: 1.3rem; font-weight:400;}
#news .cat{display:inline-block; margin-left:10px; vertical-align:middle; font-family: "Ubuntu", sans-serif; font-style: normal; font-size: 1.1rem; font-weight:400; color:#fff; background:#2e59a6; padding:1px 0; width:110px; min-width:110px; height:20px; line-height:20px;text-align:center; border-radius:50px;}
#news ul li a{text-decoration:underline;}
@media only screen and (min-width:740px) {
#news ul{margin-left:4px;}
#news ul li{display:flex; gap:10px; align-items:baseline;}
#news ul li a{line-height:1.6;}
#news ul li .date{width:60px;}
}

/* === ページネーション全体 === */
.pagination {
  margin-top:30px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 2rem;
}

/* === リンク（通常） === */
.pagination a,
.pagination span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid #2e59a6;
  color: #2e59a6;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.25s ease;
}

/* === hover時 === */
.pagination a:hover {
  background-color: #2e59a6;
  color: #fff; 
}

/* === 現在のページ（active） === */
.pagination .current {
  background-color: #2e59a6;
  color: #fff; 
  border-color: #2e59a6;
  font-weight: 700;
  pointer-events: none;
}

/* === 前へ・次へボタン調整 === */
.pagination .prev,
.pagination .next {
  width: auto;
  padding: 0 1rem;
  border-radius: 20px;
}

@media only screen and (min-width:740px) {
.titles-list li {width:calc(100% / 4 - 20px);}

}

/*お問い合わせ*/
.privacy-policy {
  margin: 2em 0;
}
.privacy-policybox {
  width: 100%;
  height: 250px;
  border:none;
  padding:20px;
  background: #fff;
  border:1px solid #ccc;
  overflow-y:scroll;
}
.privacy-policy{text-align:left; font-size:1.4rem;}
.privacy-policy h2,.privacy-policy h3{margin-top:16px; margin-bottom:8px; font-size:1.6rem; color:#000; border:none;}
.privacy-policy .privacy-title{margin:20px 0; font-size:1.6rem; font-weight:600;}

.agree-box {
  margin: 1em 0 2em;
  text-align: left;
}

.agree-box label {
  font-weight: bold;
}
.inputarea{max-width:1000px; margin:0 auto; padding:0;}
form{margin-top:30px;}
form p{margin-bottom:20px;}
form input[type="text"],form input[type="email"],form textarea {
  color: #000;
  border: 1px solid #ccc;
  background:#fff;
  border-radius: 4px;
  padding: 0.4rem 0.6rem;
  font-size: 1.4rem;
  width: 100%;
  box-sizing: border-box;
}
.wpcf7-list-item{margin:0;}
form label{margin-top:20px; font-size:1.6rem; font-weight:600;}
/* === チェックボックスのチェック色を赤に === */
/* ブラウザによって見え方が異なるため、appearance指定で統一 */
form input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border: 1.5px solid #888;
  border-radius: 3px;
  position: relative;
  cursor: pointer;
  vertical-align: middle;
}

/* チェック時の赤マーク */
form input[type="checkbox"]:checked {
  background-color: #fff; /* 背景白のまま */
  border-color: #2e59a6;    /* 赤枠 */
}

form input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 5px;
  width: 4px;
  height: 9px;
  border-right: 2px solid #2e59a6; /* チェックマーク赤 */
  border-bottom: 2px solid #2e59a6;
  transform: rotate(45deg);
}

.submitbox p{text-align:center;}
form input[type="submit"] {
  background-color: #2e59a6; /* 赤背景 */
  color: #fff;            /* 白文字 */
  border: none;
  border-radius: 4px;
  padding: 0.5rem 1.2rem;
  font-size: 1.6rem;
  font-weight: 600;
  cursor: pointer;
  width:250px; margin:16px auto 0;
  transition: background-color 0.3s ease, transform 0.15s ease;
}
.wpcf7-spinner{display:none;}
/* hover・focus時のアクション */
form input[type="submit"]:hover,
form input[type="submit"]:focus {
  background-color: #507ed0; /* 少し明るい赤 */
  outline: none;
  transform: translateY(-1px);
}

.page404{margin:40px auto; max-width:750px; text-align:left;}
.page404 h2,.page404 h3{margin-top:16px; margin-left:0; margin-bottom:8px; font-size:1.8rem; border:none;}
.page404 h2:before,.page404 h3:before,.page404 h2:after,.page404 h3:after{display:none;}
#contents.box404 {display: flex; justify-content: center; align-items: center; min-height: 80vh; text-align: center;}
@media only screen and (min-width:740px) {
.page404{text-align:center;}
}