/* 保険ショップ案内LP（2026-09-25）。土台は /lp/allabout-kakei/styles.css。ここは足りない部品だけ */
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.shop-cards { list-style: none; padding: 0; margin: 18px 0 22px; display: grid; gap: 10px; }
.shop-cards li { padding: 12px 14px; border: 2px solid var(--accent-soft); border-radius: 14px; background: var(--paper-2); }
.shop-cards strong { display: block; font: 700 17px/1.5 var(--font-title); color: var(--accent); }
.shop-cards span { display: block; font-size: 14px; line-height: 1.7; }

a.cta { text-decoration: none; }
.cta--alt { background: var(--paper-2); color: var(--accent); }
.cta-pair { display: grid; gap: 18px; margin-top: 26px; }
.cta-pair .cta, .final-shop .cta { font-size: 17px; }

.route-note { margin-top: 22px; font-size: 14px; line-height: 1.9; padding: 12px 14px; border-left: 4px solid var(--accent-soft); background: var(--paper-2); border-radius: 0 12px 12px 0; }

.cmp-wrap { margin-top: 22px; }
.cmp-table { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: 13px; line-height: 1.6; border: 2px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--paper-2); }
.cmp-table th, .cmp-table td { padding: 9px 7px; vertical-align: top; border-bottom: 1px solid var(--line); text-align: left; }
.cmp-table tr:last-child th, .cmp-table tr:last-child td { border-bottom: 0; }
.cmp-table thead th { background: var(--accent-soft); font: 700 13px/1.4 var(--font-title); }
.cmp-table tbody th { width: 24%; font-weight: 700; font-size: 12px; }
.cmp-table small { display: block; font-size: 11px; opacity: .8; }
.cmp-note { margin-top: 10px; font-size: 12px; opacity: .85; }

.choose-title { margin-top: 28px; font: 700 18px/1.5 var(--font-title); }
.choose-list { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 10px; }
.choose-list li { padding: 12px 14px; border-radius: 14px; background: var(--yellow); }
.choose-list span { display: block; font-size: 14px; }
.choose-list strong { display: block; font: 700 16px/1.5 var(--font-title); color: var(--accent); }
.choose-list strong::before { content: "→ "; }

.author-copy p + p { margin-top: 12px; }

.final-shops { display: grid; gap: 22px; margin-bottom: 8px; }
.final-shop .service-tag { margin-bottom: 12px; }

.source-list a { overflow-wrap: anywhere; word-break: break-all; }

/* A8の広告コード（2026-10-20 本舗の提携承認）。コードは文言も含めて改変しない。
   外側の .a8-cta-link からボタンの見た目だけを当てる */
.a8-cta { margin-top: 22px; }
.a8-cta-label { margin: 0 0 8px; font: 700 14px/1.6 var(--font-title); text-align: center; }
.a8-cta-label::before, .a8-cta-label::after { content: "＼"; margin: 0 6px; color: var(--accent); }
.a8-cta-label::after { content: "／"; }
.a8-cta-link { position: relative; }
.a8-cta-link a { display: flex; justify-content: center; align-items: center; position: relative; min-height: 62px; padding: 13px 38px 13px 12px; border: 2px solid var(--accent); border-radius: 999px; color: var(--button-ink); background: var(--accent); font: 700 clamp(14px, 4vw, 17px)/1.45 var(--font-title); white-space: nowrap; letter-spacing: 0; text-align: center; text-decoration: none; box-shadow: 0 5px 0 color-mix(in srgb, var(--accent) 60%, #000 10%); transition: transform .15s ease, box-shadow .15s ease; }
.a8-cta-link a::after { content: "→"; position: absolute; right: 14px; font: 400 28px/1 system-ui, sans-serif; }
.a8-cta-link a:hover { transform: translateY(2px); box-shadow: 0 3px 0 color-mix(in srgb, var(--accent) 60%, #000 10%); }
.a8-cta-link a:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
.a8-cta-link img { position: absolute; left: 0; bottom: 0; }
@media (max-width: 359px) { .a8-cta-link a { white-space: normal; } }
.final .service-tag { margin-bottom: 4px; }
.cmp-table--single tbody th { width: 30%; }

/* 本人改稿版（2026-10-21）で増えた部品。みんなの生命保険アドバイザーLPも読み込むので、既存の部品は変えない */
.hero-name { display: block; margin-top: 14px; font: 700 18px/1.5 var(--font-title); color: var(--accent); }
.hero-sub p + p { margin-top: 10px; }
.problem-list--detail li { font: 400 15px/1.8 var(--font-body); }
.problem-list--detail strong { display: block; font: 700 15px/1.6 var(--font-title); }
.problems .story-copy { margin-top: 24px; }
.route-box { margin-top: 26px; padding: 18px 18px 16px; border: 2px dashed var(--accent-soft); border-radius: var(--radius); background: var(--paper-2); }
.route-box h3 { margin: 0 0 8px; font: 700 18px/1.5 var(--font-title); color: var(--accent); }
.route-box p { font-size: 15px; line-height: 1.9; }
.route-links { display: grid; gap: 6px; margin-top: 10px; font-size: 14px; }
.route-links a { text-wrap: pretty; }
.benefit-list dd p + p { margin-top: 8px; }
.benefit-small { font-size: 12px; opacity: .85; }
.choose-text { margin-top: 8px; font-size: 15px; line-height: 1.9; }
.trust-lead { margin-bottom: 18px; font-size: 15px; line-height: 1.9; }
.trust-block p + p { margin-top: 8px; }
.consultation .benefit-list { margin-top: 4px; }
.final-copy { text-align: left; }
.final-copy p { font-size: 15px; line-height: 1.95; }
.final-copy p + p { margin-top: 10px; }
.final-card { margin-top: 28px; padding: 20px 18px 18px; border: 2px solid var(--accent-soft); border-radius: var(--radius); background: var(--paper-2); text-align: left; }
.final-card .service-tag { margin: 0 0 8px; }
.final-card > p:not(.service-tag):not(.cta-note) { font-size: 15px; line-height: 1.9; }
.sources-note + .sources-note { margin-top: 8px; }
/* 375pxで「。」だけが次の行に落ちるのを防ぐ */
#lp p, #lp li, #lp dd, #lp td { text-wrap: pretty; }
.nowrap { white-space: nowrap; }
.a8-cta-label--plain::before, .a8-cta-label--plain::after { content: none; }
