@media screen and (min-width: 769px), print {
  .main_contact h3 {
    font-weight: bold;
    font-size: 2.4rem;
    line-height: 1;
    letter-spacing: 2.1px;
    text-align: center;
  }
  .main_contact .contact_top {
    padding: 55px 0 50px;
    text-align: center;
  }
  .main_contact .contact_top a {
    display: block;
    margin: 42px 0 27px;
    pointer-events: none;
  }
  .main_contact .contact_top a::before {
    content: "";
    display: inline-block;
    width: 47px;
    height: 45px;
    background: url("../images/ic_phone.png") no-repeat;
    -moz-background-size: contain;
         background-size: contain;
    vertical-align: middle;
    margin-right: 12px;
    position: relative;
    bottom: -3px;
  }
  .main_contact .contact_top a img {
    width: 272px;
    max-width: 100%;
  }
  .main_contact .contact_top span {
    display: block;
    font-size: 1.6rem;
    line-height: 1;
    letter-spacing: 2px;
  }
  .main_contact .contact_bot {
    background: #f7f7f7;
    padding: 48px 0 72px;
  }
  .main_contact .main_form {
    padding: 30px 167px 0 82px;
  }
  .main_contact .main_form .row_form {
    margin-bottom: 17px;
    font-size: 0;
  }
  .main_contact .main_form .row_form::after {
    content: "";
    display: table;
    clear: both;
  }
  .main_contact .main_form .row_form.first {
    text-align: right;
  }
  .main_contact .main_form .row_form.first > label {
    width: auto;
    float: none;
    display: inline-block;
    padding-right: 0;
    margin-top: 0;
  }
  .main_contact .main_form .row_form.first > label::after {
    right: auto;
    left: -22px;
  }
  .main_contact .main_form .row_form > label {
    width: 160px;
    float: left;
    text-align: right;
    padding-right: 43px;
    margin-top: 20px;
    font-size: 1.4rem;
    line-height: 1;
    position: relative;
  }
  .main_contact .main_form .row_form > label.ic_none::after {
    display: none;
  }
  .main_contact .main_form .row_form > label::after {
    content: "";
    width: 10px;
    height: 10px;
    background: #007c42;
    position: absolute;
    top: 2px;
    right: 18px;
    -webkit-transform: rotate(45deg);
       -moz-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  .main_contact .main_form .row_form .wrap {
    margin-left: 160px;
  }
  .main_contact .main_form .row_form .wrap .form {
    width: 100%;
    font-size: 1.6rem;
    line-height: normal;
    color: #000000;
    background: #fff;
    border: 1px solid #e5e5e5;
    -moz-border-radius: 4px;
         border-radius: 4px;
    outline: none;
    padding: 18px 23px;
  }
  .main_contact .main_form .row_form .wrap input {
    height: 54px;
  }
  .main_contact .main_form .row_form .wrap textarea {
    height: 177px;
    resize: vertical;
  }
  .main_contact .main_form .row_form .wrap ::-webkit-input-placeholder {
    font-size: 1.6rem;
    color: #d1d1d1 !important;
  }
  .main_contact .main_form .row_form .wrap :-moz-placeholder {
    font-size: 1.6rem;
    color: #d1d1d1 !important;
  }
  .main_contact .main_form .row_form .wrap ::-moz-placeholder {
    font-size: 1.6rem;
    color: #d1d1d1 !important;
  }
  .main_contact .main_form .row_form .wrap :-ms-input-placeholder {
    font-size: 1.6rem;
    color: #d1d1d1 !important;
  }
  .main_contact .main_form .row_form .f_privacy {
    text-align: center;
    font-size: 0;
    padding: 16px 0 0 90px;
  }
  .main_contact .main_form .row_form .f_privacy input[type="checkbox"] {
    display: inline-block;
    vertical-align: middle;
    margin-right: 15px;
    outline: none;
  }
  .main_contact .main_form .row_form .f_privacy label {
    font-size: 1.4rem;
    line-height: 2.7rem;
    display: inline-block;
    vertical-align: middle;
    letter-spacing: 0.7px;
    cursor: pointer;
  }
  .main_contact .main_form .row_form .f_privacy label a {
    color: #000000;
    border-bottom: 1px solid #000000;
  }
  .main_contact .btn {
    padding: 19px 0 0;
  }
  .main_contact .btn button {
    display: block;
    width: 682px;
    height: 69px;
    border: 2px solid #007c42;
    background: #f7f7f7;
    -moz-box-shadow: inset 0 0 0px 2px #fff;
         box-shadow: inset 0 0 0px 2px #fff;
    -moz-border-radius: 4px;
         border-radius: 4px;
    font-size: 1.8rem;
    line-height: 65px;
    color: #007c42;
    outline: none;
    text-align: center;
    margin: 0 auto;
    padding: 0;
    cursor: pointer;
    position: relative;
    -webkit-transition: all .35s ease;
    -moz-transition: all .35s ease;
    transition: all .35s ease;
  }
  .main_contact .btn button span {
    position: relative;
  }
  .main_contact .btn button::after {
    content: "";
    display: block;
    width: 27px;
    height: 27px;
    background: url("../images/ic_next.png") no-repeat;
    -moz-background-size: contain;
         background-size: contain;
    position: absolute;
    right: 21px;
    top: 50%;
    -webkit-transform: translateY(-50%);
       -moz-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .main_contact .btn button:hover {
    background: #007c42;
    -moz-box-shadow: inset 0 0 0px 2px #007c42;
         box-shadow: inset 0 0 0px 2px #007c42;
    color: #fff;
  }
  .main_contact .btn button:hover::after {
    background: url("../images/ic_next_hv.png") no-repeat;
    -moz-background-size: contain;
         background-size: contain;
  }
  .main_contact .back_btn {
    padding: 19px 0 0;
  }
  .main_contact .back_btn button {
    display: block;
    width: 682px;
    height: 69px;
    border: 2px solid #a1a1a1;
    background: #f7f7f7;
    -moz-box-shadow: inset 0 0 0px 2px #fff;
         box-shadow: inset 0 0 0px 2px #fff;
    -moz-border-radius: 4px;
         border-radius: 4px;
    font-size: 1.8rem;
    line-height: 65px;
    color: #a1a1a1;
    outline: none;
    text-align: center;
    margin: 0 auto;
    padding: 0;
    cursor: pointer;
    position: relative;
    -webkit-transition: all .35s ease;
    -moz-transition: all .35s ease;
    transition: all .35s ease;
  }
  .main_contact .back_btn button span {
    position: relative;
  }
  .main_contact .back_btn button::after {
    content: "";
    display: block;
    width: 27px;
    height: 27px;
    background: url("../images/ic_back.png") no-repeat;
    -moz-background-size: contain;
         background-size: contain;
    position: absolute;
    left: 21px;
    top: 50%;
    -webkit-transform: translateY(-50%);
       -moz-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .main_contact .back_btn button:hover {
    background: #a1a1a1;
    -moz-box-shadow: inset 0 0 0px 2px #a1a1a1;
         box-shadow: inset 0 0 0px 2px #a1a1a1;
    color: #fff;
  }
  .main_contact .back_btn button:hover::after {
    background: url("../images/ic_back_hv.png") no-repeat;
    -moz-background-size: contain;
         background-size: contain;
  }
  .main_contact .btn_area {
    margin: 0 auto;
    overflow: hidden;
    width: 682px;
  }
  .main_contact .btn_area .btn {
    float: right;
    padding: 0;
  }
  .main_contact .btn_area .btn button {
    width: 334px;
  }
  .main_contact .btn_area .back_btn {
    float: left;
    padding: 0;
  }
  .main_contact .btn_area .back_btn button {
    width: 334px;
  }
  .main_confirm .main_form {
    padding-top: 75px;
  }
  .main_confirm .main_form .row_form {
    margin-bottom: 43px;
  }
  .main_confirm .main_form .row_form:nth-last-of-type(2) {
    margin-bottom: 40px;
  }
  .main_confirm .main_form .row_form label {
    line-height: 2.8rem;
    margin: 0;
  }
  .main_confirm .main_form .row_form label::after {
    display: none;
  }
  .main_confirm .main_form .row_form .wrap {
    padding-left: 23px;
  }
  .main_confirm .main_form .row_form .wrap p {
    font-size: 1.6rem;
    line-height: 2.8rem;
  }
  .main_confirm .main_form .row_form .wrap p.small {
    font-size: 1.4rem;
  }
  .main_confirm .btn {
    padding-top: 15px;
  }
  .main_confirm .contact_bot {
    padding-bottom: 105px;
  }
  .main_error .contact_bot {
    padding-bottom: 57px;
  }
  .main_error .main_form {
    padding-top: 54px;
  }
  .main_error .main_form .error-message {
    display: block;
    color: #b62020;
    font-size: 1.6rem;
    line-height: 2.6rem;
    text-align: center;
    text-indent: 82px;
    letter-spacing: 1px;
    margin-bottom: 7px;
  }
  .main_error .main_form .row_form .error-message {
    font-size: 1.2rem;
    line-height: 1;
    text-align: left;
    text-indent: 3px;
    margin: 9px 0 0;
  }
  .main_error .main_form .row_form .f_privacy .error-message {
    text-align: center;
    letter-spacing: 0;
  }
  .main_send article {
    text-align: center;
    padding: 90px 0 108px;
  }
  .main_send article h3 {
    margin-bottom: 52px;
  }
  .main_send article p {
    font-size: 1.6rem;
    line-height: 2.8rem;
  }
}

@media screen and (max-width: 768px) {
  .main_contact h3 {
    font-weight: bold;
    font-size: 2.15rem;
    line-height: 1;
    text-align: center;
  }
  .main_contact .contact_top {
    padding: 6.51042% 3.77604% 7.8125%;
    text-align: center;
  }
  .main_contact .contact_top a {
    display: block;
    margin: 7.04225% 0 6.76056%;
  }
  .main_contact .contact_top a::before {
    content: "";
    display: inline-block;
    width: 11.83099%;
    height: 0;
    padding-top: 11.26761%;
    background: url("../images/ic_phone.png") no-repeat;
    -moz-background-size: contain;
         background-size: contain;
    vertical-align: middle;
    margin-right: 3.09859%;
    position: relative;
    bottom: -3px;
  }
  .main_contact .contact_top a img {
    width: 68.16901%;
    max-width: 100%;
  }
  .main_contact .contact_top span {
    display: block;
    font-size: 1.6rem;
    line-height: 1;
    letter-spacing: 2px;
  }
  .main_contact .contact_bot {
    background: #f7f7f7;
    padding: 6.90104% 0 10.41667%;
  }
  .main_contact .main_form {
    padding: 3.90625% 3.77604% 0;
  }
  .main_contact .main_form .row_form {
    margin-bottom: 3.94366%;
    font-size: 0;
  }
  .main_contact .main_form .row_form.first {
    text-align: right;
  }
  .main_contact .main_form .row_form.first > label {
    width: auto;
    display: inline-block;
    margin-bottom: 0;
  }
  .main_contact .main_form .row_form > label {
    display: block;
    width: 100%;
    padding-left: 21px;
    margin-bottom: 2.11268%;
    font-size: 1.3rem;
    line-height: 1;
    position: relative;
  }
  .main_contact .main_form .row_form > label.ic_none::after {
    display: none;
  }
  .main_contact .main_form .row_form > label::after {
    content: "";
    width: 10px;
    height: 10px;
    background: #007c42;
    position: absolute;
    top: 0;
    left: 2px;
    -webkit-transform: rotate(45deg);
       -moz-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  .main_contact .main_form .row_form .wrap .form {
    width: 100%;
    font-size: 1.5rem;
    line-height: normal;
    color: #000000;
    background: #fff;
    border: 1px solid #e5e5e5;
    -moz-border-radius: 4px;
         border-radius: 4px;
    outline: none;
    letter-spacing: 1px;
    padding: 0 13px;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
  }
  .main_contact .main_form .row_form .wrap input {
    height: 48px;
  }
  .main_contact .main_form .row_form .wrap textarea.form {
    padding: 13px 13px 12px;
    height: 245px;
    resize: vertical;
  }
  .main_contact .main_form .row_form .wrap ::-webkit-input-placeholder {
    font-size: 1.5rem;
    color: #d1d1d1 !important;
  }
  .main_contact .main_form .row_form .wrap :-moz-placeholder {
    font-size: 1.5rem;
    color: #d1d1d1 !important;
  }
  .main_contact .main_form .row_form .wrap ::-moz-placeholder {
    font-size: 1.5rem;
    color: #d1d1d1 !important;
  }
  .main_contact .main_form .row_form .wrap :-ms-input-placeholder {
    font-size: 1.5rem;
    color: #d1d1d1 !important;
  }
  .main_contact .main_form .row_form .f_privacy {
    text-align: center;
    font-size: 0;
    padding: 5.49296% 0 0;
  }
  .main_contact .main_form .row_form .f_privacy input[type="checkbox"] {
    display: inline-block;
    vertical-align: middle;
    margin-right: 2.8169%;
    outline: none;
  }
  .main_contact .main_form .row_form .f_privacy label {
    font-size: 1.3rem;
    line-height: 2.6rem;
    display: inline-block;
    vertical-align: middle;
    letter-spacing: 0.7px;
    cursor: pointer;
  }
  .main_contact .main_form .row_form .f_privacy label a {
    color: #000000;
    border-bottom: 1px solid #000000;
  }
  .main_contact .btn {
    padding: 7.03125% 3.77604% 0;
  }
  .main_contact .btn button {
    display: block;
    width: 100%;
    border: 2px solid #007c42;
    background: #f7f7f7;
    -moz-box-shadow: inset 0 0 0px 2px #fff;
         box-shadow: inset 0 0 0px 2px #fff;
    -moz-border-radius: 4px;
         border-radius: 4px;
    font-size: 1.4rem;
    line-height: 1;
    color: #007c42;
    outline: none;
    text-align: center;
    padding: 6.47887% 0;
    cursor: pointer;
    position: relative;
  }
  .main_contact .btn button::after {
    content: "";
    display: block;
    width: 6.76056%;
    height: 0;
    padding-top: 6.76056%;
    background: url("../images/ic_next.png") no-repeat;
    -moz-background-size: contain;
         background-size: contain;
    position: absolute;
    right: 5.07042%;
    top: 50%;
    -webkit-transform: translateY(-50%);
       -moz-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .main_contact .back_btn {
    padding: 7.03125% 3.77604% 0;
  }
  .main_contact .back_btn button {
    display: block;
    width: 100%;
    border: 2px solid #a1a1a1;
    background: #f7f7f7;
    -moz-box-shadow: inset 0 0 0px 2px #fff;
         box-shadow: inset 0 0 0px 2px #fff;
    -moz-border-radius: 4px;
         border-radius: 4px;
    font-size: 1.4rem;
    line-height: 1;
    color: #a1a1a1;
    outline: none;
    text-align: center;
    padding: 6.47887% 0;
    cursor: pointer;
    position: relative;
  }
  .main_contact .back_btn button::after {
    content: "";
    display: block;
    width: 6.76056%;
    height: 0;
    padding-top: 6.76056%;
    background: url("../images/ic_back.png") no-repeat;
    -moz-background-size: contain;
         background-size: contain;
    position: absolute;
    left: 5.07042%;
    top: 50%;
    -webkit-transform: translateY(-50%);
       -moz-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .main_confirm .main_form {
    padding-top: 14.32292%;
  }
  .main_confirm .main_form .row_form {
    padding: 0 5.77465%;
    margin-bottom: 11.97183%;
  }
  .main_confirm .main_form .row_form label {
    padding: 0;
    margin: 0 0 3.02548%;
  }
  .main_confirm .main_form .row_form label::after {
    display: none;
  }
  .main_confirm .main_form .row_form .wrap {
    padding-left: 4.77707%;
  }
  .main_confirm .main_form .row_form .wrap p {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .main_confirm .main_form .row_form .wrap p.small {
    font-size: 1.3rem;
  }
  .main_confirm .btn {
    padding-top: 0;
  }
  .main_error .main_form {
    padding-top: 3.38028%;
  }
  .main_error .main_form > .error-message {
    margin-bottom: 9.15493%;
  }
  .main_error .main_form .error-message {
    display: block;
    color: #b62020;
    font-size: 1.3rem;
    line-height: 1;
    text-align: center;
    letter-spacing: 1px;
  }
  .main_error .main_form .row_form {
    position: relative;
    margin-bottom: 7.74648%;
  }
  .main_error .main_form .row_form .wrap > .error-message {
    font-size: 1.2rem;
    line-height: 1;
    position: absolute;
    top: 0;
    right: 0;
  }
  .main_error .main_form .row_form .f_privacy {
    padding-top: 2.11268%;
  }
  .main_error .main_form .row_form .f_privacy .error-message {
    margin-top: 2.11268%;
    text-align: center;
    font-size: 1.2rem;
    line-height: 1;
  }
  .main_error .btn {
    padding-top: 5.20833%;
  }
  .main_send article {
    text-align: center;
    padding: 37.10938% 1.95312% 36.58854%;
  }
  .main_send article h3 {
    font-size: 2.5rem;
    margin-bottom: 6.0274%;
  }
  .main_send article p {
    font-size: 1.4rem;
    line-height: 2rem;
  }
}
