/* もふプレスの「やわらかさ」（丸文字・大きめ角丸・やさしい影）は共有するが、
   色はカワノメソッド独自のまま保つ。もふプレスのPR枠から飛んだときに
   自社コンテンツではなく別サイトの広告として見えるようにするため。 */
:root{
  --ink:#4a443c;
  --ink-soft:#857d72;
  --cream:#fdfaf4;
  --cream-deep:#f7f0e3;
  --white:#fff;
  --green:#4a8b6f;
  --green-deep:#2f6b55;
  --green-pale:#eef6f1;
  --accent:#e0915a;
  --accent-pale:#fdf3ea;
  --line:#ece3d5;
  --radius:20px;
  --radius-sm:14px;
  --shadow:0 14px 34px rgba(150,140,120,.14);
  --shadow-sm:0 6px 18px rgba(150,140,120,.10);
  --maxw:920px;
  --display:"Zen Maru Gothic","Kosugi Maru","Noto Sans JP",sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Zen Kaku Gothic New",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.9;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,ul,ol{margin:0}
ul{padding:0;list-style:none}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,248,242,.94);
  backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  max-width:var(--maxw);margin:0 auto;padding:12px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.brand{display:flex;flex-direction:column;line-height:1.35}
.brand-name{font-weight:900;font-size:.98rem;letter-spacing:.04em;color:var(--green-deep)}
.brand-sub{font-size:.72rem;color:var(--ink-soft)}
.header-cta{
  flex-shrink:0;
  background:var(--green);color:#fff;font-weight:700;font-size:.84rem;
  padding:9px 20px;border-radius:999px;
}
.header-cta:hover{background:var(--green-deep)}

/* ---------- shared ---------- */
.section{padding:72px 20px}
.inner{max-width:var(--maxw);margin:0 auto}
.sec-eyebrow{
  display:block;text-align:center;color:var(--green);
  font-weight:700;font-size:.82rem;letter-spacing:.14em;margin-bottom:10px;
}
.sec-title{
  text-align:center;font-weight:900;font-size:1.62rem;line-height:1.55;
  color:var(--green-deep);margin-bottom:14px;
  word-break:keep-all;overflow-wrap:anywhere;
}
.sec-lead{text-align:center;color:var(--ink-soft);font-size:.95rem;margin-bottom:40px}
.sec-note{margin-top:26px;text-align:center;font-size:.82rem;color:var(--ink-soft)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--accent);color:#fff;font-weight:700;font-size:1.02rem;
  padding:17px 46px;border-radius:999px;
  box-shadow:0 10px 24px rgba(217,130,68,.28);
  transition:transform .15s ease,box-shadow .15s ease;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(217,130,68,.34)}
.btn-wrap{text-align:center}
.btn-note{margin-top:14px;font-size:.82rem;color:var(--ink-soft)}

/* ---------- hero ---------- */
.hero{
  background:linear-gradient(170deg,var(--green-pale) 0%,var(--cream) 72%);
  padding:64px 20px 76px;text-align:center;
}
.hero-eyebrow{
  display:inline-block;background:var(--white);border:1px solid var(--line);
  color:var(--green);font-weight:700;font-size:.79rem;
  padding:7px 18px;border-radius:999px;margin-bottom:26px;
}
.hero-title{
  font-weight:900;font-size:2.35rem;line-height:1.4;color:var(--green-deep);
  margin-bottom:22px;word-break:keep-all;overflow-wrap:anywhere;
}
.hero-lead{color:var(--ink-soft);font-size:1.02rem;margin-bottom:34px}
.hero-note{margin-top:16px;font-size:.85rem;color:var(--ink-soft)}

/* ---------- empathy ---------- */
.empathy{background:var(--white);padding:70px 20px}
.empathy-inner{max-width:680px;margin:0 auto;text-align:center}
.empathy p{font-size:1.05rem;line-height:2.1;margin-bottom:20px;color:var(--ink)}
/* 最終セクションの .closing（濃緑背景）と衝突しないよう別名にしている */
.empathy-closing{
  margin-top:34px;padding-top:30px;border-top:1px solid var(--line);
  font-weight:700;color:var(--green-deep);font-size:1.1rem;line-height:2;
}

/* ---------- cards ---------- */
.card-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 24px;
}
.card-label{font-weight:700;color:var(--green-deep);font-size:1.02rem;margin-bottom:10px}
.card-desc{color:var(--ink-soft);font-size:.9rem;line-height:1.85}

/* ---------- learn list ---------- */
.learn-list{display:grid;gap:14px}
.learn-item{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 24px;display:flex;gap:18px;align-items:flex-start;
}
.learn-num{
  flex-shrink:0;width:32px;height:32px;border-radius:50%;
  background:var(--green-pale);color:var(--green-deep);
  font-weight:900;font-size:.86rem;
  display:flex;align-items:center;justify-content:center;margin-top:2px;
}
.learn-label{font-weight:700;color:var(--green-deep);margin-bottom:6px}
.learn-desc{color:var(--ink-soft);font-size:.9rem;line-height:1.85}

/* ---------- instructor ---------- */
.instructor{background:var(--green-pale)}
.instructor-card{
  background:var(--white);border-radius:var(--radius);padding:36px 30px;
  border:1px solid var(--line);
}
.instructor-head{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-bottom:24px}
.instructor-photo{
  width:112px;height:112px;border-radius:50%;object-fit:cover;flex-shrink:0;
  background:var(--cream-deep);
}
.instructor-photo-blank{
  width:112px;height:112px;border-radius:50%;flex-shrink:0;
  background:var(--cream-deep);border:1px dashed var(--line);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft);font-size:.72rem;text-align:center;line-height:1.5;
}
.instructor-name{font-weight:900;font-size:1.42rem;color:var(--green-deep);line-height:1.4}
.instructor-reading{font-size:.78rem;color:var(--ink-soft);margin-bottom:8px}
.instructor-role{font-size:.92rem;color:var(--ink-soft)}
.instructor-highlight{
  background:var(--accent-pale);border-left:3px solid var(--accent);
  padding:16px 20px;border-radius:8px;margin-bottom:24px;
}
.instructor-highlight strong{display:block;color:var(--ink);font-size:.98rem;margin-bottom:4px}
.instructor-highlight span{font-size:.86rem;color:var(--ink-soft)}
.career{display:grid;gap:9px}
.career li{
  font-size:.88rem;color:var(--ink-soft);padding-left:18px;position:relative;line-height:1.8;
}
.career li::before{
  content:"";position:absolute;left:0;top:.75em;
  width:6px;height:6px;border-radius:50%;background:var(--green);
}

/* ---------- timetable ---------- */
.timetable{display:grid;gap:0;max-width:460px;margin:0 auto}
.tt-row{display:flex;gap:20px;padding:14px 4px;border-bottom:1px dashed var(--line)}
.tt-row:last-child{border-bottom:none}
.tt-time{font-weight:700;color:var(--green-deep);width:70px;flex-shrink:0;font-size:.95rem}
.tt-label{color:var(--ink-soft);font-size:.93rem}

/* ---------- schedule ---------- */
.schedule{background:var(--white)}
.sched-list{display:grid;gap:14px}
.sched-item{
  display:flex;align-items:center;gap:20px;
  border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 24px;background:var(--cream);
  transition:border-color .15s ease,transform .15s ease;
}
.sched-item:hover{border-color:var(--green);transform:translateY(-2px)}
.sched-date{flex-shrink:0;text-align:center;min-width:76px}
.sched-md{font-weight:900;font-size:1.36rem;color:var(--green-deep);line-height:1.2}
.sched-year{font-size:.7rem;color:var(--ink-soft)}
.sched-body{flex:1;min-width:0}
.sched-region{font-weight:700;font-size:1.05rem;margin-bottom:3px}
.sched-city{
  margin-left:9px;font-size:.86rem;font-weight:500;color:var(--ink-soft);
}
.sched-city::before{content:"／";margin-right:9px;color:var(--line)}
.sched-venue{font-size:.83rem;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sched-extra{
  margin-top:7px;display:inline-block;font-size:.79rem;font-weight:700;
  color:var(--accent);background:var(--accent-pale);
  padding:3px 11px;border-radius:6px;line-height:1.7;
}
.sched-right{flex-shrink:0;text-align:right}
.sched-price{font-weight:700;color:var(--ink);font-size:1rem}
.sched-go{font-size:.78rem;color:var(--green);font-weight:700}
.tag{
  display:inline-block;font-size:.68rem;font-weight:700;padding:2px 9px;
  border-radius:999px;margin-left:8px;vertical-align:middle;
}
.tag-online{background:var(--green-pale);color:var(--green-deep)}
.tag-discount{background:var(--accent-pale);color:var(--accent)}
.tag-sold{background:#efeae2;color:var(--ink-soft)}
.sched-item.is-sold{opacity:.55}
.sched-empty{
  text-align:center;color:var(--ink-soft);background:var(--cream);
  border:1px dashed var(--line);border-radius:var(--radius);padding:38px 24px;
}

/* ---------- flow ---------- */
.flow-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.flow-card{text-align:center;padding:28px 22px;background:var(--white);border-radius:var(--radius);border:1px solid var(--line)}
.flow-num{
  font-weight:900;color:var(--accent);font-size:.9rem;letter-spacing:.12em;margin-bottom:10px;
}
.flow-label{font-weight:700;color:var(--green-deep);margin-bottom:8px}
.flow-desc{font-size:.86rem;color:var(--ink-soft);line-height:1.8}

/* ---------- next step ---------- */
.next-step{background:var(--cream-deep)}
.step-list{display:grid;gap:14px}
.step-item{background:var(--white);border-radius:var(--radius);padding:22px 24px;border:1px solid var(--line)}
.step-label{font-weight:700;color:var(--green-deep);margin-bottom:6px}
.step-desc{font-size:.88rem;color:var(--ink-soft);line-height:1.85}

/* ---------- faq ---------- */
.faq-list{display:grid;gap:12px}
.faq-item{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.faq-item summary{
  cursor:pointer;list-style:none;padding:20px 24px;font-weight:700;
  display:flex;gap:14px;align-items:flex-start;color:var(--green-deep);font-size:.98rem;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before{content:"Q";color:var(--accent);font-weight:900;flex-shrink:0}
.faq-item[open] summary{border-bottom:1px solid var(--line)}
.faq-a{padding:18px 24px 22px;color:var(--ink-soft);font-size:.9rem;line-height:1.9}

/* ---------- closing ---------- */
.closing{
  background:linear-gradient(170deg,var(--green) 0%,var(--green-deep) 100%);
  color:#fff;text-align:center;padding:76px 20px;
}
.closing .sec-title{color:#fff}
.closing .sec-lead{color:rgba(255,255,255,.82)}

/* ---------- footer ---------- */
.site-footer{background:var(--white);border-top:1px solid var(--line);padding:44px 20px}
.footer-inner{max-width:var(--maxw);margin:0 auto;text-align:center}
.footer-brand{font-weight:900;color:var(--green-deep);margin-bottom:6px}
.footer-note{font-size:.84rem;color:var(--ink-soft);margin-bottom:20px}
.footer-disclaimer{
  font-size:.76rem;color:var(--ink-soft);line-height:1.9;
  max-width:620px;margin:0 auto 22px;text-align:left;
  background:var(--cream);border-radius:10px;padding:16px 18px;
}
.copyright{font-size:.74rem;color:var(--ink-soft)}

@media (max-width:600px){
  body{font-size:15px}
  .section{padding:54px 18px}
  .hero{padding:48px 18px 58px}
  .hero-title{font-size:1.78rem}
  .sec-title{font-size:1.32rem}
  .empathy p{font-size:.98rem;line-height:2}
  .empathy-closing{font-size:1.02rem}
  .instructor-card{padding:28px 20px}
  .instructor-head{gap:18px}
  .sched-item{gap:14px;padding:18px 16px;flex-wrap:wrap}
  .sched-right{text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}
  .btn{width:100%;padding:16px 24px}
}

/* ---------- GIFT（LINE特典。中身は載せない） ---------- */
.gift{background:var(--accent-pale)}
.gift-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-bottom:28px}
.gift-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px 24px}
.gift-label{font-weight:700;color:var(--green-deep);font-size:1.02rem;margin-bottom:8px}
.gift-desc{color:var(--ink-soft);font-size:.89rem;line-height:1.85}
.gift-how{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;
  background:var(--white);border:1px dashed var(--line);border-radius:999px;
  padding:14px 26px;margin:0 auto 26px;width:fit-content;
  font-size:.9rem;color:var(--ink);
}
.gift-step{
  width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;
  font-size:.74rem;font-weight:900;display:inline-flex;align-items:center;justify-content:center;
}
.gift-arrow{color:var(--line);font-weight:900}
@media (max-width:600px){
  .gift-how{border-radius:14px;padding:14px 18px;font-size:.85rem}
}

/* ---------- SPECIAL（その回だけのゲスト講師） ---------- */
.guest{background:var(--cream-deep)}
.guest-card{
  max-width:620px;margin:0 auto;background:var(--white);
  border:1px solid var(--line);border-radius:var(--radius);padding:30px 30px;
}
.guest-head{text-align:center;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.guest-name{font-weight:900;font-size:1.32rem;color:var(--green-deep);line-height:1.4;margin-bottom:6px}
.guest-role{font-size:.9rem;color:var(--ink-soft)}
.guest-creds{display:grid;gap:9px}
.guest-creds li{
  font-size:.88rem;color:var(--ink-soft);padding-left:18px;position:relative;line-height:1.8;
}
.guest-creds li::before{
  content:"";position:absolute;left:0;top:.75em;
  width:6px;height:6px;border-radius:50%;background:var(--accent);
}
@media (max-width:600px){ .guest-card{padding:24px 20px} }

/* ============================================================
   やわらかさブロック（後勝ちで上書き）
   もふプレスと同じ「丸文字・大きめ角丸・やさしい影」の質感を共有する。
   色は独自のままなので、並べても別サイトに見える。
   ============================================================ */

/* --- 丸文字を見出しと数字に --- */
.brand-name,.sec-eyebrow,.sec-title,.hero-title,.hero-eyebrow,
.card-label,.learn-label,.gift-label,.step-label,.flow-label,.flow-num,
.instructor-name,.guest-name,.sched-md,.sched-region,.tt-time,
.empathy-closing,.footer-brand,.btn,.header-cta,.pill-link,
.faq-item summary,.gift-how,.learn-num,.gift-step,.sched-extra{
  font-family:var(--display);
}
.hero-title{font-weight:900;letter-spacing:.01em}
.sec-title{letter-spacing:.01em}

/* --- 枠線を薄くして影でやわらかく浮かせる --- */
.card,.learn-item,.step-item,.gift-card,.faq-item,
.instructor-card,.guest-card,.flow-card{
  border-color:transparent;
  box-shadow:var(--shadow-sm);
}
.card:hover,.learn-item:hover,.gift-card:hover,.flow-card:hover{
  box-shadow:var(--shadow);
  transform:translateY(-2px);
}
.card,.learn-item,.step-item,.gift-card,.flow-card{
  transition:transform .18s ease,box-shadow .18s ease;
}
.instructor-card,.guest-card{box-shadow:var(--shadow)}

.sched-item{
  border-color:transparent;
  background:var(--white);
  box-shadow:var(--shadow-sm);
}
.sched-item:hover{box-shadow:var(--shadow);border-color:transparent}
.schedule{background:var(--cream)}

/* --- アイキャッチの見出しラベルに小さな丸を添える（腸内細菌のイメージ） --- */
.sec-eyebrow{position:relative;display:flex;align-items:center;justify-content:center;gap:10px}
.sec-eyebrow::before,.sec-eyebrow::after{
  content:"";width:16px;height:6px;border-radius:999px;
  background:
    radial-gradient(circle 3px at 3px 3px,var(--green) 98%,transparent 100%),
    radial-gradient(circle 2px at 10px 3px,var(--accent) 98%,transparent 100%);
  opacity:.75;
}

/* --- ボタンをぷっくりさせる --- */
.btn{
  border-radius:999px;padding:18px 48px;font-weight:700;
  box-shadow:0 10px 22px rgba(224,145,90,.30);
}
.btn:hover{box-shadow:0 15px 30px rgba(224,145,90,.36)}
.header-cta{box-shadow:0 6px 14px rgba(74,139,111,.24)}

/* --- ヒーローをやさしいグラデーションに --- */
.hero{
  background:linear-gradient(172deg,var(--green-pale) 0%,#fdf7ec 58%,var(--cream) 100%);
}
.hero-eyebrow{box-shadow:var(--shadow-sm);border-color:transparent}

/* --- 数字バッジを丸く大きく --- */
.learn-num{width:36px;height:36px;font-size:.9rem}
.gift-step{width:24px;height:24px}

/* --- FAQ: 開けると分かるように矢印を添える --- */
.faq-item summary{align-items:center}
.faq-item summary::after{
  content:"";
  margin-left:auto;flex-shrink:0;
  width:10px;height:10px;
  border-right:2.5px solid var(--accent);
  border-bottom:2.5px solid var(--accent);
  border-radius:1px;
  transform:translateY(-3px) rotate(45deg);
  transition:transform .22s ease;
}
.faq-item[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.faq-item summary:hover::after{border-color:var(--green)}

/* ---------- VOICE（アカデミー修了生の声） ---------- */
.voices{background:var(--white)}
.voice-grid{
  display:grid;gap:18px;
  grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
  align-items:start;
}
.voice-card{
  margin:0;position:relative;
  background:var(--cream);border-radius:var(--radius);
  padding:34px 26px 24px;box-shadow:var(--shadow-sm);
}
.voice-card::before{
  content:"";position:absolute;top:16px;left:22px;
  width:22px;height:18px;opacity:.32;
  background:
    radial-gradient(circle 4px at 4px 4px,var(--accent) 98%,transparent 100%),
    radial-gradient(circle 4px at 16px 4px,var(--accent) 98%,transparent 100%),
    linear-gradient(var(--accent),var(--accent)) 2px 8px/4px 9px no-repeat,
    linear-gradient(var(--accent),var(--accent)) 14px 8px/4px 9px no-repeat;
}
.voice-text{
  margin:0 0 16px;color:var(--ink);font-size:.92rem;line-height:2;
}
.voice-who{
  font-family:var(--display);font-weight:700;font-size:.84rem;color:var(--green-deep);
  padding-top:14px;border-top:1px dashed var(--line);
}
.voice-who::before{content:"— ";color:var(--ink-soft)}
@media (max-width:600px){
  .voice-card{padding:30px 20px 22px}
}
