/* ===============================
   0. リセット / トークン
=============================== */
*{ margin:0; padding:0; box-sizing:border-box; }

:root{
  --nav-h:72px;
  --subnav-h:48px;
  --border-color:#eee1a8;

  --paint-primary:#D97706; /* 濃いオレンジ */
  --paint-accent:#F59E0B;  /* 明るいオレンジ */
  --bg-page-grad:linear-gradient(to bottom,#fffbeb,#ffffff);

  --radius-lg:22px;
  --radius-md:12px;
  --radius-sm:8px;

  --shadow-card:0 10px 15px -3px rgba(0,0,0,.1);
  --shadow-soft:0 8px 24px rgba(0,0,0,.08);

  --text-main:#374151;
  --text-muted:#6b7280;
  --text-strong:#1f2937;

  --font-family-system:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
}

body{
  font-family:var(--font-family-system);
  background:var(--bg-page-grad);
  color:var(--text-main);
  line-height:1.6;
  padding-bottom:80px; /* 下ナビと被らないようマージン確保 */
}

/* 横幅制御コンテナ（共通） */
.container{
  width:min(1200px,92%);
  margin-inline:auto;
  padding-inline:20px;
}

/* アクセシビリティ用にテキストだけ隠す（SEOは残す） */
.visually-hidden{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0);
  white-space:nowrap; border:0;
}

/* ===============================
   1.（削除）ヘッダー／ナビ
=============================== */

/* ===============================
   2. ページ専用ヒーロー画像
=============================== */
.photo-section{
  display:flex;
  justify-content:center;
  align-items:center;
  background-color:#fff8ee;
}
.photo-wrapper{
  position:relative;
  width:100%;
  max-width:1200px;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:12px;
  box-shadow:var(--shadow-soft);
}
.responsive-photo{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  transition:transform .5s ease;
}

@media (max-width:768px){
  .container{padding-inline:16px;}
  .photo-section{padding:0;}
  .photo-wrapper{
    max-width:none; width:100vw; margin:0;
    border-radius:0; box-shadow:none;
  }
  .responsive-photo{object-position:center top;}
}

/* ===============================
   3. お問い合わせヘッダー文
=============================== */
.page-header{
  text-align:center;
  margin:2rem auto 1.5rem;
  max-width:800px;
  padding-inline:1rem;
}
.page-header__desc{
  font-size:1.125rem;
  color:var(--text-main);
  margin-bottom:.5rem;
}
.page-header__note{
  font-size:.875rem;
  color:var(--text-muted);
}
.phone-box{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:#fef3c7;
  padding:.75rem 1.5rem;
  border-radius:var(--radius-sm);
  margin-top:1rem;
  font-size:.95rem;
  font-weight:500;
  color:#92400e;
}
.phone-link{
  color:#92400e; font-weight:bold; text-decoration:none;
}
.phone-link:hover{ color:#78350f; }

/* ===============================
   4. エラーサマリー
=============================== */
#errorSummary{
  background:#fef2f2;
  border-left:4px solid #ef4444;
  padding:1rem;
  border-radius:var(--radius-sm);
  margin:0 auto 2rem;
  max-width:800px;
  display:none;
}
#errorSummary.show{ display:block; }
.error-title{
  font-weight:bold; color:#991b1b;
  margin-bottom:.5rem; font-size:.9rem;
}
.error-list{ list-style:none; font-size:.8rem; color:#b91c1c; }
.error-list li{ margin-bottom:.25rem; }

/* ===============================
   5. フォーム本体カード
=============================== */
.form-card{
  background:#fff;
  box-shadow:var(--shadow-card);
  border-radius:var(--radius-md);
  padding:2rem;
  margin:0 auto 2rem;
  max-width:800px;
}
@media(max-width:640px){
  .form-card{ padding:1.5rem 1rem; }
}

.form-group{ margin-bottom:2rem; }

.form-label{
  display:block;
  font-size:.875rem;
  font-weight:bold;
  color:#374151;
  margin-bottom:.5rem;
}
.badge-required{ color:#dc2626; font-size:.75rem; margin-left:.25rem; }
.badge-optional{ color:#9ca3af; font-size:.75rem; margin-left:.25rem; }

.form-input,
.form-textarea,
.form-select{
  width:100%;
  padding:.75rem 1rem;
  border:1px solid #d1d5db;
  border-radius:var(--radius-sm);
  font-size:1rem;
  transition:all .2s;
  background:#fff;
  color:var(--text-main);
}
.form-input:focus,
.form-textarea:focus,
.form-select:focus{
  outline:none; border-color:var(--paint-primary);
  box-shadow:0 0 0 3px rgba(217,119,6,.1);
}
.form-input.error,
.form-textarea.error{ border-color:#ef4444; }

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

.radio-group{ display:flex; flex-direction:column; gap:.5rem; }
.radio-label{
  display:flex; align-items:center; gap:.5rem;
  padding:.5rem; border-radius:var(--radius-sm);
  cursor:pointer; transition:background .2s; font-size:.95rem;
}
.radio-label:hover{ background:#fffbeb; }
.radio-input{ width:1rem; height:1rem; cursor:pointer; }

.hint-text{ font-size:.75rem; color:var(--text-muted); margin-top:.25rem; }
.error-text{ font-size:.875rem; color:#dc2626; margin-top:.25rem; min-height:1.2em; }

/* 折り返し希望ボックス */
.contact-pref-box{
  background:#fffbeb;
  padding:1rem;
  border-radius:var(--radius-sm);
}
.checkbox-group{
  display:flex; flex-wrap:wrap; gap:1rem;
  margin-bottom:1rem; font-size:.95rem;
}
.checkbox-label{ display:flex; align-items:center; gap:.5rem; cursor:pointer; }
.checkbox-input{ width:1rem; height:1rem; cursor:pointer; }

/* 折り返しヒントの開閉 */
.details-toggle{
  font-size:.75rem; color:var(--text-muted);
  cursor:pointer; margin-top:.5rem; display:inline-block;
}
.details-toggle:hover{ color:var(--paint-primary); }
.details-content{
  font-size:.75rem; color:var(--text-muted);
  margin-top:.5rem; margin-left:1rem; display:none;
}
.details-content.show{ display:block; }

/* 同意事項 */
.agreement-section{
  border-top:1px solid #e5e7eb;
  padding-top:1.5rem; margin-top:1.5rem;
}
.agreement-label{
  display:flex; align-items:flex-start; gap:.5rem;
  cursor:pointer; margin-bottom:1rem;
  font-size:.9rem; line-height:1.5;
}
.agreement-checkbox{ width:1.25rem; height:1.25rem; margin-top:.125rem; cursor:pointer; }
.link-text{ color:var(--paint-primary); text-decoration:underline; }
.link-text:hover{ color:#b45309; }

/* 送信ボタン */
.form-card .button-group{ display:flex; flex-direction:column; gap:.75rem; margin-top:1.5rem; }
.form-card .action-btn{
  width:100%; padding:1rem 1.5rem; border:none;
  border-radius:var(--radius-sm); font-size:1.125rem; font-weight:bold;
  cursor:pointer; transition:all .2s;
  display:flex; align-items:center; justify-content:center; gap:.5rem;
  text-decoration:none;
}
.btn-primary{
  background:var(--paint-primary); color:#fff; box-shadow:var(--shadow-card);
}
.btn-primary:hover{ background:#b45309; }
.btn-secondary{
  background:#fff; color:var(--paint-primary); border:2px solid var(--paint-primary);
}
.btn-secondary:hover{ background:#fffbeb; }

/* ===============================
   6. FAQカード
=============================== */
.faq-card{
  background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.1);
  border-radius:var(--radius-sm); padding:1.5rem;
  margin:0 auto 3rem; max-width:800px;
}
.faq-title{
  font-weight:bold; color:var(--text-strong);
  margin-bottom:1rem; display:flex; align-items:center; gap:.5rem;
  font-size:1rem;
}
.faq-item{ margin-bottom:1rem; }
.faq-question{
  font-weight:500; color:var(--text-main); cursor:pointer;
  padding:.5rem; border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:space-between;
  font-size:.95rem; transition:all .2s;
}
.faq-question:hover{ color:var(--paint-primary); background:#fffbeb; }
.faq-answer{
  font-size:.875rem; color:var(--text-muted);
  margin-top:.5rem; margin-left:1rem; display:none;
}
.faq-answer.show{ display:block; }

/* ===============================
   7. 確認画面 / 完了画面
=============================== */
.confirm-screen, .thanks-screen{ display:none; }
.confirm-screen.show, .thanks-screen.show{ display:block; }

.confirm-item{
  border-bottom:1px solid #e5e7eb;
  padding-bottom:.75rem; margin-bottom:1rem;
}
.confirm-label{
  font-size:.875rem; color:var(--text-muted); margin-bottom:.25rem;
}
.confirm-value{
  font-weight:500; color:var(--text-strong);
  white-space:pre-wrap; font-size:1rem;
}

.thanks-icon{
  width:64px; height:64px; background:#d1fae5; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 1rem; font-size:32px; color:#10b981;
}
.thanks-title{
  font-size:1.5rem; font-weight:bold; color:var(--text-strong);
  text-align:center; margin-bottom:.5rem;
}
.thanks-subtitle{
  font-size:1.125rem; color:var(--text-muted);
  text-align:center; margin-bottom:2rem;
}
.info-box{
  background:#fffbeb; border-left:4px solid var(--paint-accent);
  padding:1rem; margin-bottom:1.5rem; border-radius:var(--radius-sm);
  box-shadow:0 1px 2px rgba(0,0,0,.05);
}
.info-box p{ margin-bottom:.5rem; color:var(--text-main); font-size:.95rem; }
.info-phone{ color:#92400e; font-weight:bold; font-size:1.125rem; text-decoration:none; }



/* ===============================
   10. 小さめアイコン
=============================== */
.cat-icon{ width:20px; height:20px; flex-shrink:0; display:inline-block; }