* { margin:0; padding:0; box-sizing:border-box; }

  :root{
    --orange:#F5821F;
    --green:#00A650;
    --pink:#D81B8A;
    --light-bg:#FAFAE5;
    --ink:#2b2b2b;
    --ink-soft:#5f5f5f;
    --line:#e7e4d6;
    --wrap:1040px;
  }

  html{ scroll-behavior:smooth; }
  body{
    font-family:'BIZ UDPGothic','Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;
    color:var(--ink); background:#fff; font-size:16px; line-height:1.9;
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }

  .wrap{ max-width:var(--wrap); margin:0 auto; padding:0 20px; }
  .en{ font-family:'Zen Kaku Gothic New',sans-serif; font-weight:500; letter-spacing:.14em; }

  /* ---------- 共通パーツ ---------- */
  .stripe{ height:6px; display:flex; }
  .stripe i{ display:block; height:100%; }
  .stripe .s1{ background:var(--orange); flex:2; }
  .stripe .s2{ background:var(--green); flex:1; }
  .stripe .s3{ background:var(--pink); flex:1; }

  .sec{ padding:76px 0; }
  .sec.tint{ background:var(--light-bg); }

  .sec-head{ text-align:center; margin-bottom:44px; }
  .sec-head .en-label{
    font-family:'Zen Kaku Gothic New',sans-serif; font-weight:500; font-size:12px; letter-spacing:.26em;
    color:var(--orange); display:block; margin-bottom:6px;
  }
  .sec-head h2{ font-size:28px; line-height:1.5; letter-spacing:.02em; }
  .dots{ display:flex; justify-content:center; gap:6px; margin-top:14px; }
  .dots i{ width:10px; height:10px; border-radius:50%; display:block; }
  .dots i:nth-child(1){ background:var(--orange); }
  .dots i:nth-child(2){ background:var(--green); }
  .dots i:nth-child(3){ background:var(--pink); }

  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:.4em;
    padding:15px 30px; border-radius:50px; font-weight:700; font-size:15px;
    text-decoration:none; line-height:1.4; transition:transform .15s ease, box-shadow .15s ease;
  }
  .btn:hover{ transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,.14); }
  .btn-primary{ background:var(--orange); color:#fff; }
  .btn-green{ background:var(--green); color:#fff; }
  .btn-pink{ background:var(--pink); color:#fff; }
  .btn-line{ background:#06C755; color:#fff; }
  .btn-ghost{ background:#fff; color:var(--ink); border:2px solid var(--line); }
  .btn-sm{ padding:11px 20px; font-size:14px; }

  /* ---------- ヘッダー ---------- */
  header{ position:sticky; top:0; z-index:100; background:rgba(255,255,255,.96); backdrop-filter:blur(6px); }
  .nav{ display:flex; align-items:center; justify-content:space-between; height:100px; border-bottom:1px solid #eae7dd; }
  .brand{ text-decoration:none; line-height:1.25; }
  .brand .bn{ font-family:'Zen Kaku Gothic New',sans-serif; font-weight:500; font-size:20px; letter-spacing:.2em; display:block; line-height:1.2; color:#1f1f1d; }
  .brand .bs{ font-family:'Zen Kaku Gothic New',sans-serif; font-size:10.5px; color:#9a968c; display:block; letter-spacing:.3em; margin-top:7px; }
  .nav-links{ display:none; gap:32px; align-items:center; }
  .nav-links a{ font-family:'Zen Kaku Gothic New',sans-serif; text-decoration:none; font-size:13px; font-weight:500; letter-spacing:.1em; color:#3a3a36; }
  .nav-links a:hover{ color:var(--orange); }
  .nav-links a.cta{ background:#1f1f1d; color:#fff; border-radius:50px; padding:11px 22px; font-size:12.5px; }
  .nav-links a.cta:hover{ color:#fff; opacity:.85; }
  @media (min-width:900px){ .nav-links{ display:flex; } }

  /* ---------- ヒーロー ---------- */
  .hero{ background:var(--light-bg); position:relative; overflow:hidden; }
  .hero::before,.hero::after{ content:''; position:absolute; border-radius:50%; opacity:.16; }
  .hero::before{ width:280px; height:280px; background:var(--orange); top:-90px; right:-70px; }
  .hero::after{ width:200px; height:200px; background:var(--green); bottom:-80px; left:-60px; }
  .hero-in{ position:relative; z-index:1; display:grid; gap:34px; padding:60px 0 68px; align-items:center; }
  @media (min-width:860px){ .hero-in{ grid-template-columns:1.25fr .75fr; gap:44px; padding:82px 0 90px; } }

  .hero h1{ font-size:clamp(18px, 5.1vw, 25px); line-height:1.72; letter-spacing:.02em; margin-bottom:20px; font-feature-settings:"palt"; }
  @media (min-width:860px){ .hero h1{ font-size:32px; } }
  .hero h1 .mk{ color:var(--orange); }
  .hero h1 .mk2{ color:var(--green); }
  .hero p.lead{ font-size:16px; color:var(--ink-soft); margin-bottom:26px; }
  .hero .who{ font-size:14px; font-weight:700; margin-bottom:26px; }
  .hero .who span{ font-weight:400; color:var(--ink-soft); }
  .hero-cta{ display:flex; flex-wrap:wrap; gap:12px; }

  .hero-photo{
    border-radius:20px; overflow:hidden; background:#fff;
    box-shadow:0 10px 32px rgba(0,0,0,.10);
  }
  .hero-photo img{ width:100%; aspect-ratio:4/5; object-fit:cover; object-position:top center; }

  /* ---------- サービス ---------- */
  .svc-grid{ display:grid; gap:26px; }
  @media (min-width:860px){ .svc-grid{ grid-template-columns:repeat(3,1fr); align-items:start; } }

  .svc{
    background:#fff; border:1px solid var(--line); border-radius:18px;
    overflow:hidden; display:flex; flex-direction:column;
  }
  .svc .cap{ height:7px; }
  .svc.c1 .cap{ background:var(--orange); }
  .svc.c2 .cap{ background:var(--green); }
  .svc.c3 .cap{ background:var(--pink); }
  .svc .body{ padding:26px 22px 24px; display:flex; flex-direction:column; flex:1; }
  .svc .tag{
    display:inline-block; align-self:flex-start; font-size:11px; font-weight:700; color:#fff;
    padding:4px 12px; border-radius:20px; margin-bottom:12px; letter-spacing:.04em;
  }
  .svc.c1 .tag{ background:var(--orange); }
  .svc.c2 .tag{ background:var(--green); }
  .svc.c3 .tag{ background:var(--pink); }
  .svc h3{ font-family:'Zen Kaku Gothic New',sans-serif; font-weight:500; font-size:24px; letter-spacing:.1em; line-height:1.3; margin-bottom:6px; }
  .svc .sub{ font-size:13px; color:var(--ink-soft); margin-bottom:16px; }
  .svc .catch{ font-size:17px; font-weight:700; line-height:1.7; margin-bottom:14px; }
  .svc .desc{ font-size:14.5px; line-height:1.9; margin-bottom:18px; }
  .svc ul{ list-style:none; font-size:14px; margin-bottom:20px; }
  .svc ul li{ padding-left:1.3em; position:relative; margin-bottom:7px; line-height:1.75; }
  .svc ul li::before{ content:'●'; position:absolute; left:0; font-size:9px; top:.55em; }
  .svc.c1 ul li::before{ color:var(--orange); }
  .svc.c2 ul li::before{ color:var(--green); }
  .svc.c3 ul li::before{ color:var(--pink); }
  .svc .price{ font-size:14px; font-weight:700; margin-bottom:18px; padding:10px 14px; background:var(--light-bg); border-radius:10px; }
  .svc .acts{ margin-top:auto; display:flex; flex-direction:column; gap:9px; }
  .svc .acts .btn{ width:100%; }
  .svc .soon{
    margin-top:auto; background:#faf7ee; border:1px dashed #d8d2bd; border-radius:12px;
    padding:16px; font-size:13.5px; line-height:1.8; text-align:center;
  }

  /* ---------- ABOUT ---------- */
  .about{ display:grid; gap:34px; }
  @media (min-width:860px){ .about{ grid-template-columns:1fr 1fr; gap:48px; align-items:start; } }
  .about-photo{ border-radius:18px; overflow:hidden; background:#fff; box-shadow:0 8px 26px rgba(0,0,0,.10); }
  .about-photo img{ width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top center; }
  .about-name{ font-family:'Zen Kaku Gothic New',sans-serif; font-weight:500; font-size:26px; letter-spacing:.14em; line-height:1.3; }
  .about-kana{ font-size:13px; color:var(--ink-soft); margin-bottom:6px; }
  .about-role{ font-size:13.5px; color:var(--ink-soft); margin-bottom:20px; }
  .about p{ font-size:15px; margin-bottom:16px; }
  .about h4 + p{ margin-bottom:16px; }
  .about > div > h4 ~ h4{ margin-top:28px; }
  .creds{ display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 4px; }
  .creds span{ font-size:12.5px; font-weight:700; background:#fff; border:1px solid var(--line); border-radius:20px; padding:6px 14px; }
  .about h4{ font-size:15px; margin:0 0 10px; padding-left:12px; border-left:4px solid var(--orange); line-height:1.5; }

  .stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:30px; }
  .stat{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:18px 8px; text-align:center; }
  .stat b{ font-family:'Zen Kaku Gothic New',sans-serif; font-weight:500; font-size:27px; letter-spacing:.04em; display:block; line-height:1.2; }
  .stat:nth-child(1) b{ color:var(--orange); }
  .stat:nth-child(2) b{ color:var(--green); }
  .stat:nth-child(3) b{ color:var(--pink); }
  .stat small{ font-size:12px; color:var(--ink-soft); display:block; margin-top:4px; line-height:1.5; }

  /* ---------- 絵本・教材 ---------- */
  .books{ display:grid; gap:20px; }
  @media (min-width:700px){ .books{ grid-template-columns:repeat(2,1fr); } }
  @media (min-width:980px){ .books{ grid-template-columns:repeat(3,1fr); } }
  .book{
    background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px;
    display:flex; flex-direction:column;
  }
  .book .kind{ font-size:11px; font-weight:700; letter-spacing:.05em; margin-bottom:9px; }
  .book .kind.free{ color:var(--green); }
  .book .kind.paid{ color:var(--orange); }
  .book .kind.ig{ color:var(--pink); }
  .book h3{ font-size:17px; line-height:1.55; margin-bottom:8px; }
  .book h3 .jp{ display:block; font-size:13px; color:var(--ink-soft); font-weight:400; }
  .book p{ font-size:14px; line-height:1.85; color:var(--ink-soft); margin-bottom:16px; }
  .book .foot{ margin-top:auto; }
  .book .note{ font-size:12.5px; color:var(--ink-soft); }

  /* ---------- YouTube ---------- */
  .yt{ display:grid; gap:28px; align-items:center; }
  @media (min-width:860px){ .yt{ grid-template-columns:1fr 1fr; } }
  .yt-embed{ position:relative; padding-top:56.25%; border-radius:16px; overflow:hidden; background:#000; box-shadow:0 8px 26px rgba(0,0,0,.14); }
  .yt-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
  .yt h3{ font-size:23px; line-height:1.55; margin-bottom:14px; }
  .yt p{ font-size:15px; margin-bottom:22px; }

  /* ---------- SNS / CTA ---------- */
  .cta-box{ background:#fff; border-radius:20px; padding:38px 24px; text-align:center; box-shadow:0 8px 26px rgba(0,0,0,.08); }
  .cta-box h3{ font-size:22px; line-height:1.6; margin-bottom:10px; }
  .cta-box p{ font-size:15px; color:var(--ink-soft); margin-bottom:24px; }
  .sns{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }

  /* ---------- 会社概要 ---------- */
  .corp{ max-width:720px; margin:0 auto; }
  .corp dl{ border-top:1px solid var(--line); }
  .corp div{ display:grid; grid-template-columns:1fr; gap:2px; padding:15px 4px; border-bottom:1px solid var(--line); }
  @media (min-width:640px){ .corp div{ grid-template-columns:170px 1fr; gap:16px; align-items:baseline; } }
  .corp dt{ font-size:13.5px; font-weight:700; color:var(--ink-soft); }
  .corp dd{ font-size:15px; }

  /* ---------- フッター ---------- */
  footer{ background:#3a3a38; color:#e9e6dc; padding:44px 0 30px; font-size:13.5px; }
  footer a{ color:#e9e6dc; text-decoration:none; }
  footer a:hover{ text-decoration:underline; }
  .f-top{ display:flex; flex-wrap:wrap; gap:14px 28px; justify-content:space-between; align-items:flex-start; margin-bottom:28px; }
  .f-links{ display:flex; flex-wrap:wrap; gap:8px 22px; }
  .f-name{ font-family:'Zen Kaku Gothic New',sans-serif; font-weight:500; font-size:16px; letter-spacing:.2em; }
  .f-copy{ font-size:12px; color:#a8a49a; border-top:1px solid #4d4d4a; padding-top:18px; }

  .todo{ background:#fff3cd; border:1px dashed #d9a441; color:#7a5200; font-size:12px; padding:2px 8px; border-radius:6px; display:inline-block; }

/* ============================================================
   下層ページ（プライバシーポリシー・特定商取引法に基づく表記）
============================================================ */
.page-head{ background:var(--light-bg); padding:52px 0 46px; text-align:center; }
.page-head .en-label{ font-family:'Zen Kaku Gothic New',sans-serif; font-weight:500; font-size:12px; letter-spacing:.26em; color:var(--orange); display:block; margin-bottom:6px; }
.page-head h1{ font-size:26px; line-height:1.5; }

.doc{ max-width:800px; margin:0 auto; padding:56px 20px 72px; }
.doc .intro{ font-size:15px; margin-bottom:34px; }
.doc h2{
  font-size:17px; line-height:1.6; margin:38px 0 12px;
  padding-left:12px; border-left:4px solid var(--orange);
}
.doc h2:first-of-type{ margin-top:0; }
.doc p{ font-size:15px; margin-bottom:14px; }
.doc ul, .doc ol{ font-size:15px; margin:0 0 14px 1.4em; }
.doc li{ margin-bottom:7px; }
.doc .updated{ font-size:13px; color:var(--ink-soft); margin-top:44px; padding-top:20px; border-top:1px solid var(--line); }
.doc .back{ display:inline-block; margin-top:26px; font-size:14px; }

.doc dl{ border-top:1px solid var(--line); margin-bottom:14px; }
.doc dl > div{ display:grid; grid-template-columns:1fr; gap:3px; padding:16px 4px; border-bottom:1px solid var(--line); }
@media (min-width:640px){ .doc dl > div{ grid-template-columns:210px 1fr; gap:18px; align-items:baseline; } }
.doc dt{ font-size:13.5px; font-weight:700; color:var(--ink-soft); }
.doc dd{ font-size:15px; line-height:1.85; }
.doc dd ul{ margin:6px 0 0 1.3em; font-size:14.5px; }
