@charset "UTF-8";
/* =========================================================
   STELLAR | AI導入に活用できる補助金・助成金 (ai-subsidy)
   既存トンマナ(ライトブルー/Zen Maru Gothic/Arima)を踏襲。
   行政制度ページのため可読性・信頼感を最優先し、演出は控えめ。
   ========================================================= */

:root {
    --sb-blue: #4a9fd4;
    --sb-blue-deep: #12325c;
    --sb-navy: #0b1f3a;
    --sb-cyan: #8ad4ef;
    --sb-ink: #2c3e50;
    --sb-glass: rgba(255, 255, 255, 0.78);
    --sb-glass-strong: rgba(255, 255, 255, 0.92);
    --sb-line: rgba(255, 255, 255, 0.9);
    --sb-shadow: 0 18px 44px -20px rgba(18, 50, 92, 0.42);
    --sb-radius: 20px;
    --sb-warn: #c26a1b;
    --sb-warn-bg: #fff5e9;
    --sb-ok: #1f8a5b;
}

.ai-subsidy { overflow-x: hidden; }

/* 背景動画（style_top.css を読み込まないため定義） */
.ai-subsidy #bg-video {
    position: fixed; top: 0; left: 0;
    min-width: 100%; min-height: 100%;
    object-fit: cover; z-index: -1;
    pointer-events: none; opacity: 0.5; transform: none;
}
@media screen and (max-aspect-ratio: 3/4) {
    .ai-subsidy #bg-video {
        transform: rotate(90deg); transform-origin: center center;
        width: 100vh; height: 100vw; top: 50%; left: 50%;
        min-width: unset; min-height: unset; translate: -50% -50%;
    }
}
/* 可読性確保：本文帯に薄いベール */
.ai-subsidy::before {
    content: ""; position: fixed; inset: 0; z-index: -1;
    background: linear-gradient(180deg, rgba(171,207,223,.25), rgba(171,207,223,.55));
    pointer-events: none;
}

/* style_page.css の #page #main (2ID) を上書き */
#page.ai-subsidy #main { width: 100%; max-width: none; margin: 0; padding: 0; }

/* ---- Reveal ---- */
[data-reveal] {
    opacity: 0; transform: translateY(30px);
    transition: opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1);
    will-change: opacity, transform;
}
[data-reveal].is-visible { opacity: 1; transform: none; }
[data-reveal-delay="1"] { transition-delay: .07s; }
[data-reveal-delay="2"] { transition-delay: .14s; }
[data-reveal-delay="3"] { transition-delay: .21s; }
@media (prefers-reduced-motion: reduce) {
    [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ---- 共通レイアウト ---- */
.sb-section { position: relative; z-index: 2; max-width: 1120px; margin: 0 auto; padding: 5rem 1.2rem; }
.sb-sec-head { text-align: center; margin-bottom: 2.6rem; }
.sb-sec-head .en {
    display: block; font-family: "Arima", system-ui; font-weight: 300;
    font-size: clamp(1.9rem, 5vw, 3rem); line-height: 1; color: #fff;
    letter-spacing: 3px; text-shadow: 0 6px 24px rgba(11,31,58,.35);
}
.sb-sec-head .ja {
    display: inline-block; margin-top: .9rem; font-size: clamp(1rem, 2.3vw, 1.3rem);
    font-weight: 700; color: var(--sb-blue-deep); background: var(--sb-glass);
    padding: .35rem 1.3rem; border-radius: 999px; box-shadow: var(--sb-shadow);
}
.sb-lead { max-width: 760px; margin: 1.4rem auto 0; text-align: center; color: var(--sb-ink); line-height: 2; }

/* パンくず */
.sb-breadcrumb {
    position: absolute; top: 0; left: 0; right: 0; max-width: 1120px; margin: 0 auto;
    padding: 5rem 1.6rem 0; font-size: .78rem; color: rgba(255,255,255,.92); z-index: 4;
}
@media (min-width: 768px) { .sb-breadcrumb { padding-top: 5.5rem; } }
.sb-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 0; }
.sb-breadcrumb a { color: #fff; text-decoration: none; opacity: .85; }
.sb-breadcrumb a:hover { opacity: 1; text-decoration: underline; }
.sb-breadcrumb li[aria-current] { font-weight: 700; }

/* =========================================================
   HERO
   ========================================================= */
.sb-hero {
    position: relative; min-height: 82svh; display: flex; flex-direction: column;
    align-items: center; justify-content: center; text-align: center;
    padding: 9rem 1.5rem 4rem; overflow: hidden;
}
.sb-hero__net { display: none; } /* 全ページ共通の背景パーティクルに統一したため非表示 */
.sb-hero__inner { position: relative; z-index: 3; max-width: 900px; }
.sb-hero__eyebrow {
    font-family: "Arima", system-ui; font-weight: 300; letter-spacing: 4px;
    font-size: clamp(.75rem, 2vw, 1rem); color: var(--sb-cyan); text-transform: uppercase;
    margin-bottom: 1.2rem;
}
.sb-hero__title {
    font-size: clamp(2rem, 6vw, 3.6rem); font-weight: 900; line-height: 1.3; color: #fff;
    letter-spacing: 1px; text-shadow: 0 12px 40px rgba(11,31,58,.5); margin: 0;
}
.sb-hero__title .grad {
    background: linear-gradient(100deg, #fff 0%, var(--sb-cyan) 60%, #cfeeff 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.sb-hero__sub {
    margin-top: 1.6rem; font-size: clamp(.95rem, 2.3vw, 1.2rem); font-weight: 500;
    line-height: 1.9; color: #fff; text-shadow: 0 4px 18px rgba(11,31,58,.4);
}
.sb-hero__cta { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin-top: 2.2rem; }
.sb-hero__note {
    margin-top: 1.8rem; font-size: .8rem; color: rgba(255,255,255,.9);
    background: rgba(11,31,58,.28); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    border: 1px solid rgba(255,255,255,.28); border-radius: 12px; padding: .6rem 1rem;
    display: inline-block; max-width: 640px;
}

/* ボタン */
.sb-btn {
    display: inline-flex; align-items: center; gap: .4rem; text-decoration: none;
    font-weight: 700; letter-spacing: .5px; border-radius: 999px; padding: 13px 30px;
    transition: all .4s cubic-bezier(.2,.7,.3,1); border: 1px solid transparent; cursor: pointer;
    font-family: inherit; font-size: 1rem;
}
.sb-btn--primary {
    color: #fff; background: linear-gradient(120deg, var(--sb-blue-deep), var(--sb-blue));
    box-shadow: 0 14px 32px -12px rgba(18,50,92,.7);
}
.sb-btn--primary:hover { transform: translateY(-3px); box-shadow: 0 20px 44px -12px rgba(74,159,212,.85); }
.sb-btn--ghost { color: #fff; background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.4); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.sb-btn--ghost:hover { background: rgba(255,255,255,.24); }
.sb-btn--dark { color:#fff; background: var(--sb-blue-deep); }

/* =========================================================
   免責 / 注意バナー
   ========================================================= */
.sb-disclaimer {
    max-width: 1120px; margin: 0 auto; position: relative; z-index: 2;
    background: var(--sb-warn-bg); border: 1px solid #f0d3a8; border-left: 5px solid var(--sb-warn);
    border-radius: 14px; padding: 1.1rem 1.3rem; color: #5b4326; font-size: .9rem; line-height: 1.9;
    display: flex; gap: .8rem; align-items: flex-start;
}
.sb-disclaimer svg { flex: 0 0 auto; width: 22px; height: 22px; color: var(--sb-warn); margin-top: 3px; }
.sb-disclaimer strong { color: var(--sb-warn); }
.sb-section--disc { padding-top: 2.5rem; padding-bottom: 0; }

/* =========================================================
   Section1 : 補助金 vs 助成金
   ========================================================= */
.sb-compare { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.sb-compare__card {
    background: var(--sb-glass); border: 1px solid var(--sb-line); border-radius: var(--sb-radius);
    padding: 1.8rem; box-shadow: var(--sb-shadow);
}
.sb-compare__card h3 {
    font-size: 1.4rem; font-weight: 800; color: var(--sb-blue-deep); margin: 0 0 .3rem;
    display: flex; align-items: center; gap: .5rem;
}
.sb-compare__badge { font-size: .72rem; font-weight: 700; padding: .15rem .7rem; border-radius: 999px; color: #fff; }
.sb-compare__card--hojo .sb-compare__badge { background: var(--sb-blue); }
.sb-compare__card--josei .sb-compare__badge { background: var(--sb-ok); }
.sb-compare__card ul { list-style: none; padding: 0; margin: 1rem 0 0; }
.sb-compare__card li { position: relative; padding: .45rem 0 .45rem 1.5rem; color: var(--sb-ink); border-top: 1px dashed #cfe0ec; line-height: 1.8; }
.sb-compare__card li:first-child { border-top: none; }
.sb-compare__card li::before { content: ""; position: absolute; left: 0; top: 1.1rem; width: 8px; height: 8px; border-radius: 50%; background: var(--sb-blue); }
.sb-compare__card--josei li::before { background: var(--sb-ok); }
.sb-compare__note { margin-top: 1.6rem; text-align: center; font-size: .85rem; color: var(--sb-ink); }
@media (min-width: 768px) { .sb-compare { grid-template-columns: 1fr 1fr; } }

/* =========================================================
   Section2 : フィルタ + 一覧
   ========================================================= */
.sb-filter {
    background: var(--sb-glass-strong); border: 1px solid var(--sb-line); border-radius: var(--sb-radius);
    padding: 1.4rem 1.4rem 1.6rem; box-shadow: var(--sb-shadow); margin-bottom: 2rem;
}
.sb-filter__row { margin-bottom: 1.1rem; }
.sb-filter__row:last-child { margin-bottom: 0; }
.sb-filter__label { display: block; font-size: .8rem; font-weight: 700; color: var(--sb-blue-deep); margin-bottom: .5rem; letter-spacing: .5px; }
.sb-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.sb-chip {
    font-size: .82rem; font-weight: 600; color: var(--sb-blue-deep);
    background: #fff; border: 1px solid #cfe0ec; border-radius: 999px; padding: .4rem 1rem;
    cursor: pointer; transition: all .25s ease; font-family: inherit;
}
.sb-chip:hover { border-color: var(--sb-blue); }
.sb-chip[aria-pressed="true"] { background: var(--sb-blue-deep); color: #fff; border-color: var(--sb-blue-deep); }
.sb-search {
    width: 100%; border: 1px solid #cfe0ec; border-radius: 12px; padding: .75rem 1rem;
    font-size: 1rem; font-family: inherit; color: var(--sb-ink); background: #fff;
}
.sb-search:focus { outline: 2px solid var(--sb-blue); outline-offset: 1px; border-color: var(--sb-blue); }
.sb-filter__foot { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; justify-content: space-between; margin-top: 1.1rem; }
.sb-filter__count { font-size: .85rem; color: var(--sb-blue-deep); font-weight: 700; }
.sb-filter__reset {
    font-size: .8rem; color: var(--sb-blue-deep); background: none; border: none; cursor: pointer;
    text-decoration: underline; font-family: inherit;
}

/* バッジ */
.sb-badge { display: inline-block; font-size: .72rem; font-weight: 700; padding: .2rem .7rem; border-radius: 999px; white-space: nowrap; }
.sb-badge--open { background: #e3f6ec; color: var(--sb-ok); }
.sb-badge--upcoming { background: #eaf3fb; color: var(--sb-blue); }
.sb-badge--ongoing { background: #eef0ff; color: #5a5fd0; }
.sb-badge--closed { background: #eee; color: #888; }
.sb-badge--unknown { background: #f3f0e7; color: var(--sb-warn); }
.sb-badge--hojo { background: #eaf3fb; color: var(--sb-blue-deep); }
.sb-badge--josei { background: #e3f6ec; color: var(--sb-ok); }
.sb-badge--other { background: #f0eefb; color: #6a5fd0; }

/* テーブル(PC) */
.sb-table-wrap { overflow-x: auto; border-radius: var(--sb-radius); box-shadow: var(--sb-shadow); display: none; }
.sb-table { width: 100%; border-collapse: collapse; background: var(--sb-glass-strong); min-width: 760px; }
.sb-table th, .sb-table td { text-align: left; padding: .9rem 1rem; border-bottom: 1px solid #dbe7f0; font-size: .9rem; vertical-align: top; }
.sb-table thead th { background: var(--sb-blue-deep); color: #fff; font-weight: 700; position: sticky; top: 0; font-size: .82rem; letter-spacing: .5px; }
.sb-table tbody tr:hover { background: rgba(74,159,212,.06); }
.sb-table .sb-t-name { font-weight: 700; color: var(--sb-blue-deep); }
.sb-table .sb-t-former { display: block; font-size: .74rem; color: #7a8699; font-weight: 500; margin-top: 2px; }
.sb-table .sb-t-link { color: var(--sb-blue); text-decoration: none; font-weight: 700; white-space: nowrap; }
.sb-table .sb-t-link:hover { text-decoration: underline; }

/* カード(SP/共通) */
.sb-cards { display: grid; grid-template-columns: 1fr; gap: 1.1rem; }
.sb-card {
    background: var(--sb-glass-strong); border: 1px solid var(--sb-line); border-radius: var(--sb-radius);
    padding: 1.5rem; box-shadow: var(--sb-shadow); transition: transform .35s ease;
}
.sb-card:hover { transform: translateY(-4px); }
.sb-card__top { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: .6rem; }
.sb-card__name { font-size: 1.15rem; font-weight: 800; color: var(--sb-blue-deep); margin: .2rem 0; width: 100%; }
.sb-card__former { font-size: .76rem; color: #7a8699; }
.sb-card__org { font-size: .8rem; color: #5f7183; margin-bottom: .7rem; }
.sb-card__summary { font-size: .9rem; color: var(--sb-ink); line-height: 1.85; margin-bottom: 1rem; }
.sb-card__grid { display: grid; grid-template-columns: 1fr; gap: .5rem 1rem; font-size: .84rem; margin-bottom: 1rem; }
.sb-card__grid dt { font-weight: 700; color: var(--sb-blue-deep); }
.sb-card__grid dd { margin: 0 0 .5rem; color: var(--sb-ink); }
.sb-card__uses { margin-bottom: 1rem; }
.sb-card__uses ul { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: .3rem 0 0; list-style: none; }
.sb-card__uses li { font-size: .76rem; background: #eef5fb; color: var(--sb-blue-deep); border-radius: 8px; padding: .2rem .6rem; }
.sb-card__notes { background: var(--sb-warn-bg); border-radius: 10px; padding: .7rem .9rem; font-size: .8rem; color: #5b4326; line-height: 1.8; margin-bottom: 1rem; }
.sb-card__notes li { margin-left: 1rem; }
.sb-card__foot { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; justify-content: space-between; }
.sb-card__verified { font-size: .72rem; color: #7a8699; }
.sb-card__link {
    display: inline-flex; align-items: center; gap: .3rem; color: #fff; background: var(--sb-blue);
    text-decoration: none; font-weight: 700; font-size: .85rem; border-radius: 999px; padding: .5rem 1.1rem;
    transition: background .3s ease;
}
.sb-card__link:hover { background: var(--sb-blue-deep); }
@media (min-width: 900px) {
    .sb-table-wrap { display: block; }
    .sb-cards { display: none; }
}

/* 0件表示 */
.sb-empty { text-align: center; padding: 2.5rem 1rem; color: var(--sb-ink); background: var(--sb-glass); border-radius: var(--sb-radius); border: 1px dashed #bcd2e2; }
.sb-empty p { margin: 0 0 1rem; }

/* =========================================================
   Section3 : 目的別カード
   ========================================================= */
.sb-purpose-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.1rem; }
.sb-purpose {
    background: var(--sb-glass); border: 1px solid var(--sb-line); border-radius: var(--sb-radius);
    padding: 1.5rem; box-shadow: var(--sb-shadow);
}
.sb-purpose__icon { width: 44px; height: 44px; border-radius: 12px; background: linear-gradient(135deg, var(--sb-blue), var(--sb-cyan)); display: flex; align-items: center; justify-content: center; color: #fff; margin-bottom: .9rem; }
.sb-purpose__icon svg { width: 24px; height: 24px; }
.sb-purpose h3 { font-size: 1.05rem; font-weight: 800; color: var(--sb-blue-deep); margin: 0 0 .6rem; }
.sb-purpose ul { padding-left: 1.1rem; margin: 0 0 .8rem; }
.sb-purpose li { font-size: .88rem; color: var(--sb-ink); margin-bottom: .3rem; }
.sb-purpose__note { font-size: .76rem; color: #7a8699; line-height: 1.7; }

/* =========================================================
   Section4 : 対象経費
   ========================================================= */
.sb-expense-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .9rem; }
.sb-expense {
    background: var(--sb-glass); border: 1px solid var(--sb-line); border-radius: 16px;
    padding: 1.1rem 1rem; text-align: center; box-shadow: var(--sb-shadow); transition: transform .3s ease;
}
.sb-expense:hover { transform: translateY(-4px); }
.sb-expense__icon { width: 40px; height: 40px; margin: 0 auto .6rem; border-radius: 10px; background: rgba(74,159,212,.14); color: var(--sb-blue); display: flex; align-items: center; justify-content: center; }
.sb-expense__icon svg { width: 22px; height: 22px; }
.sb-expense span { font-size: .84rem; font-weight: 600; color: var(--sb-blue-deep); }

/* =========================================================
   Section5 : 申請手順（ステップ）
   ========================================================= */
.sb-steps { position: relative; max-width: 820px; margin: 0 auto; }
.sb-step { position: relative; padding: 0 0 2.2rem 64px; }
.sb-step:last-child { padding-bottom: 0; }
.sb-step::before { content: ""; position: absolute; left: 21px; top: 6px; bottom: -6px; width: 2px; background: rgba(255,255,255,.5); }
.sb-step:last-child::before { display: none; }
.sb-step__num {
    position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%;
    background: linear-gradient(135deg, var(--sb-blue-deep), var(--sb-blue)); color: #fff;
    display: flex; align-items: center; justify-content: center; font-family: "Arima", system-ui;
    font-size: 1.15rem; font-weight: 400; box-shadow: 0 6px 18px -6px rgba(18,50,92,.6);
}
.sb-step__body { background: var(--sb-glass); border: 1px solid var(--sb-line); border-radius: var(--sb-radius); padding: 1.2rem 1.4rem; box-shadow: var(--sb-shadow); }
.sb-step__body h3 { font-size: 1.1rem; font-weight: 800; color: var(--sb-blue-deep); margin: 0 0 .5rem; }
.sb-step__body p, .sb-step__body ul { font-size: .9rem; color: var(--sb-ink); line-height: 1.9; margin: 0; }
.sb-step__body ul { padding-left: 1.1rem; }
.sb-step__crit { margin-top: .7rem; background: var(--sb-warn-bg); border-radius: 10px; padding: .6rem .9rem; font-size: .82rem; color: #5b4326; border-left: 3px solid var(--sb-warn); }
.sb-step__crit strong { color: var(--sb-warn); }

/* =========================================================
   Section6 : チェックリスト
   ========================================================= */
.sb-checklist { max-width: 780px; margin: 0 auto; background: var(--sb-glass-strong); border: 1px solid var(--sb-line); border-radius: var(--sb-radius); padding: 1.6rem 1.6rem 1.2rem; box-shadow: var(--sb-shadow); }
.sb-check-item { display: flex; gap: .8rem; align-items: flex-start; padding: .7rem 0; border-top: 1px solid #e2ecf3; cursor: pointer; }
.sb-check-item:first-child { border-top: none; }
.sb-check-item input { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 2px; accent-color: var(--sb-blue); cursor: pointer; }
.sb-check-item span { font-size: .92rem; color: var(--sb-ink); line-height: 1.7; }
.sb-check-item input:checked + span { color: #7a8699; text-decoration: line-through; }
.sb-check-progress { margin-top: 1.1rem; display: flex; align-items: center; gap: .8rem; }
.sb-check-bar { flex: 1; height: 8px; background: #e2ecf3; border-radius: 999px; overflow: hidden; }
.sb-check-bar__fill { height: 100%; width: 0; background: linear-gradient(90deg, var(--sb-blue), var(--sb-cyan)); transition: width .4s ease; }
.sb-check-pct { font-size: .85rem; font-weight: 700; color: var(--sb-blue-deep); min-width: 3.2rem; text-align: right; }
.sb-check-note { margin-top: .8rem; font-size: .76rem; color: #7a8699; }

/* =========================================================
   Section7 : よくある失敗
   ========================================================= */
.sb-fail-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.sb-fail {
    background: var(--sb-warn-bg); border: 1px solid #f0d3a8; border-left: 4px solid var(--sb-warn);
    border-radius: 14px; padding: 1.1rem 1.2rem; display: flex; gap: .7rem; align-items: flex-start;
}
.sb-fail svg { flex: 0 0 auto; width: 20px; height: 20px; color: var(--sb-warn); margin-top: 3px; }
.sb-fail p { margin: 0; font-size: .88rem; color: #5b4326; line-height: 1.8; }

/* =========================================================
   Section8 : 簡易診断
   ========================================================= */
.sb-quiz {
    max-width: 720px; margin: 0 auto; background: var(--sb-glass-strong); border: 1px solid var(--sb-line);
    border-radius: var(--sb-radius); padding: 1.8rem; box-shadow: var(--sb-shadow);
}
.sb-quiz__progress { height: 6px; background: #e2ecf3; border-radius: 999px; overflow: hidden; margin-bottom: 1.6rem; }
.sb-quiz__progress span { display: block; height: 100%; width: 20%; background: linear-gradient(90deg, var(--sb-blue), var(--sb-cyan)); transition: width .4s ease; }
.sb-quiz__step { display: none; }
.sb-quiz__step.is-active { display: block; animation: sb-fade .4s ease; }
@keyframes sb-fade { from { opacity: 0; transform: translateY(10px);} to { opacity: 1; transform: none; } }
.sb-quiz__q { font-size: 1.15rem; font-weight: 800; color: var(--sb-blue-deep); margin: 0 0 1.2rem; }
.sb-quiz__opts { display: grid; grid-template-columns: 1fr; gap: .6rem; }
@media (min-width: 560px) { .sb-quiz__opts { grid-template-columns: 1fr 1fr; } }
.sb-quiz__opt {
    text-align: left; background: #fff; border: 1px solid #cfe0ec; border-radius: 12px; padding: .8rem 1rem;
    font-size: .92rem; font-weight: 600; color: var(--sb-ink); cursor: pointer; transition: all .25s ease; font-family: inherit;
}
.sb-quiz__opt:hover { border-color: var(--sb-blue); transform: translateY(-2px); }
.sb-quiz__opt[aria-pressed="true"] { background: var(--sb-blue-deep); color: #fff; border-color: var(--sb-blue-deep); }
.sb-quiz__nav { display: flex; justify-content: space-between; margin-top: 1.6rem; gap: 1rem; }
.sb-quiz__nav button { font-size: .9rem; padding: .6rem 1.4rem; border-radius: 999px; cursor: pointer; font-family: inherit; font-weight: 700; border: 1px solid #cfe0ec; background: #fff; color: var(--sb-blue-deep); transition: all .3s ease; }
.sb-quiz__nav button:hover:not(:disabled) { border-color: var(--sb-blue); }
.sb-quiz__nav button:disabled { opacity: .4; cursor: not-allowed; }
.sb-quiz__next { background: var(--sb-blue-deep) !important; color: #fff !important; border-color: var(--sb-blue-deep) !important; }

/* 診断結果 */
.sb-result { display: none; }
.sb-result.is-active { display: block; }
.sb-result__head { text-align: center; margin-bottom: 1.4rem; }
.sb-result__head h3 { font-size: 1.2rem; font-weight: 800; color: var(--sb-blue-deep); margin: 0; }
.sb-result__list { display: grid; gap: 1rem; }
.sb-result__card { background: #fff; border: 1px solid #cfe0ec; border-radius: 14px; padding: 1.2rem; }
.sb-result__card h4 { font-size: 1.02rem; font-weight: 800; color: var(--sb-blue-deep); margin: 0 0 .4rem; }
.sb-result__reason { font-size: .86rem; color: var(--sb-ink); line-height: 1.8; margin: 0 0 .4rem; }
.sb-result__check { font-size: .8rem; color: var(--sb-warn); background: var(--sb-warn-bg); border-radius: 8px; padding: .4rem .7rem; margin-bottom: .7rem; }
.sb-result__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.sb-result__disclaimer { margin-top: 1.4rem; font-size: .78rem; color: #7a8699; text-align: center; line-height: 1.8; }
.sb-quiz__restart { display: block; margin: 1.2rem auto 0; }

/* =========================================================
   Section9 : STELLARの支援
   ========================================================= */
.sb-support {
    background: linear-gradient(160deg, var(--sb-navy), var(--sb-blue-deep)); border-radius: 28px;
    max-width: 1120px; margin: 0 auto; padding: 3.5rem 1.6rem; position: relative; overflow: hidden;
    box-shadow: 0 40px 80px -40px rgba(11,31,58,.8);
}
.sb-support::after { content: ""; position: absolute; top: -30%; right: -10%; width: 460px; height: 460px; background: radial-gradient(circle, rgba(74,159,212,.4), transparent 62%); pointer-events: none; }
.sb-support .sb-sec-head .ja { color: #fff; background: rgba(255,255,255,.1); }
.sb-support__grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px,1fr)); gap: 1rem; margin: 0 0 2rem; }
.sb-support__item { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-radius: 14px; padding: 1.2rem; }
.sb-support__item h3 { font-size: 1rem; font-weight: 700; color: #fff; margin: 0 0 .4rem; display: flex; gap: .5rem; align-items: center; }
.sb-support__item h3 svg { width: 20px; height: 20px; color: var(--sb-cyan); flex: 0 0 auto; }
.sb-support__item p { font-size: .85rem; color: rgba(255,255,255,.82); margin: 0; line-height: 1.8; }
.sb-support__safe { position: relative; z-index: 1; text-align: center; max-width: 720px; margin: 0 auto 2rem; color: rgba(255,255,255,.9); font-size: .9rem; line-height: 2; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); border-radius: 14px; padding: 1.1rem 1.3rem; }
.sb-support__cta { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }

/* =========================================================
   Section10 : FAQ
   ========================================================= */
.sb-faq { max-width: 820px; margin: 0 auto; }
.sb-faq__item { background: var(--sb-glass-strong); border: 1px solid var(--sb-line); border-radius: 16px; margin-bottom: .9rem; box-shadow: var(--sb-shadow); overflow: hidden; }
.sb-faq__q { width: 100%; text-align: left; background: none; border: none; cursor: pointer; padding: 1.1rem 3rem 1.1rem 1.3rem; font-size: .98rem; font-weight: 700; color: var(--sb-blue-deep); position: relative; font-family: inherit; line-height: 1.6; }
.sb-faq__q::after { content: ""; position: absolute; right: 1.3rem; top: 50%; width: 10px; height: 10px; border-right: 2px solid var(--sb-blue); border-bottom: 2px solid var(--sb-blue); transform: translateY(-70%) rotate(45deg); transition: transform .35s ease; }
.sb-faq__item.is-open .sb-faq__q::after { transform: translateY(-30%) rotate(-135deg); }
.sb-faq__a { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.sb-faq__a p { margin: 0; padding: 0 1.3rem 1.2rem; font-size: .9rem; color: var(--sb-ink); line-height: 1.9; }
.sb-faq__a a { color: var(--sb-blue); }

/* 参考リンク */
.sb-resources { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap: .8rem; max-width: 900px; margin: 2rem auto 0; }
.sb-resource { display: flex; gap: .7rem; align-items: center; background: var(--sb-glass); border: 1px solid var(--sb-line); border-radius: 12px; padding: .9rem 1rem; text-decoration: none; box-shadow: var(--sb-shadow); transition: transform .3s ease; }
.sb-resource:hover { transform: translateY(-3px); }
.sb-resource svg { width: 20px; height: 20px; color: var(--sb-blue); flex: 0 0 auto; }
.sb-resource b { display: block; font-size: .88rem; color: var(--sb-blue-deep); }
.sb-resource small { font-size: .74rem; color: #7a8699; }

/* =========================================================
   Section11 : 最終CTA
   ========================================================= */
.sb-final { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--sb-blue-deep), var(--sb-navy)); margin-top: 4rem; padding: 6rem 1.5rem; text-align: center; }
.sb-final__net { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.sb-final__inner { position: relative; z-index: 3; max-width: 820px; margin: 0 auto; }
.sb-final__lead { font-size: clamp(1.5rem, 5vw, 3rem); font-weight: 900; line-height: 1.5; color: #fff; text-shadow: 0 12px 40px rgba(0,0,0,.5); margin: 0; }
.sb-final__lead .grad { background: linear-gradient(100deg, #fff, var(--sb-cyan)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.sb-final__sub { margin: 1.8rem 0 2.4rem; font-size: clamp(.95rem, 2.6vw, 1.2rem); color: rgba(255,255,255,.9); line-height: 2; }
.sb-final__note { margin-top: 1.8rem; font-size: .8rem; color: rgba(255,255,255,.72); }

/* 監修/更新情報 */
.sb-meta-info { max-width: 1120px; margin: 0 auto; padding: 2.5rem 1.2rem 0; position: relative; z-index: 2; }
.sb-meta-info__box { background: var(--sb-glass); border: 1px solid var(--sb-line); border-radius: 14px; padding: 1.2rem 1.4rem; font-size: .82rem; color: var(--sb-ink); line-height: 1.9; }
.sb-meta-info__box b { color: var(--sb-blue-deep); }

/* 戻り */
.sb-backtop { text-align: center; padding: 2.5rem 1rem 3.5rem; position: relative; z-index: 2; }
.sb-backtop a { display: inline-block; color: var(--sb-blue-deep); font-weight: 700; letter-spacing: 1px; text-decoration: none; background: var(--sb-glass); border: 1px solid var(--sb-line); padding: 11px 34px; border-radius: 999px; transition: all .4s ease; }
.sb-backtop a:hover { transform: translateY(-3px); box-shadow: var(--sb-shadow); }

/* 追従CTA(モバイル) */
.sb-sticky-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: none; padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom)); background: rgba(11,31,58,.92); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: 0 -6px 20px rgba(0,0,0,.25); }
.sb-sticky-cta a { display: block; text-align: center; color: #fff; background: linear-gradient(120deg, var(--sb-blue), var(--sb-cyan)); border-radius: 999px; padding: .8rem; font-weight: 700; text-decoration: none; }
@media (max-width: 767px) { .sb-sticky-cta { display: block; } .ai-subsidy footer { padding-bottom: 4.5rem; } }

@media (min-width: 768px) {
    .sb-section { padding: 6rem 2rem; }
    .sb-card__grid { grid-template-columns: 1fr 1fr; }
}
