.index_page .make_map_block{
  background-color:#fff;
  border-bottom:2px solid #3f948f;
}
.index_page .make_map_block__inner{
  max-width: 1260px;
  padding: 70px 20px 130px;
  font-weight:bold;
  text-align:center;
  font-size:32px;
  letter-spacing: 15px;
  color:#166772;
  background:url(../img/newsttl.png) no-repeat #fff;
  background-size:cover;
  background-position: center bottom;
}
.faq{
  max-width:980px;
  margin:0 auto 80px auto;
}
.faq .ttl{
  padding:40px 20px;
  font-size:24px;
}
.faq .elist{
  padding:0 20px;
}
.faq .elist li{
  border:1px solid #ddd;
  padding:20px;
  border-radius:10px;
  margin-bottom:20px;
}
.faq .elist li .code{
  font-size:20px;
  margin-bottom:15px;
}
.faq .elist li .code span{
  font-weight:bold;
  display: inline-block;
  margin-right:20px;
}
.faq .elist li .qes{
  padding-bottom:15px;
  line-height:1.7;
}
.faq .elist li .ans{
  background-color:#f3f3f3;
  padding:15px;
  line-height:1.7;
}
.faq .elist li .ans a{
  text-decoration: underline;
}
.faq .qlist{
  padding:0 20px;
  height: 450px;
  overflow-y: scroll;
}
.faq .qlist .sttl{
  background:#ddd;
  padding:15px 10px;
  margin-bottom:10px;
}
.faq .qlist-inr{
  margin-bottom:15px;
}
.faq .qlist-inr li a{
  display: block;
  padding:10px;
  line-height: 1.8;
}
.faq .alist{
  padding:0 20px;
}
.faq .alist li{
  border:1px solid #ddd;
  padding:20px;
  border-radius:10px;
  margin-bottom:20px;
}
.faq .alist li .qes{
  padding-bottom:15px;
  line-height:1.7;
  font-size:20px;
}
.faq .alist li .ans{
  background-color:#f3f3f3;
  padding:15px;
  line-height:1.7;
}
.faq .alist li .ans a{
  text-decoration: underline;
}
.footer_lnks{
  background:#fff;
  text-align: center;
  padding:20px 0;
  font-size:0;
  border-top:1px solid #eee;
}
.footer_lnks li{
  display: inline-block;
  margin:10px 6px;
  font-size:.9rem;
  color:#166772;
}
.footer_lnks li a{
  color:#166772;
  text-decoration: underline;
  display: inline-block;
  margin-right:12px;
}
.footer_lnks .sp{
    display: none;
}
.b-line{
  border: none;
  border-top:1px solid #ddd;
  margin-top:30px;
}
#pagetop{
  position: fixed;
  right:25px;
  bottom:20px;
  width:30px;
  height:30px;
  cursor: pointer;
  display: none;
}
#pagetop:before{
  display: block;
  content:"";
  position: absolute;
  top:10px;
  left:0;
  width:20px;
  height:2px;
  background:#000;
  transform:rotate(-45deg);
}
#pagetop:after{
  display: block;
  content:"";
  position: absolute;
  top:1px;
  left:22px;
  width:2px;
  height:20px;
  background:#000;
  transform:rotate(-45deg);
}
.qlist-inr .error-list {
  text-align: center;
}
.qlist-inr .error-list strong{
  color: #166772;
  font-weight:bold;
}

@media screen and (max-width: 768px) {

  .index_page .make_map_block__inner{
    font-size:24px;
  }

  .footer_lnks .pc{
    display: none;
  }
  .footer_lnks .sp{
    display: inline;
  }
  .information .nlist a{
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 0px;
  }
  .information .nlist .date{
    width:auto;
  }
  .information .nlist .icon{
    width:90px;
    margin-left:10px;
  }
  .information .nlist .icon span{
    font-size:10px;
    padding:4px 5px;
  }
  .information .nlist .txt{
    width:100%;
    padding:2px 0 15px 0;
    border-bottom:1px solid #eee;
  }

  

}

/* Layout fixes for hero and contact form (based on reference layout) */
.make_map_block{
  background-color:#fff;
}
.make_map_block__inner{
  max-width:100%;
  padding:80px 20px 140px;
  text-align:center;
  font-size:40px;
  letter-spacing:6px;
  color:#166772;
  background-image: url(../img/newsttl.png);
  background-repeat:no-repeat;
  background-position:center bottom;
  background-size:contain;
  position: relative;
  z-index: 1;
}
.make_map_block__inner h1{font-size:40px; margin:0; padding:0;}

/* Form box: centered white card with padding and subtle shadow */
.form-section{
  display:flex;
  justify-content:center;
  background-color: transparent; /* body bg is likely handled elsewhere */
}
.form-section .form-box{
  width:100%;
  max-width:920px;
  background:#fff;
  padding:60px 80px; /* generous padding for premium feel */
  box-shadow:0 0 20px rgba(0,0,0,0.1);
  border-radius:4px;
  box-sizing:border-box;
  margin: 30px 20px 100px; /* Removed negative margin to fix overlap */
  position: relative;
  z-index: 2;
}
.form-section .ttl{
  text-align:center; /* Centered title matches typical tone */
  font-size:28px;
  margin:0 0 30px 0;
  color: #333;
  font-weight: bold;
}
/* Hide the hr if we center the title, or style it minimally */
.form-section .b-line{ 
  margin:0 0 40px 0; 
  border-top: 1px solid #eee;
  display: none; /* Often cleaner without it in card layout if title is centered */
}

.form-box .form-group{ 
  width:100%; 
  margin-bottom:24px; 
  box-sizing:border-box; 
}
.form-box label{ 
  display:block; 
  font-weight:700; 
  color:#333; 
  margin-bottom:10px; 
  font-size: 16px;
}
.form-box label .required{
  color: #e60012;
  margin-left: 5px;
  font-weight: normal;
  font-size: 14px;
}

.form-box input[type="text"],
.form-box input[type="tel"],
.form-box input[type="email"],
.form-box select,
.form-box textarea { 
  width:100%; 
  display:block; 
  padding:14px 16px; 
  border:1px solid #ccc; 
  border-radius:4px; 
  box-sizing:border-box; 
  font-size:16px; 
  background-color: #fff;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.form-box input:focus, .form-box select:focus, .form-box textarea:focus{
  outline: none;
  border-color: #166772;
  box-shadow: 0 0 0 3px rgba(22, 103, 114, 0.1);
}

.form-box textarea{ 
  min-height:200px; 
  resize:vertical; 
}

.form-box .form-submit{ 
  text-align:center; 
  margin-top:50px; 
}
.form-box .btn-submit{
  background-color: #166772;
  color: #fff;
  border: none;
  padding: 18px 80px;
  font-size: 18px;
  font-weight: bold;
  border-radius: 4px;
  cursor: pointer;
  transition: opacity 0.3s, background-color 0.3s;
  appearance: none;
  -webkit-appearance: none;
}
.form-box .btn-submit:hover{
  opacity: 0.9;
  background-color: #12555e;
}

/* Additional Styles for Privacy Page within Card */
.form-box .privacy-section {
  margin-bottom: 30px;
}
.form-box .privacy-section h3 {
  font-size: 20px;
  color: #166772;
  border-bottom: 1px solid #166772;
  padding-bottom: 8px;
  margin-bottom: 15px;
  font-weight: bold;
}
.form-box .privacy-section p {
  line-height: 1.8;
  font-size: 16px;
  margin-bottom: 15px;
}
.form-box .privacy-section a {
  color: #166772;
  text-decoration: underline;
  font-weight: bold;
}
.form-box .privacy-section a:hover {
  text-decoration: none;
  opacity: 0.8;
}
.form-box .privacy-section ol {
  counter-reset: num;
  list-style: none; /* Disable default numbering to align custom */
  padding-left: 0;
}
.form-box .privacy-section ol li {
  position: relative;
  padding-left: 2em;
  margin-bottom: 15px;
  line-height: 1.8;
}
.form-box .privacy-section ol li::before {
  content: counter(num) ".";
  counter-increment: num;
  position: absolute;
  left: 0;
  font-weight: bold;
  color: #166772;
}

@media screen and (max-width:769px){
  .make_map_block__inner{ padding:40px 12px 80px; font-size:28px; }
  .form-section .form-box{ 
    margin: 30px 12px 60px;  /* Removed negative margin */
    padding:30px 20px; 
  }
  .form-box .btn-submit{
    width: 100%;
    padding: 16px 0;
  }
}