@charset "UTF-8";
@layer project {
  /*
   * 見出し6文字「お問い合わせ」向け黄マーカー（共通180pxでは短く見える）。
   * reason ページと同様 260px 相当。共通 page-header は変更しない。
   */
  .p-page-header--contact .p-page-header__heading::after {
    width: 16.25rem;
  }
  @media not all and (min-width: 768px) {
    .p-page-header--contact .p-page-header__heading::after {
      width: min(14rem, 78%);
    }
  }
}
@layer project {
  .p-contact-page.l-section {
    padding-block: 6.25rem;
  }
  @media (min-width: 768px) {
    @media not all and (min-width: 1024px) {
      .p-contact-page.l-section {
        padding-block: 4rem;
      }
    }
  }
}
@layer project {
  .p-contact-page__intro {
    margin-bottom: 2.5rem;
    text-align: center;
  }
  .p-contact-page__intro-title {
    margin: 0 0 2.5rem;
    color: var(--color-ink);
    font-size: 2.375rem;
    font-weight: 900;
    line-height: 2.5rem;
  }
  .p-contact-page__intro-lead {
    margin: 0 auto;
    max-width: var(--content-width);
    color: var(--color-ink);
    font-size: 1.0625rem;
    line-height: 1.875rem;
  }
  @media (min-width: 768px) {
    @media not all and (min-width: 1024px) {
      .p-contact-page__intro {
        margin-bottom: 2rem;
      }
      .p-contact-page__intro-title {
        font-size: clamp(1.75rem, 4vw, 2.375rem);
      }
    }
  }
}
@layer project {
  /* Figma: 900px 中央寄せコンテンツ列 */
  .p-contact-page__narrow {
    width: min(100%, 56.25rem);
    margin-inline: auto;
  }
  .p-contact-page__block {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    width: 100%;
  }
  .p-contact-page__block + .p-contact-page__block {
    margin-top: 2.5rem;
  }
  .p-contact-page__section-title {
    margin: 0;
    color: var(--color-orange);
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 2.5rem;
  }
  .p-contact-page__section-lead {
    margin: 0;
    color: var(--color-ink);
    font-size: 1.0625rem;
    line-height: 1.875rem;
  }
  /* Figma Contact: ButtonReservation Medium — 356×82px、横並び中央 */
  .p-contact-page__reserve-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 1.875rem;
    justify-content: center;
    padding-top: 1.25rem;
  }
  .p-contact-page__reserve-buttons .c-button {
    box-sizing: border-box;
    width: min(100%, 22.25rem);
    min-height: 5.125rem;
    padding: 1.125rem 1.625rem;
    gap: 0.5rem;
    font-size: 1.375rem;
    font-weight: 900;
    line-height: 1.35;
  }
  .p-contact-page__reserve-buttons .c-button > span {
    flex: 1;
    text-align: center;
  }
  .p-contact-page__reserve-buttons .c-button--inspection .c-icon:first-child {
    width: 1.75rem;
    height: 1.375rem;
  }
  .p-contact-page__reserve-buttons .c-button--oil .c-icon:first-child {
    width: 2.375rem;
    height: 0.9375rem;
  }
  .p-contact-page__reserve-buttons .c-button > .c-icon:last-child {
    width: 1.375rem;
    height: 1.375rem;
    flex: 0 0 auto;
  }
  .p-contact-page__phone-layout {
    display: flex;
    flex-wrap: wrap;
    gap: 1.875rem;
    align-items: flex-start;
  }
  .p-contact-page__phone-text {
    flex: 1 1 16rem;
    min-width: 0;
    margin: 0;
    color: var(--color-ink);
    font-size: 1.0625rem;
    line-height: 1.875rem;
  }
  .p-contact-page__phone-text em {
    color: var(--color-red);
    font-style: normal;
    font-weight: 700;
  }
  .p-contact-page__phone-box {
    box-sizing: border-box;
    flex: 0 1 25rem;
    width: min(100%, 25rem);
    padding: 1.25rem;
    background: var(--color-orange-soft);
    text-align: left;
  }
  .p-contact-page__phone-number {
    display: block;
    margin: 0 0 0.625rem;
    color: var(--color-orange);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 900;
    line-height: 1.25;
    text-align: left;
    text-decoration: none;
  }
  .p-contact-page__phone-number:hover {
    text-decoration: underline;
  }
  .p-contact-page__phone-meta {
    margin: 0;
    color: var(--color-ink);
    font-size: 1.0625rem;
    line-height: 1.875rem;
    text-align: left;
  }
  .p-contact-page__form-section-title {
    margin: 0;
    color: var(--color-ink);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.875rem;
  }
  .p-contact-page__form-lead {
    margin: 0;
    color: var(--color-ink);
    font-size: 1.0625rem;
    line-height: 1.875rem;
  }
  .p-contact-page__submit-area {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    align-items: center;
    padding-top: 6.25rem;
    text-align: center;
  }
  .p-contact-page__submit-lead {
    margin: 0;
    color: var(--color-ink);
    font-size: 1.0625rem;
    line-height: 1.875rem;
  }
  .p-contact-page__confirm-button {
    width: min(100%, 27.5rem);
    min-height: 4rem;
    font-size: 1.125rem;
    font-weight: 700;
  }
}
@layer project {
  /* フォームブロック間余白（Figma gap 40px 相当） */
  .p-contact-form__block-gap {
    margin-top: 3rem;
  }
  /* 見出し → 説明文 10px / 見出し・説明文 → 表 24px */
  .p-contact-page__form-section-title + .p-contact-form__row,
  .p-contact-page__form-lead + .p-contact-form__row,
  .p-contact-page__privacy-text + .p-contact-form__row {
    margin-top: 1.5rem;
  }
  .p-contact-page__form-section-title + .p-contact-page__form-lead,
  .p-contact-page__form-section-title + .p-contact-page__privacy-text {
    margin-top: 0.625rem;
  }
  .p-contact-form {
    width: 100%;
  }
  .p-contact-form__vehicle {
    width: 100%;
  }
  .p-contact-form__row {
    display: grid;
    grid-template-columns: minmax(0, 19.9375rem) minmax(0, 1fr);
    border-bottom: 1px solid var(--color-line);
    background: var(--color-white);
  }
  .p-contact-form__label-cell {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    align-items: center;
    align-self: stretch;
    padding: 0.625rem 1.5rem;
    border-right: 1px solid var(--color-line);
    background: var(--color-orange-soft);
  }
  .p-contact-form__label {
    margin: 0;
    color: var(--color-ink);
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.0625rem;
  }
  .p-contact-form__badge {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25rem;
  }
  .p-contact-form__badge--required {
    color: var(--color-red);
  }
  .p-contact-form__badge--optional {
    color: var(--color-blue);
  }
  .p-contact-form__value-cell {
    min-width: 0;
    padding: 0.625rem 1.5rem;
  }
  .p-contact-form__control {
    box-sizing: border-box;
    width: min(100%, 18.75rem);
    max-width: 100%;
    min-height: 2.5rem;
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--color-line);
    border-radius: 0;
    background: var(--color-blue-soft);
    color: var(--color-ink);
    font-family: inherit;
    font-size: 1.0625rem;
    line-height: 1.875rem;
  }
  .p-contact-form__control--wide {
    width: 100%;
    max-width: 32.6875rem;
  }
  .p-contact-form__control--textarea {
    min-height: 21.875rem;
    resize: vertical;
  }
  .p-contact-form__control::-moz-placeholder {
    color: #999;
  }
  .p-contact-form__control::placeholder {
    color: #999;
  }
  .p-contact-form__control:focus-visible {
    outline: 2px solid var(--color-blue);
    outline-offset: 1px;
  }
  .p-contact-form__radios {
    margin: 0;
    padding: 0;
    border: 0;
  }
  .p-contact-form__radios legend {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .p-contact-form__radio-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .p-contact-form__radio-list--inline {
    flex-flow: row wrap;
    gap: 1.5rem;
  }
  .p-contact-form__radio-item label {
    display: inline-flex;
    gap: 0.5rem;
    align-items: flex-start;
    color: var(--color-ink);
    font-size: 1.0625rem;
    line-height: 1.875rem;
    cursor: pointer;
  }
  .p-contact-form__radio-item input {
    flex-shrink: 0;
    width: 1.125rem;
    height: 1.125rem;
    margin-top: 0.375rem;
  }
  .p-contact-form__hint {
    margin: 0 0 0.5rem;
    color: var(--color-ink);
    font-size: 1.0625rem;
    line-height: 1.875rem;
  }
  .p-contact-page__privacy-text {
    margin: 0;
    color: var(--color-ink);
    font-size: 1.0625rem;
    line-height: 1.875rem;
  }
  .p-contact-page__policy-link {
    color: #176a99;
    font-weight: 500;
    text-decoration: none;
  }
  .p-contact-page__policy-link:hover {
    text-decoration: underline;
  }
  .p-contact-page__policy-link:focus-visible {
    outline: 2px solid var(--color-blue);
    outline-offset: 2px;
  }
  .p-contact-form__checkbox-label {
    display: inline-flex;
    gap: 0.5rem;
    align-items: flex-start;
    color: var(--color-ink);
    font-size: 1.0625rem;
    line-height: 1.875rem;
    cursor: pointer;
  }
  .p-contact-form__checkbox-label input {
    flex-shrink: 0;
    width: 1.125rem;
    height: 1.125rem;
    margin-top: 0.375rem;
  }
}
/*
 * Mailform Pro 標準CSS（@layer なし）との競合調整のため、本ファイルは @layer 外で記述。
 * 読み込み順: common → mailformpro.css → contact.css
 */
/* お問い合わせページのみ body の overflow-x をサイト側で管理 */
body:has(form#mailformpro.p-contact-form) {
  overflow-x: clip;
}

form#mailformpro.p-contact-form {
  padding: 0;
  max-width: 100%;
}

/* fieldset の min-content 幅で 320px 付近が横はみ出しするのを防ぐ */
form#mailformpro.p-contact-form .p-contact-form__radios,
form#mailformpro.p-contact-form .p-contact-form__radio-list {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

/*
 * form#mailformpro label（MFP）と .mfp_element_radio の margin 上書きで、
 * flex-start + margin-top 前提の _form.scss 配置が崩れテキストが下にずれるため center で揃える
 */
form#mailformpro.p-contact-form .p-contact-form__radio-item label,
form#mailformpro.p-contact-form .p-contact-form__checkbox-label {
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
}

form#mailformpro.p-contact-form .p-contact-form__radio-item label input.mfp_element_radio,
form#mailformpro.p-contact-form .p-contact-form__checkbox-label input.mfp_element_checkbox {
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  margin: 0;
  vertical-align: middle;
}

form#mailformpro.p-contact-form .p-contact-form__radio-item label input.mfp_element_radio:focus-visible,
form#mailformpro.p-contact-form .p-contact-form__checkbox-label input.mfp_element_checkbox:focus-visible {
  outline: 2px solid var(--color-blue);
  outline-offset: 1px;
}

form#mailformpro.p-contact-form .p-contact-form__radio-item {
  min-width: 0;
  max-width: 100%;
}

form#mailformpro.p-contact-form label.mfp_checked,
form#mailformpro.p-contact-form label.mfp_not_checked {
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}

/* MFP 標準 mfpButton 抑制用（data-confirm-after のボタンを使う） */
form#mailformpro.p-contact-form .p-contact-form__mfp-decoy {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/*
 * errormsg_{name}（display は MFP が block/none 制御）
 * --inline: ご希望の連絡方法（PC 横並び・右にエラー）
 * --stacked: 種別・同意（常に選択肢の下）
 */
form#mailformpro.p-contact-form .p-contact-form__choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem 1rem;
  align-items: center;
  width: 100%;
  min-width: 0;
}

form#mailformpro.p-contact-form .p-contact-form__choice-row--stacked {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}

form#mailformpro.p-contact-form .p-contact-form__choice-row--stacked > .p-contact-form__radio-list,
form#mailformpro.p-contact-form .p-contact-form__choice-row--stacked > .p-contact-form__checkbox-label {
  width: 100%;
  max-width: 100%;
}

form#mailformpro.p-contact-form .p-contact-form__choice-row--inline > .p-contact-form__radio-list {
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
}

form#mailformpro.p-contact-form .p-contact-form__choice-row--checkbox > .p-contact-form__checkbox-label {
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
}

form#mailformpro.p-contact-form .p-contact-form__choice-row .mfp_err {
  margin: 0;
  clear: none;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-red);
  background-image: none;
  padding: 0 0 0 1.25rem;
  background-repeat: no-repeat;
  background-position: 0 0.2em;
}

form#mailformpro.p-contact-form .p-contact-form__choice-row--stacked .mfp_err {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  align-self: flex-start;
}

form#mailformpro.p-contact-form .p-contact-form__choice-row--inline .mfp_err {
  flex: 1 1 10rem;
  min-width: 0;
  max-width: 100%;
  align-self: center;
}

@media (min-width: 768px) {
  form#mailformpro.p-contact-form .p-contact-form__choice-row .mfp_err {
    background-image: url(../../contact/mfp.statics/_images/mfp_error.gif);
  }
}
@media not all and (min-width: 768px) {
  form#mailformpro.p-contact-form .p-contact-form__choice-row--inline {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.375rem;
  }
  form#mailformpro.p-contact-form .p-contact-form__choice-row--inline .mfp_err {
    flex: 0 0 auto;
    width: 100%;
    align-self: flex-start;
  }
}
/*
 * MFP 初期化後（mfp_element_* 付与・sizeajust の inline width）も
 * _form.scss / _sections.scss と同じ見た目を維持する（@layer 外で unlayered MFP CSS を上書き）
 */
form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_text,
form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_email,
form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_tel,
form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_number {
  box-sizing: border-box;
  width: min(100%, 18.75rem);
  max-width: 100%;
  min-height: 2.5rem;
  margin: 0;
  padding: 0.375rem 0.75rem;
  border: 1px solid var(--color-line);
  border-radius: 0;
  background: var(--color-blue-soft);
  color: var(--color-ink);
  font-family: inherit;
  font-size: 1.0625rem;
  line-height: 1.875rem;
  box-shadow: none;
  vertical-align: middle;
}

form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_text:focus-visible,
form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_email:focus-visible,
form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_tel:focus-visible,
form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_number:focus-visible {
  outline: 2px solid var(--color-blue);
  outline-offset: 1px;
}

/* sizeajust が cols×6px の inline width を付けるため width のみ !important */
form#mailformpro.p-contact-form textarea.p-contact-form__control.p-contact-form__control--textarea.mfp_element_textarea {
  box-sizing: border-box;
  width: min(100%, 32.6875rem) !important;
  max-width: 32.6875rem;
  min-height: 21.875rem;
  margin: 0;
  padding: 0.375rem 0.75rem;
  border: 1px solid var(--color-line);
  border-radius: 0;
  background: var(--color-blue-soft);
  color: var(--color-ink);
  font-family: inherit;
  font-size: 1.0625rem;
  line-height: 1.875rem;
  box-shadow: none;
  resize: vertical;
  vertical-align: middle;
}

form#mailformpro.p-contact-form textarea.p-contact-form__control.p-contact-form__control--textarea.mfp_element_textarea:focus-visible {
  outline: 2px solid var(--color-blue);
  outline-offset: 1px;
}

form#mailformpro.p-contact-form button.c-button.c-button--secondary.p-contact-page__confirm-button.mfp_element_submit {
  display: inline-flex;
  box-sizing: border-box;
  flex-shrink: 0;
  position: relative;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  width: min(100%, 27.5rem);
  max-width: 100%;
  min-height: 4rem;
  margin: 0;
  padding: 0.95rem 3.25rem;
  border: 2px solid var(--color-blue);
  border-radius: var(--radius-md);
  color: var(--color-blue);
  background: var(--color-white);
  background-image: none;
  font-family: inherit;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  text-shadow: none;
  box-shadow: none;
  cursor: pointer;
  transition-property: color, background-color, border-color;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}

form#mailformpro.p-contact-form button.c-button.c-button--secondary.p-contact-page__confirm-button.mfp_element_submit:hover {
  color: var(--color-white);
  background: var(--color-blue);
  background-image: none;
  border-color: var(--color-blue);
}

form#mailformpro.p-contact-form button.c-button.c-button--secondary.p-contact-page__confirm-button.mfp_element_submit:focus-visible {
  outline: 2px solid var(--color-blue);
  outline-offset: 2px;
}

form#mailformpro.p-contact-form button.c-button.c-button--secondary.p-contact-page__confirm-button.mfp_element_submit:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

form#mailformpro.p-contact-form button.c-button.c-button--secondary.p-contact-page__confirm-button.mfp_element_submit > .c-icon:last-child {
  position: absolute;
  right: 1.15rem;
}

@media not all and (min-width: 768px) {
  form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_text,
  form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_email,
  form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_tel,
  form#mailformpro.p-contact-form input.p-contact-form__control.mfp_element_number {
    width: 100%;
    min-height: 2.75rem;
  }
  form#mailformpro.p-contact-form textarea.p-contact-form__control.p-contact-form__control--textarea.mfp_element_textarea {
    width: 100% !important;
    max-width: none;
    min-height: 12.5rem;
  }
}
/* --- 入力内容確認（ConfirmationMode = 1：ページ内フラット表示）--- */
body:has(form#mailformpro.p-contact-form) div#mfp_phase_confirm {
  clear: both;
  padding-bottom: 0;
}

body:has(form#mailformpro.p-contact-form) div#mfp_phase_confirm_inner {
  font-family: inherit;
  color: var(--color-ink);
}

body:has(form#mailformpro.p-contact-form) div#mfp_phase_confirm_inner h4 {
  margin: 0 0 1.25rem;
  font-size: 1.375rem;
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
}

body:has(form#mailformpro.p-contact-form) table#mfp_confirm_table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1rem;
  line-height: 1.7;
}

body:has(form#mailformpro.p-contact-form) table#mfp_confirm_table tr th,
body:has(form#mailformpro.p-contact-form) table#mfp_confirm_table tr td {
  padding: 0.625rem 0.75rem;
  vertical-align: top;
  text-align: left;
  font-size: 1rem;
  line-height: 1.7;
  word-break: break-word;
  border-top: 1px solid var(--color-line);
}

body:has(form#mailformpro.p-contact-form) table#mfp_confirm_table tr th {
  width: 38%;
  font-weight: 700;
  background: var(--color-blue-soft);
}

body:has(form#mailformpro.p-contact-form) table#mfp_confirm_table tr.mfp_colored td {
  background: var(--color-white);
}

body:has(form#mailformpro.p-contact-form) table#mfp_confirm_table tr.mfp_achroma td {
  background: #f8f9fb;
}

body:has(form#mailformpro.p-contact-form) div#mfp_phase_confirm_inner div.mfp_buttons,
body:has(form#mailformpro.p-contact-form) div#mfp_phase_confirm_inner div.p-contact-confirm__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  justify-content: center;
  padding: 1.5rem 0 0;
}

body:has(form#mailformpro.p-contact-form) div#mfp_phase_confirm_inner .mfp_element_button {
  text-shadow: none;
  box-shadow: none;
  background-image: none;
}

body:has(form#mailformpro.p-contact-form) .p-contact-confirm__button {
  display: inline-flex;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: 0.75rem 3.25rem;
  border-radius: var(--radius-md);
  font-family: inherit;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  cursor: pointer;
  text-shadow: none;
  box-shadow: none;
  background-image: none;
  transition-property: color, background-color, border-color;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}

body:has(form#mailformpro.p-contact-form) .p-contact-confirm__button--cancel {
  border: 2px solid var(--color-blue);
  background: var(--color-white);
  color: var(--color-blue);
}

body:has(form#mailformpro.p-contact-form) .p-contact-confirm__button--cancel:hover {
  color: var(--color-white);
  background: var(--color-blue);
}

body:has(form#mailformpro.p-contact-form) .p-contact-confirm__button--send {
  position: relative;
  border: 2px solid var(--color-blue);
  background: var(--color-blue);
  color: var(--color-white);
}

/* .c-button--secondary と同様、矢印は absolute で文字の中央揃えを崩さない */
body:has(form#mailformpro.p-contact-form) .p-contact-confirm__button--send::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.15rem;
  width: 0.45rem;
  height: 0.45rem;
  margin-top: -0.225rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  pointer-events: none;
}

@media (min-width: 768px) {
  body:has(form#mailformpro.p-contact-form) .p-contact-confirm__button {
    width: 12.5rem;
    min-width: 12.5rem;
    max-width: 100%;
  }
}
body:has(form#mailformpro.p-contact-form) .p-contact-confirm__button--send:hover {
  color: var(--color-blue);
  background: var(--color-white);
}

body:has(form#mailformpro.p-contact-form) .p-contact-confirm__button:focus-visible {
  outline: 2px solid var(--color-blue);
  outline-offset: 2px;
}

body:has(form#mailformpro.p-contact-form) .p-contact-confirm__button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

/* オーバーレイ確認（ConfirmationMode = 0）も同系統で読みやすく */
div#mfp_overlay_background {
  opacity: 0.55;
}

div#mfp_overlay_inner {
  width: min(40rem, 92vw);
  max-height: min(85vh, 40rem);
  overflow: auto;
  padding: 1.5rem 1.25rem 1.25rem;
  border-radius: 0.25rem;
  font-family: inherit;
  color: var(--color-ink);
  -webkit-overflow-scrolling: touch;
}

div#mfp_overlay_inner h4 {
  margin: 0 0 1rem;
  font-size: 1.375rem;
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
}

div.mfp_err {
  font-size: 0.8125rem;
}

@media not all and (min-width: 768px) {
  body:has(form#mailformpro.p-contact-form) div#mfp_phase_confirm {
    padding-bottom: calc(var(--bottom-cta-clearance) + 1rem);
  }
  body:has(form#mailformpro.p-contact-form) table#mfp_confirm_table tr {
    display: block;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid var(--color-line);
  }
  body:has(form#mailformpro.p-contact-form) table#mfp_confirm_table tr th,
  body:has(form#mailformpro.p-contact-form) table#mfp_confirm_table tr td {
    display: block;
    width: 100%;
  }
  body:has(form#mailformpro.p-contact-form) table#mfp_confirm_table tr th {
    padding: 0.5rem 1rem 0.25rem;
  }
  body:has(form#mailformpro.p-contact-form) table#mfp_confirm_table tr td {
    padding: 0.75rem 1rem;
    line-height: 1.75;
  }
  body:has(form#mailformpro.p-contact-form) div#mfp_phase_confirm_inner div.p-contact-confirm__actions {
    flex-direction: column;
    align-items: stretch;
    padding-bottom: 0.5rem;
  }
  body:has(form#mailformpro.p-contact-form) .p-contact-confirm__button {
    width: 100%;
    max-width: none;
  }
}
@layer project {
  .p-contact-thanks {
    padding: 0 0 2.5rem;
    text-align: center;
  }
  .p-contact-thanks__title {
    margin: 0 0 2rem;
    color: var(--color-ink);
    font-size: 2.375rem;
    font-weight: 900;
    line-height: 2.5rem;
  }
  .p-contact-thanks__body {
    margin: 0 auto 2rem;
    max-width: var(--content-width);
    color: var(--color-ink);
    font-size: 1.0625rem;
    line-height: 1.875rem;
    text-align: left;
  }
  .p-contact-thanks__body p {
    margin: 0 0 1.25rem;
  }
  .p-contact-thanks__body p:last-child {
    margin-bottom: 0;
  }
  .p-contact-thanks__note {
    margin-top: 1.5rem;
    padding: 1rem 1.25rem;
    border-radius: 0.25rem;
    background: var(--color-blue-soft);
    font-size: 0.9375rem;
    line-height: 1.7;
  }
  .p-contact-thanks__actions {
    display: flex;
    justify-content: center;
    margin-top: 2.5rem;
  }
  .p-contact-thanks__top-link {
    min-width: 16.5rem;
  }
  @media (min-width: 768px) {
    @media not all and (min-width: 1024px) {
      .p-contact-thanks__title {
        font-size: clamp(1.75rem, 4vw, 2.375rem);
      }
    }
  }
  @media not all and (min-width: 768px) {
    .p-contact-thanks__body {
      text-align: left;
    }
  }
}
@layer project {
  @media (min-width: 768px) {
    @media not all and (min-width: 1024px) {
      .p-contact-page__submit-area {
        padding-top: 4rem;
      }
    }
  }
  @media not all and (min-width: 768px) {
    .p-contact-page.l-section {
      padding-block: clamp(3.5rem, 12vw, 4.5rem);
    }
    .p-contact-page__intro {
      margin-bottom: clamp(1.5rem, 6vw, 2.5rem);
      text-align: left;
    }
    .p-contact-page__intro-title {
      margin-bottom: 1.25rem;
      font-size: clamp(1.35rem, 6vw, 2.375rem);
      line-height: 1.35;
    }
    .p-contact-page__intro-lead {
      font-size: 1rem;
      line-height: 1.75;
      text-align: left;
    }
    .p-contact-page__block + .p-contact-page__block {
      margin-top: clamp(1.75rem, 7vw, 2.5rem);
    }
    .p-contact-page__section-title {
      font-size: clamp(1.375rem, 5.5vw, 1.75rem);
      line-height: 1.45;
    }
    .p-contact-page__section-lead,
    .p-contact-page__form-lead,
    .p-contact-page__phone-text,
    .p-contact-page__phone-meta,
    .p-contact-page__privacy-text,
    .p-contact-page__submit-lead {
      font-size: 1rem;
      line-height: 1.75;
    }
    .p-contact-page__reserve-buttons {
      flex-direction: column;
      align-items: center;
      gap: 1rem;
      padding-top: 1rem;
    }
    .p-contact-page__reserve-buttons .c-button {
      width: min(100%, 22.25rem);
      min-height: 3.25rem;
      padding: 0.875rem 1.25rem;
      font-size: 1.125rem;
    }
    .p-contact-form__block-gap {
      margin-top: clamp(2rem, 8vw, 3rem);
    }
    .p-contact-page__phone-layout {
      flex-direction: column;
      gap: 1.25rem;
    }
    .p-contact-page__phone-text {
      flex: none;
      width: 100%;
    }
    .p-contact-page__phone-box {
      flex: none;
      width: 100%;
      max-width: none;
      text-align: center;
    }
    .p-contact-page__phone-number {
      font-size: clamp(1.75rem, 9vw, 2.5rem);
      white-space: nowrap;
      text-align: center;
    }
    .p-contact-page__phone-meta {
      text-align: center;
    }
    .p-contact-page__form-section-title {
      font-size: 1.125rem;
      line-height: 1.65;
    }
    .p-contact-page__submit-area {
      padding-top: 3rem;
      /* 固定Bottom CTAに隠れない余白（main末尾） */
      padding-bottom: calc(var(--bottom-cta-clearance) + 1rem);
    }
    .p-contact-page__confirm-button {
      scroll-margin-bottom: calc(var(--bottom-cta-clearance) + 1rem);
    }
    .p-contact-form__row {
      grid-template-columns: minmax(0, 1fr);
    }
    .p-contact-form__label-cell {
      border-right: 0;
      border-bottom: 1px solid var(--color-line);
      padding: 0.75rem 1rem;
    }
    .p-contact-form__value-cell {
      padding: 0.75rem 1rem 1rem;
    }
    .p-contact-form__control {
      width: 100%;
      max-width: none;
      min-height: 2.75rem;
    }
    .p-contact-form__control--wide {
      max-width: none;
    }
    .p-contact-form__control--textarea {
      min-height: 12.5rem;
    }
    .p-contact-form__radio-item label,
    .p-contact-form__checkbox-label {
      align-items: center;
      min-height: 2.75rem;
      overflow-wrap: anywhere;
    }
    .p-contact-form__radio-list--inline {
      flex-direction: column;
      align-items: flex-start;
      gap: 0.25rem;
    }
    .p-contact-form__radio-item input,
    .p-contact-form__checkbox-label input {
      margin-top: 0;
    }
  }
}
/*# sourceMappingURL=_maps/contact.css.map */
