/* CELLWAKKA Ski Performance Program 募集ページ共通スタイル */
  :root{
    --snow:#F4F8FB; --card:#FFFFFF; --ink:#152238; --ink-soft:#54627A;
    --line:#E3EAF1; --accent:#1E6FD9; --accent-ink:#14509E; --accent-tint:#EFF5FE;
    --warm:#E8A33D; --field:#F7FAFC;
    --sp1:8px; --sp2:16px; --sp3:24px; --sp4:32px; --sp6:48px; --sp8:64px;
    --gutter:16px; --maxw:960px;
  }
  @media (min-width:900px){ :root{ --gutter:40px; } }
  *,*::before,*::after{ box-sizing:border-box; }
  body{
    margin:0; background:var(--snow); color:var(--ink);
    font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",YuGothic,Meiryo,system-ui,sans-serif;
    font-size:15px; line-height:1.8;
  }
  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); }
  header.site{
    background:var(--card); border-bottom:1px solid var(--line);
    position:relative; padding:var(--sp2) 0;
  }
  header.site::before{ content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--warm); }
  .brand{ font-weight:700; letter-spacing:.04em; }
  .brand small{ display:block; font-weight:400; font-size:12px; color:var(--ink-soft); letter-spacing:0; }

  .hero{ padding:var(--sp6) 0 var(--sp4); }
  .hero h1{ font-size:28px; line-height:1.5; margin:0 0 var(--sp2); font-weight:700; }
  @media (min-width:900px){ .hero h1{ font-size:40px; } }
  .hero .lead{ font-size:17px; color:var(--ink-soft); margin:0 0 var(--sp3); }
  .mark{ background:linear-gradient(transparent 62%, rgba(232,163,61,.45) 62%); }

  .cta{
    display:inline-flex; align-items:center; justify-content:center;
    min-height:54px; padding:0 var(--sp4); border-radius:999px;
    background:var(--accent); color:#fff; font-weight:700; text-decoration:none;
  }
  .cta:hover{ background:var(--accent-ink); }
  .cta-note{ margin:var(--sp1) 0 0; font-size:13px; color:var(--ink-soft); }

  section{ padding:var(--sp6) 0; border-top:1px solid var(--line); }
  h2{ font-size:21px; margin:0 0 var(--sp1); font-weight:700; }
  h2 + .sub{ margin:0 0 var(--sp4); color:var(--ink-soft); font-size:14px; }
  h3{ font-size:16px; margin:0 0 var(--sp1); }

  .grid{ display:grid; gap:var(--sp2); }
  @media (min-width:760px){ .grid.three{ grid-template-columns:repeat(3,1fr); } }
  .card{ background:var(--card); border:1px solid var(--line); border-radius:14px; padding:var(--sp3); }
  .card .num{ font-size:12px; font-weight:700; color:var(--accent-ink); letter-spacing:.12em; }
  .card p{ margin:var(--sp1) 0 0; font-size:14px; color:var(--ink-soft); }

  table{ width:100%; border-collapse:collapse; background:var(--card); font-size:14px; }
  caption{ text-align:left; color:var(--ink-soft); font-size:13px; padding-bottom:var(--sp1); }
  th,td{ border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; }
  th{ background:var(--field); font-weight:700; }
  td.price{ white-space:nowrap; font-weight:700; }
  .tag{
    display:inline-block; padding:2px 10px; border-radius:999px;
    background:var(--accent-tint); color:var(--accent-ink); font-size:12px; font-weight:700;
  }
  .scroll{ overflow-x:auto; }

  ol.flow{ margin:0; padding-left:1.2em; }
  ol.flow li{ margin-bottom:var(--sp2); }
  ol.flow li b{ display:block; }

  dl.faq{ margin:0; }
  dl.faq dt{ font-weight:700; margin-top:var(--sp3); }
  dl.faq dd{ margin:var(--sp1) 0 0; color:var(--ink-soft); }

  .note{ background:var(--accent-tint); border-radius:14px; padding:var(--sp3); font-size:14px; }
  .todo{ color:#8A5A00; background:#FFF6E5; border:1px dashed #E8A33D; border-radius:10px; padding:2px 8px; font-size:13px; }

  footer.site{ border-top:1px solid var(--line); padding:var(--sp6) 0; font-size:13px; color:var(--ink-soft); }
  footer.site a{ color:var(--accent-ink); }
  a:focus-visible,.cta:focus-visible{ outline:2px solid var(--warm); outline-offset:3px; }

  /* 下層ページ */
  .page-head{ padding:var(--sp6) 0 var(--sp3); }
  .page-head h1{ font-size:24px; margin:0 0 var(--sp1); }
  .back{ display:inline-block; margin-bottom:var(--sp2); font-size:13px; color:var(--accent-ink); }
  .content{ padding-bottom:var(--sp8); }
  .content h2{ margin-top:var(--sp6); }
  .content h3{ margin-top:var(--sp4); font-size:15px; }
  .content p, .content li{ font-size:14px; }
  .updated{ color:var(--ink-soft); font-size:13px; }
