/* ============================================================
   ホドケタ — 共通スタイルシート
   ★ LINE URL: https://lin.ee/XXXXXXX を実際のURLに変更してください
   ★ 問い合わせフォーム: https://formspree.io/f/XXXXXXX を変更してください
   ============================================================ */

/* ===== 1. CSS変数 ===== */
:root {
  --gold:        #D4A017;
  --soft-gold:   #E8C547;
  --cream:       #FFFEF7;
  --brown:       #4A3A1A;
  --light-brown: #8B7355;
  --warm-white:  #FAFAF8;
  --line-green:  #06C755;
  --executing:   #6C3FA0;
  --influencing: #C8600A;
  --relationship:#1868A8;
  --strategic:   #1A8A4A;
  --text-dark:   #3A3A3A;
  --text-light:  #666666;
  --border:      #E8E8E0;
  --f-head:  'Zen Maru Gothic', sans-serif;
  --f-body:  'Zen Kaku Gothic New', sans-serif;
  --f-acct:  'Cormorant Garamond', serif;
  --f-label: 'DM Sans', sans-serif;
  --max-w:   1200px;
}

/* ===== 2. リセット & ベース ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { font-family: var(--f-body); color: var(--text-dark); background: var(--cream); line-height: 1.75; }
a { text-decoration: none; color: inherit; }
ul, ol { list-style: none; }
img { max-width: 100%; height: auto; }
p { margin-bottom: 1rem; }
h1,h2,h3,h4 { font-family: var(--f-head); color: var(--brown); font-weight: 700; line-height: 1.3; margin-bottom: 1rem; }
h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.6rem, 3.2vw, 2.4rem); }
h3 { font-size: clamp(1.1rem, 2.2vw, 1.4rem); }

/* ===== 3. レイアウト ===== */
.container  { max-width: var(--max-w); margin: 0 auto; padding: 0 2rem; }
.sec        { padding: 5rem 2rem; }
.sec-inner  { max-width: var(--max-w); margin: 0 auto; }
.sec-alt    { background: linear-gradient(135deg,rgba(212,160,23,.04) 0%,rgba(212,160,23,.01) 100%); }
.sec-white  { background: #fff; }

/* ===== 4. タイポグラフィ ===== */
.label      { font-family:var(--f-label); font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; color:var(--gold); font-weight:700; display:block; margin-bottom:.6rem; }
.sec-title  { text-align:center; margin-bottom:.8rem; }
.sec-lead   { text-align:center; color:var(--text-light); max-width:640px; margin:0 auto 3rem; font-size:.97rem; line-height:1.85; }

/* ===== 5. ヘッダー / ナビ ===== */
header {
  position: fixed; top:0; left:0; right:0;
  background: rgba(255,254,247,.98);
  border-bottom: 2px solid transparent;
  height: 72px; display: flex; align-items: center;
  padding: 0 2rem; z-index: 1000;
  transition: all .3s ease;
}
header.scrolled { border-bottom-color:var(--border); box-shadow:0 2px 10px rgba(0,0,0,.06); }
nav { display:flex; justify-content:space-between; align-items:center; max-width:var(--max-w); margin:0 auto; width:100%; }
.logo { font-family:var(--f-head); font-size:1.55rem; font-weight:700; color:var(--brown); letter-spacing:.08em; }
.nav-links { display:flex; gap:1.8rem; align-items:center; }
.nav-links a { font-size:.88rem; font-weight:500; color:var(--text-dark); position:relative; transition:color .3s; white-space:nowrap; }
.nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:2px; background:var(--gold); transition:width .3s; }
.nav-links a:hover::after,
.nav-links a.active::after { width:100%; }
.nav-links a:hover,
.nav-links a.active { color:var(--gold); font-weight:700; }
.nav-links .nav-cta { background:var(--gold); color:#fff !important; padding:.5rem 1.3rem; border-radius:50px; transition:background .3s,transform .2s; }
.nav-links .nav-cta::after { display:none; }
.nav-links .nav-cta:hover { background:var(--soft-gold); transform:translateY(-1px); }
.hamburger { display:none; flex-direction:column; cursor:pointer; gap:5px; }
.hamburger span { width:25px; height:3px; background:var(--brown); border-radius:2px; transition:all .3s; }
.hamburger.active span:nth-child(1) { transform:rotate(45deg) translate(8px,8px); }
.hamburger.active span:nth-child(2) { opacity:0; }
.hamburger.active span:nth-child(3) { transform:rotate(-45deg) translate(7px,-7px); }

/* ===== 6. ボタン ===== */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:1rem 2.2rem; border:none; border-radius:50px;
  font-size:.97rem; font-weight:700; cursor:pointer;
  font-family:var(--f-head); transition:all .3s;
}
.btn-primary  { background:var(--gold); color:#fff; }
.btn-primary:hover { background:var(--soft-gold); transform:translateY(-2px); box-shadow:0 10px 20px rgba(212,160,23,.25); }
.btn-secondary{ background:var(--brown); color:var(--cream); }
.btn-secondary:hover { background:var(--gold); color:#fff; transform:translateY(-2px); box-shadow:0 10px 20px rgba(212,160,23,.2); }
.btn-line     { background:var(--line-green); color:#fff; }
.btn-line:hover { background:#00b049; transform:translateY(-2px); box-shadow:0 10px 20px rgba(6,199,85,.25); }
.btn-outline  { background:transparent; color:var(--gold); border:2px solid var(--gold); }
.btn-outline:hover { background:var(--gold); color:#fff; transform:translateY(-2px); }
.btn-sm       { padding:.65rem 1.4rem; font-size:.88rem; }
.btn-full     { width:100%; }

/* ===== 7. ページヒーロー（サブページ共通） ===== */
.page-hero {
  background: linear-gradient(135deg,rgba(212,160,23,.07) 0%,rgba(212,160,23,.02) 100%);
  border-bottom: 1px solid var(--border);
  padding: 8rem 2rem 4.5rem;
  text-align: center;
}
.page-hero h1 { font-size:clamp(1.9rem,4vw,3rem); margin-bottom:1rem; }
.page-hero p  { color:var(--text-light); max-width:640px; margin:0 auto; font-size:.97rem; line-height:1.85; }

/* ===== 8. カード ===== */
.card { background:#fff; border:2px solid var(--border); border-radius:20px; padding:2.5rem; transition:all .3s; }
.card:hover { border-color:var(--gold); box-shadow:0 15px 30px rgba(212,160,23,.12); transform:translateY(-4px); }

/* ===== 9. バナー系 ===== */
.gold-banner {
  background:linear-gradient(135deg,#FFF9E6,#FFF5D6);
  border:1px solid rgba(212,160,23,.2); border-radius:20px;
  padding:2.5rem; text-align:center;
}
.gold-banner h3 { margin-bottom:.8rem; }
.gold-banner p  { color:var(--text-light); margin-bottom:1.5rem; }

.line-banner {
  background:linear-gradient(135deg,#F2FFF7,#EAFFF2);
  border:1px solid rgba(6,199,85,.2); border-radius:20px;
  padding:2.5rem; text-align:center;
}
.line-banner h3 { color:var(--brown); margin-bottom:.8rem; }
.line-banner p  { color:var(--text-light); margin-bottom:1.5rem; }
.line-benefits  { display:flex; justify-content:center; gap:2.5rem; flex-wrap:wrap; margin-bottom:1.5rem; }
.line-benefit   { text-align:center; }
.line-benefit-icon { font-size:2rem; display:block; margin-bottom:.3rem; }
.benefit-icon-wrap { width:88px; height:88px; border-radius:50%; background:rgba(255,255,255,.6); display:flex; align-items:center; justify-content:center; margin:0 auto .6rem; }
.line-benefit-img { width:56px; height:56px; object-fit:contain; display:block; mix-blend-mode:multiply; }
.line-benefit-text { font-size:.85rem; color:var(--text-light); line-height:1.5; }
.line-benefit-text small { display:block; font-size:.75rem; color:var(--text-light); opacity:.8; margin-top:.15rem; }

/* ===== 10. フェードイン ===== */
.fade-in { opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; }
.fade-in.visible { opacity:1; transform:translateY(0); }

/* ===== 11. グリッドレイアウト ===== */
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; }

/* ===== 12. ギャラリーカード ===== */
.gallery-card {
  position:relative; aspect-ratio:4/3;
  background:linear-gradient(135deg,rgba(212,160,23,.08),rgba(212,160,23,.03));
  border-radius:16px; overflow:hidden; border:2px solid var(--border);
  transition:all .3s;
}
.gallery-card:hover { border-color:var(--gold); box-shadow:0 10px 25px rgba(212,160,23,.15); }
.gallery-card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.gallery-card:hover img { transform:scale(1.04); }
.gallery-placeholder {
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.5rem; font-size:2.5rem; color:var(--light-brown);
}
.gallery-placeholder small { font-size:.75rem; font-family:var(--f-body); color:var(--light-brown); opacity:.7; }

/* -- ギャラリーラベル & 注釈 -- */
.gallery-label {
  position:absolute; bottom:0; left:0; right:0;
  padding:.5rem .8rem;
  background:linear-gradient(transparent, rgba(46,26,26,.65));
  color:#fff; font-size:.78rem; font-weight:500;
  font-family:var(--f-body);
}
.gallery-note {
  text-align:center; font-size:.82rem; color:var(--light-brown);
  margin-bottom:2.5rem; line-height:1.7;
}

/* -- Instagram誘導バナー -- */
.ig-banner {
  background:linear-gradient(135deg, #FFFEF7, #F5F0E8);
  border:2px solid var(--border); border-radius:16px;
  padding:1.5rem 2rem;
}
.ig-banner-inner {
  display:flex; align-items:center; gap:1.2rem;
  flex-wrap:wrap;
}
.ig-banner-icon { font-size:2rem; flex-shrink:0; }
.ig-banner-text { flex:1; min-width:200px; }
.ig-banner-title {
  font-size:1rem; font-weight:700; color:var(--brown);
  margin-bottom:.2rem;
}
.ig-banner-sub {
  font-size:.82rem; color:var(--light-brown); line-height:1.6;
}
@media(max-width:600px){
  .ig-banner-inner { flex-direction:column; text-align:center; }
  .ig-banner-inner .btn { width:100%; }
}

/* ===== 13. お客様の声 ===== */
.testimonial-card { background:#fff; border-left:5px solid var(--gold); border-radius:12px; padding:2rem; box-shadow:0 4px 15px rgba(0,0,0,.05); }
.testimonial-text { font-style:italic; color:var(--text-light); margin-bottom:1rem; line-height:1.85; }
.testimonial-name { font-weight:700; color:var(--brown); margin-bottom:.1rem; }
.testimonial-role { font-size:.86rem; color:var(--light-brown); }
.testimonial-tag  { display:inline-block; font-size:.72rem; font-weight:700; padding:.25rem .7rem; border-radius:50px; margin-bottom:.8rem; }
.tag-biz  { background:rgba(212,160,23,.12); color:var(--brown); }
.tag-ind  { background:rgba(24,104,168,.1); color:var(--relationship); }

/* ===== 14. FAQアコーディオン ===== */
.faq-wrap { max-width:860px; margin:0 auto; }
.faq-item { background:#fff; border:2px solid var(--border); border-radius:14px; margin-bottom:1rem; overflow:hidden; transition:all .3s; }
.faq-item.active { border-color:var(--gold); box-shadow:0 4px 15px rgba(212,160,23,.1); }
.faq-q { padding:1.3rem 1.5rem; cursor:pointer; display:flex; justify-content:space-between; align-items:center; font-weight:600; transition:background .3s; gap:1rem; }
.faq-q:hover { background:rgba(212,160,23,.04); }
.faq-item.active .faq-q { background:rgba(212,160,23,.06); }
.faq-icon { width:24px; height:24px; display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:1.4rem; font-weight:400; transition:transform .3s; flex-shrink:0; }
.faq-item.active .faq-icon { transform:rotate(45deg); }
.faq-a { max-height:0; height:0; padding:0; margin:0; border:0; overflow:hidden; transition:max-height .35s ease, height .35s ease; }
.faq-item.active .faq-a { max-height:600px; height:auto; }
.faq-content { padding:0 1.5rem 1.5rem; color:var(--text-light); line-height:1.9; }
.faq-line-link { display:inline-flex; align-items:center; gap:.3rem; margin-top:.8rem; color:var(--line-green); font-weight:700; font-size:.9rem; }
.faq-line-link:hover { color:#00b049; }

/* ===== 15. 34資質グリッド ===== */
.s34-wrap { display:flex; flex-direction:column; gap:10px; margin-top:2rem; }
.s34-row  { display:grid; grid-template-columns:140px 1fr; border-radius:16px; overflow:visible; }
.s34-label { display:flex; flex-direction:column; justify-content:center; padding:18px 16px; position:relative; }
.s34-label::after { content:''; position:absolute; right:0; top:14px; bottom:14px; width:1px; background:rgba(255,255,255,.2); }
.s34-cat-en { font-family:var(--f-label); font-size:.52rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.6); margin-bottom:4px; }
.s34-cat-ja { font-family:var(--f-head); font-size:.95rem; font-weight:700; color:#fff; }
.s34-executing   .s34-label { background:var(--executing); }
.s34-influencing .s34-label { background:var(--influencing); }
.s34-relationship .s34-label { background:var(--relationship); }
.s34-strategic   .s34-label { background:var(--strategic); }
.s34-talents { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:14px 18px; }
.s34-executing   .s34-talents { background:rgba(108,63,160,.05); }
.s34-influencing .s34-talents { background:rgba(200,96,10,.05); }
.s34-relationship .s34-talents { background:rgba(24,104,168,.05); }
.s34-strategic   .s34-talents { background:rgba(26,138,74,.05); }
.s34-talents span { font-size:.8rem; font-weight:500; padding:5px 12px; border-radius:50px; border:1.5px solid; display:inline-block; transition:background .2s,color .2s; cursor:default; position:relative; }
.talent[data-tooltip] { cursor:help; }
#talent-tooltip {
  position:fixed;
  background:rgba(46,26,26,.95); color:#fff;
  font-size:.78rem; font-weight:400; line-height:1.7;
  padding:.7rem 1rem; border-radius:10px;
  width:240px; text-align:left;
  pointer-events:none;
  opacity:0; transition:opacity .15s;
  z-index:9999;
  box-shadow:0 4px 20px rgba(0,0,0,.25);
}
.s34-executing   .s34-talents span { color:var(--executing);   border-color:rgba(108,63,160,.3); background:rgba(108,63,160,.04); }
.s34-influencing .s34-talents span { color:var(--influencing); border-color:rgba(200,96,10,.3);  background:rgba(200,96,10,.04); }
.s34-relationship .s34-talents span{ color:var(--relationship);border-color:rgba(24,104,168,.3);  background:rgba(24,104,168,.04); }
.s34-strategic   .s34-talents span { color:var(--strategic);   border-color:rgba(26,138,74,.3);   background:rgba(26,138,74,.04); }
.s34-executing   .s34-talents span:hover { background:var(--executing);   color:#fff; border-color:var(--executing); }
.s34-influencing .s34-talents span:hover { background:var(--influencing); color:#fff; border-color:var(--influencing); }
.s34-relationship .s34-talents span:hover{ background:var(--relationship);color:#fff; border-color:var(--relationship); }
.s34-strategic   .s34-talents span:hover { background:var(--strategic);   color:#fff; border-color:var(--strategic); }

/* ===== 16. サービスカード ===== */
.service-badge { display:inline-block; font-size:.72rem; font-weight:700; padding:.28rem .8rem; border-radius:50px; margin-bottom:.8rem; }
.badge-main    { background:rgba(212,160,23,.15); color:var(--gold); }
.badge-corp    { background:rgba(74,58,26,.1); color:var(--brown); }
.badge-cont    { background:rgba(26,138,74,.1); color:var(--strategic); }
.service-price { font-size:1.6rem; font-weight:700; color:var(--gold); font-family:var(--f-head); margin-bottom:1.4rem; }
.service-price small { font-size:.85rem; color:var(--text-light); font-weight:400; }
.service-details li { padding:.65rem 0; border-bottom:1px solid var(--border); color:var(--text-light); font-size:.92rem; }
.service-details li:last-child { border-bottom:none; }
.service-details li strong { color:var(--brown); }

/* ===== 17. セッションの流れ ===== */
.process-wrap { display:grid; grid-template-columns:repeat(5,1fr); position:relative; gap:0; }
.process-wrap::before { content:''; position:absolute; top:28px; left:10%; right:10%; height:2px; background:linear-gradient(90deg,var(--gold),var(--soft-gold)); z-index:0; }
.process-step { text-align:center; padding:0 .8rem 2rem; position:relative; z-index:1; }
.step-num { width:56px; height:56px; background:var(--gold); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.3rem; font-weight:700; font-family:var(--f-head); margin:0 auto 1rem; box-shadow:0 4px 12px rgba(212,160,23,.3); }
.step-title { font-weight:700; color:var(--brown); margin-bottom:.4rem; font-size:.92rem; }
.step-desc  { font-size:.82rem; color:var(--text-light); line-height:1.65; }

.service-card-icon { width:52px; height:52px; object-fit:contain; display:block; margin:0 auto .8rem; mix-blend-mode:multiply; }

/* ===== 18. 共感・悩みセクション ===== */
.pain-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.pain-card { background:#fff; border-radius:18px; padding:2rem; border:2px solid var(--border); }
.pain-header { display:flex; align-items:center; gap:.8rem; margin-bottom:1.2rem; }
.pain-icon  { font-size:1.8rem; }
.pain-label { font-size:1rem; font-weight:700; color:var(--brown); }
.pain-list li { display:flex; align-items:flex-start; gap:.6rem; color:var(--text-light); font-size:.93rem; padding:.35rem 0; }
.pain-list li::before { content:'…'; color:var(--gold); font-weight:700; flex-shrink:0; }

/* ===== 19. 強み・バリュー ===== */
.value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.value-card { text-align:center; padding:2rem 1.5rem; background:#fff; border-radius:20px; border:2px solid var(--border); }
.value-num  { font-family:var(--f-acct); font-size:3rem; color:var(--gold); opacity:.35; display:block; line-height:1; }
.value-icon { font-size:2.5rem; display:block; margin:-.5rem auto .8rem; }
.value-icon-img { display:block; margin:0 auto 1rem; width:80px; height:80px; object-fit:contain; mix-blend-mode:multiply; }
.value-title{ font-size:1.05rem; font-weight:700; color:var(--brown); margin-bottom:.7rem; }
.value-desc { font-size:.9rem; color:var(--text-light); line-height:1.8; }

/* ===== 20. ブログカード ===== */
.blog-card { background:#fff; border-radius:16px; overflow:hidden; border:2px solid var(--border); transition:all .3s; display:flex; flex-direction:column; }
.blog-card:hover { border-color:var(--gold); box-shadow:0 10px 25px rgba(212,160,23,.12); transform:translateY(-4px); }
.blog-thumb { width:100%; height:180px; background:linear-gradient(135deg,rgba(212,160,23,.12),rgba(212,160,23,.05)); overflow:hidden; position:relative; border-bottom:1px solid var(--border); }
.blog-thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.blog-card:hover .blog-thumb img { transform:scale(1.05); }
.blog-thumb-ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:2.5rem; }
.blog-body { padding:1.4rem; flex-grow:1; display:flex; flex-direction:column; }
.blog-tag   { font-size:.72rem; font-weight:700; color:var(--gold); text-transform:uppercase; letter-spacing:.08em; margin-bottom:.4rem; }
.blog-title { font-weight:700; color:var(--brown); margin-bottom:.6rem; line-height:1.5; font-size:.96rem; }
.blog-excerpt{ color:var(--text-light); font-size:.88rem; flex-grow:1; margin-bottom:1rem; }
.blog-link  { color:var(--gold); font-weight:700; font-size:.88rem; display:inline-flex; align-items:center; gap:.3rem; transition:color .3s; }
.blog-link:hover { color:var(--brown); }

/* ===== 20b. note RSS ブログカード ===== */
.blog-card { text-decoration:none; color:inherit; }
.blog-card-thumb { width:100%; height:180px; background:linear-gradient(135deg,rgba(212,160,23,.12),rgba(212,160,23,.05)); overflow:hidden; border-bottom:1px solid var(--border); }
.blog-card-thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.blog-card:hover .blog-card-thumb img { transform:scale(1.05); }
.blog-card-thumb--empty { display:flex; align-items:center; justify-content:center; font-size:2rem; }
.blog-card-thumb--empty::after { content:'📝'; }
.blog-card-body { padding:1.4rem; flex-grow:1; display:flex; flex-direction:column; gap:.5rem; }
.blog-card-date { font-size:.75rem; color:var(--text-light); font-family:var(--font-en); }
.blog-card-title { font-size:1rem; font-weight:700; line-height:1.5; color:var(--brown); }
.blog-card-excerpt { font-size:.85rem; color:var(--text-light); line-height:1.6; margin-top:auto; }

/* ===== 21. コーチ紹介 ===== */
.profile-grid { display:grid; grid-template-columns:280px 1fr; gap:4rem; align-items:start; }
.profile-img  { width:100%; aspect-ratio:3/4; background:linear-gradient(135deg,rgba(212,160,23,.1),rgba(212,160,23,.03)); border-radius:20px; overflow:hidden; border:2px solid rgba(212,160,23,.2); position:relative; }
.profile-img img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.profile-img .img-ph { position:absolute; inset:0; display:none; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; color:var(--gold); font-size:.85rem; }
.profile-img .img-ph span { font-size:3rem; }
.profile-name { font-size:2rem; margin-bottom:.25rem; }
.profile-role { color:var(--light-brown); font-weight:600; margin-bottom:1.3rem; }
.profile-tags { display:flex; flex-wrap:wrap; gap:.7rem; margin-bottom:1.5rem; }
.profile-tag  { background:rgba(212,160,23,.1); color:var(--brown); border:1px solid var(--gold); padding:.4rem .9rem; border-radius:50px; font-size:.82rem; }
.profile-text { color:var(--text-dark); line-height:1.95; }
.cred-list    { display:flex; flex-direction:column; gap:.9rem; margin-top:1.5rem; }
.cred-item    { display:flex; align-items:flex-start; gap:.8rem; }
.cred-icon    { width:32px; height:32px; background:var(--gold); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.85rem; flex-shrink:0; }
.cred-text strong { color:var(--brown); display:block; margin-bottom:.15rem; }
.cred-text    { color:var(--text-light); font-size:.9rem; }

/* ===== 22. お問い合わせ ===== */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; max-width:1000px; margin:0 auto; }
.contact-card-head { margin-bottom:1.5rem; }
.contact-card-head h3 { margin-bottom:.2rem; }
.contact-sub  { color:var(--text-light); font-style:italic; font-size:.9rem; }
.form-wrap    { display:flex; flex-direction:column; gap:1.1rem; }
.form-group   { display:flex; flex-direction:column; gap:.4rem; }
.form-group label { font-weight:600; color:var(--brown); font-size:.9rem; }
.req          { color:var(--gold); font-size:.78rem; margin-left:.3rem; }
.form-group input, .form-group select, .form-group textarea {
  padding:.85rem 1rem; border:2px solid var(--border); border-radius:10px;
  font-family:var(--f-body); font-size:.95rem; background:#fff;
  transition:border-color .3s;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline:none; border-color:var(--gold); }
.form-group textarea { min-height:110px; resize:vertical; }
.form-note    { font-size:.8rem; color:var(--text-light); text-align:center; margin-top:.4rem; }
.line-card-benefits { display:flex; flex-direction:column; gap:.9rem; margin-bottom:1.5rem; }
.lcb-item     { display:flex; align-items:flex-start; gap:.8rem; }
.lcb-num      { width:28px; height:28px; background:var(--gold); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.82rem; font-weight:700; flex-shrink:0; }
.lcb-text strong { color:var(--brown); display:block; }
.lcb-text span { font-size:.86rem; color:var(--text-light); }

/* ===== 23. フッター ===== */
.footer-cta { background:linear-gradient(135deg,#FFF9E6,#FFF5D6); border-top:1px solid rgba(212,160,23,.15); padding:2.5rem 2rem; text-align:center; }
.footer-cta p { font-weight:600; margin-bottom:1rem; color:var(--brown); }
footer { background:var(--brown); color:var(--cream); padding:3rem 2rem 2rem; text-align:center; }
footer .logo  { color:var(--cream); display:block; margin-bottom:2rem; }
.foot-nav { display:flex; justify-content:center; flex-wrap:wrap; gap:1.5rem 2rem; margin-bottom:2rem; }
.foot-nav a   { color:rgba(255,254,247,.75); font-size:.88rem; transition:color .3s; }
.foot-nav a:hover { color:var(--gold); }
.foot-socials { display:flex; justify-content:center; gap:1rem; margin-bottom:2rem; }
.soc-icon { width:40px; height:40px; background:rgba(212,160,23,.2); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.1rem; transition:background .3s; }
.soc-icon:hover { background:var(--gold); }
.foot-copy { font-size:.83rem; color:rgba(212,160,23,.75); }

/* ===== 24. スクロールインジケーター ===== */
.scroll-ind { text-align:center; margin-top:2.5rem; animation:bounce 2s infinite; }
.scroll-ind svg { width:28px; height:28px; color:var(--gold); }
@keyframes bounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(8px)} }

/* ===== 25. CTA セクション ===== */
.cta-sec { text-align:center; padding:4rem 2rem; }
.cta-sec h2 { margin-bottom:.8rem; }
.cta-sec p  { color:var(--text-light); max-width:580px; margin:0 auto 2rem; }
.cta-btns   { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* ===== 26. 統計 ===== */
.stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; text-align:center; padding:3rem 2rem; background:#fff; border-radius:20px; border:2px solid var(--border); }
.stat-num  { font-family:var(--f-acct); font-size:3rem; font-weight:700; color:var(--gold); display:block; line-height:1; margin-bottom:.4rem; }
.stat-label{ font-size:.86rem; color:var(--text-light); }

/* ===== 27. レスポンシブ ===== */
@media (max-width:1024px) {
  .process-wrap { grid-template-columns:repeat(3,1fr); }
  .process-wrap::before { display:none; }
}
@media (max-width:900px) {
  .sec { padding:3.5rem 1.5rem; }
  .nav-links {
    display:none; flex-direction:column; position:absolute;
    top:72px; left:0; right:0;
    background:var(--cream); padding:1.5rem 2rem;
    gap:1.2rem; border-bottom:2px solid var(--border);
    box-shadow:0 4px 10px rgba(0,0,0,.06);
  }
  .nav-links.active { display:flex; }
  .hamburger { display:flex; }
  .grid-3, .grid-2, .pain-grid, .value-grid { grid-template-columns:1fr; }
  .profile-grid { grid-template-columns:1fr; }
  .profile-img  { width:220px; margin:0 auto; }
  .contact-grid { grid-template-columns:1fr; }
  .stat-grid    { grid-template-columns:repeat(2,1fr); }
  .process-wrap { grid-template-columns:1fr; }
  .s34-row  { grid-template-columns:1fr; }
  .s34-label::after { display:none; }
}
@media (max-width:600px) {
  /* 文字サイズ */
  h1 { font-size:1.55rem; line-height:1.5; }
  h2 { font-size:1.2rem; line-height:1.55; }
  h3 { font-size:1.02rem; line-height:1.55; }

  /* 日本語折り返し最適化（文言変更なし・表示のみ改善） */
  h1, h2, h3, h4, p, li, span, a, div,
  .sec-lead, .page-hero p, .hero-desc, .hero-eyecatch,
  .testimonial-text, .faq-content, .profile-text,
  .value-desc, .audience-desc, .step-desc, .story-year,
  .service-details li, .blog-title, .blog-excerpt {
    word-break: auto-phrase;
    overflow-wrap: anywhere;
    line-break: strict;
    text-wrap: pretty;
  }
  /* 英字ラベル類は通常折り返し */
  .label, .foot-copy, .hero-sub, .s34-cat-en { word-break: normal; overflow-wrap: normal; }

  /* セクション余白 */
  .sec { padding:2.8rem 1.2rem; }
  .sec-inner { padding:0; }
  .container { padding:0 1.2rem; }

  /* ページヒーロー */
  .page-hero { padding:5rem 1.2rem 2.5rem; }
  .page-hero p { font-size:.9rem; }

  /* ボタン */
  .btn { padding:.85rem 1.5rem; font-size:.9rem; }
  .cta-btns { flex-direction:column; }
  .cta-btns .btn { width:100%; }

  /* 統計グリッド */
  .stat-grid { grid-template-columns:repeat(2,1fr); gap:1rem; }
  .stat-num  { font-size:2.2rem; }

  /* プロフィール */
  .profile-grid { grid-template-columns:1fr !important; }
  .profile-img  { width:180px !important; margin:0 auto 1.5rem !important; }
  .profile-name { font-size:1.4rem; }
  .profile-role { font-size:.88rem; }

  /* フッターナビ縦並び */
  .foot-nav { flex-direction:column; align-items:center; gap:.9rem; }

  /* ストレングス34タグ */
  .s34-talents span { font-size:.75rem; padding:4px 10px; }
  .s34-label { padding:14px 12px; }

  /* お問い合わせ */
  .contact-grid { gap:1.5rem; }

  /* セクションリード文 */
  .sec-lead { font-size:.88rem; margin-bottom:2rem; }

  /* FAQアコーディオン（.faq-aにpaddingを付けると閉じた状態で中身がはみ出すため、必ず.faq-contentに付ける） */
  .faq-q { padding:1rem 1.2rem; font-size:.92rem; }
  .faq-a { font-size:.88rem; }
  .faq-content { padding:0 1.2rem 1.2rem; font-size:.88rem; }

  /* ギャラリーカード */
  .gallery-card { aspect-ratio:1/1; }

  /* ブログカード */
  .blog-thumb, .blog-card-thumb { height:150px; }

  /* バナー */
  .gold-banner, .line-banner { padding:1.8rem 1.2rem; }
  .gold-banner h3, .line-banner h3 { font-size:1.1rem; }

  /* LINE特典バナー */
  .line-benefits { gap:1.2rem; }

  /* カード余白・テキストはみ出し防止 */
  .card { padding:1.5rem; overflow-wrap:anywhere; word-break:break-word; }
  .testimonial-card { padding:1.5rem; overflow-wrap:anywhere; word-break:break-word; }
  .sf-overview-card { padding:1.2rem; overflow-wrap:anywhere; word-break:break-word; }
  .sf-step { padding:1.5rem 1rem; overflow-wrap:anywhere; word-break:break-word; }
  .cred-item { overflow-wrap:anywhere; word-break:break-word; }
  .voice-card, .works-card { overflow-wrap:anywhere; word-break:break-word; }

  /* ページヒーローh1 */
  .page-hero h1 { font-size:1.6rem; }

  /* positioning-block */
  .positioning-block h3 { font-size:1.15rem; word-break:auto-phrase; line-break:strict; }
  .positioning-block p  { font-size:.88rem; }
  .positioning-block    { padding:2rem 1.3rem !important; }

  /* CTAセクション（インラインpadding上書き） */
  .cta-sec { padding:3rem 1.3rem !important; }
  .cta-sec h2 { font-size:1.2rem; }
  .cta-sec p  { font-size:.9rem; }

  /* セクション内のインライン margin-top を持つ要素を想定 */
  .sec > .sec-inner { padding:0 !important; }
  .audience-card .btn { width:100%; font-size:.85rem; padding:.75rem 1rem; }

  /* グリッド3列強制縦並び（600px以下） */
  .grid-3 { grid-template-columns:1fr !important; }

  /* FAQの質問部分 */
  .faq-q, .faq-a { word-break:auto-phrase; line-break:strict; overflow-wrap:anywhere; }

  /* 画像はみ出し防止 */
  img { max-width:100%; height:auto; }

  /* トップレベル body padding - 横overflow防止 */
  html, body { overflow-x:hidden; }
}
