/* 全体の横スクロール抑止（推奨：clip非対応はhiddenへフォールバック） */
:where(html, body){ overflow-x: clip; }
@supports not (overflow: clip){ :where(html, body){ overflow-x: hidden; } }

a { color: #4b8; }

#primary { padding-inline: clamp(12px, 8vw, 10em); }

/* ===== 体裁（ページ見出し） ===== */
.c-container{ text-align:center; }
.c-container{ max-width:1120px; margin:0 auto; padding:0 20px; }
.c-page-head{ padding: 60px 20px 0; }
.c-page-head .c-en{
  text-align:center;
  background: linear-gradient(135deg, var(--grad1) 0%, var(--grad2) 50%, var(--grad3) 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
  font-weight:500; font-family:"Baskervville", serif; font-size:48px; margin:0;
}
.c-page-head .c-ja{ text-align:center; color:#6e6e6e; font-size:14px; margin-top:6px; }

/* ===== フォーム共通 ===== */
.cf-contact{ margin-top:20px; }
.cf-contact .wpcf7-form-control.wpcf7-text,
.cf-contact .wpcf7-form-control.wpcf7-tel,
.cf-contact .wpcf7-form-control.wpcf7-email,
.cf-contact .wpcf7-form-control.wpcf7-select,
.cf-contact .wpcf7-form-control.wpcf7-textarea{
  width:100%; padding:14px 16px; border:1px solid #e5e5e5; border-radius:6px;
  background:#f4f4f4; box-sizing:border-box; font-size:16px;
}

/* ===== 行レイアウト（左：大見出し、右：入力） ===== */
.cf-rows{ display:grid; gap:22px; }
.cf-row{ display:grid; grid-template-columns:180px 1fr; gap:24px; align-items:start; }
.cf-label{ font-weight:700; color:#333; display:flex; align-items:center; gap:10px; white-space:nowrap; }
.cf-req{ background:#e64b4b; color:#fff; font-size:12px; border-radius:999px; padding:.25em .6em; display:inline-block; }

/* サブラベル＋2列 */
.cf-fields.two{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.cf-sub{ font-size:14px; color:#333; margin-bottom:6px; text-align:left; }
.cf-fields .one{ grid-column:1 / -1; }
.cf-address .two{ display:grid; grid-template-columns: 1fr 1fr; gap:12px; align-items:end; }
.zip-btn{
  display:inline-flex; align-items:center; border:1.5px solid #4b8; background:#fff; color:#4b8;
  padding:11px 16px; border-radius:22px; cursor:pointer; width:auto; text-align:center; white-space:nowrap;
}
.zip-btn:hover{ background:#e9fff3; }
.cf-address .two p{ justify-self:start; text-align:left; }

/* セレクトやテキストエリアの行 */
.cf-select .wpcf7-select{
  appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,#333 50%), linear-gradient(135deg,#333 50%,transparent 50%);
  background-position:calc(100% - 22px) 50%, calc(100% - 17px) 50%;
  background-size:6px 6px, 6px 6px; background-repeat:no-repeat;
}

/* 同意と送信 */
.cf-accept{ margin-top:6px; }
.cf-submit{ margin-top:10px; }
.cf-submit .wpcf7-submit{
  display:inline-flex; align-items:center; border:1.5px solid #4b8; background:#fff; color:#4b8;
  padding:11px 50px; border-radius:22px; cursor:pointer; width:auto; text-align:center; white-space:nowrap; font-size:14px;
}
.cf-submit .wpcf7-submit:hover{ background:#e9fff3; }

/* エラー表示 */
.wpcf7-not-valid-tip{ color:#e64b4b; font-size:13px; margin-top:6px; }
.wpcf7 form.sent .wpcf7-response-output{ border-color:#69b06c; }

.cf-fields.cf-accept{ text-align:left; }
.cf-fields.cf-submit{ text-align:left; }

/* （前提）このページのフォーム内は左寄せに戻す */
.l-main.-contact .wpcf7 { text-align: left; }

/* Turnstile を“右カラムの開始位置”に合わせる */
.l-main.-contact .wpcf7 form .cf-turnstile,
.l-main.-contact .wpcf7 form .cloudflare-turnstile,
.l-main.-contact .wpcf7 form div[data-sitekey][data-sitekey*="0x"] {
  display:inline-block; max-width:100%; margin-left: calc(180px + 24px);
}
.l-main.-contact .wpcf7 form .cf-turnstile-status,
.l-main.-contact .wpcf7 form .cf-turnstile-response {
  display:inline-block; margin-left: calc(180px + 24px);
}

/* タブレット */
@media (min-width: 768px) and (max-width: 1023.98px) {
  #primary { padding-inline: clamp(12px, 4vw, 10em); }
}

/* スマホは1カラムなので左余白を解除 */
@media (max-width: 767.98px){
  .l-main.-contact .wpcf7 form .cf-turnstile,
  .l-main.-contact .wpcf7 form .cloudflare-turnstile,
  .l-main.-contact .wpcf7 form div[data-sitekey][data-sitekey*="0x"],
  .l-main.-contact .wpcf7 form .cf-turnstile-status,
  .l-main.-contact .wpcf7 form .cf-turnstile-response { margin-left:0; }

  .c-page-head .c-en{ font-size:25px; }
  #primary { padding-inline: clamp(5px, 1.5vw, 10em); font-size:.8em; }
}

/* SP */
@media (max-width: 767.98px){
  .cf-row{ grid-template-columns:1fr; gap:8px; }
  .cf-label{ justify-content:flex-start; }
  .cf-fields.two{ grid-template-columns:1fr; gap:10px; }
  .cf-address .two{ grid-template-columns:1fr; gap:10px; }
.cf-submit .wpcf7-submit{ font-size:1.3em; }
.zip-btn{ font-size:1.3em; }
}

/* 500-767.98pxで左右余白を少し戻す */
@media (min-width: 500px) and (max-width: 767.98px) {
  #primary { padding-inline: clamp(12px, 6vw, 10em); }
}

.c-section.-faq{margin-block:48px 24px}


.c-faq-cat{margin:28px 0}
.c-faq-cat__title{font-size:14px; color:#3a7f3a;padding:8px 0 12px; letter-spacing:.03em;text-align: left;}

.c-faq-list{margin:0; padding:0}
.c-faq-item{list-style:none; border-bottom:1px solid #cfe3cf}
.c-faq-item:first-child{border-top:1px solid #cfe3cf}

.c-faq-q{
  width:100%; display:flex; align-items:center; gap:10px;
  padding:16px 8px; background:#fff; border:0; text-align:left; cursor:pointer; position:relative;
}
.c-faq-q .qmark{color:#3a7f3a; font-weight:700; width:1.8em; flex:0 0 auto}
.c-faq-q .qtext{flex:1; font-size:16px}
.c-faq-q .chev{
  width:10px; height:10px; border-right:2px solid #6aa56a; border-bottom:2px solid #6aa56a;
  transform:rotate(45deg); transition:transform .25s ease; margin-left:8px;
}
.c-faq-q[aria-expanded="true"] .chev{ transform:rotate(-135deg) }

/* アニメーションのキモ：height と opacity を遷移 */
.c-faq-a{
  overflow:hidden;
  height:0;            /* 閉時 */
  opacity:0;
  transition:height .28s ease, opacity .28s ease;
  will-change:height, opacity;
  padding:0 8px;       /* 見た目は確保。高さはJSで制御 */
}
.c-faq-item.is-open .c-faq-a{ opacity:1 }
.c-faq-a p{margin:0 0 16px; line-height:1.9;text-align: left;}
.c-faq-a .amark{color:#6aa56a; font-weight:700; margin-right:.4em}
.c-faq-a .atext a.c-link{color:#2a7b2a; text-decoration:underline}
.faq-courses p{margin:.2em 0}
.c-faq-a .amark {margin-right: 1em;}

/* 動きを抑制したい利用者向け */
@media (prefers-reduced-motion: reduce){
  .c-faq-a{ transition:none }
  .c-faq-q .chev{ transition:none }
}

@media screen and (max-width:767px){
.c-faq-q .qtext {
flex: 1;
font-size: 13px;
}
.atext{
font-size: 13px;
}
	
.c-faq-a .amark {
font-size: 16px;
margin-right: 1.4em;
}
.faq-courses{
font-size: 13px;
}
	
.cf-label p{font-size:15px;}
	
.c-faq-q .qmark {
font-size: 16px;
}
}

.qtext{color:#000!important;}