
  /* Webフォント（Shippori Mincho／Noto Sans JP／JetBrains Mono）は、表示を速くするため
     各HTMLの <head> で <link rel="preconnect"> と <link rel="stylesheet"> により読み込む（2026-09-25 変更）。 */

  /* Brand system fixed to the TESLab mark: brushed-metal grey on a bright,
     near-white ground, with the blue→white→red beam as the signature accent.
     This identity is deliberately single-theme (like the mark itself, which
     only exists on a light ground) so the site never reads dark regardless
     of viewer settings. */
  :root{
    --bg:#f5f4f1;
    --surface:#ffffff;
    --surface-2:#ebe9e4;
    --ink:#2b2d31;
    --ink-soft:#5a5d63;
    --ink-faint:#8b8e93;
    --line:#dedad2;
    /* 旧配色（復元用）: --blue:#2c4bc4; --blue-soft:#e8ecfa;
       --coral:#d63a30; --coral-soft:#fbe7e4; */
    /* 405nm 青紫色レーザーのイメージと元の青の中間色 */
    /* 青紫100%版（復元用）: --blue:#6e19d9; --blue-soft:#ede4fb; */
    --blue:#4d32cf;
    --blue-soft:#eae8fb;
    --green:#2f7a5c;
    --green-soft:#e6f2ec;
    /* 655nm 赤色レーザーをイメージした赤 */
    --coral:#e10600;
    --coral-soft:#fce2e0;
    --structure:#9a9d9f;
    --metal-a:#6c6f74;
    --metal-b:#c9cbce;
    --beam: linear-gradient(90deg, var(--blue) 0%, #ffffff 50%, var(--coral) 100%);
    --shadow: 0 1px 2px rgba(43,45,49,.05), 0 8px 24px rgba(43,45,49,.07);
    color-scheme: light;
  }

  *{ box-sizing:border-box; }
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:"Noto Sans JP", "Hiragino Sans", sans-serif;
    line-height:1.8;
    -webkit-font-smoothing:antialiased;
    padding-inline:0;
  }
  h1,h2,h3{
    font-family:"Shippori Mincho", "Noto Serif JP", serif;
    line-height:1.4;
    text-wrap:balance;
    margin:0;
  }
  .mono{ font-family:"JetBrains Mono","SF Mono",monospace; }
  a{ color:inherit; }
  img,svg{ max-width:100%; }
  .wrap{
    max-width:1040px;
    margin-inline:auto;
    padding-inline:max(20px, env(safe-area-inset-left, 0px));
  }

  /* ---------- masthead beam + header ---------- */
  header.topbar{
    position:sticky;
    top:env(safe-area-inset-top, 0px);
    z-index:20;
    background:var(--surface);
    color:var(--ink);
    border-bottom:1px solid var(--line);
  }
  header.topbar::before{
    content:"";
    display:block;
    height:5px;
    background:var(--beam);
  }
  .topbar .wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding-block:14px;
    flex-wrap:wrap;
  }
  .brand{
    display:flex;
    flex-direction:column;
    gap:2px;
    min-width:0;
  }
  .brand .name{
    font-family:"Shippori Mincho", serif;
    font-weight:800;
    font-size:1.42rem;
    letter-spacing:.03em;
    background:linear-gradient(180deg, var(--metal-a), var(--ink) 65%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    -webkit-text-fill-color:transparent;
  }
  .brand .name .tm{
    font-family:"Noto Sans JP", sans-serif;
    font-size:.42em;
    font-weight:500;
    vertical-align:super;
    margin-left:2px;
    background:none;
    -webkit-background-clip:initial;
    background-clip:initial;
    color:var(--ink-faint);
    -webkit-text-fill-color:var(--ink-faint);
  }
  .brand .sub{
    font-family:"JetBrains Mono", monospace;
    font-size:.62rem;
    letter-spacing:.14em;
    color:var(--ink-faint);
    text-transform:uppercase;
  }
  nav.mainnav{
    display:flex;
    gap:22px;
    flex-wrap:wrap;
    font-size:.88rem;
  }
  nav.mainnav a{
    text-decoration:none;
    color:var(--ink-soft);
    padding-block:4px;
    border-bottom:2px solid transparent;
    transition:border-color .15s ease, color .15s ease;
    white-space:nowrap;
  }
  nav.mainnav a:hover, nav.mainnav a:focus-visible{
    color:var(--ink);
    border-color:var(--coral);
  }
  nav.mainnav a.active{ border-color:var(--blue); color:var(--ink); font-weight:700; }

  /* ---------- mobile hamburger menu（MENU表記付き） ---------- */
  .menu-toggle{
    display:none;
    width:54px; height:54px;
    padding:0;
    border:none;
    border-radius:6px;
    background:var(--blue);
    color:#fff;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:6px;
    cursor:pointer;
    flex-shrink:0;
    box-shadow:0 2px 6px rgba(77,50,207,.28);
  }
  .menu-toggle .bars{ display:flex; flex-direction:column; gap:5px; }
  .menu-toggle .bars span{
    display:block;
    width:22px; height:2px;
    background:#fff;
    border-radius:2px;
    transition:transform .2s ease, opacity .2s ease;
  }
  .menu-toggle .menu-label{
    font-family:"JetBrains Mono",monospace;
    font-size:.6rem;
    font-weight:600;
    letter-spacing:.12em;
    line-height:1;
  }
  .menu-toggle[aria-expanded="true"]{ background:var(--ink); box-shadow:none; }
  .menu-toggle[aria-expanded="true"] .bars span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .bars span:nth-child(2){ opacity:0; }
  .menu-toggle[aria-expanded="true"] .bars span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .menu-toggle:focus-visible{ outline:3px solid var(--coral); outline-offset:2px; }

  .drawer{
    position:fixed;
    left:0; right:0; bottom:0;
    top:var(--hdr-h, 72px);
    z-index:40;
    background:var(--bg);
    overflow-y:auto;
    overscroll-behavior:contain;
    border-top:1px solid var(--line);
  }
  .drawer[hidden]{ display:none; }
  .drawer-inner{ padding:8px max(16px, env(safe-area-inset-left, 0px)) 40px; max-width:640px; margin:0 auto; }
  .drawer-nav ul{ list-style:none; margin:0; padding:0; }
  .drawer-nav > ul > li{ border-bottom:1px solid var(--line); }
  .drawer-nav > ul > li > a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:17px 4px;
    font-weight:700;
    font-size:1rem;
    color:var(--ink);
    text-decoration:none;
  }
  .drawer-nav > ul > li > a::after{
    content:"";
    width:8px; height:8px;
    border-top:2px solid var(--blue);
    border-right:2px solid var(--blue);
    transform:rotate(45deg);
    margin-right:6px;
  }
  .drawer-nav > ul > li > a.active{ color:var(--blue); }
  .drawer-sub{ margin:-6px 0 12px !important; padding:0 0 0 12px !important; display:grid; gap:2px; }
  .drawer-sub a{
    display:block;
    padding:9px 4px 9px 14px;
    font-size:.9rem;
    color:var(--ink-soft);
    text-decoration:none;
    position:relative;
  }
  .drawer-sub a::before{ content:""; position:absolute; left:0; top:50%; width:6px; height:1px; background:var(--structure); }
  .drawer-cta{ display:grid; gap:12px; margin-top:26px; }
  .drawer-cta .btn{ justify-content:center; padding:15px 20px; font-size:.98rem; font-weight:700; border-radius:40px; }
  .drawer-cta .btn-ghost{ background:var(--surface); }
  .drawer-close{
    display:block;
    margin:26px auto 0;
    padding:10px 26px;
    border:1px solid var(--line);
    border-radius:30px;
    background:var(--surface);
    color:var(--ink-soft);
    font-size:.86rem;
    cursor:pointer;
  }
  html.menu-open, html.menu-open body{ overflow:hidden; }

  @media (max-width:1080px){
    nav.mainnav{ display:none; }
    header.topbar > .wrap > a.btn{ display:none; }
    .topbar .wrap{ flex-wrap:nowrap; padding-block:10px; }
    .menu-toggle{ display:flex; margin-left:auto; }
    .brand .name{ font-size:1.22rem; }
    .brand .sub{ font-size:.5rem; letter-spacing:.08em; }
  }
  @media (min-width:1081px){ .drawer{ display:none !important; } }

  /* ---------- page top button ---------- */
  .pagetop{
    position:fixed;
    right:max(14px, env(safe-area-inset-right, 0px));
    bottom:max(16px, env(safe-area-inset-bottom, 0px));
    z-index:30;
    width:52px; height:52px;
    border-radius:50%;
    background:var(--surface);
    border:1px solid var(--line);
    box-shadow:var(--shadow);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
    color:var(--blue);
    text-decoration:none;
    font-size:.72rem;
    opacity:0; visibility:hidden; transform:translateY(8px);
    transition:opacity .2s ease, transform .2s ease, visibility .2s;
  }
  .pagetop .pt-label{ font-family:"JetBrains Mono",monospace; font-size:.58rem; letter-spacing:.1em; color:var(--ink-soft); }
  .pagetop.show{ opacity:1; visibility:visible; transform:none; }
  html.menu-open .pagetop{ display:none; }

  /* ---------- 質問コーナー（チャットボット。js/helpbot.js。2026-10-31） ---------- */
  /* 右下に質問のボタン、その上にページトップのボタン */
  html.hb-on .pagetop{ bottom:calc(max(16px, env(safe-area-inset-bottom, 0px)) + 66px); }
  html.hb-open .pagetop{ display:none; }
  .hb-launch{
    position:fixed;
    right:max(12px, env(safe-area-inset-right, 0px));
    bottom:max(14px, env(safe-area-inset-bottom, 0px));
    z-index:31;
    width:56px; height:56px;
    border-radius:50%;
    /* 2026-11-01 青の地 → 白の地＋青の縁（スマホで紫の帯と重なると見えにくいため。濃い灰を試したあと依頼者が決定。ページトップと同じ作り） */
    border:2px solid var(--blue);
    background:var(--surface);
    color:var(--blue);
    box-shadow:var(--shadow);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
    cursor:pointer;
    font-family:inherit;
  }
  .hb-launch-label{ font-family:"JetBrains Mono",monospace; font-size:.58rem; font-weight:700; letter-spacing:.1em; line-height:1; }   /* 「BOT」。ページトップの「TOP」と同じ書体 */
  .hb-launch .hb-robot{ width:32px; height:32px; margin-top:-2px; }
  .hb-ava{ flex:none; width:32px; height:32px; border-radius:50%; background:var(--blue-soft); display:flex; align-items:center; justify-content:center; }
  .hb-ava .hb-robot{ width:26px; height:26px; }
  .hb-ava-head{ width:38px; height:38px; }
  .hb-ava-head .hb-robot{ width:30px; height:30px; }
  .hb-row{ display:flex; align-items:flex-start; gap:8px; margin:0 0 12px; }
  .hb-row .hb-msg{ margin:0; max-width:calc(100% - 44px); }
  .hb-launch:hover{ background:var(--blue-soft); }
  html.menu-open .hb-launch{ display:none; }
  .hb-panel{
    position:fixed;
    right:max(12px, env(safe-area-inset-right, 0px));
    bottom:calc(max(14px, env(safe-area-inset-bottom, 0px)) + 66px);
    z-index:32;
    width:min(380px, calc(100vw - 24px));
    height:min(560px, calc(100vh - 110px));
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 2px 6px rgba(43,45,49,.08), 0 18px 48px rgba(43,45,49,.18);
    display:flex; flex-direction:column;
    overflow:hidden;
  }
  .hb-panel[hidden]{ display:none; }
  .hb-head{
    display:flex; align-items:center; gap:10px;
    padding:12px 12px 10px 16px;
    border-bottom:1px solid var(--line);
    position:relative;
  }
  .hb-head::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--beam); opacity:.8; }
  .hb-ttl{ flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.3; }
  .hb-ttl strong{ font-size:.95rem; color:var(--ink); }
  .hb-ttl span{ font-size:.7rem; color:var(--ink-faint); }
  .hb-x{
    width:36px; height:36px; border-radius:50%;
    border:1px solid var(--line); background:var(--surface); color:var(--ink-soft);
    font-size:1.2rem; line-height:1; cursor:pointer;
  }
  .hb-log{
    flex:1; overflow-y:auto; overscroll-behavior:contain;
    padding:14px 12px 6px;
    background:var(--bg);
    position:relative;
  }
  .hb-msg{ max-width:92%; margin:0 0 12px; font-size:.86rem; line-height:1.7; }
  .hb-msg p{ margin:0; }
  .hb-bot{ background:var(--surface); border:1px solid var(--line); border-radius:4px 12px 12px 12px; padding:10px 12px; color:var(--ink); }
  .hb-me{ margin-left:auto; width:fit-content; background:var(--blue); color:#fff; border-radius:12px 4px 12px 12px; padding:8px 12px; }
  .hb-ans a, .hb-bot a{ color:var(--blue); }
  .hb-chips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
  .hb-chip{
    border:1px solid var(--blue); background:var(--surface); color:var(--blue);
    border-radius:999px; padding:5px 11px; font-size:.78rem; font-family:inherit; cursor:pointer;
  }
  .hb-chip:hover, .hb-q:hover{ background:var(--blue-soft); }
  .hb-qs{ list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
  .hb-q{
    width:100%; text-align:left;
    border:1px solid var(--line); background:var(--surface); color:var(--ink);
    border-left:3px solid var(--blue);
    border-radius:6px; padding:7px 10px; font-size:.82rem; line-height:1.55; font-family:inherit; cursor:pointer;
  }
  .hb-after{ display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:10px; padding-top:8px; border-top:1px dashed var(--line); }
  .hb-link{ border:none; background:none; padding:0; color:var(--blue); font-size:.78rem; font-family:inherit; text-decoration:underline; cursor:pointer; }
  .hb-form{ display:flex; gap:8px; padding:10px 12px 6px; border-top:1px solid var(--line); background:var(--surface); }
  .hb-form input{
    flex:1; min-width:0;
    border:1px solid var(--line); border-radius:999px; padding:9px 14px;
    font-size:16px; font-family:inherit; color:var(--ink); background:var(--surface);
  }
  .hb-form input:focus{ outline:2px solid var(--blue-soft); border-color:var(--blue); }
  .hb-send{
    width:40px; height:40px; flex:none; border-radius:50%;
    border:none; background:var(--blue); color:#fff; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
  }
  .hb-note{ padding:0 14px 10px; background:var(--surface); font-size:.64rem; color:var(--ink-faint); line-height:1.5; }
  /* 高さの低いウィンドウでは、上下いっぱいに開く（会話の欄がつぶれて見えなくなるため。2026-10-31） */
  @media (min-width:600px) and (max-height:700px){
    .hb-panel{ top:max(10px, env(safe-area-inset-top, 0px)); bottom:max(10px, env(safe-area-inset-bottom, 0px)); height:auto; }
    html.hb-open .hb-launch{ display:none; }
    .hb-head{ padding-top:8px; padding-bottom:6px; }
  }
  @media (min-width:600px) and (max-height:480px){
    .hb-note{ display:none; }
    .hb-form{ padding-bottom:10px; }
  }
  /* スマートフォンでは画面いっぱいに開く */
  @media (max-width:599px){
    html.hb-open, html.hb-open body{ overflow:hidden; }
    html.hb-open .hb-launch{ display:none; }
    .hb-panel{ inset:0; width:auto; height:auto; border-radius:0; border:none; }
    .hb-head{ padding-top:max(12px, env(safe-area-inset-top, 0px)); }
    .hb-note{ padding-bottom:max(10px, env(safe-area-inset-bottom, 0px)); }
  }

  /* ---------- breadcrumb ---------- */
  .crumb{
    font-family:"JetBrains Mono",monospace;
    font-size:.72rem;
    letter-spacing:.04em;
    color:var(--ink-faint);
    padding-block:14px;
    border-bottom:1px solid var(--line);
  }
  .crumb a{ text-decoration:none; color:var(--blue); }
  .crumb a:hover{ text-decoration:underline; }

  /* ---------- home: announcement + page grid ---------- */
  .announce{
    background:linear-gradient(90deg, var(--blue-soft), #ffffff 50%, var(--coral-soft));
    border-bottom:1px solid var(--line);
  }
  .announce .wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding-block:16px;
    flex-wrap:wrap;
  }
  .announce .txt{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; font-size:.9rem; }
  .announce .txt .lbl{
    font-family:"JetBrains Mono",monospace;
    font-size:.68rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--coral);
  }
  .announce .txt .val{ font-weight:700; }
  .announce a.more{
    font-size:.82rem;
    text-decoration:none;
    color:var(--blue);
    white-space:nowrap;
  }
  .announce a.more:hover{ text-decoration:underline; }

  .page-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
  }
  @media (max-width:820px){ .page-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:520px){ .page-grid{ grid-template-columns:1fr; } }
  .page-card{
    display:block;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:6px;
    padding:22px 20px;
    text-decoration:none;
    color:var(--ink);
    box-shadow:var(--shadow);
    transition:border-color .15s ease, transform .15s ease;
  }
  .page-card:hover{ border-color:var(--blue); transform:translateY(-2px); }
  .page-card .role{
    font-family:"JetBrains Mono",monospace;
    font-size:.64rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--blue);
    margin-bottom:10px;
  }
  .page-card h3{ font-size:1.05rem; margin-bottom:8px; }
  .page-card p{ font-size:.85rem; color:var(--ink-soft); margin:0 0 14px; }
  .page-card .go{
    font-family:"JetBrains Mono",monospace;
    font-size:.76rem;
    color:var(--coral);
  }

  .feature-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
  }
  @media (max-width:820px){ .feature-grid{ grid-template-columns:1fr; } }
  .feature-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:6px;
    overflow:hidden;
    box-shadow:var(--shadow);
  }
  .feature-card .img-slot{ border-radius:0; border-width:0 0 1.5px 0; }
  .feature-card .feature-photo{ aspect-ratio:16/9; overflow:hidden; }
  .feature-card .feature-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .feature-card h3{ font-size:1rem; margin:16px 18px 6px; }
  .feature-card p{ font-size:.84rem; color:var(--ink-soft); margin:0 18px 18px; }

  /* ---------- numbered image placeholders ---------- */
  .img-slot{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    background:repeating-linear-gradient(135deg, var(--surface-2), var(--surface-2) 9px, var(--surface) 9px, var(--surface) 18px);
    border:1.5px dashed var(--structure);
    border-radius:6px;
    color:var(--ink-faint);
    text-align:center;
    padding:18px;
    width:100%;
  }
  .img-slot .slot-num{
    width:36px; height:36px;
    border-radius:50%;
    background:var(--surface);
    border:1.5px solid var(--ink-soft);
    display:flex; align-items:center; justify-content:center;
    font-family:"JetBrains Mono",monospace;
    font-weight:700;
    font-size:.86rem;
    color:var(--ink);
    flex-shrink:0;
  }
  .img-slot .slot-cap{ font-size:.8rem; line-height:1.6; max-width:28ch; color:var(--ink-soft); }
  .img-slot .slot-spec{ font-family:"JetBrains Mono",monospace; font-size:.66rem; color:var(--ink-faint); letter-spacing:.02em; }
  .img-slot.ratio-hero{ aspect-ratio:4/3; }
  .img-slot.ratio-banner{ aspect-ratio:16/9; }
  .img-slot.ratio-wide{ aspect-ratio:21/8; }
  .img-slot.ratio-square{ aspect-ratio:1/1; }
  .img-slot.ratio-portrait{ aspect-ratio:3/4; }
  .img-slot.ratio-book{ aspect-ratio:148/210; }

  .wide-photo{ aspect-ratio:21/8; border-radius:6px; overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line); }
  .wide-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

  .tier-photo{ aspect-ratio:16/9; border-radius:6px; overflow:hidden; }
  .tier-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

  .founder-block{ display:grid; grid-template-columns:220px 1fr; gap:40px; }
  @media (max-width:760px){ .founder-block{ grid-template-columns:1fr; } }
  .rep-stats{ margin:20px 0 0; display:flex; flex-direction:column; }
  .rep-stats .stat{ border-top:1px dashed var(--line); padding:12px 0; }
  .rep-stats .stat:first-child{ border-top:none; padding-top:0; }
  .rep-stats dt{ font-family:"JetBrains Mono",monospace; font-size:.66rem; letter-spacing:.04em; color:var(--ink-faint); text-transform:uppercase; }
  .rep-stats dd{ margin:3px 0 0; font-size:1rem; color:var(--ink); font-weight:700; }
  .rep-stats dd .sub{ display:block; font-weight:400; font-size:.76rem; color:var(--ink-soft); margin-top:2px; }

  .hero-photo{
    aspect-ratio:4/3;
    border-radius:6px;
    overflow:hidden;
    box-shadow:var(--shadow);
    border:1px solid var(--line);
  }
  .hero-photo img{
    width:100%; height:100%;
    object-fit:cover;
    display:block;
  }

  /* ---------- hero ---------- */
  section.hero{
    position:relative;
    background:var(--bg);
    border-bottom:1px solid var(--line);
    overflow:hidden;
  }
  .hero-inner{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:40px;
    align-items:center;
    padding-block:56px;
  }
  @media (max-width:760px){
    .hero-inner{ grid-template-columns:1fr; padding-block:36px; }
  }
  .eyebrow{
    font-family:"JetBrains Mono",monospace;
    font-size:.72rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--blue);
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:14px;
  }
  .eyebrow::before{
    content:"";
    width:22px;height:1px;
    background:var(--blue);
    display:inline-block;
  }
  .hero h1{
    font-size:clamp(1.7rem, 3.6vw, 2.5rem);
    color:var(--ink);
  }
  .hero h1 em{
    font-style:normal;
    color:var(--blue);
  }
  .hero p.lead{
    margin-top:18px;
    color:var(--ink-soft);
    max-width:46ch;
    font-size:1.02rem;
  }
  .cta-row{
    margin-top:28px;
    display:flex;
    gap:14px;
    flex-wrap:wrap;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:11px 20px;
    border-radius:3px;
    font-size:.92rem;
    font-weight:500;
    text-decoration:none;
    border:1px solid transparent;
  }
  .btn-primary{ background:var(--blue); color:#fff; }
  .btn-primary:hover{ background:color-mix(in srgb, var(--blue) 85%, black); }
  .btn-ghost{ border-color:var(--structure); color:var(--ink); }
  .btn-ghost:hover{ border-color:var(--ink); }
  .btn-sm{ padding:7px 16px; font-size:.8rem; }
  .btn-disabled{ background:var(--coral); color:#fff; border:1px solid transparent; cursor:not-allowed; pointer-events:none; }

  .scope-fig{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:4px;
    box-shadow:var(--shadow);
    padding:18px 18px 14px;
  }
  .scope-fig .cap{
    margin-top:10px;
    font-family:"JetBrains Mono",monospace;
    font-size:.68rem;
    color:var(--ink-faint);
    display:flex;
    justify-content:space-between;
    letter-spacing:.02em;
  }
  .legend{ display:flex; gap:14px; flex-wrap:wrap; margin-top:8px;}
  .legend span{ display:inline-flex; align-items:center; gap:6px; font-size:.72rem; color:var(--ink-soft); font-family:"JetBrains Mono",monospace;}
  .legend i{ width:9px;height:9px;border-radius:50%; display:inline-block;}

  /* ---------- generic section ---------- */
  section.block{ padding-block:60px; border-bottom:1px solid var(--line); }
  section.block:last-of-type{ border-bottom:none; }
  .kicker{
    font-family:"JetBrains Mono",monospace;
    font-size:.72rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin-bottom:8px;
  }
  .block h1, .block h2{
    font-size:clamp(1.3rem,2.4vw,1.7rem);
    margin-bottom:20px;
  }
  .block > .wrap > p.intro{
    color:var(--ink-soft);
    max-width:62ch;
    margin-bottom:32px;
  }

  /* about grid */
  .about-grid{
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:36px;
  }
  @media (max-width:760px){ .about-grid{ grid-template-columns:1fr; } }
  .audience-list{
    list-style:none;
    margin:0; padding:0;
    display:grid;
    gap:10px;
  }
  .audience-list li{
    display:flex;
    gap:10px;
    align-items:baseline;
    padding:12px 14px;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:3px;
    font-size:.92rem;
  }
  .audience-list li .num{
    font-family:"JetBrains Mono",monospace;
    color:var(--structure);
    font-size:.78rem;
  }

  /* philosophy / vision / principles */
  .philosophy-panel{
    background:var(--surface);
    border:1px solid var(--line);
    border-left:3px solid var(--blue);
    border-radius:4px;
    padding:22px 26px;
  }
  .philosophy-panel .kicker{ color:var(--blue); }
  .philosophy-panel h3{ font-size:1.08rem; line-height:1.6; margin-bottom:10px; }
  .philosophy-panel p{ color:var(--ink-soft); font-size:.88rem; margin:0; max-width:64ch; }
  .vision-panel{
    position:relative;
    background:linear-gradient(135deg, var(--blue-soft), var(--coral-soft));
    border:1px solid var(--line);
    border-radius:8px;
    box-shadow:var(--shadow);
    padding:38px 34px;
    margin-top:24px;
    overflow:hidden;
  }
  .vision-panel::before{
    content:"";
    position:absolute; top:0; left:0; right:0;
    height:5px;
    background:var(--beam);
  }
  .vision-panel .kicker{ color:var(--coral); font-weight:700; }
  .vision-panel h3{ font-size:clamp(1.35rem,2.6vw,1.7rem); line-height:1.5; margin:8px 0 16px; }
  .vision-panel p{ color:var(--ink); font-size:1rem; margin:0; max-width:68ch; }
  .creed-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:14px;
    margin-top:18px;
  }
  @media (max-width:700px){ .creed-grid{ grid-template-columns:1fr; } }
  .creed-item{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:6px;
    padding:18px 20px;
  }
  .creed-item .num{
    font-family:"JetBrains Mono",monospace;
    font-size:.7rem;
    color:var(--structure);
    display:block;
    margin-bottom:6px;
  }
  .creed-item h4{ font-family:"Shippori Mincho",serif; font-size:.98rem; margin:0 0 8px; }
  .creed-item p{ font-size:.83rem; color:var(--ink-soft); margin:0; }

  /* tier cards */
  .tier-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
  }
  @media (max-width:700px){ .tier-grid{ grid-template-columns:1fr; } }
  .tier-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:6px;
    padding:26px;
    box-shadow:var(--shadow);
  }
  .tier-tag{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:"JetBrains Mono",monospace;
    font-size:.72rem;
    letter-spacing:.08em;
    padding:5px 10px;
    border-radius:2px;
    margin-bottom:14px;
  }
  .tier-tag.green{ background:var(--green-soft); color:var(--green); }
  .tier-tag.blue{ background:var(--blue-soft); color:var(--blue); }
  .tier-tag .mark{ width:9px; height:9px; display:inline-block; }
  .tier-tag.green .mark{ border-radius:50%; background:var(--green); }
  .tier-tag.blue .mark{ background:var(--blue); }
  .tier-card h3{ font-size:1.15rem; margin-bottom:10px; }
  .tier-card p{ color:var(--ink-soft); font-size:.92rem; margin:0 0 14px; }
  .tier-meta{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:6px 14px;
    font-size:.84rem;
    color:var(--ink-soft);
    border-top:1px dashed var(--line);
    padding-top:14px;
  }
  .tier-meta dt{ color:var(--ink-faint); font-family:"JetBrains Mono",monospace; font-size:.72rem; text-transform:uppercase; }
  .tier-meta dd{ margin:0; }

  /* exam types (センサ実務検定 / 工場DX実務検定) */
  .type-index{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    margin:0 0 8px;
  }
  @media (max-width:700px){ .type-index{ grid-template-columns:1fr; } }
  .type-index a{
    display:flex;
    flex-direction:column;
    gap:4px;
    text-decoration:none;
    background:var(--surface);
    border:1px solid var(--line);
    border-left:4px solid var(--green);
    border-radius:6px;
    padding:18px 20px;
    box-shadow:var(--shadow);
    transition:transform .15s ease;
  }
  .type-index a:hover{ transform:translateY(-2px); }
  .type-index a.dx{ border-left-color:var(--coral); }
  .type-index .no{ font-family:"JetBrains Mono",monospace; font-size:.68rem; letter-spacing:.12em; color:var(--ink-faint); text-transform:uppercase; }
  .type-index .t{ font-family:"Shippori Mincho",serif; font-weight:800; font-size:1.08rem; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .type-index .d{ font-size:.84rem; color:var(--ink-soft); line-height:1.7; }
  .new-badge{ font-family:"JetBrains Mono",monospace; font-size:.6rem; font-weight:600; letter-spacing:.1em; color:#fff; background:var(--coral); padding:2px 6px; border-radius:2px; }
  .exam-type-head{
    margin-top:56px;
    padding-top:40px;
    border-top:1px solid var(--line);
    margin-bottom:24px;
    scroll-margin-top:90px;
  }
  .exam-type-head.first{ margin-top:40px; }
  .exam-type-head h2{ margin-bottom:10px; }
  .exam-type-head .sub{ color:var(--ink-soft); max-width:62ch; margin:0; }
  .tier-tag.coral{ background:var(--coral-soft); color:#b30500; }
  .tier-tag.coral .mark{ background:var(--coral); width:8px; height:8px; transform:rotate(45deg); }
  .dx-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-top:3px solid var(--coral);
    border-radius:6px;
    padding:28px;
    box-shadow:var(--shadow);
    display:grid;
    grid-template-columns:1.25fr 1fr;
    gap:30px;
    align-items:start;
  }
  @media (max-width:820px){ .dx-card{ grid-template-columns:1fr; padding:22px; } .dx-card .img-slot, .dx-card .tier-photo{ order:-1; } }
  .dx-card h3{ font-size:1.15rem; margin-bottom:12px; }
  .dx-card p{ color:var(--ink-soft); font-size:.92rem; margin:0 0 14px; }
  .dx-subhead{ font-size:1.05rem; margin:36px 0 14px; }
  .dx-steps{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    border:1px solid var(--line);
    border-radius:6px;
    overflow:hidden;
    background:var(--surface);
  }
  .dx-step{ padding:20px 20px 22px; border-right:1px solid var(--line); display:flex; flex-direction:column; gap:4px; }
  .dx-step:last-child{ border-right:none; }
  @media (max-width:760px){
    .dx-steps{ grid-template-columns:1fr; }
    .dx-step{ border-right:none; border-bottom:1px solid var(--line); }
    .dx-step:last-child{ border-bottom:none; }
  }
  .dx-step .n{ font-family:"JetBrains Mono",monospace; font-size:.7rem; font-weight:600; letter-spacing:.12em; color:#b30500; }
  .dx-step .t{ font-weight:700; font-size:.98rem; }
  .dx-step p{ margin:4px 0 0; font-size:.85rem; color:var(--ink-soft); line-height:1.75; }
  .dx-scope{ display:grid; grid-template-columns:1.35fr 1fr; gap:16px; margin-top:16px; }
  @media (max-width:760px){ .dx-scope{ grid-template-columns:1fr; } }
  .dx-scope .box{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:18px 20px; }
  .dx-scope .box.out{ background:var(--surface-2); border-style:dashed; border-color:var(--structure); }
  .dx-scope h4{ font-size:.92rem; margin:0 0 8px; }
  .dx-scope ul{ margin:0; padding-left:1.2em; font-size:.86rem; color:var(--ink-soft); line-height:1.8; }
  .dx-scope .box.out p{ margin:10px 0 0; font-size:.82rem; color:var(--ink-soft); }

  /* curriculum */
  .curriculum{
    display:grid;
    gap:0;
    border:1px solid var(--line);
    border-radius:6px;
    overflow:hidden;
    background:var(--surface);
  }
  .curriculum-row{
    display:grid;
    grid-template-columns:64px 1fr;
    border-bottom:1px solid var(--line);
  }
  .curriculum-row:last-child{ border-bottom:none; }
  .curriculum-row .idx{
    background:var(--surface-2);
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:"JetBrains Mono",monospace;
    color:var(--ink-faint);
    font-size:.85rem;
    border-right:1px solid var(--line);
  }
  .curriculum-row .body{
    padding:16px 18px;
    display:flex;
    flex-direction:column;
    gap:2px;
  }
  .curriculum-row .body .t{ font-weight:700; font-size:.98rem; }
  .curriculum-row .body .d{ color:var(--ink-soft); font-size:.85rem; }
  .curriculum.timeline .curriculum-row .idx{
    font-family:"JetBrains Mono",monospace;
    font-size:.68rem;
    line-height:1.35;
    text-align:center;
    padding:10px 4px;
  }
  .curriculum.timeline .curriculum-row{ grid-template-columns:84px 1fr; }
  /* 協会概要の略歴（2026-10-27）：説明は代表者の文に任せ、年と肩書きだけの細い年表に */
  .curriculum.timeline-slim .curriculum-row{ grid-template-columns:104px 1fr; }
  .curriculum.timeline-slim .curriculum-row .idx{ font-size:.72rem; padding:8px 4px; white-space:nowrap; }
  .curriculum.timeline-slim .curriculum-row .body{ padding:10px 16px; }
  .curriculum.timeline-slim .curriculum-row .body .t{ font-size:.9rem; }
  .note{
    font-size:.8rem;
    color:var(--ink-faint);
    margin-top:14px;
  }

  /* service pillars */
  .pillars{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin-top:40px;
  }
  @media (max-width:820px){ .pillars{ grid-template-columns:1fr 1fr; } }
  @media (max-width:480px){ .pillars{ grid-template-columns:1fr; } }
  .pillar{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:6px;
    padding:20px 18px;
  }
  .pillar .role{
    font-family:"JetBrains Mono",monospace;
    font-size:.64rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--coral);
    margin-bottom:10px;
  }
  .pillar h4{ font-family:"Shippori Mincho",serif; font-size:1rem; margin:0 0 8px; }
  .pillar p{ font-size:.82rem; color:var(--ink-soft); margin:0; }
  .pillar .price{
    display:block;
    margin-top:12px;
    font-family:"JetBrains Mono",monospace;
    font-size:.78rem;
    color:var(--blue);
  }

  /* news */
  .news-panel{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:6px;
    box-shadow:var(--shadow);
    overflow:hidden;
  }
  .next-exam{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:20px 22px;
    background:var(--blue-soft);
    border-bottom:1px solid var(--line);
    flex-wrap:wrap;
  }
  .next-exam .lbl{
    font-family:"JetBrains Mono",monospace;
    font-size:.72rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--blue);
  }
  .next-exam .val{ font-size:1.15rem; font-weight:700; margin-top:4px; }
  .next-exam .status{
    font-size:.78rem;
    color:var(--ink-soft);
    background:var(--surface);
    border:1px solid var(--line);
    padding:6px 12px;
    border-radius:20px;
  }
  ul.topics{ list-style:none; margin:0; padding:0; }
  ul.topics li{
    display:grid;
    grid-template-columns:110px 1fr;
    gap:16px;
    padding:16px 22px;
    border-bottom:1px solid var(--line);
    font-size:.9rem;
  }
  ul.topics li:last-child{ border-bottom:none; }
  ul.topics time{
    font-family:"JetBrains Mono",monospace;
    color:var(--ink-faint);
    font-size:.78rem;
    padding-top:2px;
  }
  ul.topics .tag{
    display:inline-block;
    font-family:"JetBrains Mono",monospace;
    font-size:.65rem;
    padding:2px 7px;
    border-radius:2px;
    margin-right:8px;
    background:var(--coral-soft);
    color:var(--coral);
    letter-spacing:.04em;
    vertical-align:1px;
  }

  /* handbook */
  .handbook-panel{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:36px;
    align-items:start;
  }
  @media (max-width:760px){ .handbook-panel{ grid-template-columns:1fr; } }
  .book-facts{ display:grid; gap:14px; }
  .book-facts .row{ display:flex; gap:14px; font-size:.9rem; border-bottom:1px dotted var(--line); padding-bottom:12px; }
  .book-facts .row dt{ min-width:120px; color:var(--ink-faint); font-family:"JetBrains Mono",monospace; font-size:.72rem; text-transform:uppercase; padding-top:2px; }
  .book-facts .row dd{ margin:0; color:var(--ink-soft); }

  /* contact */
  .contact-box{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:6px;
    box-shadow:var(--shadow);
    padding:30px;
    display:grid;
    grid-template-columns:1fr auto;
    gap:20px;
    align-items:center;
    flex-wrap:wrap;
  }
  @media (max-width:640px){ .contact-box{ grid-template-columns:1fr; } }
  .contact-box .addr{ font-family:"JetBrains Mono",monospace; font-size:1rem; color:var(--blue); }

  footer{
    padding-block:36px 28px;
    color:var(--ink-faint);
    font-size:.78rem;
    border-top:1px solid var(--line);
    background:var(--surface-2);
  }
  footer .wrap{ display:flex; flex-direction:column; gap:18px; align-items:center; text-align:center; }
  footer nav{ display:flex; gap:18px; flex-wrap:wrap; justify-content:center; font-size:.82rem; }
  footer nav a{ text-decoration:none; color:var(--ink-soft); }
  footer nav a:hover{ color:var(--blue); }
  footer .op{ font-size:.76rem; color:var(--ink-faint); }


  /* ---------- SEO/構造化データ追加に伴う補助スタイル ---------- */
  .visually-hidden{
    position:absolute !important;
    width:1px; height:1px;
    padding:0; margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  .skip-link{
    position:absolute;
    left:-9999px;
    top:0;
    background:var(--blue);
    color:#fff;
    padding:10px 16px;
    z-index:100;
    border-radius:0 0 4px 0;
    text-decoration:none;
    font-size:.85rem;
  }
  .skip-link:focus{ left:0; }

  /* ---------- FAQ (exam.html) ---------- */
  .faq-list{
    display:grid;
    gap:14px;
  }
  .faq-item{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:6px;
    padding:20px 22px;
  }
  .faq-item h3{
    font-size:.98rem;
    display:flex;
    gap:10px;
    margin:0 0 10px;
  }
  .faq-item h3 .q-mark{
    font-family:"JetBrains Mono",monospace;
    color:var(--coral);
    flex-shrink:0;
  }
  .faq-item p{
    margin:0;
    padding-left:26px;
    color:var(--ink-soft);
    font-size:.88rem;
  }
  .faq-item p .a-mark{
    font-family:"JetBrains Mono",monospace;
    color:var(--blue);
    margin-right:8px;
  }
  /* 2026-10-23〜 折りたたみ式（details）：質問を押すと答えが開く */
  details.faq-item{ padding:0; }
  details.faq-item > summary{ list-style:none; cursor:pointer; padding:16px 48px 16px 22px; position:relative; }
  details.faq-item > summary::-webkit-details-marker{ display:none; }
  details.faq-item > summary h3{ margin:0; }
  details.faq-item > summary::after{ content:""; position:absolute; right:22px; top:50%; width:9px; height:9px; margin-top:-6px;
    border-right:2px solid var(--ink-soft); border-bottom:2px solid var(--ink-soft); transform:rotate(45deg); transition:transform .15s; }
  details.faq-item[open] > summary::after{ transform:rotate(-135deg); margin-top:-2px; }
  details.faq-item > summary:hover h3{ color:var(--blue); }
  details.faq-item > summary:focus-visible{ outline:2px solid var(--blue); outline-offset:-2px; border-radius:6px; }
  details.faq-item > p{ padding:0 22px 18px 48px; }
  .faq-list{ gap:10px; }
  /* 企業・学校の方への写真（2026-10-23） */
  .corp-photo{ margin:22px 0 26px; }
  .corp-photo img{ display:block; width:100%; height:auto; aspect-ratio:21/9; object-fit:cover; border-radius:6px; }
  /* センサの基礎知識の一覧の見出し画像（2026-10-23） */
  .guide-card .guide-thumb{ margin:-20px -22px 16px; }
  .guide-card .guide-thumb img{ aspect-ratio:16/9; object-fit:contain; padding:10px; border:none; border-bottom:1px solid var(--line); border-radius:6px 6px 0 0; background:#fff; }
  .guide-card{ overflow:hidden; }
  .faq-hint a{ color:var(--blue); }
  /* 企業・学校の方へは団体受験の案内1つだけ（2026-10-23 研修・出張講義をやめた） */
  .intro-grid.intro-grid-one{ grid-template-columns:1fr; }

  /* ======================================================================
     トップページ（スマホ重視の構成：検定日程 → 目的から探す → お知らせ → ピックアップ）
     ====================================================================== */
  .home-sec{ padding-block:56px; }
  .home-sec.schedule{ background:var(--surface); border-bottom:1px solid var(--line); }
  .home-sec.quick{ background:var(--bg); }
  .home-sec.news-sec{ background:var(--surface); border-block:1px solid var(--line); }
  .home-sec.pickup{ background:var(--bg); }
  .sec-title{
    text-align:center;
    font-size:clamp(1.3rem, 2.6vw, 1.65rem);
    margin:0 0 30px;
    display:flex; flex-direction:column; align-items:center; gap:6px;
  }
  .sec-title .en{
    font-family:"JetBrains Mono",monospace;
    font-size:.7rem;
    font-weight:500;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--blue);
  }
  .sec-title::after{
    content:""; display:block; width:48px; height:3px; margin-top:8px;
    background:linear-gradient(90deg, var(--blue), var(--coral));
    border-radius:2px;
  }

  /* 試験日程カード（2026-10-14 に3枚→4枚。広い画面は4列、中くらいは2列、スマホは1列） */
  .sched-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
  @media (max-width:1080px){ .sched-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:600px){ .sched-grid{ grid-template-columns:1fr; gap:14px; } }
  .sched-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:8px;
    overflow:hidden;
    box-shadow:var(--shadow);
    display:flex; flex-direction:column;
  }
  .sched-head{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:11px 16px;
    color:#fff;
    font-weight:700;
    font-size:.92rem;
  }
  .sched-head.sensor{ background:var(--green); }  /* 2026-10-23：入門級＝緑・実務級＝青にそろえる（級のカード・認定マークと同じ） */
  .sched-head.dx{ background:#b30500; }
  .sched-head .round{
    font-size:.74rem;
    background:rgba(255,255,255,.18);
    border:1px solid rgba(255,255,255,.5);
    padding:2px 10px;
    border-radius:20px;
    white-space:nowrap;
  }
  .sched-head .round.new{ font-family:"JetBrains Mono",monospace; letter-spacing:.1em; background:#fff; color:#b30500; border-color:#fff; }
  .sched-body{ padding:18px 18px 16px; display:flex; flex-direction:column; flex:1; }
  .sched-date{ margin:0 0 12px; font-weight:700; font-size:1rem; color:var(--ink); line-height:1.3; }
  .sched-date b{ font-size:2rem; font-family:"Shippori Mincho",serif; color:var(--ink); margin:0 2px; }
  .sched-date .dow{ font-size:.9rem; }
  .sched-date .plan{
    display:inline-block; margin-left:8px; vertical-align:4px;
    font-size:.7rem; font-weight:500; color:var(--coral);
    border:1px solid var(--coral); padding:1px 7px; border-radius:3px;
  }
  .sched-date.soon{ font-size:1.3rem; font-family:"Shippori Mincho",serif; padding-block:8px 6px; }
  /* 2026-10-27 依頼者：見出しは「第1回 入門級」の順に、「予定」は見出しの右に移して、試験時刻・申込ボタンの高さを4枚でそろえる */
  .sched-head.round-first{ justify-content:flex-start; }
  .sched-head.round-first .plan{
    margin-left:auto; font-size:.7rem; font-weight:700; color:var(--coral);
    background:#fff; padding:1px 8px; border-radius:3px; white-space:nowrap;
  }
  .sched-body .card-apply{ margin-top:auto; }
  .sched-meta{
    display:grid; grid-template-columns:auto 1fr; gap:6px 12px;
    margin:0 0 16px; padding-top:12px;
    border-top:1px dashed var(--line);
    font-size:.84rem;
  }
  .sched-meta dt{ color:var(--ink-faint); font-size:.76rem; padding-top:1px; }
  .sched-meta dd{ margin:0; color:var(--ink-soft); }
  .arrow-link{
    margin-top:auto;
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 14px;
    border-radius:4px;
    background:var(--surface-2);
    color:var(--ink);
    font-size:.86rem; font-weight:700;
    text-decoration:none;
  }
  .arrow-link::after{
    content:""; width:7px; height:7px;
    border-top:2px solid var(--blue); border-right:2px solid var(--blue);
    transform:rotate(45deg);
  }
  .arrow-link:hover{ background:var(--blue-soft); }
  .sched-note{ font-size:.78rem; color:var(--ink-faint); margin:16px 0 0; }

  /* 目的から探す（アイコンメニュー） */
  .icon-menu{
    list-style:none; margin:0; padding:0;
    display:grid; grid-template-columns:repeat(4,1fr); gap:14px;
  }
  @media (max-width:860px){ .icon-menu{ grid-template-columns:repeat(2,1fr); gap:10px; } }
  .icon-menu a{
    height:100%;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
    padding:22px 10px 18px;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:8px;
    text-decoration:none;
    color:var(--ink);
    font-weight:700;
    font-size:.9rem;
    text-align:center;
    line-height:1.4;
    box-shadow:0 1px 2px rgba(43,45,49,.05);
    transition:border-color .15s ease, transform .15s ease;
  }
  .icon-menu a:hover{ border-color:var(--blue); transform:translateY(-2px); }
  .icon-menu .ic{
    width:60px; height:60px; border-radius:50%;
    background:var(--blue-soft); color:var(--blue);
    display:flex; align-items:center; justify-content:center;
  }
  .icon-menu li:nth-child(2) .ic{ background:var(--coral-soft); color:#b30500; }

  /* お知らせ */
  .home-news{ list-style:none; margin:0 auto; padding:0; max-width:820px; border-top:1px solid var(--line); }
  .home-news li{ border-bottom:1px solid var(--line); }
  .home-news a{
    display:grid; grid-template-columns:190px 1fr; gap:14px; align-items:baseline;
    padding:18px 30px 18px 6px;
    text-decoration:none; color:var(--ink);
    position:relative;
  }
  .home-news a::after{
    content:""; position:absolute; right:10px; top:50%;
    width:7px; height:7px; margin-top:-4px;
    border-top:2px solid var(--structure); border-right:2px solid var(--structure);
    transform:rotate(45deg);
  }
  .home-news a:hover .ttl{ color:var(--blue); text-decoration:underline; }
  .home-news .meta{ display:flex; align-items:center; gap:10px; }
  .home-news time{ font-family:"JetBrains Mono",monospace; font-size:.8rem; color:var(--ink-faint); }
  .home-news .tag{
    font-size:.68rem; font-weight:700;
    padding:2px 8px; border-radius:2px;
    background:var(--blue-soft); color:var(--blue);
    white-space:nowrap;
  }
  .home-news .tag.book{ background:var(--green-soft); color:var(--green); }
  .home-news .ttl{ font-size:.92rem; line-height:1.7; }
  @media (max-width:700px){
    .home-news a{ grid-template-columns:1fr; gap:4px; padding:16px 30px 16px 2px; }
  }
  .more-wrap{ text-align:center; margin-top:28px; }
  .btn-pill{
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    min-width:260px; padding:14px 26px;
    border:1.5px solid var(--blue); border-radius:40px;
    color:var(--blue); background:var(--surface);
    font-weight:700; font-size:.9rem;
    text-decoration:none;
  }
  .btn-pill:hover{ background:var(--blue); color:#fff; }

  /* ピックアップ */
  .pick-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .pick-card{
    display:flex; flex-direction:column;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:8px;
    overflow:hidden;
    box-shadow:var(--shadow);
    color:var(--ink);
    text-decoration:none;
  }
  a.pick-card:hover h3{ color:var(--blue); }
  .pick-photo{ aspect-ratio:16/9; overflow:hidden; }
  .pick-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .pick-body{ padding:14px 16px 16px; }
  .pick-body h3{ font-size:1rem; margin-bottom:4px; }
  .pick-body p{ margin:0; font-size:.84rem; color:var(--ink-soft); line-height:1.7; }
  @media (max-width:860px){
    .pick-list{ grid-template-columns:1fr; gap:12px; }
    .pick-card{ flex-direction:row; align-items:stretch; }
    .pick-photo{ flex:0 0 38%; aspect-ratio:auto; min-height:100px; }
    .pick-body{ padding:12px 14px; display:flex; flex-direction:column; justify-content:center; }
  }

  /* お問い合わせ帯 */
  .contact-band{ background:linear-gradient(90deg, var(--blue-soft), #ffffff 50%, var(--coral-soft)); text-align:center; padding-block:40px; border-top:1px solid var(--line); }
  .contact-band .cb-lead{ margin:0 0 14px; font-weight:700; }
  .contact-band .cb-btn{ min-width:280px; justify-content:center; padding:15px 26px; border-radius:40px; font-weight:700; }

  /* トップのヒーロー：スマホでは写真を先に大きく */
  @media (max-width:760px){
    .hero-inner{ gap:22px; padding-block:0 32px; }
    .hero-photo{ order:-1; margin-inline:calc(-1 * max(20px, env(safe-area-inset-left, 0px))); border-radius:0; border:none; box-shadow:none; aspect-ratio:16/10; }
    .hero h1{ font-size:1.65rem; }
    .hero p.lead{ font-size:.94rem; margin-top:12px; }
    .cta-row{ margin-top:20px; display:grid; grid-template-columns:1fr; gap:10px; }
    .cta-row .btn{ justify-content:center; padding:14px 20px; font-weight:700; border-radius:40px; }
  }

  /* フッター：スマホでは2列のリンク一覧 */
  @media (max-width:700px){
    footer .foot-nav{ display:grid; grid-template-columns:1fr 1fr; gap:0; width:100%; border-top:1px solid var(--line); text-align:left; }
    footer .foot-nav a{ padding:13px 10px; border-bottom:1px solid var(--line); font-size:.84rem; }
    footer .foot-nav a:nth-child(odd){ border-right:1px solid var(--line); }
    footer{ padding-bottom:84px; }
  }

  /* 微調整 */
  .contact-band .cb-lead{ text-wrap:balance; }
  @media (max-width:760px){ .eyebrow{ letter-spacing:.08em; font-size:.64rem; } }
  .brand .name, header.topbar .btn{ white-space:nowrap; }
  @media (min-width:1081px){
    .topbar .wrap{ flex-wrap:nowrap; }
    nav.mainnav{ gap:18px; margin-left:auto; flex-wrap:nowrap; }
    .brand .sub{ letter-spacing:.08em; }
  }

  /* ---------- 法務系ページ（プライバシーポリシー／特商法表記／サイトのご利用について） ---------- */
  .legal .wrap{ max-width:860px; }
  .legal h2{
    font-size:1.08rem;
    margin:40px 0 12px;
    padding:0 0 8px 12px;
    border-left:4px solid var(--blue);
    border-bottom:1px solid var(--line);
    line-height:1.5;
  }
  .legal p, .legal li{ color:var(--ink-soft); font-size:.92rem; line-height:1.9; }
  .legal ul, .legal ol{ padding-left:1.4em; margin:0 0 12px; }
  .legal li{ margin-bottom:4px; }
  .legal a{ color:var(--blue); }
  .legal-lead{ margin:0 0 8px; }
  .legal-table{
    margin:16px 0 8px;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:6px;
    overflow:hidden;
  }
  .legal-table .row{ display:grid; grid-template-columns:200px 1fr; border-bottom:1px solid var(--line); }
  .legal-table .row:last-child{ border-bottom:none; }
  .legal-table dt{ background:var(--surface-2); padding:14px 16px; font-weight:700; font-size:.86rem; color:var(--ink); }
  .legal-table dd{ margin:0; padding:14px 16px; font-size:.9rem; color:var(--ink-soft); line-height:1.8; }
  .legal-table dd .sub{ display:inline-block; font-size:.8rem; color:var(--ink-faint); margin-top:4px; }
  @media (max-width:640px){
    .legal-table .row{ grid-template-columns:1fr; }
    .legal-table dt{ padding:10px 14px; }
    .legal-table dd{ padding:12px 14px 14px; }
  }
  .legal-date{ margin-top:40px; text-align:right; font-size:.84rem; }
  /* 要記入・要確認マーカー（公開前にすべて差し替えてください） */
  .fill{ background:#fff3b0; color:#7a5b00; font-weight:700; padding:0 4px; border-radius:2px; }

  /* フッターの法務リンク */
  .foot-legal{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px 18px; font-size:.74rem; }
  .foot-legal a{ color:var(--ink-faint); text-decoration:none; }
  .foot-legal a:hover{ color:var(--blue); text-decoration:underline; }
  .contact-note{ margin:14px 0 0; font-size:.8rem; color:var(--ink-faint); }
  .contact-note a{ color:var(--blue); }

  /* ---------- お問い合わせフォーム ---------- */
  .contact-wrap{ max-width:760px; }
  .form-lead{ color:var(--ink-soft); margin:0 0 24px; }
  .form-steps{ list-style:none; margin:0 0 24px; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:6px; scroll-margin-top:90px; }
  .form-steps li{
    display:flex; align-items:center; justify-content:center; gap:8px;
    padding:10px 6px; border-radius:4px;
    background:var(--surface-2); color:var(--ink-faint);
    font-size:.84rem; font-weight:700;
  }
  .form-steps li .n{
    width:22px; height:22px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    background:var(--surface); color:var(--ink-faint);
    font-family:"JetBrains Mono",monospace; font-size:.74rem;
  }
  .form-steps li.is-current{ background:var(--blue); color:#fff; }
  .form-steps li.is-current .n{ color:var(--blue); }
  .form-panel{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:8px;
    box-shadow:var(--shadow);
    padding:28px;
  }
  .form-panel[hidden]{ display:none; }
  @media (max-width:640px){ .form-panel{ padding:20px 16px; } }
  .field{ margin-bottom:20px; }
  .field > label{ display:flex; align-items:center; gap:8px; font-weight:700; font-size:.92rem; margin-bottom:8px; }
  .req, .opt{
    font-size:.66rem; font-weight:700; padding:2px 6px; border-radius:2px; line-height:1.4;
  }
  .req{ background:#b30500; color:#fff; }
  .opt{ background:var(--surface-2); color:var(--ink-soft); }
  .field input[type=text], .field input[type=email], .field input[type=tel], .field select, .field textarea{
    width:100%;
    font:inherit;
    font-size:16px; /* iPhoneで入力時に拡大されないよう16px */
    color:var(--ink);
    background:#fff;
    border:1px solid var(--structure);
    border-radius:4px;
    padding:12px 12px;
    line-height:1.6;
  }
  .field textarea{ resize:vertical; min-height:160px; }
  .field select{ appearance:none; background-image:linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%), linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%); background-position:calc(100% - 18px) 50%, calc(100% - 12px) 50%; background-size:6px 6px; background-repeat:no-repeat; padding-right:34px; }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--blue); box-shadow:0 0 0 3px var(--blue-soft); }
  .field [aria-invalid="true"]{ border-color:#b30500; background:#fff8f7; }
  .field ::placeholder{ color:var(--ink-faint); }
  .field .hint{ margin:4px 0 0; font-size:.76rem; color:var(--ink-faint); text-align:right; }
  .field .err{ margin:6px 0 0; font-size:.8rem; color:#b30500; font-weight:700; }
  .field .err:empty{ display:none; }
  .field.agree{ text-align:center; padding-top:8px; border-top:1px dashed var(--line); }
  .check{ display:inline-flex; align-items:center; gap:10px; font-size:.92rem; cursor:pointer; padding-top:14px; }
  .check input{ width:20px; height:20px; accent-color:var(--blue); }
  .check a{ color:var(--blue); }
  .check .req{ margin-left:8px; }
  .hp{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
  .form-actions{ display:flex; justify-content:center; gap:12px; margin-top:8px; }
  .form-actions.two .btn-form{ flex:1; max-width:260px; }
  .btn-form{ justify-content:center; min-width:260px; padding:15px 24px; border-radius:40px; font-size:1rem; font-weight:700; cursor:pointer; }
  .btn-form:disabled{ opacity:.6; cursor:wait; }
  .btn-ghost.btn-form{ background:var(--surface); }
  @media (max-width:640px){
    .form-actions, .form-actions.two{ flex-direction:column-reverse; }
    .form-actions .btn-form, .form-actions.two .btn-form{ width:100%; max-width:none; min-width:0; }
  }
  .confirm-lead{ margin:0 0 6px; color:var(--ink-soft); font-size:.92rem; }
  .confirm-table dd{ white-space:normal; word-break:break-word; }
  .confirm-table .none{ color:var(--ink-faint); }
  .send-error{ margin:14px 0 0; padding:12px 14px; border-radius:4px; background:#fff1ef; color:#b30500; font-size:.86rem; font-weight:700; }
  .send-error[hidden]{ display:none; }
  .thanks-box{ text-align:center; }
  .thanks-box .icon{ width:64px; height:64px; margin:0 auto 16px; border-radius:50%; background:var(--blue-soft); color:var(--blue); display:flex; align-items:center; justify-content:center; }
  .thanks-box p{ color:var(--ink-soft); }

  /* ======================================================================
     追加（2026-09-25）：トップ「センサ実務検定とは」／試験概要・受験の流れ・例題・認定
     ／企業・学校の方へ（corporate.html）／協会の概要表
     ====================================================================== */
  .nowrap{ white-space:nowrap; }
  .home-sec.intro-sec{ background:var(--bg); border-bottom:1px solid var(--line); }
  .intro-lead{ max-width:46em; margin:0 auto 28px; color:var(--ink-soft); }
  .intro-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
  @media (max-width:860px){ .intro-grid{ grid-template-columns:1fr; gap:14px; } }
  .intro-card{
    background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--blue);
    border-radius:8px; padding:20px 20px 16px; box-shadow:var(--shadow);
    display:flex; flex-direction:column; gap:6px;
  }
  .intro-card.green{ border-top-color:var(--green); }
  .intro-card.coral{ border-top-color:var(--coral); }
  .intro-card .lbl{ font-family:"JetBrains Mono",monospace; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
  .intro-card h3{ font-size:1.05rem; }
  .intro-card p{ margin:0 0 10px; font-size:.86rem; color:var(--ink-soft); line-height:1.75; }
  .intro-card .arrow-link{ margin-top:auto; }
  .intro-audience{ list-style:none; margin:24px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px 10px; justify-content:center; }
  .intro-audience li{ background:var(--surface); border:1px solid var(--line); border-radius:40px; padding:6px 14px; font-size:.84rem; color:var(--ink-soft); }
  .intro-audience .ttl{ width:100%; text-align:center; border:none; background:none; padding:0; font-weight:700; color:var(--ink); }

  .sec-block{ margin-top:56px; scroll-margin-top:90px; }
  .sec-block > .kicker{ margin-bottom:14px; }
  .sec-block .lead{ color:var(--ink-soft); font-size:.9rem; margin:0 0 16px; max-width:62ch; }
  .dx-steps.flow{ grid-template-columns:repeat(5,1fr); }
  .dx-steps.flow .dx-step .n{ color:var(--blue); }
  @media (max-width:900px){
    .dx-steps.flow{ grid-template-columns:1fr; }
    .dx-steps.flow .dx-step{ border-right:none; border-bottom:1px solid var(--line); }
    .dx-steps.flow .dx-step:last-child{ border-bottom:none; }
  }
  .placeholder-box{ background:var(--surface); border:1.5px dashed var(--structure); border-radius:6px; padding:18px 20px; font-size:.9rem; color:var(--ink-soft); }
  .placeholder-box p{ margin:0 0 8px; }
  .placeholder-box p:last-child{ margin-bottom:0; }
  .next-card{ margin-top:18px; }
  .cta-panel{ text-align:center; margin-top:48px; padding:32px 20px; background:linear-gradient(90deg, var(--blue-soft), #ffffff 50%, var(--coral-soft)); border:1px solid var(--line); border-radius:8px; }
  .cta-panel p{ margin:0 0 14px; font-weight:700; text-wrap:balance; }
  .cta-panel .btn{ min-width:260px; justify-content:center; padding:14px 24px; border-radius:40px; font-weight:700; }
  .legal-table.org{ margin-top:8px; }
  .legal-table a{ color:var(--blue); }
  .exam-type-head .next-card{ max-width:360px; background:var(--surface); border:1px solid var(--line); border-radius:6px; }
  .note a, .sec-block .lead a{ color:var(--blue); }
  /* 公式ハンドブックの表紙（2026-09-27）：PCは左の列いっぱい（最大420px）、スマホは中央寄せで最大340px */
  .book-cover{ width:100%; max-width:420px; }
  @media (max-width:760px){ .book-cover{ max-width:340px; margin-inline:auto; } }
  /* 商標の™（2026-10-02）：「センサ実務検定」商標登録出願中 */
  .mark-tm{ font-size:.5em; vertical-align:super; margin-left:.1em; font-weight:500; line-height:0; }

  /* ---------- 多言語（2026-10-06 追加）：言語メニュー・初回の言語案内・翻訳の注記 ---------- */
  .lang-switch{ position:relative; font-size:.82rem; flex-shrink:0; }
  .lang-switch summary{
    list-style:none; display:flex; align-items:center; gap:6px; cursor:pointer;
    height:36px; padding:0 12px; border:1px solid var(--line); border-radius:20px;
    background:var(--surface); color:var(--ink-soft); white-space:nowrap;
  }
  .lang-switch summary::-webkit-details-marker{ display:none; }
  .lang-switch summary svg{ width:16px; height:16px; flex:none; }
  .lang-switch[open] summary, .lang-switch summary:hover{ border-color:var(--blue); color:var(--ink); }
  .lang-switch summary:focus-visible{ outline:3px solid var(--coral); outline-offset:2px; }
  .lang-switch ul{
    position:absolute; right:0; top:calc(100% + 6px); z-index:30; min-width:160px;
    list-style:none; margin:0; padding:6px 0; background:var(--surface);
    border:1px solid var(--line); border-radius:6px; box-shadow:var(--shadow);
  }
  .lang-switch li a{ display:block; padding:8px 16px; color:var(--ink); text-decoration:none; }
  .lang-switch li a:hover{ background:var(--blue-soft); }
  .lang-switch li a[aria-current="true"]{ font-weight:700; box-shadow:inset 3px 0 0 var(--blue); }
  @media (max-width:1080px){
    .lang-switch{ margin-left:auto; }
    .lang-switch + .menu-toggle{ margin-left:10px; }
    .lang-switch summary{ height:44px; padding:0 10px; }
  }
  @media (max-width:420px){ .lang-switch summary .cur{ display:none; } }
  .drawer-lang{ margin-top:26px; }
  .drawer-lang .dl-label{ display:flex; align-items:center; gap:6px; margin:0 0 10px; font-size:.8rem; color:var(--ink-soft); letter-spacing:.06em; }
  .drawer-lang .dl-links{ display:flex; flex-wrap:wrap; gap:8px; }
  .drawer-lang .dl-links a{ padding:7px 14px; border:1px solid var(--line); border-radius:20px; background:var(--surface); font-size:.86rem; color:var(--ink); text-decoration:none; }
  .drawer-lang .dl-links a[aria-current="true"]{ border-color:var(--blue); color:var(--blue); font-weight:700; }
  .lang-banner{ background:var(--ink); color:#f4f4f1; font-size:.86rem; }
  .lang-banner .wrap{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 16px; padding-block:9px; }
  .lang-banner a{ color:#fff; font-weight:700; }
  .lang-banner button{ background:none; border:0; color:inherit; font-size:1.2rem; line-height:1; cursor:pointer; padding:0 4px; }
  .i18n-notice{ background:var(--blue-soft); color:var(--ink); font-size:.84rem; border-bottom:1px solid var(--line); }
  .i18n-notice .wrap{ padding-block:8px; }
  footer .i18n-note{ margin-top:8px; font-size:.72rem; color:var(--ink-faint); }
  /* 繁体字ページは台湾向けの書体で表示（日本語の書体のままだと字形が日本式になるため） */
  html:lang(zh-Hant) body{ font-family:"Noto Sans TC", "Noto Sans JP", sans-serif; }
  html:lang(zh-Hant) h1, html:lang(zh-Hant) h2, html:lang(zh-Hant) h3, html:lang(zh-Hant) .brand .name,
  html:lang(zh-Hant) .creed-item h4, html:lang(zh-Hant) .type-index .t, html:lang(zh-Hant) .pillar h4,
  html:lang(zh-Hant) .sched-date b, html:lang(zh-Hant) .sched-date.soon{ font-family:"Noto Serif TC", "Shippori Mincho", serif; }
  /* 欧文の長い単語で横にはみ出さないように */
  html:not([lang="ja"]) main{ overflow-wrap:anywhere; }
  /* 欧文のページはメニューの文字が長いので、ロゴが縮まないようにし、幅が狭い画面では早めにメニューボタンに切り替える */
  @media (min-width:1081px){ header.topbar .brand{ flex-shrink:0; } }
  @media (max-width:1080px){ header.topbar .brand{ min-width:0; } header.topbar .brand .sub{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } }
  @media (min-width:1081px){ html:not([lang="ja"]) nav.mainnav{ gap:16px; font-size:.84rem; } }
  /* 2026-10-15：メニューが5項目（メーカーを探す）になり、ポルトガル語は 1350px までヘッダーがはみ出したので 1300px → 1380px */
  @media (min-width:1081px) and (max-width:1380px){
    html:not([lang="ja"]) nav.mainnav{ display:none; }
    html:not([lang="ja"]) header.topbar > .wrap > a.btn{ margin-left:auto; }  /* 2026-10-23：申込ボタンは隠さない */
    html:not([lang="ja"]) .menu-toggle{ display:flex; }
    html:not([lang="ja"]) .lang-switch{ margin-left:10px; }
    html:not([lang="ja"]) .lang-switch + .menu-toggle{ margin-left:10px; }
    html:not([lang="ja"]) .drawer:not([hidden]){ display:block !important; }
  }
  @media (max-width:360px){ .brand .name{ font-size:1.02rem; } }
  /* トップの級カード：認定名は級名の下の行に、少し小さく */
  .intro-card h3 .cert-name{ display:inline-block; font-size:.78em; }
  /* ---------- 受験企業一覧（companylist.html。2026-10-06 追加。一覧が1社以上になったら公開） ---------- */
  .cl-note, .cl-date{ margin:4px 0; font-size:.84rem; color:var(--ink-soft); }
  .cl-index{ display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 8px; }
  .cl-index a{ padding:6px 14px; border:1px solid var(--line); border-radius:20px; background:var(--surface); font-size:.86rem; color:var(--ink); text-decoration:none; }
  .cl-index a:hover{ border-color:var(--blue); color:var(--blue); }
  .cl-group{ margin-top:28px; scroll-margin-top:calc(var(--hdr-h, 72px) + 12px); }
  .cl-group h2{ font-size:1.05rem; padding:0 0 8px 12px; border-left:4px solid var(--blue); border-bottom:1px solid var(--line); margin:0 0 12px; }
  .cl-list{ list-style:none; margin:0; padding:0; columns:3 220px; column-gap:28px; }
  .cl-list li{ break-inside:avoid; padding:5px 0; font-size:.9rem; border-bottom:1px dotted var(--line); }
  .cl-ask{ margin-top:32px; font-size:.86rem; color:var(--ink-soft); }

  /* ---------- 検定日程（2026-10-08 追加）：実務級の見出し色・日程表・注記 ---------- */
  .sched-head.adv{ background:var(--blue); }
  .sched-table-wrap{ overflow-x:auto; margin:0 0 14px; }
  .sched-table{ width:100%; border-collapse:collapse; background:var(--surface); font-size:.92rem; min-width:520px; }
  .sched-table caption{ text-align:left; font-weight:700; padding:0 0 10px; }
  .sched-table th, .sched-table td{ border-bottom:1px solid var(--line); padding:12px 14px; text-align:left; vertical-align:top; }
  .sched-table thead th{ background:var(--blue-soft); font-size:.82rem; color:var(--ink-soft); }
  .sched-table tbody th{ white-space:nowrap; }
  .sched-notes{ margin:0 0 24px; padding-left:1.2em; font-size:.86rem; color:var(--ink-soft); }
  .sched-notes li{ margin-bottom:4px; }
  .overseas .legal-table dd{ line-height:1.8; }
  /* 受験のお申込みボタン（2026-10-15）。受付中だけ青いボタン、それ以外はグレー。切り替えは js/site.js の APPLY */
  .sched-table{ min-width:640px; }
  .sched-table td.sched-apply{ white-space:nowrap; vertical-align:middle; }
  #schedule{ scroll-margin-top:calc(var(--hdr-h, 72px) + 12px); }
  .apply-btn{ display:inline-flex; align-items:center; justify-content:center; min-width:7.5em; padding:7px 16px; border-radius:4px; font-size:.84rem; font-weight:700; line-height:1.3; border:1px solid transparent; }
  a.apply-btn{ background:var(--blue); color:#fff; text-decoration:none; }
  a.apply-btn:hover{ filter:brightness(1.12); }
  .apply-btn.is-off{ background:var(--surface-2); color:var(--ink-soft); border-color:var(--line); font-weight:500; cursor:default; }   /* 文字は ink-soft（ink-faint では背景とのコントラスト比が 4.5 に届かない） */
  .apply-btn[hidden]{ display:none; }
  .card-apply{ margin:14px 0 10px; }
  .card-apply .apply-btn{ width:100%; padding:9px 16px; }
  .card-apply .apply-btn.is-off{ background:transparent; border-style:dashed; }   /* カードの下の「日程の一覧を見る」（灰色の帯）と見分けられるように、押せない表示は点線の枠だけに */

  /* 公式ハンドブック 2冊の表紙（2026-10-08） */
  .book-covers{ display:grid; grid-template-columns:1fr 1fr; gap:14px; align-content:start; }
  .book-covers figure{ margin:0; }
  .book-covers figcaption{ text-align:center; font-size:.82rem; color:var(--ink-soft); margin-top:6px; }
  .book-covers .cover-note{ grid-column:1 / -1; margin:0; font-size:.76rem; color:var(--ink-faint); }

  /* 検定日・トピックスの枠の中の日程表・注記・海外向け案内に余白（2026-10-08） */
  .news-panel .sched-table-wrap{ margin:0; padding:20px 22px 8px; }
  .news-panel .sched-notes{ margin:0; padding:6px 22px 20px 40px; border-bottom:1px solid var(--line); }
  .news-panel .overseas{ margin:0; padding:20px 22px; border-bottom:1px solid var(--line); }
  @media (max-width:640px){
    .news-panel .sched-table-wrap{ padding:16px 14px 6px; }
    .news-panel .sched-notes{ padding:6px 14px 16px 32px; }
    .news-panel .overseas{ padding:16px 14px; }
  }

  /* 海外向け：現地時刻の自動表示と、トップの案内（2026-10-08） */
  .localtime{ color:var(--blue); font-weight:500; }
  .sched-note.overseas-note{ margin-top:8px; }
  .sched-note.overseas-note a{ color:var(--blue); }

  /* overseas-note（囲み）：各言語のトップで、日本の日程であることと海外向けの案内を目立たせる */
  .sched-note.overseas-note{
    margin-top:18px; padding:14px 18px; border-left:4px solid var(--blue); border-radius:4px;
    background:var(--blue-soft); color:var(--ink); font-size:.92rem; line-height:1.8;
  }
  .sched-note.overseas-note a{ color:var(--blue); font-weight:700; }

  /* 公式ハンドブック 2冊の内容（2026-10-08） */
  .vol-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:18px; }
  @media (max-width:820px){ .vol-grid{ grid-template-columns:1fr; } }
  .vol-card{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:24px; box-shadow:var(--shadow); }
  .vol-card h3{ font-size:1.25rem; margin:12px 0 6px; }
  .vol-card .vol-status{ display:inline-block; margin:0 0 10px; padding:2px 10px; border:1px solid var(--structure); border-radius:20px; font-size:.78rem; font-weight:700; color:var(--ink-soft); }
  .vol-card .vol-status.on{ border-color:var(--blue); background:var(--blue); color:#fff; }
  .buy-btns{ display:flex; flex-wrap:wrap; gap:8px; margin:2px 0 8px; }
  /* お支払い方法の決済ロゴ（2026-10-27。各社の公式ロゴ。並べるときは同じ大きさ・縦横比は変えない・重ねない） */
  .pay-logos{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:2px 0 8px; }
  .pay-logos img{ display:block; height:36px; width:auto; }
  .pay-logos img.wide{ height:28px; }  /* 2つめのボタン（Kindle版）は紙冊子版〔青〕と違う色で塗る（2026-10-27 依頼者：白抜きでは目立たない） */
  .buy-btns .btn-ghost{ background:var(--green); border-color:var(--green); color:#fff; }
  .buy-btns .btn-ghost:hover{ background:color-mix(in srgb, var(--green) 85%, black); border-color:color-mix(in srgb, var(--green) 85%, black); }
  .buy-note{ margin:0 0 8px; padding:8px 12px; border-left:3px solid var(--structure); background:var(--surface-2); font-size:.8rem; line-height:1.7; color:var(--ink-soft); }
  .buy-note p{ margin:0 0 4px; font-size:inherit; }
  .buy-note p:last-child{ margin-bottom:0; }
  .buy-note strong{ color:var(--ink); }
  .vol-card .vol-catch{ font-weight:700; font-size:1.02rem; margin:0 0 2px; }
  .vol-card .vol-sub{ color:var(--ink-soft); font-size:.86rem; margin:0 0 14px; }
  .vol-card .vol-lead{ font-weight:700; margin:0 0 6px; }
  .vol-card p{ font-size:.9rem; color:var(--ink-soft); }
  .vol-toc{ list-style:none; margin:14px 0 8px; padding:0; border-top:1px solid var(--line); }
  .vol-toc li{ display:flex; gap:12px; padding:8px 0; border-bottom:1px solid var(--line); font-size:.9rem; font-weight:500; }
  .vol-toc .ch{ font-family:"JetBrains Mono",monospace; font-size:.72rem; color:var(--ink-faint); min-width:44px; padding-top:3px; }
  .vol-card .vol-scope{ font-size:.82rem; color:var(--blue); margin:0 0 14px; }
  .vol-card h4{ font-size:.9rem; margin:0 0 6px; }
  .vol-for{ margin:0; padding-left:1.2em; font-size:.9rem; }
  /* 検定の級カード：申込ボタンの高さをそろえる（2026-10-08） */
  .tier-card{ display:flex; flex-direction:column; }
  .tier-card > .btn{ margin-top:auto !important; }
  .tier-card .tier-meta{ margin-bottom:16px; }
  /* 2冊の内容：見出し・紹介文・章立て・「こんな方に読んでほしい」の高さを左右でそろえる（subgrid。2026-10-08） */
  .vol-grid{ row-gap:0; }
  .vol-card{ display:grid; grid-row:span 10; grid-template-rows:subgrid; row-gap:0; align-content:start; }
  .vol-card > .tier-tag{ justify-self:start; align-self:start; }
  @media (max-width:820px){ .vol-grid{ row-gap:20px; } .vol-card{ display:block; } }

  /* 章立てと出題範囲を1つのまとまりにして、出題範囲の文は章立てのすぐ下に置く（2026-10-08） */
  .vol-card{ grid-row:span 9; }
  /* 公式ハンドブックの表紙を大きく（2026-10-08）：表紙2冊を上に大きく並べ、説明と表はその下に */
  .handbook-panel{ grid-template-columns:1fr; gap:28px; }
  .book-cover.book-covers{ max-width:760px; width:100%; margin-inline:auto; gap:24px; }
  .book-covers figcaption{ font-size:.9rem; }
  @media (max-width:760px){ .book-cover.book-covers{ max-width:none; gap:14px; } }
  @media (max-width:480px){ .book-cover.book-covers{ grid-template-columns:1fr; max-width:320px; } }

  /* 4言語で受験できることを伝える帯（トップのヒーローの下。2026-10-14） */
  .global-band{ background:linear-gradient(100deg, var(--blue) 0%, #3a24a8 60%, #2b1d7a 100%); color:#fff; position:relative; overflow:hidden; }
  .global-band::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--beam); }
  .global-inner{ display:grid; grid-template-columns:1.4fr 1fr; gap:36px; align-items:center; padding-block:40px; }
  .global-eyebrow{ margin:0 0 8px; font-family:"JetBrains Mono",monospace; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:#cfc8ff; }
  .global-band h2{ margin:0 0 12px; font-family:"Shippori Mincho",serif; font-weight:800; font-size:1.7rem; line-height:1.4; color:#fff; text-wrap:balance; }
  .global-band p{ margin:0; line-height:1.85; color:#ecebff; }
  .global-band .global-note{ margin-top:10px; font-size:.82rem; color:#cfc8ff; }
  .lang-chips{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .lang-chips li{ display:flex; align-items:center; gap:12px; padding:14px 16px; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.28); border-radius:8px; font-weight:700; font-size:1.02rem; color:#fff; }
  .lang-chips .lc-code{ display:inline-grid; place-items:center; min-width:38px; height:28px; padding:0 6px; border-radius:4px; background:#fff; color:var(--blue); font-family:"JetBrains Mono",monospace; font-size:.78rem; letter-spacing:.06em; }
  @media (max-width:860px){
    .global-inner{ grid-template-columns:1fr; gap:22px; padding-block:32px; }
    .global-band h2{ font-size:1.4rem; }
  }
  @media (max-width:420px){
    .lang-chips li{ padding:12px; font-size:.95rem; gap:9px; }
  }

  /* 試験日程カードを4枚にしたので、カードの中は項目名を上・内容を下に積む（2026-10-14） */
  .sched-body{ padding:16px 16px 14px; }
  .sched-date b{ font-size:1.85rem; }
  .sched-date .plan{ margin-left:6px; }
  .sched-meta{ grid-template-columns:1fr; gap:1px 0; }
  .sched-meta dd + dt{ margin-top:9px; }
  .sched-meta dd{ font-size:.92rem; }

  /* 4言語の札に主な受験地域を添える（2026-10-14） */
  .lang-chips li{ align-items:center; }
  .lang-chips .lc-text{ display:flex; flex-direction:column; gap:2px; min-width:0; }
  .lang-chips .lc-name{ font-weight:700; line-height:1.3; }
  .lang-chips .lc-area{ font-weight:500; font-size:.74rem; line-height:1.4; color:#d6d1ff; }
  .global-inner{ grid-template-columns:1.15fr 1fr; }
  .lang-chips .lc-area{ word-break:keep-all; overflow-wrap:anywhere; }
  @media (max-width:860px){ .global-inner{ grid-template-columns:1fr; } }
  @media (max-width:520px){ .lang-chips{ grid-template-columns:1fr; gap:10px; } .lang-chips li{ padding:11px 14px; } }
  /* 4言語の札の大きさをそろえる（2026-10-17 依頼者）：地域の文が2行になる札があっても、すべての行をいちばん高い札に合わせる */
  .lang-chips{ grid-auto-rows:1fr; }

  /* ---------- センサメーカー一覧（2026-10-14。2026-10-15 に makers.css から移した） ---------- */
  .mk-summary{ display:flex; flex-wrap:wrap; gap:10px 28px; margin:18px 0 8px; padding:14px 18px; background:var(--surface); border:1px solid var(--line); border-radius:8px; }
  .mk-summary div{ display:flex; gap:10px; align-items:baseline; }
  .mk-summary dt{ font-size:.78rem; color:var(--ink-faint); }
  .mk-summary dd{ margin:0; font-weight:700; color:var(--ink); }
  .mk-region{ display:flex; align-items:baseline; gap:12px; margin:36px 0 12px; font-size:1.2rem; padding-bottom:8px; border-bottom:2px solid var(--blue); }
  .mk-count{ font-size:.82rem; font-weight:500; color:var(--ink-faint); }
  .mk-table-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
  .mk-table{ width:100%; border-collapse:collapse; font-size:.9rem; min-width:720px; }
  .mk-table th, .mk-table td{ padding:11px 14px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
  .mk-table thead th{ background:var(--blue-soft); font-size:.8rem; color:var(--ink-soft); white-space:nowrap; }
  .mk-table tbody tr:last-child th, .mk-table tbody tr:last-child td{ border-bottom:none; }
  .mk-table tbody th{ font-weight:700; min-width:13em; }
  .mk-table td:nth-child(2){ white-space:nowrap; color:var(--ink-soft); }
  .mk-table .mk-tags{ color:var(--ink-soft); font-size:.84rem; min-width:12em; }
  .mk-table .mk-use{ white-space:nowrap; font-size:.84rem; }
  .mk-table a{ color:var(--blue); }
  .mk-group{ margin:34px 0 12px; font-size:1.15rem; padding-left:12px; border-left:4px solid var(--blue); }
  .mk-cats{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
  .mk-cat{ display:flex; justify-content:space-between; align-items:center; gap:10px; height:100%; padding:14px 16px; background:var(--surface); border:1px solid var(--line); border-radius:8px; text-decoration:none; color:var(--ink); font-weight:700; }
  a.mk-cat:hover{ border-color:var(--blue); box-shadow:var(--shadow); }
  .mk-cat-meta{ flex:none; font-size:.78rem; font-weight:500; color:var(--blue); background:var(--blue-soft); padding:2px 10px; border-radius:20px; }
  .mk-cat.is-soon{ color:var(--ink-faint); background:var(--bg); }
  .mk-cat.is-soon .mk-cat-meta{ color:var(--ink-faint); background:var(--surface-2); }
  .maker-notes{ margin-top:40px; padding:18px 20px; background:var(--surface); border:1px solid var(--line); border-radius:8px; font-size:.86rem; color:var(--ink-soft); }
  .maker-notes h2{ font-size:1rem; margin:0 0 8px; color:var(--ink); }
  .maker-notes ul{ margin:0; padding-left:1.2em; }
  .maker-notes li{ margin:3px 0; }
  .mk-back{ margin-top:28px; max-width:420px; }
  @media (max-width:860px){ .mk-cats{ grid-template-columns:1fr 1fr; } }
  @media (max-width:520px){ .mk-cats{ grid-template-columns:1fr; } .mk-summary{ flex-direction:column; } }
  /* スマホ：表を1社ずつのカードに */
  @media (max-width:640px){
    .mk-table-wrap{ overflow:visible; border:none; background:none; }
    .mk-table{ min-width:0; }
    .mk-table thead{ display:none; }
    .mk-table, .mk-table tbody, .mk-table tr, .mk-table th, .mk-table td{ display:block; width:100%; }
    .mk-table tr{ background:var(--surface); border:1px solid var(--line); border-radius:8px; margin-bottom:10px; padding:10px 14px; }
    .mk-table th, .mk-table td{ border:none; padding:3px 0; min-width:0 !important; white-space:normal !important; }
    .mk-table tbody th{ font-size:1rem; padding-bottom:6px; }
    .mk-table td::before{ content:attr(data-label); display:inline-block; min-width:6.5em; margin-right:.8em; font-size:.74rem; color:var(--ink-faint); }   /* margin：欧文の長い項目名（Produto verificado など）と中身がくっつかないように（2026-10-15） */
  }
  /* メニューが5項目（センサメーカー一覧を足した）になるので、日本語ページも 1180px 以下はメニューボタンに切り替える */
  @media (min-width:1081px) and (max-width:1180px){
    html[lang="ja"] nav.mainnav{ display:none; }
    html[lang="ja"] header.topbar > .wrap > a.btn{ margin-left:auto; }  /* 2026-10-23：申込ボタンは隠さない */
    html[lang="ja"] .menu-toggle{ display:flex; }
    html[lang="ja"] .lang-switch{ margin-left:10px; }
    html[lang="ja"] .lang-switch + .menu-toggle{ margin-left:10px; }
    html[lang="ja"] .drawer:not([hidden]){ display:block !important; }
  }
  /* 掲載のご依頼・修正フォーム：URLの入力欄もほかの欄と同じ見た目に（style.css の .field input[type=text] などと同じ指定） */
  .field input[type=url]{ width:100%; font:inherit; font-size:16px; color:var(--ink); background:#fff; border:1px solid var(--structure); border-radius:4px; padding:12px 12px; line-height:1.6; }
  .field input[type=url][aria-invalid="true"]{ border-color:#b30500; background:#fff8f7; }

  /* 検定についての例題（2026-10-16）：問題ごとのカード。正解と解説は開いたときだけ見せる */
  .sample-list{ display:grid; gap:18px; margin-top:16px; }
  .sample-q{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:20px 22px; }
  .sample-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 10px; }
  .sample-kind{ font-size:.78rem; color:var(--ink-soft); border:1px solid var(--line); border-radius:20px; padding:2px 10px; }
  .sample-q h3{ font-size:1rem; margin:0 0 8px; }
  .sample-text{ margin:0 0 10px; line-height:1.85; }
  .sample-choices{ list-style:none; margin:0 0 14px; padding:0; display:grid; gap:6px; }
  .sample-choices li{ display:flex; gap:10px; padding:8px 12px; background:var(--bg); border-radius:4px; }
  .sample-choices .k{ flex:none; font-weight:700; min-width:1.4em; }
  .sample-ans{ border-top:1px dashed var(--line); padding-top:12px; }
  .sample-ans summary{ cursor:pointer; color:var(--blue); font-weight:700; }
  .sample-ans p{ margin:10px 0 0; font-size:.92rem; line-height:1.85; }
  .sample-ans .sample-correct{ font-weight:700; color:var(--ink); }
  .sample-ans .sample-src{ font-size:.82rem; color:var(--ink-soft); }

  /* 出題範囲を公式ハンドブックの11章で示す（2026-10-16）：級ごとのまとまりの見出し */
  .scope-group{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin:22px 0 10px; }
  .scope-book{ font-size:.84rem; color:var(--ink-soft); }
  /* 404ページ（2026-10-20）：案内のリンクの一覧 */
  .nf-links{ list-style:none; margin:16px 0 0; padding:0; display:grid; grid-template-columns:repeat(2, 1fr); gap:8px 18px; text-align:left; }
  .nf-links a{ color:var(--blue); }
  @media (max-width:520px){ .nf-links{ grid-template-columns:1fr; } }
  /* 日本語ページの文の幅（2026-10-21）：ch は半角1文字分なので、日本語では全角およそ31文字で折り返していた。日本語だけ全角およそ40文字に */
  html[lang="ja"] .block > .wrap > p.intro,
  html[lang="ja"] .sec-block .lead,
  html[lang="ja"] .exam-type-head .sub,
  html[lang="ja"] .hero p.lead,
  html[lang="ja"] .philosophy-panel p,
  html[lang="ja"] .vision-panel p{ max-width:40em; }
  /* センサの基礎知識（検索向けの解説記事。2026-10-21〜。build_guide.py で作る） */
  .guide-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 18px; }
  .guide-scope{ font-size:.82rem; color:var(--ink-soft); }
  .guide-body{ max-width:46em; }
  .guide-body > h2, .guide-related h2{ font-size:1.25rem; margin:44px 0 14px; padding-top:18px; border-top:1px solid var(--line); }
  .guide-body p{ margin:0 0 14px; line-height:1.9; }
  .guide-body ul, .guide-body ol{ margin:0 0 18px; padding-left:1.4em; line-height:1.85; }
  .guide-body li{ margin:0 0 6px; }
  .guide-fig{ margin:26px 0 28px; }
  .guide-fig img{ display:block; width:100%; height:auto; background:#fff; border:1px solid var(--line); border-radius:4px; }
  .guide-fig figcaption{ margin-top:8px; font-size:.86rem; color:var(--ink-soft); line-height:1.6; }
  .guide-fig figcaption .src{ display:block; font-size:.76rem; color:var(--ink-faint); }
  .guide-table-wrap{ overflow-x:auto; margin:18px 0 24px; }
  .guide-table{ border-collapse:collapse; width:100%; min-width:540px; font-size:.88rem; line-height:1.6; }
  .guide-table th, .guide-table td{ border:1px solid var(--line); padding:8px 10px; text-align:left; vertical-align:top; }
  .guide-table thead th{ background:var(--surface); font-weight:700; }
  .guide-summary{ margin:40px 0 22px; padding:18px 22px 6px; background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:4px; }
  .guide-summary h2{ font-size:1.1rem; margin:0 0 10px; }
  .guide-cta{ margin:0 0 8px; padding:14px 18px; border:1px dashed var(--structure); border-radius:4px; font-size:.92rem; }
  .guide-cta p{ margin:0 0 4px; }
  .guide-cta a, .guide-related a, .guide-note a{ color:var(--blue); }
  .guide-related ul{ padding-left:1.2em; }
  .guide-cards{ display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:18px; margin:8px 0 28px; }
  .guide-card{ display:block; padding:20px 22px; background:var(--surface); border:1px solid var(--line); border-radius:6px; color:inherit; text-decoration:none; transition:border-color .15s; }
  .guide-card:hover{ border-color:var(--blue); }
  .guide-card h2{ font-size:1.05rem; line-height:1.5; margin:0 0 8px; color:var(--blue); }
  .guide-card p{ margin:0; font-size:.88rem; color:var(--ink-soft); line-height:1.75; }
  .guide-card .guide-meta{ margin:0 0 10px; }
  .guide-note{ font-size:.92rem; color:var(--ink-soft); }
  @media (max-width:640px){ .guide-table{ min-width:0; font-size:.8rem; } .guide-table th, .guide-table td{ padding:6px 7px; } }
  /* 公式ハンドブックの正誤表（2026-10-21）：控えめに（ページの最後の注記の扱い） */
  .errata-note{ margin-top:48px; padding-top:16px; border-top:1px solid var(--line); max-width:46em; }
  .errata-note h2{ font-size:.9rem; font-weight:700; margin:0 0 6px; color:var(--ink-soft); font-family:inherit; }
  .errata-note p{ font-size:.8rem; line-height:1.75; color:var(--ink-soft); margin:0 0 4px; }
  .errata-note a{ color:inherit; }
  /* 2冊の内容：「こんな方に読んでほしい」を紹介文の上に移し、色の付いた枠で目立たせる（2026-10-21。カードの子は8つになったので subgrid も8行） */
  .vol-card{ grid-row:span 8; }
  /* 発売の状況（発売中・発行予定。2026-10-27）を題の下に足したので、カードの子は9つ・subgrid も9行 */
  .vol-card{ grid-row:span 9; }
  .vol-card > .vol-status{ justify-self:start; align-self:start; }
  .vol-for-box{ margin:10px 0 16px; padding:12px 16px 10px; border-radius:6px; border-left:4px solid var(--blue); background:var(--blue-soft); }
  .vol-for-box.green{ border-left-color:var(--green); background:var(--green-soft); }
  .vol-for-box h4{ margin:0 0 6px; font-size:.92rem; color:var(--blue); }
  .vol-for-box.green h4{ color:var(--green); }
  .vol-for-box .vol-for{ font-size:.92rem; font-weight:500; color:var(--ink); }
  .vol-for-box .vol-for li{ margin:2px 0; }
  /* 受験の流れ：お支払い方法を別の枠に（2026-10-21） */
  .pay-box{ margin:28px 0 8px; scroll-margin-top:90px; }
  .pay-box h3{ font-size:1.05rem; margin:0 0 10px; }
  .pay-box .legal-table dt{ white-space:nowrap; }
  /* 検定について「合格すると」（2026-10-21 要記入を埋めたので、仮置きの点線の枠から普通の枠に） */
  .cert-box{ background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:6px; padding:18px 20px; font-size:.92rem; }
  .cert-box p{ margin:0 0 8px; }
  .cert-box p:last-child{ margin-bottom:0; }
  /* 検定について「出題範囲」の章の一覧を詰める（2026-10-21 依頼者「内容に対してスペースが大きすぎる」）：パソコンでは2列、行の余白を小さく */
  /* 区切り線は各行の罫線で引く（2026-10-27。1px の隙間で引くと、行の高さが端数のとき線が隠れた） */
  #scope .curriculum{ gap:0; background:var(--surface); }
  #scope .curriculum-row{ grid-template-columns:44px 1fr; border-bottom:1px solid var(--line); background:var(--surface); }
  #scope .curriculum-row:last-child{ border-bottom:none; }   /* 2026-10-30：下の行を 1px 持ち上げると次の行の地が線を覆っていたので、持ち上げをやめ、一番下の行だけ線を消す */
  #scope .curriculum-row.scope-also .idx{ color:var(--blue); font-weight:700; }
  #scope .curriculum-row .idx{ font-size:.78rem; }
  #scope .curriculum-row .body{ padding:9px 14px; gap:0; }
  #scope .curriculum-row .body .t{ font-size:.92rem; }
  #scope .curriculum-row .body .d{ font-size:.8rem; }
  @media (min-width:761px){
    #scope .curriculum{ grid-template-columns:1fr 1fr; }
    #scope .curriculum-row:nth-child(odd){ border-right:1px solid var(--line); }
    #scope .curriculum-row:nth-last-child(2):nth-child(odd){ border-bottom:none; }   /* 2列のとき、一番下の段の左の欄も線を消す */
    #scope .curriculum-row:last-child:nth-child(odd){ grid-column:1 / -1; border-right:none; }
  }
  /* お知らせのページの札：トップの「お知らせ」と同じく、ハンドブックは緑（2026-10-21） */
  ul.topics .tag.book{ background:var(--green-soft); color:var(--green); }
  /* 合格すると：認定証の見本（2026-10-21）。パソコンでは文の右に、スマホでは下に */
  .cert-box{ display:grid; gap:18px 28px; align-items:start; }
  @media (min-width:820px){ .cert-box{ grid-template-columns:1fr 360px; } }
  .cert-sample{ margin:0; }
  .cert-sample img{ display:block; width:100%; height:auto; border:1px solid var(--line); border-radius:4px; box-shadow:var(--shadow); background:#fff; }
  .cert-sample figcaption{ margin-top:6px; font-size:.76rem; color:var(--ink-soft); line-height:1.6; }
  /* 認定証の見本の下に、認定マークの見本（2026-10-26。背景が透明なので枠・影は付けない） */
  .cert-samples{ display:grid; gap:18px; }
  .cert-sample.mark img{ border:none; box-shadow:none; background:transparent; max-width:320px; margin-inline:auto; }
  .cert-sample.mark figcaption{ text-align:center; }
  /* 合格ロゴのダウンロード（pass-logo.html）・合格の確認（pass-verify.html）（2026-10-22）。入力欄はお問い合わせと同じ */
  .field input[type=date]{ width:100%; max-width:240px; font:inherit; font-size:16px; color:var(--ink); background:#fff; border:1px solid var(--structure); border-radius:4px; padding:11px 12px; line-height:1.6; }
  .pass-form .field .hint{ text-align:left; }
  .pass-form .send-error a{ color:inherit; }
  .pass-note{ margin:14px 0 0; font-size:.8rem; color:var(--ink-soft); text-align:center; }
  .pass-result{ margin-top:24px; }
  .pass-result h2{ font-size:1.15rem; margin:0 0 6px; }
  .pass-result > p{ margin:0 0 16px; }
  /* 認定マーク（10-22〜 バッジ型の1枚）：ページ上の見本と、ダウンロードの結果 */
  .mark-intro .mark-sample{ display:block; width:100%; max-width:420px; height:auto; margin:0 auto 16px; }
  .pass-mark{ margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; }
  .pass-mark img{ display:block; width:220px; height:auto; }
  .pass-mark figcaption{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; font-size:.78rem; color:var(--ink-soft); }
  .pass-ok{ margin:0 0 12px; font-weight:700; color:var(--green); }
  .pass-rules-box{ margin-top:36px; }
  .pass-rules-box h2{ font-size:1.15rem; margin:0 0 10px; }
  .pass-rules{ margin:0; padding-left:1.3em; font-size:.92rem; }
  .pass-rules li{ margin:0 0 6px; }
  .pass-rules a, .pass-note a{ color:var(--blue); }
  /* 再受験制度の申し出（retake.html。2026-10-23〜 試しの版）：理由のチェックを縦に並べる */
  .field > .label{ display:flex; align-items:center; gap:8px; font-weight:700; font-size:.92rem; margin-bottom:2px; }
  .check-list{ display:flex; flex-direction:column; gap:2px; }
  .check-list .check{ padding-top:8px; }
  .pass-form textarea{ width:100%; }

  /* ======================================================================
     全体点検（2026-10-23）
     ====================================================================== */
  /* フッターのメニューがパソコンで1項目だけ2行目に落ちないよう、間を少し詰める */
  @media (min-width:900px){ footer nav.foot-nav{ gap:8px 13px; font-size:.78rem; } }
  /* スマホでは英字の協会名を出さない（途中で切れて見えるため） */
  @media (max-width:640px){ header.topbar .brand .sub{ display:none; } }
  /* トップ：検定の概要 */
  .key-facts{ background:var(--surface); border-bottom:1px solid var(--line); padding:26px 0 22px; }
  .key-facts .kf-title{ font-size:1.05rem; margin:0 0 12px; letter-spacing:.04em; }
  .kf-list{ display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin:0; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:var(--bg); }
  .kf-list > div{ padding:14px 16px; border-right:1px solid var(--line); }
  .kf-list > div:last-child{ border-right:none; }
  .kf-list dt{ font-size:.76rem; font-weight:700; color:var(--ink-soft); margin-bottom:4px; letter-spacing:.06em; }
  .kf-list dd{ margin:0; font-size:.92rem; font-weight:700; line-height:1.55; }
  .kf-more{ margin:10px 0 0; text-align:right; font-size:.88rem; }
  @media (max-width:900px){
    .kf-list{ grid-template-columns:1fr 1fr; }
    .kf-list > div{ border-right:none; border-bottom:1px solid var(--line); }
    .kf-list > div:nth-child(odd){ border-right:1px solid var(--line); }
    .kf-list > div:last-child{ grid-column:1 / -1; border-right:none; border-bottom:none; }
  }
  /* トップ：合格者・採用ご担当の入口（写真の代わりに印） */
  .pick-photo.pick-icon{ display:flex; align-items:center; justify-content:center; background:var(--blue-soft); color:var(--blue); aspect-ratio:16/9; }
  /* ハンドブック：受験を考えている方へ */
  .next-steps{ margin-top:36px; padding:24px 26px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
  .next-steps h2{ font-size:1.15rem; margin:0 0 8px; }
  .next-steps p{ margin:0 0 14px; color:var(--ink-soft); }
  .next-btns, .guide-cta-btns{ display:flex; flex-wrap:wrap; gap:12px; }
  .guide-cta-btns{ margin-top:14px; }
  /* 試験日程：スマホでは表を1回ずつのカードにする（申込ボタンが画面の外に隠れないように） */
  @media (max-width:640px){
    .sched-table-wrap{ overflow-x:visible; }
    .sched-table{ min-width:0; border-collapse:separate; border-spacing:0 10px; background:transparent; }
    .sched-table thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
    .sched-table tbody, .sched-table tr, .sched-table th, .sched-table td{ display:block; width:auto; }
    .sched-table tr{ background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:12px 14px; margin-bottom:10px; }
    .sched-table th, .sched-table td{ border:none; padding:3px 0; }
    .sched-table tbody th{ font-size:1rem; padding-bottom:6px; }
    .sched-table td::before{ display:inline-block; min-width:5.5em; font-size:.78rem; font-weight:700; color:var(--ink-soft); }
    html[lang="ja"] .sched-table td:nth-of-type(1)::before{ content:"試験日"; }
    html[lang="ja"] .sched-table td:nth-of-type(2)::before{ content:"申込期間"; display:block; }
    html[lang="en"] .sched-table td:nth-of-type(1)::before{ content:"Exam date"; }
    html[lang="en"] .sched-table td:nth-of-type(2)::before{ content:"Application period"; display:block; }
    html[lang="zh-Hant"] .sched-table td:nth-of-type(1)::before{ content:"考試日"; }
    html[lang="zh-Hant"] .sched-table td:nth-of-type(2)::before{ content:"報名期間"; display:block; }
    html[lang="pt"] .sched-table td:nth-of-type(1)::before{ content:"Data do exame"; }
    html[lang="pt"] .sched-table td:nth-of-type(2)::before{ content:"Período de inscrição"; display:block; }
    .sched-table td.sched-apply{ padding-top:10px; }
  }
  /* ======================================================================
     デザインを、もとの赤・青に戻した（2026-10-26 依頼者。レイアウトは今のまま）
     10-23 の「チャコール×金」の段は外した（控え：【作業用・アップロードしない】/バックアップ/デザインを赤青に戻す前_2026-10-26/）。
     ここには、そのとき足したレイアウトのうち、色に関係しない部分だけを、もとの配色で残す。
     ====================================================================== */
  /* ヘッダーの上の小さいメニューの帯（お知らせ・企業・学校の方へ・合格の確認・よくある質問・お問い合わせ） */
  .util-bar{ background:var(--surface-2); font-size:.76rem; border-bottom:1px solid var(--line); }
  .topbar .util-bar .wrap{ display:flex; justify-content:flex-end; gap:20px; padding-block:6px; flex-wrap:wrap; }
  .util-bar a{ color:var(--ink-soft); text-decoration:none; }
  .util-bar a:hover, .util-bar a[aria-current]{ color:var(--blue); }
  @media (max-width:640px){ .util-bar{ display:none; } }
  /* 協会概要：設立の背景の文の下に空撮の写真（2026-10-23 依頼者。添え書きはしない） */
  .about-photo{ margin-top:18px; }
  /* スマホのメニュー：言語の切り替えは項目のあとに */
  .drawer-lang{ margin-top:22px; }
