@charset "utf-8";
/* CSS Document */

body {font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;margin: 0;padding: 0;background-repeat: no-repeat;background-position: 0% top;background-size: 100%;}
#container {max-width: 800px;width: 100%;margin: 0 auto;padding: 1em;box-sizing: border-box;text-align: left;}
#container img {width: 100%;height: auto;}
h2 {background-color: #4B7593;color: #FFFFFF;font-size: 1.2rem;padding: 1em;margin: 0 0 1em 0;}
a {color: #CC3300;text-decoration: none;transition: color 0.3s ease;}
a:visited {color: #555555;}
a:hover, a:focus {text-decoration: underline;color: #CC3300;}
a:active {text-decoration: underline;}
form {max-width: 700px;margin: 0 auto;padding: 2em;border-radius: 10px;box-shadow: 0 15px 30px rgba(0,0,0,0.2);box-sizing: border-box;background-color: rgba(255,255,255,0.73);}

.form-group label {display: block;font-weight: normal;color: #FFFFFF;background-color: #4B7593;padding: 0.5em;margin-bottom: 0.2em;}
label.required::after {content: " 必須";color: #CC3300;margin-left: 0.2em;font-weight: normal;font-size:10px;}
.form-group input, .form-group select, .form-group textarea {border: 1px solid #9E9E9E;border-radius: 5px;padding: 5px;width: 96%;margin:2%;;box-sizing: border-box;background-color: #FFFFFF;}
.form-group input[type="file"] {border: 2px dashed #9E9E9E;background: #f9f9f9;border-radius: 6px;padding: 1rem;color: #555;width: 50%;box-sizing: border-box;font-size: 11px;}
.form-group input[type="file"]:hover {border-color: #4B7593;background-color: #eef7ff;}


.form-group .radio-group{ display: flex; flex-direction: column; gap: 0.6em; }
.form-group .radio-group label{ display: flex; align-items: center; padding: 0.6em 1em; border: 1px solid #ccc; border-radius: 8px; cursor: pointer; transition: all 0.2s; background: #BFBFBF; color:#454545; }
.form-group .radio-group label:hover{ border-color: #40b4ab; background: #40b4ab; }
.form-group .radio-group input[type="radio"]{ display: none; }
.form-group .radio-group input[type="radio"]:checked + label{ border-color: #40b4ab; background: #40b4ab; font-weight: bold; }


.form-group p{margin-left:1em;margin-right:1em;}
.form-group input.short{width:50%;}
.form-group input.middle{width:88%;}
.radio-group{padding:1em;}

textarea {resize: vertical;min-height: 100px;}
select{
  appearance:none;
  -webkit-appearance:none;
  color:#454545;

  background-image:
    linear-gradient(45deg, transparent 50%, #4B7593 50%),
    linear-gradient(135deg, #4B7593 50%, transparent 50%);
  background-position: right 10px top 50%, right 5px top 50%;
  background-repeat: no-repeat;
  background-size: 5px 5px, 5px 5px;

  padding-right:2rem;
}
.form-group {box-sizing: border-box;width: 100%;overflow-x: hidden;margin-bottom: 0rem;background-color: #E4E5E5;}
.flex-layout {display: flex;flex-wrap: wrap;gap: 20px;width: 100%;box-sizing: border-box;background-color: #E4E5E5;padding-top:2%;padding-bottom:2%;}
.flex-layout .form-group {flex: 1 1 0;min-width: 80px;max-width: 100%;}
.submit-button {background-color: #4B7593;color: #fff;border: none;padding: 0.8rem 2rem;font-size: 1rem;border-radius: 6px;cursor: pointer;transition: background-color 0.3s ease;}
.submit-button:hover {background-color: #3d6079;}
.banner-area img {width: 100%;height: auto;}
.validation-msg{margin-left:2%;}
.validation-msg .ng{  color: #B4253F;}
.validation-msg.ok {  color: #4caf50;}
.line-button a:link, .line-button a:visited, .line-button a:hover, .line-button a:active {border-bottom: dotted 1px #0ab944;}
.tel-btn a{display: inline-block;padding: 0.3rem;background-color: #f0f0f0;color: #555;text-decoration: none;border: 1px solid #efefef;border-radius: 6px;font-size: 0.95rem;transition: background-color 0.3s ease, color 0.3s ease;}
.mail-btn a {display: inline-block;padding: 0.3rem;background-color: #40b4ab;color: #ffffff;text-decoration: none;border: 1px solid #efefef;border-radius: 6px;font-size: 0.95rem;transition: background-color 0.3s ease, color 0.3s ease;font-weight: bold;}
.tel-btn a:hover, .mail-btn a:hover {background-color: #BFBFBF;color: #333;}

.mail-btn a::before {
    font-family: "Font Awesome 5 Free";
    content: "\f0e0";
    font-weight: 900;
    margin-right: 0.5rem;
    padding-left:0.5em;
}


.line-box a{ color:#fff; }
.line-button{ display:inline-block; background:#0ab944; padding:12px 20px; border-radius:7px; text-decoration:none; font-weight:bold; font-size:14px; }
.line-button::before{ font-family:"Font Awesome 5 Free"; content:"\f086"; font-weight:900; margin-right:0px; }
.line-text{ margin-top:8px; font-size:11px; }


.formbutton {
  color: #FFFFFF;
  font-size: 120%;
  font-weight: bold;
  background: rgb(245,35,35);
  background: -moz-linear-gradient(top, rgba(245,35,35,1) 0%, rgba(81,2,5,1) 100%);
  background: -webkit-linear-gradient(top, rgba(245,35,35,1) 0%,rgba(81,2,5,1) 100%);
  background: linear-gradient(to bottom, rgba(245,35,35,1) 0%,rgba(81,2,5,1) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f52323', endColorstr='#510205',GradientType=0 );
  border: 1px solid hsla(0,0%,97%,0.50);
  border-radius: 9px;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  padding-left: 2em;
  padding-right: 2em;
}
#footer{background-color: #666666;padding-top:1em;padding-bottom:1em;text-align: center;}
#footer ul{padding:0;margin:0;}
#footer li{display: inline-block;margin-left:1em;margin-right:1em;font-size:70%;}
#footer a{color:#FFFFFF;text-decoration: none;}
#footer a:hover{color:#C0C0C0;}

@media screen and (max-width: 600px) {
form{padding:1em;}
#container { padding: 15px; max-width: 100%; }
.flex-layout .form-group { flex: 1 1 100%; }
.form-group input[type="file"] {width: 70%;}

}
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="date"], textarea { width: 96%;
  background: transparent;
  font-size: 1rem;
  padding: 10px;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.3s ease;background-color: #FFFFFF;margin-left:2%;margin-right:2%; }
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus, input[type="number"]:focus, input[type="date"]:focus, textarea:focus { border-bottom-color: #3d6079; }
select { appearance: none; background-color: transparent; border: none; border-bottom: 2px solid #ccc; padding: 10px 1em 10px 0.75em; font-size: 1rem; line-height: 1.5; border-radius: 0; background-image: url("data:image/svg+xml;utf8,<svg fill='gray' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>"); background-repeat: no-repeat; background-position: right 0.75em center; background-size: 1.25em; padding-right: 2.5em; box-sizing: border-box; }