/* ============================================================
   08 MEMBERS / 09 FAQ / 10 COMPANY / 11 CONTACT
   PPTX のスクショが無いセクション。既存の実測トンマナに合わせて組む。
     背景        白 #fff ↔ クリーム #F5F1E8 の交互
     点線        SVG・太さ3px・ダッシュ11px/ギャップ8px・#302F32
     角丸        12〜15px（実測）
     黒ベタ      純黒 #000 × 純白（実測）
     見出し      Zen Antique Soft / 本文 Zen Old Mincho
   ============================================================ */

/* 未記入の箇所。原稿が入るまで一目で分かるようにしておく */
.todo{
  color:#8A8F96; font-style:normal;
  border-bottom:1px dashed #B9B4AA; padding-bottom:.1em;
}
.todo::before{ content:"要記入 "; font-size:.85em; letter-spacing:.08em; color:#B0A99C; }

/* ---------- 08 MEMBERS ---------- */
.members{ background:#fff; }
.members .lead{ margin-top:1.2vw; max-width:62vw; }
.mlist{ margin-top:3vw; display:grid; grid-template-columns:1fr 1fr; gap:1.6vw; }

.m{
  border-radius:.586vw;
  background:#fff;
  padding:1.6vw 1.8vw;
  display:flex; gap:1.8vw; align-items:center;
}
.m .mphoto{ width:10vw; flex:none; }
.m .mphoto img{ width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:.586vw; }
.m .mrole{
  display:inline-block; background:#000; color:#fff;
  font-family:var(--serif-en); font-size:.94vw; letter-spacing:.1em;
  line-height:1; padding:.42em .8em;
}
.m .mname{
  font-family:var(--antique); font-size:2.1vw; font-weight:400;
  margin:.9vw 0 0; line-height:1.2;
}
.m .mname small{
  display:block; font-family:var(--serif-en); font-size:.86vw;
  letter-spacing:.14em; color:var(--muted); margin-top:.5vw;
}
.m .mword{
  font-size:1.25vw; font-weight:700; line-height:1.6;
  margin:1.2vw 0 1.4vw; color:var(--ink);
}
.m dl{ display:grid; grid-template-columns:6.4vw 1fr; gap:.7vw 1.4vw; }
.m dt{
  font-family:var(--serif-en); font-size:.9vw; letter-spacing:.06em;
  color:var(--sub); padding-top:.25vw;
}
.m dd{ font-size:1.02vw; line-height:1.85; color:var(--sub); font-weight:600; }

/* 3人目の枠。原稿と写真が揃うまで空けておく */
.m.empty{ align-items:center; justify-content:center; min-height:12vw; }
.m.empty p{ font-size:1.05vw; color:var(--muted); }

/* ---------- 09 FAQ ---------- */
.faq{ background:#F5F1E8; }
.qa{ margin-top:2.4vw; border-top:1px solid var(--line); }
.qa details{ border-bottom:1px solid var(--line); }
.qa summary{
  list-style:none; cursor:pointer;
  padding:1.5vw 3.2vw 1.5vw 0; position:relative;
  font-size:1.32vw; font-weight:700; line-height:1.5;
}
.qa summary::-webkit-details-marker{ display:none; }
.qa summary::before{                       /* Q の見出し記号 */
  content:"Q"; font-family:var(--serif-en); font-size:1.05vw;
  color:var(--muted); margin-right:1.1vw; letter-spacing:.06em;
}
.qa summary::after{                        /* ＋／− */
  content:""; position:absolute; right:.4vw; top:50%;
  width:1.1vw; height:1px; background:var(--ink);
  box-shadow:0 0 0 0 transparent;
}
.qa summary .plus{
  position:absolute; right:.94vw; top:50%; width:1px; height:1.1vw;
  background:var(--ink); transform:translateY(-50%);
  transition:transform .2s, opacity .2s;
}
.qa details[open] summary .plus{ transform:translateY(-50%) rotate(90deg); opacity:0; }
.qa .a{
  padding:0 3.2vw 1.8vw 2.5vw;
  font-size:1.08vw; line-height:1.95; color:var(--sub); font-weight:600;
}
.qa .a strong{ color:var(--ink); }
.qa .a .inline-cta{
  display:inline-block; margin-top:.9vw;
  font-weight:700; color:var(--ink);
  border-bottom:1px solid var(--ink); text-decoration:none;
}

/* ---------- 10 COMPANY ---------- */
.company{ background:#fff; }
.cwrap{ margin-top:2.6vw; display:flex; gap:3vw; align-items:flex-start; }
.ctable{ flex:1; border-collapse:collapse; }
.ctable th,.ctable td{
  text-align:left; vertical-align:top;
  padding:1.25vw .6vw; border-bottom:1px solid var(--line);
  font-size:1.08vw; line-height:1.8;
}
.ctable tr:first-child th,.ctable tr:first-child td{ border-top:1px solid var(--line); }
.ctable th{
  width:12vw; font-weight:700; color:var(--ink);
  font-family:var(--serif-en); letter-spacing:.04em;
}
.ctable td{ color:var(--sub); font-weight:600; }
.cphoto{ width:34vw; flex:none; }
.cphoto img{ width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:.586vw; }  /* 素材実寸 1535x1024 = 3:2 */

/* ---------- 11 CONTACT ---------- */
.contact{ background:#F5F1E8; }
.contact .lead{ margin-top:1.3vw; max-width:58vw; }
.badges{ list-style:none; display:flex; gap:.7vw; margin-top:1.6vw; }
.badges li{
  border:1px solid var(--line); border-radius:2vw;
  padding:.45vw 1.2vw; font-size:.98vw; color:var(--sub); font-weight:600;
}

.hp{ display:none; }        /* Netlify のスパム判定用フィールド。人には見せない */

.entries{ margin-top:2.8vw; display:flex; gap:1.6vw; align-items:stretch; }
.entry{
  flex:1; border-radius:.586vw; padding:2.2vw 2.2vw 2.4vw;
  display:flex; flex-direction:column;
}
.entry.light{ background:#fff; }
.entry.dark{ background:var(--btn); color:var(--paper); }

.entry .etag{
  font-family:var(--serif-en); font-size:.9vw; letter-spacing:.12em;
  color:var(--muted); margin-bottom:.9vw;
}
.entry.dark .etag{ color:#A9A6A0; }
.entry h4{ font-family:var(--antique); font-size:1.72vw; font-weight:400; line-height:1.35; }
.entry .enote{ font-size:1.0vw; line-height:1.8; color:var(--sub); font-weight:600; margin-top:.9vw; }
.entry.dark .enote{ color:#CFCCC6; }

.entry .fields{ margin-top:1.6vw; display:flex; flex-direction:column; gap:.8vw; }
.entry label{ font-size:.94vw; font-weight:700; }
.entry label span{ color:#B4453C; margin-left:.3em; }   /* 必須マーク */
.entry .agree span{ color:inherit; margin-left:0; }
.entry input,.entry textarea{
  width:100%; margin-top:.35vw;
  font-family:inherit; font-size:1.0vw; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:.35vw;
  padding:.75vw .9vw;
}
.entry textarea{ resize:vertical; min-height:7vw; }
.entry .agree{
  display:flex; gap:.6vw; align-items:center;
  font-size:.92vw; font-weight:600; margin-top:.4vw;
}
.entry .agree input[type="checkbox"]{     /* 上の input 指定（width:100%）を打ち消す */
  width:1.1vw; height:1.1vw; margin:0; padding:0; flex:none; accent-color:var(--ink);
}
.entry .agree a{ color:inherit; text-decoration:underline; text-underline-offset:.2em; }
.entry.dark .agree a{ color:#fff; }
.entry .submit{
  margin-top:auto; padding-top:1.6vw;
}
.entry .submit button{
  width:100%; height:4.2vw; border:0; border-radius:.47vw; cursor:pointer;
  font-family:inherit; font-size:1.16vw; font-weight:700;
}
.entry.light .submit button{ background:var(--btn); color:#fff; }
.entry.dark  .submit button{ background:#fff; color:var(--ink); }

/* 資料DL準備中の表示。フォームと同じ箱に、押せないバッジを置く */
.entry.prep{ justify-content:center; }
.entry.prep .enote{ margin-top:1.2vw; }
.prep-badge{
  margin-top:2.2vw;
  display:flex; align-items:center; justify-content:center;
  height:4.2vw; border:1px dashed var(--line); border-radius:.47vw;
  font-size:1.16vw; font-weight:700; color:var(--muted); letter-spacing:.08em;
}

/* ---------- スマホ ---------- */
@media (max-width:900px){
  .members .lead,.contact .lead{ max-width:none; }
  .mlist{ grid-template-columns:1fr; gap:6vw; margin-top:8vw; }
  .m{ flex-direction:column; gap:5vw; padding:6vw 5vw; border-radius:3vw; }
  .m .mphoto{ width:44vw; }
  .m .mphoto img{ border-radius:3vw; }
  .m .mrole{ font-size:3vw; }
  .m .mname{ font-size:6.4vw; margin-top:3vw; }
  .m .mname small{ font-size:3vw; margin-top:2vw; }
  .m .mword{ font-size:4.2vw; margin:4vw 0 5vw; }
  .m dl{ grid-template-columns:1fr; gap:1.2vw 0; }
  .m dt{ font-size:3.1vw; margin-top:3.5vw; }
  .m dd{ font-size:3.5vw; }
  .m.empty{ min-height:auto; }
  .m.empty p{ font-size:3.5vw; }

  .qa{ margin-top:7vw; }
  .qa summary{ font-size:4.2vw; padding:5vw 9vw 5vw 0; }
  .qa summary::before{ font-size:3.4vw; margin-right:3vw; }
  .qa summary::after{ width:3.6vw; right:1vw; }
  .qa summary .plus{ right:2.8vw; height:3.6vw; }
  .qa .a{ font-size:3.5vw; padding:0 2vw 5vw 7vw; }

  .cwrap{ flex-direction:column; gap:7vw; margin-top:7vw; }
  .ctable th,.ctable td{ font-size:3.4vw; padding:3.4vw 1vw; }
  .ctable th{ width:26vw; }
  .cphoto{ width:100%; }
  .cphoto img{ border-radius:3vw; }

  .badges{ flex-wrap:wrap; gap:2vw; margin-top:5vw; }
  .badges li{ font-size:3.1vw; padding:1.6vw 4vw; border-radius:6vw; }
  .entries{ flex-direction:column; gap:5vw; margin-top:8vw; }
  .entry{ padding:7vw 6vw; border-radius:3vw; }
  .entry .etag{ font-size:3vw; }
  .entry h4{ font-size:5.6vw; }
  .entry .enote{ font-size:3.4vw; }
  .entry label{ font-size:3.3vw; }
  .entry input,.entry textarea{ font-size:3.6vw; padding:3vw 3.4vw; border-radius:1.6vw; }
  .entry textarea{ min-height:28vw; }
  .entry .agree{ font-size:3.2vw; }
  .entry .submit button{ height:14vw; font-size:4vw; border-radius:2vw; }
  .prep-badge{ height:14vw; font-size:4vw; border-radius:2vw; }
}
