.ptl-contact-status {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.7;
}
.ptl-contact-status[data-type="ok"] {
  background: #e8f5ee;
  color: #1f6f3c;
  border: 1px solid #b9dec7;
}
.ptl-contact-status[data-type="error"] {
  background: #fdecec;
  color: #a02323;
  border: 1px solid #f3c2c2;
}
.cf-turnstile {
  display: flex;
  justify-content: center;
}

/* ===========================================================================
 * お問い合わせモーダル（#modal-window-1）のオーバーレイ表示
 * premium-inject.ts（blogページ用）と同一ルールを WpPageShell ページにも適用。
 * これが無いとモーダルが position:static でページ最下部に展開されてしまう。
 * contact-modal.js が is-block / has-overlay を付与して開閉する。
 * =========================================================================== */
.modal-window {
  --mw-bg-color: transparent !important;
  --mw-overlay: rgba(0, 0, 0, 0.85) !important;
  --mw-inset-top: 0 !important;
  --mw-inset-right: 0 !important;
  --mw-inset-bottom: 0 !important;
  --mw-inset-left: 0 !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  background: transparent !important;
  background-color: transparent !important;
}
.modal-window__content-wrapper[class],
.modal-window__content-main[class] {
  background: transparent !important;
  background-color: transparent !important;
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  box-shadow: none !important;
}
.modal-window__wrapper {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  background: rgba(20, 20, 20, 0.97) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
/* コンタクトモーダルが「実際に開いている時(inline display:block)」だけ他モーダルを隠す。
   旧 :not([style*="display: none"]) は、初期状態(inline styleが無くCSSクラスで非表示)でも
   常にマッチし、ニュース/ブログ等のモーダルを常に visibility:hidden で隠す不具合があった。 */
body.mw-modal-window-open .js-modal_wrap.js-modalitem_open,
html:has(.modal-window[style*="display: block"]) .js-modal_wrap.js-modalitem_open,
html:has(.modal-window[style*="display:block"]) .js-modal_wrap.js-modalitem_open {
  visibility: hidden !important;
}

/* ===========================================================================
 * お問い合わせフォーム本体のスタイル（WP customizer wp-custom-css 忠実移植）
 * 出典: src/html/blog-header.html の <style id="wp-custom-css"> ブロック。
 * blogページと同一の見た目（白カード・入力欄・送信ボタン）を WpPageShell
 * ページのモーダル内フォームにも適用する。
 * div.modal-window_content（underscore版プラグインCSS）と
 * .modal-window__content（本サイトのdouble-underscore版）両方を網羅。
 * =========================================================================== */
div.modal-window_content,
.modal-window__content {
  backdrop-filter: blur(15px) !important;
  -webkit-backdrop-filter: blur(15px) !important;
  background: rgba(255, 255, 255, 0.75) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15) !important;
  border: 1px solid rgba(255, 255, 255, 0.4) !important;
  border-radius: 8px !important;
  padding: 40px !important;
  max-width: 600px !important;
  width: 90% !important;
  margin: auto !important;
  box-sizing: border-box !important;
  height: auto !important;
  max-height: 90vh !important;
  overflow-y: auto !important;
}
.modal-window_overlay {
  backdrop-filter: blur(5px) !important;
  -webkit-backdrop-filter: blur(5px) !important;
}
div.modal-window_content input[type="text"],
div.modal-window_content input[type="email"],
div.modal-window_content input[type="tel"],
div.modal-window_content textarea,
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
  background: rgba(255, 255, 255, 0.6) !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
  border-radius: 8px !important;
  padding: 14px 18px !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: all 0.3s ease !important;
}
div.modal-window_content input:focus,
div.modal-window_content textarea:focus,
.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  background: rgba(255, 255, 255, 0.85) !important;
  border-color: rgba(102, 126, 234, 0.4) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1) !important;
}
div.modal-window_content textarea,
.wpcf7-form textarea {
  min-height: 150px !important;
  max-height: 300px !important;
  resize: vertical !important;
}
div.modal-window_content input[type="submit"],
div.modal-window_content button[type="submit"],
.wpcf7-form input[type="submit"],
.wpcf7-submit {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 16px 40px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  width: auto !important;
  box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3) !important;
  transition: all 0.3s ease !important;
}
div.modal-window_content input[type="submit"]:hover,
.wpcf7-form input[type="submit"]:hover,
.wpcf7-submit:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4) !important;
}
div.modal-window_content label,
.wpcf7-form label {
  display: block !important;
  margin-bottom: 10px !important;
  font-weight: 500 !important;
  color: #2c3e50 !important;
  font-size: 15px !important;
}
div.modal-window_content .wpcf7-acceptance {
  margin: 24px 0 !important;
}
div.modal-window_content .wpcf7-acceptance label,
.wpcf7-form .wpcf7-acceptance label {
  display: flex !important;
  align-items: center !important;
  font-weight: 400 !important;
}
div.modal-window_content .wpcf7-acceptance input[type="checkbox"],
.wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
  width: auto !important;
  margin-right: 8px !important;
}
div.modal-window_content p,
.wpcf7-form p {
  margin-bottom: 24px !important;
}
.modal-window_close,
button.modal-window_close,
.modal-window__close {
  background: rgba(0, 0, 0, 0.8) !important;
  color: #ffffff !important;
  border-radius: 8px !important;
  padding: 10px 20px !important;
  font-weight: 500 !important;
  border: none !important;
}
@media (max-width: 767px) {
  div.modal-window_content,
  div[class*="modal-window"] div[class*="content"] {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 20px !important;
    border-radius: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  div.modal-window_content input[type="text"],
  div.modal-window_content input[type="email"],
  div.modal-window_content input[type="tel"],
  div.modal-window_content textarea,
  .wpcf7-form input[type="text"],
  .wpcf7-form input[type="email"],
  .wpcf7-form input[type="tel"],
  .wpcf7-form textarea {
    padding: 12px 14px !important;
    font-size: 14px !important;
  }
  div.modal-window_content textarea,
  .wpcf7-form textarea {
    min-height: 120px !important;
  }
  div.modal-window_content input[type="submit"],
  .wpcf7-form input[type="submit"],
  .wpcf7-submit {
    width: 100% !important;
    padding: 12px 24px !important;
    font-size: 15px !important;
  }
  div.modal-window_content label,
  .wpcf7-form label {
    font-size: 14px !important;
  }
  div.modal-window_content p,
  .wpcf7-form p {
    margin-bottom: 16px !important;
  }
}
