.driver-guide {
    --dg-ink: #10253f;
    --dg-teal: #0c7b83;
    --dg-green: #9acb3f;
    --dg-coral: #ef8069;
    --dg-paper: #f6f7f2;
    --dg-line: #dbe3e7;
    --dg-muted: #607083;
}

.jinji-fit-article-content,
.driver-guide {
    min-width: 0;
}

.driver-guide p:empty {
    display: none;
}

.jinji-fit-single .jinji-fit-article-header h1 {
    font-size: clamp(2.35rem, 4.4vw, 4.5rem);
}

.driver-guide > * + * { margin-top: 2rem; }
.driver-guide h2[id] { scroll-margin-top: 120px; }
.driver-guide h3 { margin-top: 0; }
.driver-guide small { display: block; }

.driver-guide__answer {
    position: relative;
    overflow: hidden;
    padding: clamp(28px, 5vw, 50px);
    border-radius: 0 52px 0 0;
    background: var(--dg-ink);
    color: #fff;
}

.driver-guide__answer::after {
    position: absolute;
    right: -80px;
    bottom: -100px;
    width: 260px;
    height: 260px;
    border: 1px dashed rgba(255,255,255,.25);
    border-radius: 50%;
    content: "";
}

.driver-guide__answer h2,
.jinji-fit-article-content .driver-guide__answer h2 {
    margin: 8px 0 18px;
    padding: 0;
    border: 0;
    color: #fff;
    font-size: clamp(1.55rem, 4vw, 2.25rem);
}

.driver-guide__answer p { position: relative; z-index: 1; margin: 0; color: #dfe8ee; }
.driver-guide__eyebrow { color: var(--dg-green) !important; font-family: "JetBrains Mono", monospace; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.driver-guide__quick-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 28px 0;
    background: rgba(255,255,255,.18);
}

.driver-guide__quick-grid div { padding: 20px 18px; background: rgba(255,255,255,.08); }
.driver-guide__quick-grid span { color: var(--dg-green); font-family: "JetBrains Mono", monospace; font-size: .7rem; }
.driver-guide__quick-grid strong { display: block; margin: 7px 0; font-size: 1rem; }
.driver-guide__quick-grid small { color: #bbc8d2; font-size: .72rem; line-height: 1.55; }
.driver-guide__answer-note { padding-top: 18px; border-top: 1px solid rgba(255,255,255,.18); font-size: .88rem; }

.driver-guide__toc {
    padding: 30px 34px;
    border: 1px solid var(--dg-line);
    background: #fff;
    box-shadow: 10px 10px 0 #e9eeeb;
}
.driver-guide__toc > p { margin: 0 0 18px; color: var(--dg-ink); font-weight: 800; }
.driver-guide__toc > p span { margin-right: 12px; color: var(--dg-teal); font-family: "JetBrains Mono", monospace; font-size: .7rem; letter-spacing: .1em; }
.driver-guide__toc ol { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 32px; margin: 0; padding-left: 1.25rem; }
.driver-guide__toc li { line-height: 1.55; }
.driver-guide__toc a { color: #34485e; font-size: .86rem; text-decoration: none; }
.driver-guide__toc a:hover { color: var(--dg-teal); text-decoration: underline; }

.driver-guide__editorial-note,
.driver-guide__source {
    color: var(--dg-muted);
    font-size: .78rem;
    line-height: 1.8 !important;
}
.driver-guide__editorial-note { padding: 22px 24px; border-left: 4px solid var(--dg-teal); background: #edf5f4; }
.driver-guide__editorial-note strong { color: var(--dg-ink); }
.driver-guide__editorial-note p { margin: 5px 0 0; line-height: 1.75; }

.driver-guide__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 30px 0; }
.driver-guide__stats article { padding: 24px 18px; border-top: 5px solid var(--dg-teal); background: var(--dg-paper); }
.driver-guide__stats span { color: var(--dg-muted); font-size: .75rem; font-weight: 700; }
.driver-guide__stats strong { display: block; margin: 6px 0; color: var(--dg-ink); font-family: "JetBrains Mono", monospace; font-size: clamp(1.55rem, 4vw, 2rem); }
.driver-guide__stats p { margin: 0; color: var(--dg-muted); font-size: .7rem; line-height: 1.55; }

.driver-guide__figure { margin: 36px 0; }
.jinji-fit-article-content .driver-guide__figure img { display: block; width: 100%; margin: 0; border-radius: 0 42px 0 0; }
.driver-guide__figure figcaption { padding: 10px 4px; color: var(--dg-muted); font-size: .72rem; line-height: 1.6; }

.driver-guide__table-wrap { overflow-x: auto; margin: 30px 0; border: 1px solid var(--dg-line); background: #fff; box-shadow: 0 12px 34px rgba(16,37,63,.06); }
.driver-guide__table-wrap::before { display: block; padding: 8px 12px; background: var(--dg-ink); color: #fff; content: "比較表｜スマートフォンでは横にスクロールできます →"; font-size: .68rem; letter-spacing: .03em; }
.driver-guide__table { width: 100%; min-width: 720px; margin: 0; border-collapse: collapse; font-size: .82rem; }
.driver-guide__table th,
.driver-guide__table td { padding: 16px; border: 1px solid var(--dg-line); vertical-align: top; line-height: 1.7; text-align: left; }
.driver-guide__table thead th { background: #edf5f4; color: var(--dg-ink); font-weight: 800; }
.driver-guide__table tbody th { color: var(--dg-ink); background: #fafbf8; }
.driver-guide__table small { margin-top: 4px; color: var(--dg-muted); font-weight: 400; }
.driver-guide__company-table { min-width: 980px; }
.driver-guide__company-table th:first-child { min-width: 170px; }

.driver-guide__tip { display: grid; grid-template-columns: 130px 1fr; gap: 22px; align-items: center; padding: 24px; border: 1px dashed var(--dg-teal); background: #f5faf9; }
.driver-guide__tip span { color: var(--dg-teal); font-weight: 800; }
.driver-guide__tip p { margin: 0; font-size: .86rem; }

.driver-guide__choice-cards,
.driver-guide__job-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 28px 0; }
.driver-guide__choice-cards article { padding: 22px; border: 1px solid var(--dg-line); background: #fff; }
.driver-guide__choice-cards span,
.driver-guide__job-grid span { display: inline-block; margin-bottom: 8px; color: var(--dg-teal); font-size: .82rem; font-weight: 800; }
.driver-guide__choice-cards p { margin: 0; color: var(--dg-muted); font-size: .82rem; line-height: 1.7; }

.driver-guide__criteria { margin: 30px 0; border-top: 1px solid var(--dg-line); }
.driver-guide__criteria article { display: grid; grid-template-columns: 58px 1fr; gap: 18px; padding: 24px 0; border-bottom: 1px solid var(--dg-line); }
.driver-guide__criteria article > span { color: var(--dg-coral); font-family: "JetBrains Mono", monospace; font-size: .82rem; font-weight: 800; }
.driver-guide__criteria h3 { margin: 0 0 7px; color: var(--dg-ink); font-size: 1.1rem; }
.driver-guide__criteria p { margin: 0; color: var(--dg-muted); font-size: .88rem; line-height: 1.85; }

.driver-guide__permit,
.driver-guide__foreign { padding: clamp(26px, 5vw, 42px); border-radius: 0 38px 0 0; }
.driver-guide__permit { background: #e9f1d5; }
.driver-guide__permit span { color: #577b19; font-family: "JetBrains Mono", monospace; font-size: .72rem; font-weight: 700; }
.driver-guide__permit h3,
.driver-guide__foreign h3 { margin: 6px 0 14px; color: var(--dg-ink); }
.driver-guide__permit p,
.driver-guide__foreign p { font-size: .87rem; line-height: 1.85; }

.driver-guide__button { display: inline-flex; justify-content: center; align-items: center; min-height: 52px; padding: 13px 22px; border: 1px solid var(--dg-green); background: var(--dg-green); color: var(--dg-ink) !important; font-weight: 800; line-height: 1.4; text-align: center; text-decoration: none !important; }
.driver-guide__button:hover { transform: translateY(-2px); filter: brightness(.98); }
.driver-guide__button--outline { border-color: var(--dg-ink); background: transparent; }

.driver-guide__formula { margin: 30px 0; padding: 28px; background: var(--dg-ink); color: #fff; text-align: center; }
.driver-guide__formula > span { color: var(--dg-green); font-size: .76rem; font-weight: 700; }
.driver-guide__formula div { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; align-items: center; margin-top: 14px; }
.driver-guide__formula strong { padding: 10px 13px; border: 1px solid rgba(255,255,255,.25); font-size: .9rem; }
.driver-guide__formula b { color: var(--dg-coral); }

.driver-guide__checklist { margin: 26px 0; padding: 0; list-style: none; }
.driver-guide__checklist li { position: relative; padding: 14px 14px 14px 44px; border-bottom: 1px solid var(--dg-line); line-height: 1.7; }
.driver-guide__checklist li::before { position: absolute; top: 17px; left: 12px; width: 19px; height: 19px; border: 2px solid var(--dg-teal); content: ""; }

.driver-guide__job-grid article { padding: 24px; border-top: 4px solid var(--dg-green); background: var(--dg-paper); }
.driver-guide__job-grid ul { margin: 0; padding-left: 1.15rem; }
.driver-guide__job-grid li { color: var(--dg-muted); font-size: .84rem; line-height: 1.75; }
.driver-guide__foreign { background: #eef3f7; }

.driver-guide__red-flags { display: grid; gap: 12px; margin: 28px 0; }
.driver-guide__red-flags article { display: grid; grid-template-columns: 72px 1fr; gap: 2px 18px; padding: 22px; border-left: 4px solid var(--dg-coral); background: #fff8f5; }
.driver-guide__red-flags span { grid-row: 1 / 4; color: var(--dg-coral); font-family: "JetBrains Mono", monospace; font-size: .72rem; font-weight: 800; }
.driver-guide__red-flags h3 { margin: 0; font-size: 1rem; }
.driver-guide__red-flags p,
.driver-guide__red-flags strong { margin: 5px 0 0; font-size: .82rem; line-height: 1.7; }
.driver-guide__red-flags strong { color: var(--dg-teal); }
.driver-guide__warning { padding: 26px; border: 2px solid var(--dg-coral); }
.driver-guide__warning > strong { color: var(--dg-coral); font-size: 1.1rem; }
.driver-guide__warning ul { columns: 2; margin-bottom: 0; }

.driver-guide__steps { margin: 30px 0; padding: 0; list-style: none; counter-reset: step; }
.driver-guide__steps li { display: grid; grid-template-columns: 90px 1fr; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--dg-line); }
.driver-guide__steps span { color: var(--dg-teal); font-family: "JetBrains Mono", monospace; font-size: .72rem; font-weight: 800; }
.driver-guide__steps h3 { margin: 0 0 6px; font-size: 1.05rem; }
.driver-guide__steps p { margin: 0; color: var(--dg-muted); font-size: .84rem; line-height: 1.75; }
.driver-guide__kpi-flow { display: flex; overflow-x: auto; gap: 8px; align-items: center; padding: 20px; background: #edf5f4; white-space: nowrap; }
.driver-guide__kpi-flow span { padding: 9px 12px; background: #fff; color: var(--dg-ink); font-size: .78rem; font-weight: 800; }
.driver-guide__kpi-flow i { color: var(--dg-teal); font-style: normal; }

.driver-guide__questions details,
.driver-guide__faq details { margin: 0; border-bottom: 1px solid var(--dg-line); background: #fff; }
.driver-guide__questions summary,
.driver-guide__faq summary { padding: 18px 44px 18px 18px; color: var(--dg-ink); font-weight: 800; cursor: pointer; }
.driver-guide__questions details[open] summary,
.driver-guide__faq details[open] summary { background: #edf5f4; }
.driver-guide__questions ol,
.driver-guide__faq p { margin: 0; padding: 18px 24px 24px 42px; color: var(--dg-muted); font-size: .86rem; line-height: 1.8; }

.driver-guide__download { padding: clamp(26px, 5vw, 42px); background: var(--dg-paper); }
.driver-guide__download h3 { margin: 5px 0 22px; color: var(--dg-ink); font-size: 1.4rem; }
.driver-guide__final-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
.driver-guide__final-checks label { display: flex; gap: 9px; align-items: flex-start; color: #405267; font-size: .8rem; line-height: 1.6; }
.driver-guide__final-checks input { margin-top: 4px; accent-color: var(--dg-teal); }

.driver-guide__cta { display: grid; grid-template-columns: 1.45fr .8fr; gap: 34px; align-items: center; margin-top: 56px !important; padding: clamp(30px, 6vw, 52px); border-radius: 0 52px 0 0; background: var(--dg-ink); color: #fff; }
.jinji-fit-article-content .driver-guide__cta h2 { margin: 8px 0 14px; padding: 0; border: 0; color: #fff; font-size: clamp(1.65rem, 4vw, 2.35rem); }
.driver-guide__cta p { color: #d2dde6; font-size: .9rem; }
.driver-guide__cta ul { padding-left: 1.1rem; color: #fff; font-weight: 700; }
.driver-guide__cta-actions { text-align: center; }
.driver-guide__cta-actions .driver-guide__button { width: 100%; }
.driver-guide__cta-actions small { margin-top: 12px; color: #a9b8c5; font-size: .67rem; }

.driver-guide__references { margin-top: 48px !important; padding-top: 30px; border-top: 1px solid var(--dg-line); }
.jinji-fit-article-content .driver-guide__references h2 { margin: 0 0 18px; padding: 0; border: 0; font-size: 1.25rem; }
.driver-guide__references ul { padding-left: 1.2rem; }
.driver-guide__references li,
.driver-guide__references p { color: var(--dg-muted); font-size: .74rem; line-height: 1.7; }

@media (max-width: 720px) {
    .jinji-fit-single .jinji-fit-article-header h1 { font-size: clamp(2.15rem, 9vw, 3rem); }
    .driver-guide__quick-grid,
    .driver-guide__stats,
    .driver-guide__choice-cards,
    .driver-guide__job-grid,
    .driver-guide__final-checks,
    .driver-guide__cta { grid-template-columns: 1fr; }
    .driver-guide__toc ol { grid-template-columns: 1fr; }
    .driver-guide__tip { grid-template-columns: 1fr; gap: 8px; }
    .driver-guide__red-flags article { grid-template-columns: 1fr; }
    .driver-guide__red-flags span { grid-row: auto; }
    .driver-guide__warning ul { columns: 1; }
    .driver-guide__steps li { grid-template-columns: 70px 1fr; gap: 10px; }
    .driver-guide__answer,
    .driver-guide__permit,
    .driver-guide__foreign,
    .driver-guide__cta { border-radius: 0 30px 0 0; }
}
