/* ========================================
  @media screen and (min-width: 768px), print
======================================== */
@media screen and (min-width: 768px), print {
/* mv
-------------------------------------*/
.mv {
    position: relative;
}
.mv h2 {
    text-align: center;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    left: 50%;
}

/* contact
-------------------------------------*/
.contact {
    padding: 78px 0 155px;
}
.contact .sec-ttl {
    margin-bottom: 43px;
}
.contact .lead {
    font-weight: 500;
    font-size: 20px;
    letter-spacing: 0.05em;
    line-height: 2.5;
    text-align: left;
    color: #444;
    display: flex;
    justify-content: center;
    margin-bottom: 46px;
}

/* form
-------------------------------------*/
.form {
    width: min(95%, 1200px);
    margin-inline: auto;
}
.form table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 52px;
}
.form table tr {
    height: 110px;
}
.form table tr:nth-child(odd) {
    background-color: #E6E6E6;
}
.form table th,
.form table td {
    vertical-align: middle;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.2;
}
.form table th {
    text-align: center;
    width: 26%;
    padding: 0 78px 0 0;
}
.form table td {
    padding: 0 0 0 41px;
    letter-spacing: 0.05em;
}
.contact__input input[type=text], .contact__input input[type=email], .contact__input input[type=tel], .contact__input select, .contact__input textarea {
    width: 600px;
    padding: 17px 15px;
    font-size: 20px;
    border: 1px solid #9A9A9A;
    box-sizing: border-box;
}
.contact__textarea textarea {
    height: 400px;
    border: 1px solid #9A9A9A;
    width: 100%;
}
.form table .address input{
    width: 800px;
}
.form table .email input,
.form table .email-confirm input{
    width: 800px;
}
.contact__textarea {
    padding: 30px 0 0 41px!important;
}
.contact__textarea textarea{width: 800px;font-size: 20px;}

/*必須ボタン*/
.required {
    position: relative;
  }
  
  .required::after{
    content: "必　須";
    color: #fff;
    background: #C40000;
    font-size: 15px;
    line-height: 1.2;
    letter-spacing: 0;
    padding: 6px 12px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
  }

  .wpcf7-form-control.wpcf7-acceptance.optional {
    width: min(95%, 450px);
    margin-inline: auto;
    height: 70px;
    background: #e6e6e6;
    display: block;
    font-size: 20px;
    line-height: 1.2;
    display: grid;
    place-content: center;
    margin-bottom: 23px;
    display: flex;
    align-items: center;
  }
  input[type="checkbox" i]  {
    width: 25px;
    height: 25px;
    margin: 0 15px 0 0;
    position: relative;
    top: 3px;
    left: 5px;
  }
  input[type="radio" i] {
    width: 24px;
    height: 24px;
    margin: 0 7px 0 0;
    position: relative;
    top: 5px;
  }
  .wpcf7-radio {
    display: flex;
    align-items: center;
    gap: 71px;
  }
  .wpcf7-list-item {
    margin: 0;
  }
  .privacy-txt {
    text-align: center;
  }
  .privacy-txt a {
    font-weight: 500;
    font-size: 20px;
    line-height: 1.2;
    color: #202020;
    display: block;
    text-align: center;
    margin-bottom: 99px;
    border-bottom: 1px solid #202020;
    padding: 0 0 9px;
    display: inline-block;
  }

  .contact__btn {
    border-radius: 10px;
    background: #cfd7e4;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.2;
    padding: 23px 0;
    text-align: center;
    border: none;
    display: block;
    cursor: pointer;
    max-width: 450px;
    width: 100%;
    -webkit-appearance: none;
    margin-inline: auto;
}


/* footer
-------------------------------------*/
  footer .map {
    width: min(95%, 1200px);
    margin-inline: auto;
    margin-top: 80px;
    margin-bottom: 100px;
  }



}

@media screen and (min-width:768px) and (max-width:1280px) {
/* form
-------------------------------------*/
.form table {
    margin-bottom: 4.063vw;
}
.form table tr {
    height: 8.594vw;
}
.form table th,
.form table td {
    font-size: 1.563vw;
}
.form table th {
    padding: 0 6.094vw 0 0;
}
.form table td {
    padding: 0 0 0 3.203vw;
    letter-spacing: 0.05em;
}
.contact__input input[type=text], .contact__input input[type=email], .contact__input input[type=tel], .contact__input select, .contact__input textarea {
    width: 46.875vw;
    padding: 1.328vw 1.172vw;
    font-size: 1.563vw;
}
.contact__textarea textarea {
    height: 31.25vw;
    border: 1px solid #9A9A9A;
    width: 100%;
}
.form table .address input{
    width: 62.5vw;
}
.form table .email input,
.form table .email-confirm input{
    width: 62.5vw;
}
.contact__textarea {
    padding: 2.34vw 0 0 3.20vw!important;
}
.contact__textarea textarea{width: 62.5vw;}

/*必須ボタン*/
.required::after{
    font-size: 1.172vw;
    line-height: 1.2;
    letter-spacing: 0;
    padding: 0.469vw 0.938vw;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
}

.wpcf7-form-control.wpcf7-acceptance.optional {
    width: 35.16vw;
    height: 5.469vw;
    font-size: 1.563vw;
    line-height: 1.2;
    margin-bottom: 1.797vw;
}
input[type="checkbox" i]  {
    width: 1.953vw;
    height: 1.953vw;
    margin: 0 1.172vw 0 0;
    position: relative;
    top: 0.234vw;
    left: 0.391vw;
}
input[type="radio" i] {
    width: 1.875vw;
    height: 1.875vw;
    margin: 0 0.547vw 0 0;
    position: relative;
    top: 0.391vw;
}
.wpcf7-radio {
    display: flex;
    align-items: center;
    gap: 5.547vw;
}
.privacy-txt a {
    font-size: 1.563vw;
    margin-bottom: 7.734vw;
    padding: 0 0 0.703vw;
}

.contact__btn {
    border-radius: 0.781vw;
    font-size: 1.953vw;
    padding: 1.797vw 0;
    max-width: 35.156vw;
}


}

  

/* ========================================
  @media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
    /* mv
-------------------------------------*/
.mv {
    position: relative;
}
.mv .img img {
    width: 100%;
    height: 25vw;
    object-fit: cover;
}
.mv h2 {
    text-align: center;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    left: 50%;
}
.mv h2 img {
    width: 39.347vw;
}

/* contact
-------------------------------------*/
.contact {
    padding: 10.169vw 0 20.209vw;
}
.contact .sec-ttl {
    margin-bottom: 5.606vw;
}
.contact .lead {
    font-weight: 500;
    font-size: 3.308vw;
    letter-spacing: 0.05em;
    line-height: 2.5;
    color: #444;
    margin-bottom: 5.997vw;
    width: 88.37vw;
    margin-inline: auto;
    text-align: center;
}

/* form
-------------------------------------*/
.form {
    width: 95vw;
    margin-inline: auto;
}
.form table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 6.78vw;
    margin-inline: auto;
}
.form table tr {
    height: 20.342vw;
}
.form table tr:nth-child(odd) {
    background-color: #E6E6E6;
}
.form table th,
.form table td {
    vertical-align: middle;
    font-size: 3.308vw;
    font-weight: 500;
    line-height: 1.2;
}
.form table th {
    text-align: center;
    width: 40vw;
    padding: 0 10.169vw 0 0;
}
.form table td {
    padding: 0 0 0 5.346vw;
    letter-spacing: 0.05em;
}
.contact__input input[type=text], .contact__input input[type=email], .contact__input input[type=tel], .contact__input select, .contact__input textarea {
    width: 95%;
    padding: 2.216vw 1.956vw;
    font-size: 3.308vw;
    border: 1px solid #9A9A9A;
    box-sizing: border-box;
}
.contact__textarea textarea {
    height: 52.151vw;
    border: 1px solid #9A9A9A;
    width: 100%;
}
.form table .address input{
    width: 95%;
}
.form table .email input,
.form table .email-confirm input{
    width: 95%;
}
.contact__textarea {
    padding: 3.91vw 0 0 5.35vw!important;
}
.contact__textarea textarea{width: 95%;font-size: 2.608vw;}

/*必須ボタン*/
.required {
    position: relative;
  }
  
  .required::after{
    content: "必　須";
    color: #fff;
    background: #C40000;
    font-size: 2.856vw;
    line-height: 1.2;
    letter-spacing: 0;
    padding: 0.782vw 1.565vw;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
  }

  .wpcf7-form-control.wpcf7-acceptance.optional {
    width: 95vw;
    margin-inline: auto;
    height: 9.126vw;
    background: #e6e6e6;
    display: block;
    font-size: 3.608vw;
    line-height: 1.2;
    display: grid;
    place-content: center;
    margin-bottom: 2.999vw;
    display: flex;
    align-items: center;
  }
  input[type="checkbox" i]  {
    width: 3.259vw;
    height: 3.259vw;
    margin: 0 1.956vw 0 0;
    position: relative;
    top: 0.391vw;
    left: 0.652vw;
  }
  input[type="radio" i] {
    width: 3.129vw;
    height: 3.129vw;
    margin: 0 0.913vw 0 0;
    position: relative;
    top: 0.652vw;
  }
  .wpcf7-radio {
    display: grid;
    align-items: center;
    gap: 1.257vw;
  }
  .wpcf7-list-item {
    margin: 0;
  }
  .privacy-txt {
    text-align: center;
  }
  .privacy-txt a {
    font-weight: 500;
    font-size: 3.608vw;
    line-height: 1.2;
    color: #202020;
    display: block;
    text-align: center;
    margin-bottom: 12.907vw;
    border-bottom: 1px solid #202020;
    padding: 0 0 1.173vw;
    display: inline-block;
    text-decoration: none;
  }

  .contact__btn {
    border-radius: 1.304vw;
    background: #cfd7e4;
    font-size: 3.259vw;
    font-weight: 700;
    line-height: 1.2;
    padding: 2.999vw 0;
    text-align: center;
    border: none;
    display: block;
    cursor: pointer;
    max-width: 58.67vw;
    width: 100%;
    -webkit-appearance: none;
    margin-inline: auto;
}


.wp-pagenavi {
    margin-bottom: 18.253vw;
}


/* footer
-------------------------------------*/
  footer .map {
    width: min(95%, 1200px);
    margin-inline: auto;
    margin-top: 10.43vw;
    margin-bottom: 13.038vw;
  }


 
}