/* ベース */
html { scroll-behavior: smooth; }
body { font-family: 'Inter', 'Noto Sans JP', sans-serif; }

/* ヒーロー（Ken Burns） */
.hero-bg {
  background-image:
    linear-gradient(rgba(26,35,51,0.7), rgba(26,35,51,0.7)),
    url('https://cbminc.jp/wp-content/themes/cbm/image/cbm_top01.png');
  background-size: cover;
  background-position: center;
  animation: zoom-in 20s ease-out infinite;
}
/* モバイルではアニメーションを停止し、見切れを抑える */
@media (max-width: 767.98px) {
  .hero-bg { animation: none; background-position: center top; }
}
/* ヒーローをコンパクトに（高さの最適化） */
.hero-compact { min-height: 52vh; }
@media (min-width: 768px)  { .hero-compact { min-height: 66vh; } }
@media (min-width: 1024px) { .hero-compact { min-height: 72vh; } }

@keyframes zoom-in {
  0% { background-size: 100% 100%; }
  50% { background-size: 110% 110%; }
  100% { background-size: 100% 100%; }
}

/* スクロール演出 */
.fade-in-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .8s cubic-bezier(0.165,0.84,0.44,1),
              transform .8s cubic-bezier(0.165,0.84,0.44,1);
}
.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* 画像フレーム */
.image-frame { position: relative; }
.image-frame::after {
  content: '';
  position: absolute;
  top: -1rem; left: -1rem;
  width: 100%; height: 100%;
  border: 2px solid #D4AF37; /* cbm-gold */
  border-radius: 0.75rem; /* rounded-xl */
  z-index: -1;
  transition: all .3s ease-in-out;
}
.image-frame:hover::after {
  top: -0.5rem; left: -0.5rem;
}

/* 固定ヘッダー（スクロール時の補助） */
#header { transition: background-color .3s, backdrop-filter .3s, box-shadow .3s; }

/* Services ページヘッダー */
.page-header-bg {
  background-image:
    linear-gradient(rgba(26,35,51,0.8), rgba(26,35,51,0.8)),
    url('http://cbminc.jp/wp-content/themes/cbm/image/cbm_page_top01.jpg');
  background-size: cover;
  background-position: center;
}

/* Contact ページヘッダー */
.contact-header-bg {
  background-image:
    linear-gradient(rgba(26,35,51,0.8), rgba(26,35,51,0.8)),
    url('http://cbminc.jp/wp-content/themes/cbm/image/cbm_contact_top01.png');
  background-size: cover;
  background-position: center;
}
/* Privacy Policy ページヘッダー */
.policy-header-bg {
  background-image:
    linear-gradient(rgba(26,35,51,0.85), rgba(26,35,51,0.85)),
    url('http://cbminc.jp/wp-content/themes/cbm/image/cbm_page_top01.jpg');
  background-size: cover;
  background-position: center;
}
/* 箇条書き（✔） */
.service-list li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 12px;
}
.service-list li::before {
  content: '✔';
  position: absolute;
  left: 0;
  color: #D4AF37; /* cbm-gold */
  font-weight: bold;
}

/* FAQ（details / summary） */
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
details[open] summary .arrow-down { transform: rotate(180deg); }

/* 古い Tailwind の aspect 対応（CDN簡易対応） */
.aspect-w-16.aspect-h-9 { position: relative; }
.aspect-w-16.aspect-h-9::before { content: ""; display: block; padding-top: 56.25%; }
.aspect-w-16.aspect-h-9 > * { position: absolute; inset: 0; width: 100%; height: 100%; }

/* ================================
   Contact Form 7 の見た目調整
   ================================ */
.wpcf7 form .wpcf7-form-control {
  width: 100%;
  border: 1px solid #D1D5DB;
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  transition: border-color .3s, box-shadow .3s;
  background: #fff;
}
.wpcf7 form .wpcf7-form-control:focus {
  outline: none;
  border-color: #2A52E0; /* cbm-blue */
  box-shadow: 0 0 0 3px rgba(42,82,224,.2);
}
.wpcf7 form .wpcf7-textarea { min-height: 160px; }

/* 送信ボタン */
.wpcf7 form .wpcf7-submit {
  display: inline-block;
  background: #2A52E0; /* cbm-blue */
  color: #fff;
  font-weight: 700;
  padding: 1rem 3rem;
  border: 0;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: transform .2s, opacity .2s, box-shadow .2s;
  box-shadow: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.1);
}
.wpcf7 form .wpcf7-submit:hover { opacity: .9; transform: scale(1.02); }

/* バリデーション・応答 */
.wpcf7-not-valid-tip { color: #dc2626; font-size: .875rem; margin-top: .25rem; }
.wpcf7 form .wpcf7-response-output {
  margin-top: 1rem;
  border-radius: .5rem;
  padding: .75rem 1rem;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
}
.wpcf7-spinner { margin-left: .5rem; }

/* ================================
   プライバシーポリシー本文の体裁
   ================================ */
   .policy-content h2 {
    margin-top: 2.25rem;
    margin-bottom: 0.75rem;
    font-weight: 800;
    font-size: 1.25rem;
    color: #1A2333; /* cbm-navy */
  }
  .policy-content p { margin-bottom: 1rem; line-height: 1.9; }
  .policy-content ul { margin: 0 0 1rem 1.25rem; list-style: disc; }
  .policy-content li { margin: 0.35rem 0; }
  .policy-dl { display: grid; grid-template-columns: 8rem 1fr; gap: .5rem 1rem; }
  .policy-dl dt { font-weight: 700; color: #374151; }
  .policy-dl dd { color: #111827; }
  @media (max-width: 767.98px) {
    .policy-dl { grid-template-columns: 1fr; }
  }

@media (max-width: 365px) {
  .hero-title { font-size: 1.875rem !important; line-height: 1.25 !important; } /* 約30px */
  .hero-compact { min-height: 60vh; }
  .scroll-indicator { bottom: 1.5rem !important; }
}