/* Contact page */
.contact_page {
  width: min(92%, 920px);
  margin: 0 auto;
  padding: 64px 0 90px;
}

.contact_intro {
  max-width: 820px;
  margin: -24px auto 40px;
  color: #334033;
  font-size: 16px;
  line-height: 1.9;
  text-align: center;
  white-space: nowrap;
}

.contact_form_panel {
  position: relative;
  padding: 48px 56px 56px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(0, 68, 0, 0.18);
  box-shadow: 0 18px 45px rgba(0, 35, 0, 0.12);
}

.contact_form_panel::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 6px;
  background: #004400;
}

.contact_form_panel form,
.contact_form_panel .mw_wp_form {
  display: grid;
  gap: 22px;
}

.contact_form_panel p {
  margin-bottom: 18px;
  color: #333;
  font-size: 15px;
  line-height: 1.8;
}

.contact_form_panel label,
.contact_form_panel th {
  color: #003800;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
}

.contact_form_panel table {
  width: 100%;
  margin: 0;
  border: none;
  border-collapse: collapse;
}

.contact_form_panel th,
.contact_form_panel td {
  display: block;
  width: 100%;
  padding: 0;
  border: none;
}

.contact_form_panel th {
  margin: 0 0 8px;
}

.contact_form_panel td {
  margin: 0 0 22px;
}

.contact_form_panel input[type="text"],
.contact_form_panel input[type="email"],
.contact_form_panel input[type="tel"],
.contact_form_panel input[type="url"],
.contact_form_panel input[type="number"],
.contact_form_panel select,
.contact_form_panel textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  color: #1f2b1f;
  font-size: 16px;
  line-height: 1.6;
  background: #fff;
  border: 1px solid rgba(0, 68, 0, 0.28);
  border-radius: 0;
  box-sizing: border-box;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.contact_form_panel .wpforms-field-email .wpforms-field-row {
  display: block;
  width: 60%;
  max-width: 100%;
}

.contact_form_panel .wpforms-field-email .wpforms-field-row-block {
  display: block;
  width: 100% !important;
  max-width: none;
  padding: 0 !important;
  margin: 0 0 14px !important;
}

.contact_form_panel .wpforms-field-email .wpforms-field-row-block:last-child {
  margin-bottom: 0 !important;
}

.contact_form_panel .wpforms-field-email input[type="email"] {
  width: 100% !important;
  max-width: none;
}

.contact_form_panel .wpforms-field-email .wpforms-field-row-block:nth-child(2) .wpforms-field-sublabel {
  display: none !important;
}

.contact_form_panel .wpforms-field-email .wpforms-field-row-block:nth-child(2) {
  display: block !important;
  position: relative;
}

.contact_form_panel .wpforms-field-email .wpforms-field-row-block:nth-child(2)::before {
  content: "メールアドレス（確認）";
  display: inline-block;
  margin: 0 0.35em 8px 0;
  color: #003800;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
}

.contact_form_panel .wpforms-field-email .wpforms-field-row-block:nth-child(2)::after {
  content: "*";
  position: absolute;
  top: 0;
  left: 11.45em;
  color: #d63638;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
}

.contact_form_panel .wpforms-field-email .wpforms-field-row-block:nth-child(2) input[type="email"] {
  display: block;
  width: 100% !important;
}

.contact_form_panel textarea {
  min-height: 180px;
  resize: vertical;
}

.contact_form_panel input:focus,
.contact_form_panel select:focus,
.contact_form_panel textarea:focus {
  border-color: #004400;
  box-shadow: 0 0 0 3px rgba(0, 68, 0, 0.12);
}

.contact_form_panel input[type="submit"],
.contact_form_panel button[type="submit"],
.contact_form_panel .wpforms-submit,
.contact_form_panel .mw_wp_form input[type="submit"] {
  display: block;
  min-width: 220px;
  margin: 24px auto 0;
  padding: 16px 36px;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  background: #004400;
  border: 1px solid #004400;
  border-radius: 0;
  cursor: pointer;
  transition: background-color 0.2s, border-color 0.2s, opacity 0.2s;
}

.contact_form_panel input[type="submit"]:hover,
.contact_form_panel button[type="submit"]:hover,
.contact_form_panel .wpforms-submit:hover,
.contact_form_panel .mw_wp_form input[type="submit"]:hover {
  background: #002b00;
  border-color: #002b00;
}

div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit {
  background: #004400;
  border-color: #004400;
}

div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit:hover {
  background: #002b00;
  border-color: #002b00;
}

.contact_form_panel .error,
.contact_form_panel .mw_wp_form .error {
  color: #b00020;
  font-size: 13px;
  font-weight: 700;
}

.contact_form_panel .contact_tel small,
.contact_form_panel .contact_tel .description,
.contact_form_panel .contact_tel .form-text,
.contact_form_panel .mwform-tel-field + small,
.contact_form_panel .mwform-tel-field + .description,
.contact_form_panel .mwform-tel-field + .form-text,
.contact_form_panel .wpforms-field[data-field-id="13"] .wpforms-field-limit-text,
.contact_form_panel .wpforms-limit-characters-enabled + .wpforms-field-limit-text {
  display: none !important;
}

@media screen and (max-width: 1040px) {
  .contact_page {
    width: min(92%, 760px);
    padding: 34px 0 72px;
  }
}

@media screen and (max-width: 640px) {
  .contact_page {
    width: 100%;
    padding: 24px 16px 56px;
    box-sizing: border-box;
  }

  .contact_intro {
    margin: -16px 0 28px;
    text-align: left;
    white-space: normal;
  }

  .contact_form_panel {
    padding: 34px 22px 40px;
  }

  .contact_form_panel .wpforms-field-email .wpforms-field-row {
    width: 100%;
  }

  .contact_form_panel input[type="submit"],
  .contact_form_panel button[type="submit"],
  .contact_form_panel .wpforms-submit,
  .contact_form_panel .mw_wp_form input[type="submit"] {
    width: 100%;
    min-width: 0;
  }
}
