/*
Theme Name: テーマの名前
Description: テーマの説明
*/

/* --- LP用スタイル --- */
body {
    padding: 0;
    margin: 0;
}

.lp-wrapper {
  background: #fbf8ea; /* 画像の雰囲気に合うベージュ系。必要なら調整可 */
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100vh;
  padding: 0;
}

.lp-img {
  width: 100%;
  max-width: 500px;
  display: block;
  margin: 0 auto;
}

.lp-btn-wrap {
  width: 100%;
  display: flex;
  justify-content: center;
  margin: 6px 0;
}

.lp-btn-link {
  display: inline-block;
}

.lp-btn-img {
  max-width: 500px;
  height: auto;
  display: block;
}

@media (max-width: 1024px) {
  .lp-wrapper {
    background: #fbf8ea;
  }
  .lp-img {
    max-width: 100vw;
  }
  .lp-btn-img {
    width: 90vw;
  }
}

@media (max-width: 600px) {
  .lp-wrapper {
    padding: 0;
  }
  .lp-img {
    max-width: 100vw;
  }
}

/* --- フォームセクション --- */
.form-wrapper {
  background: #fbf8ea;
  padding: 0px 20px;
}

.form-inner {
  max-width: 500px;
  margin: 0 auto;
}

.form-container, .info-box {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 0px;
  padding: 40px;
  margin-bottom: 30px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

.form-title {
  font-size: 28px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 30px;
  font-family: "Noto Serif JP", serif;
}

.form-title--custom {
  font-family: "Noto Sans JP", "Hiragino Sans", "Meiryo", sans-serif;
  color: #f89c1c;
  font-weight: bold;
}

.info-box {
  padding: 30px;
}

.info-title {
  display: flex;
  align-items: center;
  font-size: 22px;
  font-weight: bold;
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 1px solid #eee;
  color: #c50000;
}

.info-title-icon {
  margin-right: 12px;
  color: #c50000;
}
.info-title-icon svg {
  width: 24px;
  height: 24px;
}

.flow-list {
  list-style-type: none;
  padding-left: 0;
  counter-reset: flow-counter;
}
.flow-list li {
  position: relative;
  padding-left: 35px;
  margin-bottom: 15px;
  line-height: 1.6;
}
.flow-list li::before {
  counter-increment: flow-counter;
  content: counter(flow-counter) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: bold;
  font-size: 20px;
  color: #c50000;
}

.contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.contact-list-item {
  padding-left: 35px;
  position: relative;
  margin-bottom: 15px;
  font-size: 16px;
}
.contact-list-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.contact-list-item--tel::before { background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23c50000"%3E%3Cpath d="M16.95 15.5186L14.4791 14.1167C14.0722 13.8837 13.5673 13.9823 13.2599 14.3315L11.776 16.021C9.62176 14.9307 7.91741 13.2263 6.82715 11.0721L8.51669 9.58823C8.86589 9.2808 8.96449 8.77586 8.73151 8.36891L7.32963 5.89805C7.03541 5.37863 6.44699 5.09319 5.8659 5.17686L3.32115 5.56457C2.72145 5.65084 2.29241 6.16248 2.34441 6.76884C2.52229 8.85131 3.37681 12.6393 7.00973 16.2722C10.6427 19.9051 14.4307 20.7596 16.5131 20.9375C17.1195 20.9895 17.6311 20.5605 17.7174 19.9608L18.1051 17.416C18.1888 16.835 17.9033 16.2466 17.3839 15.9523L16.95 15.5186Z"/%3E%3C/svg%3E'); }
.contact-list-item--mail::before { background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23c50000"%3E%3Cpath d="M20 4H4C2.89543 4 2 4.89543 2 6V18C2 19.1046 2.89543 20 4 20H20C21.1046 20 22 19.1046 22 18V6C22 4.89543 21.1046 4 20 4ZM20 6L12 11L4 6H20Z"/%3E%3C/svg%3E'); }
.contact-list-item--time::before { background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23c50000"%3E%3Cpath d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20ZM13 7H11V12L16.2426 17.2426L17.6568 15.8284L13 11.1716V7Z"/%3E%3C/svg%3E'); }

.contact-list-item a {
  text-decoration: none;
  color: inherit;
}
/* --- Contact Form 7 globals.css風カスタム --- */
.wpcf7-form {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  color: #323333;
  background: none;
  max-width: 500px;
  margin: 0 auto;
}
.wpcf7-form p {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 16px;
}
.wpcf7-form label {
  display: block;
  font-size: 15px;
  font-weight: 500;
  margin-bottom: 6px;
  color: #323333;
}
.wpcf7-form .form-required {
  color: #c7171e;
  font-weight: bold;
  margin-left: 2px;
  font-size: 1em;
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="password"],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%;
  padding: 14px 12px;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  font-size: 16px;
  background: #fff;
  color: #323333;
  box-sizing: border-box;
  margin-top: 2px;
  margin-bottom: 2px;
  box-shadow: 0 2px 8px rgba(205,154,79,0.04);
  transition: border-color 0.2s;
}
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form input[type="number"]:focus,
.wpcf7-form input[type="password"]:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
  border-color: #c7171e;
  outline: none;
}
.wpcf7-form textarea {
  min-height: 100px;
  resize: vertical;
}
.wpcf7-form input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: #cd9a4f;
  margin-right: 6px;
  vertical-align: middle;
}
.wpcf7-form .wpcf7-list-item {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
  font-size: 15px;
}
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item {
  margin-left: 0;
}
.wpcf7-form .wpcf7-submit,
.wpcf7-form .form-submit {
  width: 100%;
  padding: 16px;
  background: #c7171e;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 18px;
  font-weight: bold;
  box-shadow: 0 2px 8px rgba(199,23,30,0.08);
  cursor: pointer;
  margin-top: 10px;
  transition: background 0.2s, transform 0.1s;
}
.wpcf7-form .wpcf7-submit:hover,
.wpcf7-form .form-submit:hover {
  background: #a51319;
  transform: scale(1.02);
}
.wpcf7-form .wpcf7-not-valid-tip {
  color: #c7171e;
  font-size: 13px;
  margin-top: 4px;
  margin-bottom: 2px;
  animation: fadeIn 0.3s;
}
/* Contact Form 7 レスポンスメッセージの基本スタイル */
.wpcf7-form .wpcf7-response-output {
  margin: 18px 0 0 0;
  padding: 14px 18px;
  border-radius: 8px;
  font-size: 15px;
  animation: fadeIn 0.3s;
  border-width: 1px;
  border-style: solid;
}

/* 成功時のメッセージ（緑色） */
.wpcf7 form.sent .wpcf7-response-output {
  background: #d4edda;
  color: #155724;
  border-color: #28a745;
}

/* エラー時のメッセージ（赤色） */
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
  background: #f8d7d9;
  color: #c7171e;
  border-color: #c7171e;
}
.wpcf7-form .form-notice {
  font-size: 12px;
  color: #888;
  margin-top: 10px;
  margin-bottom: 0;
}
.catalog-address {
  background: #f2dcc0;
  border-radius: 8px;
  padding: 18px 14px 8px 14px;
  margin-bottom: 12px;
  margin-top: 8px;
  display: none;
}
.catalog-address input[type="text"] {
  background: #fffbe9;
}
@media (max-width: 600px) {
  .wpcf7-form {
    padding: 0 2vw;
    max-width: 100vw;
  }
  .wpcf7-form .wpcf7-submit,
  .wpcf7-form .form-submit {
    font-size: 16px;
    padding: 14px;
  }
  
  .form-wrapper {
    padding: 30px 15px;
  }
  .form-container, .info-box {
    padding: 20px;
  }
  .form-title { font-size: 22px; }
  .info-title { font-size: 18px; }
  
  .graduates-section {
    width: 100vw;
    max-width: none;
    padding: 48px 0 40px 0;
  }
  
  .graduates-video-wrap {
    width: 30vw;
    max-width: 300px;
  }
}

.graduates-section {
  width: 100%;
  max-width: 500px;
  margin: -1px auto;
  background: #000;
  padding: 0px 0px 40px 0px;
  text-align: center;
}
.graduates-title {
  color: #fff;
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 32px;
  letter-spacing: 0.08em;
}
.graduates-videos {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: nowrap;
  overflow-x: auto;
  white-space: nowrap;
  padding-bottom: 8px;
  max-width: 100%;
}
.graduates-video-wrap {
  position: relative;
  width: calc((100% - 20px) / 3);
  max-width: 150px;
  aspect-ratio: 9/16;
  height: auto;
  background: #222;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.graduates-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
  background: #222;
}
.video-play-btn {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0,0,0,0.7);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  font-size: 1.5rem;
  cursor: pointer;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}
.video-play-btn:hover {
  background: rgba(248,156,28,0.9);
  color: #111;
}

@media (max-width: 600px) {
  .graduates-section {
    width: 100vw;
    max-width: none;
    padding: 48px 0 40px 0;
  }
  
  .graduates-video-wrap {
    width: 30vw;
    max-width: 300px;
  }
  
  .form-wrapper {
    padding: 30px 15px;
  }
  .form-container, .info-box {
    padding: 20px;
  }
  .form-title { font-size: 22px; }
  .info-title { font-size: 18px; }
}

/* --- 支払い方法選択のスタイル --- */
.payment-method-section {
  margin-bottom: 30px;
}

.payment-method-title {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
  color: #495057;
  text-align: center;
}

.payment-methods {
  display: flex;
  flex-direction: column;
  gap: 15px;
  max-width: 500px;
  margin: 0 auto;
}

.payment-method-option {
  display: block;
  padding: 20px;
  background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
  border: 2px solid #e9ecef;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.payment-method-option:hover {
  border-color: #f89c1c;
  background: linear-gradient(135deg, #fef9f2 0%, #fff5e6 100%);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(248, 156, 28, 0.15);
}

/* ラジオボタンを非表示にする */
.payment-method-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
}

/* 選択状態のスタイル */
.payment-method-option:has(input[type="radio"]:checked) {
  border-color: #f89c1c;
  background: linear-gradient(135deg, #fef9f2 0%, #fff5e6 100%);
  box-shadow: 0 4px 16px rgba(248, 156, 28, 0.25);
  transform: translateY(-2px);
}

/* 選択状態の視覚的インジケーター */
.payment-method-option::before {
  content: '';
  position: absolute;
  top: 15px;
  right: 15px;
  width: 20px;
  height: 20px;
  border: 2px solid #ddd;
  border-radius: 50%;
  background: white;
  transition: all 0.3s ease;
}

.payment-method-option:has(input[type="radio"]:checked)::before {
  border-color: #f89c1c;
  background: #f89c1c;
  box-shadow: inset 0 0 0 4px white;
}

.payment-method-label {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 8px;
  color: #2c3e50;
  display: block;
  line-height: 1.3;
}

.payment-method-option:has(input[type="radio"]:checked) .payment-method-label {
  color: #f89c1c;
}

.payment-method-note {
  color: #6c757d;
  font-size: 14px;
  line-height: 1.4;
  margin: 0;
  display: block;
}

/* レスポンシブ対応 */
@media (max-width: 600px) {
  .payment-method-section {
    margin-bottom: 20px;
    padding: 0 15px;
  }
  
  .payment-method-title {
    font-size: 16px;
    margin-bottom: 15px;
  }
  
  .payment-methods {
    gap: 12px;
  }
  
  .payment-method-option {
    padding: 16px;
    border-radius: 8px;
  }
  
  .payment-method-option::before {
    top: 12px;
    right: 12px;
    width: 18px;
    height: 18px;
  }
  
  .payment-method-label {
    font-size: 16px;
    margin-bottom: 6px;
  }
  
  .payment-method-note {
    font-size: 13px;
  }
}

/* --- Stripeカード要素スタイル --- */
.stripe-card-section {
  margin-bottom: 30px;
  padding: 20px;
  background-color: #f8f9fa;
  border-radius: 8px;
  border: 1px solid #e9ecef;
  transition: all 0.3s ease;
}

.card-section-title {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 15px;
  color: #495057;
}

.card-element {
  padding: 12px;
  background-color: #fff;
  border: 1px solid #ced4da;
  border-radius: 4px;
  margin-bottom: 10px;
}

.card-element-note {
  text-align: center;
}

.card-element-note small {
  color: #6c757d;
  font-size: 13px;
}

/* Stripe Elements のスタイル調整 */
.StripeElement {
  box-sizing: border-box;
  height: 40px;
  padding: 10px 12px;
  border: 1px solid transparent;
  border-radius: 4px;
  background-color: white;
  box-shadow: 0 1px 3px 0 #e6ebf1;
  transition: box-shadow 150ms ease;
}

.StripeElement--focus {
  box-shadow: 0 1px 3px 0 #cfd7df;
}

.StripeElement--invalid {
  border-color: #fa755a;
}

.StripeElement--webkit-autofill {
  background-color: #fefde5 !important;
}

/* エラー・成功メッセージのスタイル */
.stripe-error-message,
.stripe-success-message {
  animation: slideIn 0.3s ease-out;
}

@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* レスポンシブ対応 */
@media (max-width: 600px) {
  .payment-method-section,
  .stripe-card-section {
    margin-bottom: 20px;
    padding: 15px;
  }
  
  .payment-method-title,
  .card-section-title {
    font-size: 16px;
  }
  
  .payment-methods {
    gap: 10px;
  }
  
  .payment-method-option {
    padding: 12px;
  }
  
  .payment-method-note {
    margin-left: 20px;
  }
}

/* --- 銀行振込用送信ボタンのスタイル --- */
.bank-transfer-submit {
  width: 100%;
  max-width: 300px;
  margin: 20px auto 0 auto !important;
  display: block !important;
  padding: 12px 24px !important;
  background: #f89c1c !important;
  color: white !important;
  border: none !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  font-size: 16px !important;
  font-weight: bold !important;
  transition: all 0.3s ease !important;
  text-align: center !important;
}

.bank-transfer-submit:hover {
  background: #e88a0f !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 8px rgba(248, 156, 28, 0.3) !important;
}

.bank-transfer-submit:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 4px rgba(248, 156, 28, 0.3) !important;
}

/* --- Contact Form 7 Stripeボタンのスタイル --- */
.wpcf7-stripe button.first,
.wpcf7-stripe button.second {
  width: 100% !important;
  max-width: 300px !important;
  margin: 20px auto 0 auto !important;
  display: block !important;
  padding: 12px 24px !important;
  background: #f89c1c !important;
  color: white !important;
  border: none !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  font-size: 16px !important;
  font-weight: bold !important;
  transition: all 0.3s ease !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

.wpcf7-stripe button.first:hover,
.wpcf7-stripe button.second:hover {
  background: #e88a0f !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 8px rgba(248, 156, 28, 0.3) !important;
}

.wpcf7-stripe button.first:active,
.wpcf7-stripe button.second:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 4px rgba(248, 156, 28, 0.3) !important;
}

.wpcf7-stripe button:disabled {
  background: #cccccc !important;
  color: #666666 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

.wpcf7-stripe button:disabled:hover {
  background: #cccccc !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Contact Form 7のhiddenクラスを強制的に非表示にする */
.wpcf7 .hidden,
.wpcf7-stripe .hidden,
.wpcf7-stripe button.hidden,
.wpcf7-stripe .wpcf7-form-control-wrap.hidden {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 非表示状態から表示状態への切り替えをスムーズに */
.wpcf7-stripe button.first,
.wpcf7-stripe button.second {
  opacity: 1 !important;
  height: auto !important;
}

/* Stripeボタンコンテナのスタイル */
.wpcf7-stripe .buttons {
  text-align: center;
  margin: 20px 0;
}

/* Stripeカード要素のスタイル調整 */
.wpcf7-stripe .card-element {
  margin-bottom: 20px;
  padding: 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  background: white;
}

/* 初期状態でカード入力欄を非表示 */
.wpcf7-stripe .wpcf7-form-control-wrap.hidden .card-element {
  display: none !important;
}

/* 支払い方法セクションの下マージン調整 */
.payment-method-section {
  margin-bottom: 30px;
}

/* フォーム全体のレイアウト調整 */
.wpcf7-form p:last-child {
  margin-bottom: 0;
}

/* 銀行振込フォームの送信ボタンをStripeボタンと同じデザインに統一 */
#bank-form-container .wpcf7-submit {
  width: 100% !important;
  max-width: 300px !important;
  margin: 20px auto 0 auto !important;
  display: block !important;
  padding: 12px 24px !important;
  background: #f89c1c !important;
  color: white !important;
  border: none !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  font-size: 16px !important;
  font-weight: bold !important;
  transition: all 0.3s ease !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

#bank-form-container .wpcf7-submit:hover {
  background: #e88a0f !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 8px rgba(248, 156, 28, 0.3) !important;
}

#bank-form-container .wpcf7-submit:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 4px rgba(248, 156, 28, 0.3) !important;
}

@media (max-width: 600px) {
  .bank-transfer-submit,
  .wpcf7-stripe button.first,
  .wpcf7-stripe button.second,
  #bank-form-container .wpcf7-submit {
    font-size: 14px !important;
    padding: 10px 20px !important;
  }
}

/* === reCAPTCHA設定 === */
/* reCAPTCHAバッジを非表示にする */
/* 注意: バッジを非表示にする場合は、プライバシーポリシーに以下の記載が必要です */
/* "このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシーと利用規約が適用されます。" */
.grecaptcha-badge {
  visibility: hidden !important;
}

/* reCAPTCHAのインラインスタイルを強制的にオーバーライド */
div[style*="visibility: visible"] .grecaptcha-badge {
  visibility: hidden !important;
  opacity: 0 !important;
}

/* モバイル端末でのreCAPTCHA調整 */
@media (max-width: 600px) {
  .grecaptcha-badge {
    display: none !important;
  }
}

/* reCAPTCHAプライバシーポリシー記載のスタイル */
.wpcf7-form .recaptcha-notice {
  font-size: 12px;
  color: #666;
  line-height: 1.4;
  margin: 15px 0 20px 0;
  padding: 10px;
  background-color: #f9f9f9;
  border-left: 3px solid #ddd;
  border-radius: 3px;
}

.wpcf7-form .recaptcha-notice a {
  color: #0073aa;
  text-decoration: underline;
}

.wpcf7-form .recaptcha-notice a:hover {
  color: #005a87;
  text-decoration: none;
}

@media (max-width: 600px) {
  .wpcf7-form .recaptcha-notice {
    font-size: 11px;
    margin: 12px 0 15px 0;
    padding: 8px;
  }
}

/* --- FAQ機能のスタイル --- */
.faq-section {
  background: #fbf8ea;
  padding: 0;
  margin: 0;
}

.faq-item {
  margin-bottom: 0;
}

.faq-question {
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
}

.faq-question:hover {
  opacity: 0.8;
  transform: scale(1.02);
  box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.faq-question:active {
  transform: scale(1.05);
  transition: transform 0.1s ease;
}

.faq-answer {
  animation: fadeIn 0.3s ease-in-out;
  margin-top: 0;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* モバイル用のスタイル調整 */
@media (max-width: 600px) {
  /* モバイルではホバー効果を無効化 */
  .faq-question:hover {
    opacity: 1;
    transform: scale(1);
    box-shadow: none;
  }
  
  /* タップ時の効果のみ有効 */
  .faq-question:active {
    transform: scale(1.03);
    transition: transform 0.1s ease;
  }
}

/* タッチデバイス用の調整 */
@media (hover: none) and (pointer: coarse) {
  .faq-question:hover {
    opacity: 1;
    transform: scale(1);
    box-shadow: none;
  }
  
  .faq-question:active {
    transform: scale(1.03);
    opacity: 0.8;
    transition: all 0.1s ease;
  }
}

