/* 公開ページ（LP・法定3ページ）専用のスタイル。2026-09-09 第54弾。
   ★業務画面の style.css とは分けている。業務画面は「毎日長時間見る帳票」向けの
     淡い青系だが、公開ページは初見の人に商品の性格を伝える面で、役割が違うため。
   ★視覚アイデンティティ＝「伝票の紙（生成り）× 墨のインク × 朱の判子」。
     販売管理＝伝票と帳簿の商品なので、そこから採っている。
   ★外部CDN・Webフォント・外部スクリプトは一切使わない（本番Caddyの
     CSP default-src 'self' で読み込めないため。フォントは端末内蔵のみ）。 */

:root{
  --ink:#16283f;        /* 墨（見出し・地の文） */
  --ink-2:#0b1726;      /* 濃い墨（ヘッダ帯・フッタ） */
  --shu:#b5432c;        /* 朱（判子・アクセント） */
  --shu-2:#8f3521;
  --paper:#f7f4ee;      /* 伝票の紙 */
  --paper-2:#efeadf;
  --card:#ffffff;
  --line:#e2dbcd;
  --line-2:#cfc5b2;
  --mut:#5f6773;
  --ok:#1f7a4d;
  --radius:10px;
  --wrap:1080px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:16px/1.85 "BIZ UDPGothic","Yu Gothic UI","Hiragino Sans","Noto Sans JP",
       "Segoe UI",system-ui,sans-serif;
  -webkit-text-size-adjust:100%;
}
a{color:var(--shu-2)}
img{max-width:100%}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}

/* ── ヘッダ ───────────────────────────────────────────────────────────── */
.hd{position:sticky;top:0;z-index:20;background:rgba(247,244,238,.94);
    border-bottom:1px solid var(--line);backdrop-filter:saturate(1.2) blur(6px)}
.hd .wrap{display:flex;align-items:center;gap:18px;height:60px}
/* ★サービス名は「AccessLab 販売管理システム」と長い。flexの既定では文字が縮まず、
   右のボタンを画面の外へ押し出す（390pxで実際に切れた）。min-width:0 と省略記号で、
   狭いときは**名乗り側だけ**が縮むようにする。ボタンは常に最後まで見える。 */
.brand{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:.02em;
       color:var(--ink);text-decoration:none;font-size:16px;white-space:nowrap;
       min-width:0;overflow:hidden}
.brand .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand .seal{width:28px;height:28px;flex:0 0 28px;border-radius:6px;background:var(--shu);
       color:#fff;display:grid;place-items:center;font-size:13px;font-weight:800;
       letter-spacing:-.04em;box-shadow:0 1px 0 rgba(0,0,0,.15)}
.hd nav{margin-left:auto;display:flex;align-items:center;gap:20px;font-size:13.5px;flex:0 0 auto}
.hd nav a{color:var(--mut);text-decoration:none;white-space:nowrap}
.hd nav a:hover{color:var(--ink)}

.btn{display:inline-block;padding:11px 22px;border-radius:8px;font-weight:700;
     text-decoration:none;border:1px solid transparent;font-size:14.5px;line-height:1.4;
     white-space:nowrap;cursor:pointer}
.btn.primary{background:var(--shu);color:#fff;border-color:var(--shu)}
.btn.primary:hover{background:var(--shu-2);border-color:var(--shu-2)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn.ghost:hover{border-color:var(--ink);background:rgba(22,40,63,.04)}
.btn.sm{padding:8px 16px;font-size:13.5px}

/* ── ヒーロー ─────────────────────────────────────────────────────────── */
.hero{padding:64px 0 56px;border-bottom:1px solid var(--line);
      background:linear-gradient(180deg,#fbf9f5 0%,var(--paper) 100%)}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}
.hero .tag{display:inline-block;font-size:12.5px;font-weight:700;color:var(--shu-2);
     border:1px solid var(--shu);border-radius:999px;padding:3px 12px;margin:0 0 18px}
.hero h1{font-size:34px;line-height:1.45;margin:0 0 18px;letter-spacing:.01em}
.hero h1 .u{background:linear-gradient(transparent 62%,rgba(181,67,44,.22) 62%)}
.hero p.lead{font-size:15.5px;color:#33405a;margin:0 0 26px}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.hero .note{font-size:12.5px;color:var(--mut);margin:16px 0 0}

/* 画面イメージ（★実物のスクリーンショットではなくCSSで組んだ模式図） */
.mock{background:var(--card);border:1px solid var(--line);border-radius:12px;
      box-shadow:0 10px 30px rgba(11,23,38,.10);overflow:hidden}
.mock .bar{height:30px;background:var(--ink);display:flex;align-items:center;gap:6px;padding:0 11px}
.mock .bar i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.35);display:block}
.mock .bar span{margin-left:8px;color:rgba(255,255,255,.8);font-size:11px}
.mock .body{padding:14px}
.mock .kv{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:6px 10px;
      font-size:11.5px;color:var(--mut);margin-bottom:12px}
.mock .kv b{color:var(--ink);font-weight:600}
.mock table{width:100%;border-collapse:collapse;font-size:11.5px}
.mock th{background:var(--paper-2);color:var(--mut);font-weight:600;text-align:left;
      padding:5px 7px;border-bottom:1px solid var(--line)}
.mock td{padding:5px 7px;border-bottom:1px solid var(--line)}
.mock td.n{text-align:right;font-variant-numeric:tabular-nums}
.mock tfoot td{font-weight:700;border-bottom:none;background:#fbf9f5}
.mock .cap{font-size:11px;color:var(--mut);padding:8px 14px 12px}

/* ── 帯（前提） ───────────────────────────────────────────────────────── */
.band{background:var(--ink);color:#e8ecf3;padding:18px 0}
.band .wrap{display:flex;flex-wrap:wrap;gap:10px 34px;justify-content:center;
      font-size:13.5px;text-align:center}
.band b{color:#fff}

/* ── セクション共通 ───────────────────────────────────────────────────── */
section{padding:62px 0}
section+section{border-top:1px solid var(--line)}
.sec-head{max-width:760px;margin:0 0 34px}
.sec-head h2{font-size:25px;margin:0 0 12px;line-height:1.5}
.sec-head h2::before{content:"";display:inline-block;width:22px;height:3px;
      background:var(--shu);vertical-align:middle;margin-right:12px;border-radius:2px}
.sec-head p{color:var(--mut);font-size:14.5px;margin:0}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.card h3{font-size:16.5px;margin:0 0 10px;line-height:1.6}
.card p{font-size:14px;color:#3c4657;margin:0}
.card .num{display:inline-block;font-size:12px;font-weight:800;color:var(--shu);
      letter-spacing:.08em;margin:0 0 8px}

/* ── 業務の流れ ───────────────────────────────────────────────────────── */
.flow{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.flow .lane{background:var(--card);border:1px solid var(--line);
      border-radius:var(--radius);padding:22px}
.flow .lane h3{margin:0 0 14px;font-size:16px}
.flow .lane h3 span{display:inline-block;font-size:11.5px;font-weight:700;color:#fff;
      background:var(--ink);border-radius:4px;padding:2px 9px;margin-right:9px;vertical-align:2px}
.flow ol{list-style:none;margin:0;padding:0;counter-reset:st}
.flow li{position:relative;padding:0 0 16px 30px;font-size:14px}
.flow li:last-child{padding-bottom:0}
.flow li::before{counter-increment:st;content:counter(st);position:absolute;left:0;top:3px;
      width:20px;height:20px;border-radius:50%;background:var(--paper-2);color:var(--ink);
      border:1px solid var(--line-2);font-size:11px;font-weight:700;display:grid;place-items:center}
.flow li::after{content:"";position:absolute;left:10px;top:25px;bottom:2px;width:1px;
      background:var(--line)}
.flow li:last-child::after{display:none}
.flow li b{display:block;font-weight:700}
.flow li em{font-style:normal;color:var(--mut);font-size:13px}

/* ── 機能一覧 ─────────────────────────────────────────────────────────── */
.fn{width:100%;border-collapse:collapse;background:var(--card);
    border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;font-size:14px}
.fn th,.fn td{padding:12px 16px;border-bottom:1px solid var(--line);
    text-align:left;vertical-align:top}
.fn thead th{background:var(--paper-2);font-size:12.5px;color:var(--mut);font-weight:600}
.fn tbody th{width:190px;white-space:nowrap;font-weight:700}
.fn td.n{width:96px;text-align:right;color:var(--mut);
    font-variant-numeric:tabular-nums;white-space:nowrap}
.fn tr:last-child th,.fn tr:last-child td{border-bottom:none}

/* ── 料金 ─────────────────────────────────────────────────────────────── */
.price{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:stretch}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
       padding:22px 18px;display:flex;flex-direction:column}
.pcard.reco{border-color:var(--shu);box-shadow:0 0 0 3px rgba(181,67,44,.10)}
.pcard .rib{display:inline-block;align-self:flex-start;font-size:11.5px;font-weight:700;
       color:#fff;background:var(--shu);border-radius:4px;padding:2px 9px;margin:0 0 10px}
.pcard h3{font-size:15px;margin:0 0 12px;line-height:1.5}
.pcard .yen{font-size:28px;font-weight:800;letter-spacing:-.01em;line-height:1.2}
.pcard .yen small{font-size:13px;font-weight:700;margin-left:2px}
.pcard .per{font-size:12.5px;color:var(--mut);margin:2px 0 4px}
.pcard .ex{font-size:12px;color:var(--mut);margin:0 0 14px}
.pcard ul{list-style:none;margin:0 0 18px;padding:0;font-size:13.5px}
.pcard li{padding:5px 0 5px 20px;position:relative;color:#3c4657}
.pcard li::before{content:"";position:absolute;left:2px;top:12px;width:9px;height:5px;
       border-left:2px solid var(--ok);border-bottom:2px solid var(--ok);transform:rotate(-45deg)}
.pcard .btn{margin-top:auto;text-align:center}
.price-note{margin:22px 0 0;font-size:13px;color:var(--mut)}
.price-note b{color:var(--ink)}

/* ── よくある質問 ─────────────────────────────────────────────────────── */
.faq{max-width:840px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:8px;
      padding:0 18px;margin:0 0 10px}
.faq summary{cursor:pointer;padding:15px 0;font-weight:700;font-size:14.5px;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";color:var(--shu);font-weight:800;margin-right:10px}
.faq details[open] summary{border-bottom:1px solid var(--line)}
.faq .a{padding:14px 0 16px;font-size:14px;color:#3c4657}

/* ── 締めのCTA ────────────────────────────────────────────────────────── */
.end{background:var(--ink);color:#eef1f6;text-align:center}
.end h2{font-size:24px;margin:0 0 12px;color:#fff}
.end h2::before{display:none}
.end p{color:#c3ccdb;font-size:14.5px;margin:0 0 26px}
.end .btn.ghost{color:#fff;border-color:rgba(255,255,255,.45)}
.end .btn.ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}

/* ── フッタ ───────────────────────────────────────────────────────────── */
.ft{background:var(--ink-2);color:#9aa6b8;font-size:13px;padding:30px 0}
.ft .wrap{display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center}
.ft a{color:#cbd4e1;text-decoration:none}
.ft a:hover{text-decoration:underline}
.ft .cp{margin-left:auto;font-size:12px}

/* ── 法定3ページ ──────────────────────────────────────────────────────── */
.legal{max-width:860px;margin:0 auto;padding:40px 20px 70px}
.legal h1{font-size:25px;margin:0 0 10px;line-height:1.5}
.legal .updated{color:var(--mut);font-size:12.5px;margin:0 0 30px}
.legal h2{font-size:16.5px;margin:32px 0 8px;padding-left:11px;border-left:4px solid var(--shu)}
.legal p{font-size:14.5px;margin:0 0 12px}
.legal table{width:100%;border-collapse:collapse;background:var(--card);
      border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;font-size:14px}
.legal th,.legal td{padding:13px 16px;border-bottom:1px solid var(--line);
      text-align:left;vertical-align:top}
.legal th{width:240px;background:var(--paper-2);font-weight:700;color:var(--ink)}
.legal tr:last-child th,.legal tr:last-child td{border-bottom:none}
.legal .back{display:inline-block;margin:30px 0 0;font-size:14px}
.legal-nav{margin:22px 0 0;padding:18px 0 0;border-top:1px solid var(--line);
      display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13.5px}

/* ── 画面幅 ───────────────────────────────────────────────────────────── */
@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr;gap:32px}
  .hero h1{font-size:27px}
  .cards,.price,.flow{grid-template-columns:1fr}
  .hd nav a.hide-sp{display:none}
  section{padding:46px 0}
  .fn tbody th{width:auto;white-space:normal}
  .legal table,.legal tbody,.legal tr,.legal th,.legal td{display:block;width:auto}
  .legal th{border-bottom:none;padding-bottom:4px}
}

/* スマートフォン（390px前後）。ヘッダは「名乗り＋ログイン＋申し込み」だけ残す。
   これより多く並べると、申し込みボタンが画面の外へはみ出す。 */
@media (max-width:560px){
  .wrap{padding:0 16px}
  .hd .wrap{gap:8px}
  .hd nav{gap:10px}
  .hd nav a.hide-xs{display:none}
  .brand{font-size:13px;gap:7px}
  .brand .seal{width:23px;height:23px;flex:0 0 23px;font-size:11.5px}
  .btn.sm{padding:7px 11px;font-size:12.5px}
}

/* ── ログイン・お申し込み（2026-09-16 第61弾） ────────────────────────────
   ★LP と同じ紙・墨・朱に揃える。以前は業務画面用の style.css で、LP から来た人には
     別の製品に見え、お申し込みのプランはラジオボタンと説明文の並びが不揃いだった。
   ★プランの選択はラジオボタンをカードにしている。ラジオ本体は透明にして残す
     （キーボードの矢印キー・送信値はそのまま）。選んだ状態は input:checked + .pb で出す。 */
.auth{padding:44px 0 64px}
.auth .wrap{max-width:560px}
.auth.wide .wrap{max-width:820px}
.auth h1{font-size:25px;line-height:1.5;margin:0 0 8px}
.auth .sub{color:var(--mut);font-size:14px;margin:0 0 22px}
.auth code{background:var(--paper-2);padding:1px 5px;border-radius:4px;font-size:.92em}
.panel-a{background:var(--card);border:1px solid var(--line);border-radius:12px;
         box-shadow:0 10px 30px rgba(11,23,38,.06);padding:28px}
.msg-ng{border:1px solid var(--shu);background:#fbeee9;color:var(--shu-2);border-radius:8px;
        padding:11px 14px;font-size:14px;margin:0 0 20px}
.msg-info{border:1px solid var(--line-2);background:var(--paper-2);border-radius:8px;
        padding:11px 14px;font-size:13.5px;margin:0 0 16px}
.fm .f{margin:0 0 18px}
.fm .f>label,.fm .lbl{display:block;font-size:13.5px;font-weight:700;color:var(--ink);margin:0 0 6px}
.fm .help{display:block;font-size:12.5px;color:var(--mut);margin:6px 0 0;line-height:1.7}
.fm input:not([type=radio]):not([type=hidden]){width:100%;padding:11px 13px;font:inherit;
        font-size:15px;line-height:1.4;color:var(--ink);background:#fff;
        border:1px solid var(--line-2);border-radius:8px}
.fm input::placeholder{color:#9aa1ab}
.fm input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(22,40,63,.12)}
.fm fieldset{border:0;margin:0 0 18px;padding:0;min-width:0}
.fm legend{padding:0}
.fm .btn.block{display:block;width:100%;text-align:center;padding:13px 22px;font-size:15.5px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.plans{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.plan{position:relative;display:block;cursor:pointer}
.plan input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.plan .pb{display:block;height:100%;background:#fff;border:1px solid var(--line-2);
        border-radius:10px;padding:14px 14px 14px 46px;position:relative}
.plan .pb::before{content:"";position:absolute;left:16px;top:18px;width:18px;height:18px;
        border-radius:50%;border:2px solid var(--line-2);background:#fff;box-sizing:border-box}
.plan:hover .pb{border-color:var(--ink)}
.plan input:checked+.pb{border-color:var(--shu);box-shadow:0 0 0 3px rgba(181,67,44,.12)}
.plan input:checked+.pb::before{border:5px solid var(--shu)}
.plan input:focus-visible+.pb{outline:2px solid var(--ink);outline-offset:2px}
.plan .rib{display:inline-block;font-size:11px;font-weight:700;color:#fff;background:var(--shu);
        border-radius:4px;padding:1px 8px;margin:0 0 6px;line-height:1.7}
.plan .nm{display:block;font-weight:700;font-size:14.5px;line-height:1.5}
.plan .yen{display:block;font-size:22px;font-weight:800;line-height:1.3;margin:4px 0 2px;
        letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.plan .yen small{font-size:12px;font-weight:700;margin-left:3px;letter-spacing:0}
.plan .ex{display:block;font-size:12.5px;color:var(--mut)}
.fm .plans+.help{margin-top:10px}
.note-a{font-size:13px;color:var(--mut);margin:4px 0 16px}
.aside-a{margin:16px 0 0;text-align:center;font-size:13.5px;color:var(--mut)}

@media (max-width:560px){
  .auth{padding:28px 0 48px}
  .auth h1{font-size:22px}
  .panel-a{padding:20px 16px}
  .grid2,.plans{grid-template-columns:1fr}
}
