/* =================================================================
   OMOCHI PUDDING | contact.css
   お問い合わせページ / メールフォームプロ用スキン
================================================================= */

/* -----------------------------------------------------------------
   簡易ヘッダー
----------------------------------------------------------------- */
.site-header{
  background:var(--black);
  border-bottom:1px solid rgba(182,147,90,.28);
}
.site-header .inner{
  padding-top:22px;
  padding-bottom:22px;
}
.site-header-logo{
  display:inline-block;
  font-family:var(--font-en);
  font-size:20px;
  letter-spacing:.12em;
  color:var(--gold);
  text-decoration:none;
}

/* -----------------------------------------------------------------
   ページタイトル
----------------------------------------------------------------- */
.contact-hero{
  background:radial-gradient(140% 140% at 100% 100%, #4a3419 0%, #2e1c04 45%, #261400 75%);
  padding:64px 0 56px;
  text-align:center;
}
.contact-title{
  margin:0;
  font-family:var(--font-en);
  font-style:italic;
  font-weight:600;
  font-size:clamp(30px,4vw,42px);
  color:var(--gold);
  letter-spacing:.03em;
}
.contact-title-jp{
  margin:10px 0 0;
  font-family:var(--font-jp-serif);
  font-size:14px;
  letter-spacing:.24em;
  color:var(--text-body-soft);
}

/* -----------------------------------------------------------------
   フォームセクション
----------------------------------------------------------------- */
.contact-section{
  background:var(--black);
  padding:70px 0 90px;
}

.contact-lead{
  max-width:720px;
  margin:0 auto 48px;
  text-align:center;
  font-size:13.5px;
  line-height:2;
  color:var(--text-body-soft);
}
.must-note{ color:#d98a6a; }

.contact-form{
  max-width:840px;
  margin:0 auto;
}

.field-row{
  display:grid;
  grid-template-columns:1fr;
  gap:26px;
  margin-bottom:26px;
}
.field-row.cols-2{ grid-template-columns:repeat(2,1fr); }
.field-row.cols-3{ grid-template-columns:repeat(3,1fr); }

.field{ min-width:0; }

.field-label,
form#mailformpro label.field-label{
  display:block !important;
  margin:0 0 10px !important;
  padding:0 !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  border-radius:0 !important;
  white-space:normal !important;
  font-family:var(--font-jp-sans);
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--cream);
}

.field-must{
  display:inline-block;
  margin-right:6px;
  color:#d98a6a;
  font-weight:700;
}

/* -----------------------------------------------------------------
   入力欄
----------------------------------------------------------------- */
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea{
  width:100% !important;
  max-width:100%;
  box-sizing:border-box;
  padding:13px 14px;
  background:#120b03;
  border:1px solid rgba(182,147,90,.4);
  border-radius:2px;
  color:var(--cream);
  font-family:var(--font-jp-sans);
  font-size:14px;
  line-height:1.6;
  transition:border-color .3s ease, box-shadow .3s ease;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder{
  color:#6b5d47;
}

.contact-form input:focus,
.contact-form textarea:focus{
  outline:none;
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(182,147,90,.18);
}

.contact-form textarea{
  resize:vertical;
  min-height:160px;
}

/* -----------------------------------------------------------------
   ラジオボタン
----------------------------------------------------------------- */
.radio-group{
  display:flex;
  flex-wrap:wrap;
  gap:14px 34px;
  padding-top:4px;
}

.radio-item{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:13.5px;
  color:var(--text-body-soft);
  cursor:pointer;
}

.radio-item input[type="radio"]{
  appearance:none;
  -webkit-appearance:none;
  width:17px;
  height:17px;
  flex:none;
  border:1.5px solid rgba(182,147,90,.7);
  border-radius:50%;
  position:relative;
  margin:0;
  cursor:pointer;
  transition:border-color .25s ease;
}
.radio-item input[type="radio"]:checked{
  border-color:var(--gold);
}
.radio-item input[type="radio"]:checked::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--gold);
  transform:translate(-50%,-50%);
}
.radio-item input[type="radio"]:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
}
.radio-item span{ line-height:1.4; }

/* -----------------------------------------------------------------
   送信ボタン
----------------------------------------------------------------- */
.contact-submit-wrap{
  text-align:center;
  margin-top:44px;
}

.contact-submit,
button.contact-submit.mfp_element_submit{
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  padding:16px 48px !important;
  background:transparent !important;
  border:1px solid var(--gold) !important;
  border-radius:2px !important;
  color:var(--gold) !important;
  font-family:var(--font-jp-sans);
  font-size:14px !important;
  font-weight:700;
  letter-spacing:.12em;
  text-shadow:none !important;
  box-shadow:none !important;
  cursor:pointer;
  outline:none;
  transition:background .35s ease, color .35s ease, transform .35s ease;
}
.contact-submit:hover,
button.contact-submit.mfp_element_submit:hover{
  background:var(--gold) !important;
  color:#1a1006 !important;
  text-shadow:none !important;
  box-shadow:none !important;
  transform:translateY(-2px);
}
.contact-submit .arrow{
  font-size:18px;
  line-height:1;
}

/* -----------------------------------------------------------------
   メールフォームプロ既定UIの上書き（確認画面・エラー表示）
----------------------------------------------------------------- */
#mfp_overlay_back,
#mfp_phase_confirm_back{
  background:rgba(5,4,3,.86) !important;
}

#mfp_overlay_inner,
#mfp_phase_confirm_inner{
  background:#150e06 !important;
  border:1px solid rgba(182,147,90,.5) !important;
  color:var(--cream) !important;
  font-family:var(--font-jp-sans) !important;
  border-radius:4px !important;
}

table#mfp_confirm_table th{
  color:var(--gold) !important;
  background:rgba(182,147,90,.08) !important;
  font-weight:700 !important;
}
table#mfp_confirm_table td{
  color:var(--cream) !important;
}
table#mfp_confirm_table tr.mfp_colored,
table#mfp_confirm_table tr.mfp_achroma{
  background:transparent !important;
}

.contact-form .mfp_error,
.contact-form input.mfp_error,
.contact-form textarea.mfp_error{
  border-color:#d98a6a !important;
  box-shadow:0 0 0 3px rgba(217,138,106,.18) !important;
}

/* -----------------------------------------------------------------
   プライバシーポリシー同意チェック
----------------------------------------------------------------- */
.privacy-check,
form#mailformpro label.privacy-check,
form#mailformpro label.privacy-check.mfp_checked,
form#mailformpro label.privacy-check.mfp_not_checked{
  display:flex !important;
  align-items:flex-start !important;
  gap:11px;
  cursor:pointer;
  justify-content:center;
  text-align:left;
  max-width:520px;
  margin:6px auto 0 !important;
  padding:0 !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  border-radius:0 !important;
  white-space:normal !important;
  position:relative;
}

.privacy-check input[type="checkbox"]{
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
}

.privacy-check-box{
  display:inline-block;
  flex:none;
  width:19px;
  height:19px;
  margin-top:2px;
  border:1.5px solid rgba(182,147,90,.7);
  border-radius:3px;
  position:relative;
  transition:border-color .25s ease, background .25s ease;
}
.privacy-check-box::after{
  content:"";
  position:absolute;
  top:3px;
  left:6px;
  width:5px;
  height:9px;
  border-right:2px solid #1a1006;
  border-bottom:2px solid #1a1006;
  transform:rotate(40deg);
  opacity:0;
  transition:opacity .2s ease;
}
.privacy-check input[type="checkbox"]:checked ~ .privacy-check-box{
  background:var(--gold);
  border-color:var(--gold);
}
.privacy-check input[type="checkbox"]:checked ~ .privacy-check-box::after{
  opacity:1;
}
.privacy-check input[type="checkbox"]:focus-visible ~ .privacy-check-box{
  outline:2px solid var(--gold);
  outline-offset:2px;
}

.privacy-check-text,
form#mailformpro label.privacy-check .privacy-check-text{
  font-size:13px;
  line-height:1.6;
  color:var(--text-body-soft) !important;
}

.privacy-link{
  color:var(--gold);
  text-decoration:underline;
  text-underline-offset:3px;
}
.privacy-link:hover{ color:var(--cream); }

/* -----------------------------------------------------------------
   モーダル（プライバシーポリシー）
----------------------------------------------------------------- */
.modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(5,4,3,.86);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:200;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
}
.modal-overlay.is-open{
  opacity:1;
  visibility:visible;
}
body.modal-locked{
  overflow:hidden;
}

.modal-box{
  position:relative;
  width:100%;
  max-width:720px;
  max-height:85vh;
  background:#150e06;
  border:1px solid rgba(182,147,90,.5);
  border-radius:4px;
  box-shadow:0 30px 60px rgba(0,0,0,.55);
  transform:translateY(16px);
  transition:transform .3s ease;
}
.modal-overlay.is-open .modal-box{
  transform:translateY(0);
}

.modal-close{
  position:absolute;
  top:14px;
  right:16px;
  width:34px;
  height:34px;
  border:1px solid rgba(182,147,90,.5);
  border-radius:50%;
  background:transparent;
  color:var(--gold);
  font-size:20px;
  line-height:1;
  cursor:pointer;
  transition:background .25s ease, color .25s ease;
}
.modal-close:hover{
  background:var(--gold);
  color:#1a1006;
}

.modal-scroll{
  max-height:85vh;
  overflow-y:auto;
  padding:48px 40px 40px;
}

.modal-title{
  margin:0 0 24px;
  font-family:var(--font-en);
  font-style:italic;
  font-weight:600;
  font-size:26px;
  color:var(--gold);
  letter-spacing:.03em;
}

.modal-scroll h3{
  margin:26px 0 10px;
  font-family:var(--font-jp-sans);
  font-size:14px;
  font-weight:700;
  color:var(--cream);
  letter-spacing:.02em;
}
.modal-scroll h3:first-of-type{ margin-top:0; }

.modal-scroll h4{
  margin:20px 0 8px;
  font-family:var(--font-jp-sans);
  font-size:12.5px;
  font-weight:700;
  color:var(--gold);
  letter-spacing:.02em;
}

.modal-scroll p{
  margin:0 0 12px;
  font-size:12.5px;
  line-height:1.9;
  color:var(--text-body-soft);
}

.modal-scroll strong{
  color:var(--cream);
  font-weight:700;
}

.modal-scroll ol,
.modal-scroll ul{
  margin:0 0 12px;
  padding-left:20px;
}
.modal-scroll ol li,
.modal-scroll ul li{
  font-size:12.5px;
  line-height:1.9;
  color:var(--text-body-soft);
  margin-bottom:4px;
}
.modal-scroll ul ul{
  margin:4px 0 4px;
  padding-left:18px;
}

.modal-address{
  padding:16px 18px;
  border:1px solid rgba(182,147,90,.3);
  border-radius:2px;
  background:rgba(182,147,90,.06);
}

.modal-date{
  margin-top:22px !important;
  font-size:11.5px !important;
  color:#6b5d47 !important;
}

/* -----------------------------------------------------------------
   レスポンシブ
----------------------------------------------------------------- */
@media (max-width:760px){
  .contact-hero{ padding:48px 0 40px; }
  .contact-section{ padding:52px 0 70px; }
  .field-row.cols-2,
  .field-row.cols-3{ grid-template-columns:1fr; }
  .contact-lead{ text-align:left; margin-bottom:36px; }
  .contact-submit{ width:100%; justify-content:center; }
  .privacy-check{ max-width:none; }
  .modal-scroll{ padding:40px 22px 28px; }
}

/* -----------------------------------------------------------------
   Thanksページ
----------------------------------------------------------------- */
.thanks-box{
  max-width:620px;
  margin:0 auto;
  text-align:center;
}
#mfp_thanks{
  display:inline-block;
  margin:0 auto 30px;
  padding:12px 28px;
  border:1px solid rgba(182,147,90,.5);
  border-radius:2px;
  color:var(--gold);
  font-size:14px;
  letter-spacing:.04em;
}
#mfp_thanks strong{ color:var(--cream); }
.thanks-message{
  margin:0 0 22px;
  font-size:15px;
  line-height:2;
  color:var(--cream);
}
.thanks-note{
  margin:0 0 40px;
  font-size:12.5px;
  line-height:1.9;
  color:var(--text-body-soft);
}
.thanks-back{
  text-decoration:none;
}
