/*
 * v0.23.0: 筋肥大DB デザイン展開（v0.22.0のブランド刷新を土台に）（カーボンブラック＋ディープレッド＋スチールグレー）
 * 概念：「筋肉を、科学する。」 科学性50％・力強さ50％。暗いブランド領域＋明るい情報閲覧領域。
 * ・既存の app.css / compat.css / public.css の後に読み込み、色・文字寸法・主要部品だけを上書きする。
 *   採点・順位・価格計算・本文データ・URLには一切関与しない（表示のみ）。
 * ・赤は選択中の状態・主要な操作・対象筋の強調・重要な数値に限る。補助の青は情報用途（注記・フォーカス）に限る。
 * ・文字寸法：本文16px・補助13px以上（旧版の9〜12pxの箇所を、下の「文字寸法の底上げ」で一括して引き上げ）。
 * ・フォントは追加読み込みなし（システムのNoto Sans JP等→ヒラギノ→游ゴシック→メイリオ）。数値は等幅数字。
 * ・ロゴは背景が不透明な白の画像のまま、暗いヘッダー上に「白地のプレート」として置く（透明版・暗色版は使わない）。
 */

/* ===== 文字寸法の底上げ（旧版の9〜15pxを13〜16pxへ。自動生成：app.css/compat.css/public.cssの各規則から） ===== */
.kdb{font-size:16px}
.kdb .preview{font-size:13px}
.kdb .brand small{font-size:13px}
.kdb .header-nav{font-size:15px}
.kdb .breadcrumb{font-size:13px}
.kdb .eyebrow{font-size:13px}
.kdb .side-title{font-size:14px}
.kdb .side-link{font-size:14px}
.kdb .side-note{font-size:13px}
.kdb .tag{font-size:13px}
.kdb .hero-copy{font-size:15px}
.kdb .hero-meta{font-size:13px}
.kdb .hero-meta b{font-size:16px}
.kdb .hero-art small{font-size:13px}
.kdb .hero-art p{font-size:13px}
.kdb .banner strong{font-size:14px}
.kdb .banner p{font-size:13px}
.kdb .banner button{font-size:13px}
.kdb .section-head small{font-size:13px}
.kdb .tab{font-size:14px}
.kdb .tab em{font-size:13px}
.kdb .subtab{font-size:14px}
.kdb .toolbar label{font-size:13px}
.kdb .search-wrap input{font-size:14px}
.kdb .sort-wrap select{font-size:14px}
.kdb .result-head h3{font-size:16px}
.kdb .result-head span{font-size:13px}
.kdb .rank small{font-size:13px}
.kdb .card-target{font-size:13px}
.kdb .reasons{font-size:16px}
.kdb .score-label{font-size:13px}
.kdb .score strong small{font-size:13px}
.kdb .card-foot span{font-size:13px}
.kdb .card-foot button{font-size:13px}
.kdb .load-more{font-size:14px}
.kdb .notice{font-size:14px}
.kdb .overview span{font-size:13px}
.kdb .empty p{font-size:14px}
.kdb .empty button{font-size:14px}
.kdb .product-columns b{font-size:14px}
.kdb .product-columns p{font-size:13px}
.kdb .bottom-banner p{font-size:13px}
.kdb .bottom-banner a{font-size:14px}
.kdb .footer p{font-size:13px}
.kdb .footer-links button{font-size:13px}
.kdb .copyright{font-size:13px}
.kdb .dialog-head strong{font-size:14px}
.kdb .dialog-body h3{font-size:16px}
.kdb .dialog-body p,.kdb .dialog-body li{font-size:14px}
.kdb .factor{font-size:14px}
.kdb .target-filter label{font-size:14px}
.kdb .target-filter select{font-size:14px}
.kdb .target-filter p{font-size:13px}
.kdb .muscle-guide figure button span{font-size:14px}
.kdb .muscle-guide figcaption{font-size:13px}
.kdb .muscle-guide-copy p{font-size:16px}
.kdb .muscle-guide-copy small{font-size:14px}
.kdb .muscle-legend{font-size:14px}
.kdb .large-anatomy figcaption{font-size:15px}
.kdb .target-buttons button{font-size:16px}
.kdb #target-label{font-size:15px}
.kdb .product-intro p{font-size:16px}
.kdb .product-scope{font-size:14px}
.kdb .price-mode button{font-size:15px}
.kdb .price-mode-note{font-size:14px}
.kdb .product-rank small{font-size:14px}
.kdb .product-variant{font-size:15px}
.kdb .product-price-block span{font-size:14px}
.kdb .product-price-block strong small{font-size:16px}
.kdb .product-facts{font-size:15px}
.kdb .product-note{font-size:15px}
.kdb summary{font-size:15px}
.kdb .product-details p{font-size:15px}
.kdb .product-foot>span{font-size:13px}
.kdb .product-foot>a{font-size:15px}
.kdb .product-disclosure p,.kdb .product-disclosure li{font-size:15px}
.kdb .sale-badge{font-size:14px}
.kdb .retailer-link{font-size:15px}
.kdb .retailer-link span{font-size:13px}
.kdb .affiliate-disclosure{font-size:13px}
.kdb .product-image-empty{font-size:13px}
.kdb .image-pr{font-size:13px}
.kdb .pr-mark{font-size:13px}
.kdb .gear-card p{font-size:14px}
.kdb .affiliate-code-label{font-size:13px}
.kdb .protein-guide h4{font-size:16px}
.kdb .protein-guide p{font-size:15px}
.kdb .product-reference-link{font-size:14px}
.kdb .product-reference-link span{font-size:13px}
.kdb .target-section-head p{font-size:14px}
.kdb .high-points-title{font-size:13px}
.kdb .retailer-link>small{font-size:13px}
.kdb .retailer-link>em,.kdb .affiliate-code>em{font-size:13px}
.kdb .retailer-link.cheapest::after{font-size:13px}
.kdb .retailer-link.unavailable>b{font-size:15px}
.kdb .affiliate-brand small{font-size:13px}
.kdb .stock-exclusions{font-size:14px}
.kdb .product-unit-price span{font-size:13px}
.kdb .product-unit-price small{font-size:14px}
.kdb .product-summary .product-total>span:first-child{font-size:14px}
.kdb .retailer-links>.affiliate-code>a{font-size:14px}
.kdb .product-card-provisional .price-link-warning{font-size:13px}
.kdb .offer-price{font-size:13px}
.kdb .offer-price b{font-size:15px}
.kdb .product-image-text p{font-size:13px}
.kdb .ranking-lead p{font-size:15px}
.kdb .ranking-about-button{font-size:14px}
.kdb .ranking-about-list{font-size:15px}
.kdb #detail-content h3{font-size:16px}
.kdb .retailer-hidden-note{font-size:13px}
.kdb .retailer-link>b,.kdb .affiliate-code .affiliate-brand b{font-size:16px}
.kdb .offer-unit{font-size:13px}
.kdb .offer-unit strong small{font-size:13px}
.kdb .cheapest-ribbon{font-size:14px}
.kdb .retailer-link small.offer-price{font-size:13px}
.kdb .retailer-link .pr-mark{font-size:13px}
.kdb .retailer-links>.retailer-link.cheapest .offer-unit{font-size:14px}
.kdb .ranking-cheapest-note{font-size:13px}
.kdb .yahoo-credit{font-size:14px}
.kdb-badge{font-size:14px}
.rank.out small{font-size:13px}
.check-breakdown{font-size:14px}
.kdb-note-out{font-size:15px}
.kdb .footer-links a{font-size:13px}
.kdb .equip-filter>span{font-size:14px}
.kdb .equip-filter button{font-size:15px}
.kdb .equip-note{font-size:13px}
.kdb .card-equip li,.kdb .equip-chips li{font-size:13px}
.kdb .setting-badge{font-size:13px}
.kdb .card-actions a{font-size:14px}
.kdb .kdb-article h4{font-size:16px}
.kdb .kdb-article sup a{font-size:13px}
.kdb .kdb-lead{font-size:16px}
.kdb .kdb-muted{font-size:14px}
.kdb .kdb-sources{font-size:14px}
.kdb .kdb-toc a{font-size:14px}
.kdb .motion-figure figcaption{font-size:14px}
.kdb .motion-figure figcaption b{font-size:13px}
.kdb .exercise-summary h2{font-size:16px}
.kdb .score-big span{font-size:13px}
.kdb .score-big small{font-size:15px}
.kdb .exercise-rank{font-size:15px}
.kdb .factor-table,.kdb .program-table,.kdb .research-table{font-size:15px}
.kdb .program-table thead th,.kdb .research-table thead th{font-size:14px}
.kdb .alt-list span{font-size:14px}
.kdb .calc-row label{font-size:15px}
.kdb .calc-main span{font-size:14px}
.kdb .calc-basis{font-size:16px}
.kdb .calc-card h3{font-size:16px}
.kdb .calc-card dt{font-size:13px}
.kdb .calc-card dd{font-size:16px}
.kdb .kdb-page-links{font-size:14px}
.kdb .calc-step span{font-size:16px}
.kdb .food-table{font-size:15px}
.kdb .calc-gap-grid span{font-size:14px}
.kdb .calc-rank{font-size:14px}
.kdb .type-link{font-size:15px}
.kdb .reason-list li b{font-size:13px}
.kdb .alt-noimg{font-size:14px}
.kdb .alt-name{font-size:15px}
.kdb .alt-meta{font-size:14px}
.kdb .kdb-legal-note{font-size:15px}
.kdb .gear-price span,.kdb .gear-shop{font-size:14px}
.kdb .kdb-updated{font-size:14px}
.kdb .key-points dt{font-size:15px}
.kdb .key-points dd{font-size:15px}
.kdb .retailer-link.unavailable .offer-none{font-size:16px}
.kdb .retailer-link.unavailable>small{font-size:13px}
.kdb .offer-total{font-size:14px}
.kdb .offer-total small{font-size:13px}
.kdb .glossary-figures figcaption{font-size:14px}
.kdb .ai-note{font-size:16px}
.kdb .ai-card h3{font-size:16px}
.kdb .ai-flavor{font-size:15px}
.kdb .ai-facts{font-size:14px}
.kdb .ai-src{font-size:14px}
.kdb .ai-table{font-size:15px}
.kdb .ai-table thead th{font-size:14px}
.kdb .ai-note-small{font-size:14px}
.kdb .ai-buy-link{font-size:15px}
.kdb .ai-buy-link .pr-mark{font-size:13px}
.kdb .gear-pick h5{font-size:16px}
.kdb .gear-score span{font-size:14px}
.kdb .gear-score-parts{font-size:14px}
.kdb .gear-specs{font-size:15px}
.kdb .ai-thumb-cap{font-size:13px}
.kdb .ai-thumb-ph{font-size:14px}
.kdb .ai-tools label{font-size:15px}
.kdb .ai-tools select{font-size:16px}
.kdb .ai-count{font-size:15px}
.kdb .ai-empty{font-size:16px}
.kdb .ai-facts .ai-ppg{font-size:16px}
.kdb .ai-thumb-why{font-size:14px}
.kdb .ai-nobuy-why{font-size:14px}
.kdb .ranking-stale-note{font-size:14px}
.kdb .offer-checked{font-size:13px}
.kdb .ai-buy-priced .ai-buy-site{font-size:15px}
.kdb .ai-buy-priced .ai-buy-price small{font-size:13px}
.kdb .ai-buy-unit{font-size:15px}
.kdb .ai-buy-date{font-size:13px}
.kdb .ai-cheapest-ribbon{font-size:14px}
.kdb .ai-buy-note{font-size:13px}
.kdb .offer-coupon{font-size:13px}
.kdb .offer-coupon small{font-size:13px}
.kdb .offer-sale-end{font-size:13px}
.kdb .calc-main em{font-size:14px}
.kdb .calc-gap-row span{font-size:13px}
.kdb .calc-basis-toggle{font-size:15px}
.kdb .rank-jump{font-size:15px}
.kdb .ai-unit-hero .ai-unit-label{font-size:15px}
.kdb .ai-unit-hero strong small{font-size:16px}
.kdb .ai-unit-hero .ai-unit-sub{font-size:14px}
.kdb .ai-thumb-failed::before{font-size:13px}
.kdb .rec-meta{font-size:15px}
.kdb .rec-setup{font-size:15px}
.kdb .rec-more{font-size:16px}
.kdb .quick-picks h4{font-size:16px}
.kdb .quick-table{font-size:15px}
.kdb .quick-table th{font-size:13px}
.kdb .quick-table small{font-size:13px}
.kdb .quick-table .quick-unit b{font-size:16px}
.kdb .quick-buy{font-size:14px}
.kdb .quick-buy .pr-mark{font-size:13px}
.kdb .quick-picks .kdb-muted{font-size:13px}
@media(max-width:1100px){.kdb .tab{font-size:13px}}
@media(max-width:820px){.kdb .menu-button{font-size:13px}.kdb .mobile-bottom a{font-size:13px}}
@media(max-width:560px){.kdb{font-size:16px}.kdb .preview{font-size:13px}.kdb .brand small{font-size:13px}.kdb .breadcrumb{font-size:13px}.kdb .hero-copy{font-size:16px}.kdb .hero-meta{font-size:13px}.kdb .banner strong{font-size:15px}.kdb .banner p{font-size:14px}.kdb .banner button{font-size:14px}.kdb .section-head small{font-size:14px}.kdb .tab{font-size:16px}.kdb .tab em{font-size:13px}.kdb .subtab{font-size:15px}.kdb .sort-wrap select{font-size:13px}.kdb .rank small{font-size:13px}.kdb .card-target{font-size:13px}.kdb .score-label{font-size:13px}.kdb .score strong small{font-size:13px}.kdb .reasons{font-size:16px}.kdb .card-foot span{font-size:13px}.kdb .card-foot button{font-size:15px}.kdb .search-wrap input::placeholder{font-size:14px}.kdb .dialog-body p,.kdb .dialog-body li{font-size:16px}.kdb .dialog-body .notice{font-size:15px}.kdb .tag{font-size:13px}.kdb .muscle-guide-copy p{font-size:15px}.kdb .muscle-guide-copy small{font-size:13px}.kdb .muscle-guide .eyebrow{font-size:13px}.kdb .muscle-guide figcaption{font-size:13px}.kdb .muscle-guide figure button span{font-size:14px}.kdb .target-buttons button{font-size:15px}.kdb .target-filter p{font-size:14px}.kdb .result-head span{font-size:14px}.kdb .product-price-block span{font-size:13px}.kdb .product-facts{font-size:15px}.kdb .product-note,.kdb .product-details p{font-size:16px}.kdb .product-foot>a{font-size:16px}.kdb .product-foot>span{font-size:14px}.kdb .product-disclosure p,.kdb .product-disclosure li{font-size:16px}.kdb .price-mode button{font-size:14px}.kdb .price-mode-note{font-size:15px}.kdb .mobile-bottom a{font-size:13px}.kdb .footer p{font-size:14px}.kdb .footer-links button{font-size:15px}.kdb .notice{font-size:15px}.kdb .product-intro p{font-size:16px}.kdb .product-scope{font-size:15px}.kdb .retailer-link{font-size:16px}.kdb .protein-guide p{font-size:15px}.kdb .retailer-link>b{font-size:15px}.kdb .retailer-links>.affiliate-code .affiliate-brand b,.kdb .retailer-link>b{font-size:14px}.kdb .retailer-links>.affiliate-code>a{font-size:13px}.kdb .retailer-link>small,.kdb .retailer-link span{font-size:13px}.kdb .offer-unit{font-size:13px}.kdb .retailer-links>.cheapest>b{font-size:16px}.kdb .cheapest-ribbon{font-size:13px}.kdb .retailer-links>.retailer-link.cheapest>b{font-size:16px}.kdb .retailer-yahoo>b{font-size:15px}.kdb .retailer-link,.kdb .retailer-links .affiliate-code{font-size:14px}.kdb .retailer-links em{font-size:13px}.kdb .quick-table{font-size:15px}.kdb .quick-table .quick-rank{font-size:16px}.kdb .quick-table .quick-link .quick-buy{font-size:16px}}
@media(max-width:760px){.kdb .product-unit-price span{font-size:13px}.kdb .product-brand,.kdb .product-top h3{font-size:16px}.kdb .product-variant{font-size:13px}.kdb .product-image-text p{font-size:13px}}
@media(max-width:360px){.kdb .product-brand,.kdb .product-top h3{font-size:16px}}
@media (max-width:760px){.kdb .program-table{font-size:14px}.kdb .equip-filter button{font-size:14px}.kdb .product-tabs .tab{font-size:14px}}
@media (max-width:640px){.kdb .breadcrumb{font-size:14px}.kdb .product-unit-price span{font-size:13px}.kdb .offer-total{font-size:15px}.kdb .offer-total small,.kdb .offer-coupon,.kdb .offer-coupon small{font-size:13px}.kdb .hero-meta span{font-size:14px}.kdb .eyebrow{font-size:13px}.kdb .footer-links a,.kdb .footer-links button{font-size:14px}.kdb .retailer-link span{font-size:13px}.kdb .retailer-link>small{font-size:13px}}


/* ===== デザイントークン ===== */
.kdb,.kdb-info-page{
  --carbon:#101418;--steel:#343e48;--steel-2:#27303a;--red:#d62828;--red-dark:#b51f1f;--surface:#f5f7fa;--white:#fff;
  --muted:#4f5c68;--border:#dce2e7;--blue:#327ca8;--link:#27698f;--success:#177245;--warning:#925600;
  --r-sm:6px;--r-md:12px;--r-lg:18px;--focus:0 0 0 3px rgba(50,124,168,.55);
  --font-ja:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
  /* 旧変数の置き換え */
  --ink:var(--carbon);--paper:var(--surface);--line:var(--border);--lime:#fff;--gold:var(--red);--navy:var(--carbon);--accent:var(--red);--accent-ink:var(--red);--accent-btn:var(--red);
}
.kdb{font-family:var(--font-ja);font-size:16px;line-height:1.75;color:var(--carbon);background:var(--surface);font-feature-settings:"palt" 0;-webkit-text-size-adjust:100%}
.kdb .score strong,.kdb .rank,.kdb .quick-table,.kdb .quick-unit b,.kdb .quick-total,.kdb .product-price-block,.kdb .calc-main-high strong,.kdb .home-point-num{font-variant-numeric:tabular-nums}
.kdb a{text-underline-offset:3px}
.kdb button:hover,.kdb a:hover{color:var(--red)}
.kdb :focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}
.kdb .header :focus-visible,.kdb .hero :focus-visible,.kdb .footer :focus-visible,.kdb .bottom-banner :focus-visible,.kdb .kdb-cta :focus-visible{outline-color:#fff}
.kdb input:focus-visible,.kdb select:focus-visible,.kdb textarea:focus-visible{outline:3px solid var(--blue);outline-offset:1px}

/* ===== ヘッダー：カーボンブラックの領域。ロゴは白地のプレート ===== */
.kdb .header{background:var(--carbon);border:0;border-bottom:3px solid var(--red);box-shadow:none;position:relative;z-index:20}
.kdb .header-inner{max-width:1360px;padding:10px 40px;gap:28px;min-height:84px}
.kdb .brand{display:block;border-radius:var(--r-sm);line-height:0}
.kdb .brand:hover{color:inherit}
.kdb .brand-logo{display:block;width:240px;height:auto;margin:0;border-radius:var(--r-sm);background:#fff}
.kdb .header-nav{gap:6px;margin-left:auto;font-size:15px;font-weight:700}
.kdb .header-nav a{color:#fff;padding:10px 14px;border-radius:var(--r-sm);letter-spacing:.04em;text-decoration:none;position:relative}
.kdb .header-nav a:hover{color:#fff;background:var(--steel)}
.kdb .header-nav a[aria-current=page]{background:transparent;text-decoration:none;box-shadow:inset 0 -3px 0 var(--red)}
.kdb .menu-button{background:#fff;color:var(--carbon);border:0;border-radius:var(--r-sm);min-height:48px;min-width:48px;font-weight:700}
.kdb .menu-button:hover{color:var(--carbon);background:#e9edf1}

/* ===== ページ枠・パンくず・サイドバー ===== */
.kdb .wrap{max-width:1360px}
.kdb .breadcrumb{color:var(--muted);padding:18px 0 14px}
.kdb .breadcrumb a{color:var(--link);text-decoration:underline}
.kdb .layout{grid-template-columns:260px minmax(0,1fr);gap:40px}
.kdb .sidebar{top:16px;max-height:calc(100vh - 32px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.kdb .eyebrow{color:var(--red);font-weight:800;letter-spacing:.16em;font-family:inherit}
.kdb .side-section{padding:14px 0 12px;border-bottom:1px solid var(--border)}
.kdb .side-title{display:flex;flex-direction:column;gap:1px;font-size:15px;font-weight:800;margin:0 0 8px;padding:0 12px;color:var(--carbon);letter-spacing:.02em}
.kdb .side-en{font-size:12px;letter-spacing:.16em;color:var(--red);font-weight:800}
.kdb .side-link{padding:9px 12px;border-radius:var(--r-sm);font-size:14px;line-height:1.5;color:var(--carbon)}
.kdb .side-link:hover{background:#e9edf1;color:var(--carbon)}
.kdb .side-link.sub{padding-left:26px;color:var(--muted)}
.kdb .side-link[aria-current=page],.kdb .side-link.sub[aria-current=page]{background:var(--carbon);color:#fff;box-shadow:inset 3px 0 0 var(--red)}
.kdb .side-note{background:#fff;border:1px solid var(--border);border-left:4px solid var(--red);border-radius:var(--r-sm);color:var(--muted);font-size:13px;padding:14px 16px}
.kdb .side-note strong{color:var(--carbon);font-size:14px}

/* ===== ヒーロー：カーボンブラック。赤は細い縁だけ ===== */
.kdb .hero{position:relative;isolation:isolate;overflow:hidden;color:#fff;border-radius:var(--r-lg);margin:0 0 24px;padding:44px 44px 40px;
  background-color:var(--carbon);background-image:linear-gradient(rgba(16,20,24,.84),rgba(16,20,24,.84)),var(--hero-img,none);background-size:cover;background-position:center;
  grid-template-columns:minmax(0,1fr) 260px;gap:32px;align-items:center}
.kdb .hero:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:32px 32px}
.kdb .hero:after{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--red)}
.kdb .hero h1,.kdb .hero #hero-title{color:#fff;font-size:clamp(30px,3.4vw,44px);line-height:1.35;letter-spacing:.02em;font-weight:800;margin:12px 0 14px}
.kdb .hero .hero-brand{display:block;font-size:15px;font-weight:700;letter-spacing:.14em;color:#c8d1d9;margin-bottom:8px}
.kdb .tag{color:#fff;font-size:12px;font-weight:800;letter-spacing:.2em}
.kdb .tag:before{background:var(--red);box-shadow:none;border-radius:1px;width:18px;height:4px}
.kdb .hero-copy{color:#e3e9ee;font-size:17px;line-height:1.85;max-width:44em;text-wrap:pretty}
.kdb .hero-meta{color:#d3dbe2;font-size:13px;gap:8px 16px;flex-wrap:wrap}
.kdb .hero-meta b{color:#fff}
.kdb .hero-meta .hero-pr{color:#fff;background:rgba(255,255,255,.1);border-left:3px solid var(--red);padding:6px 12px;border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:14px}
.kdb .hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.kdb .hero-cta a,.kdb .home-button,.kdb .bottom-banner a,.kdb .kdb-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;border-radius:var(--r-sm);font-weight:800;font-size:16px;letter-spacing:.03em;text-decoration:none;border:2px solid transparent}
.kdb .hero-cta .btn-primary,.kdb .bottom-banner a,.kdb .kdb-button,.kdb .home-button{background:var(--red);color:#fff;border-color:var(--red)}
.kdb .hero-cta .btn-primary:hover,.kdb .bottom-banner a:hover,.kdb .kdb-button:hover,.kdb .home-button:hover{background:var(--red-dark);border-color:var(--red-dark);color:#fff}
.kdb .hero-cta .btn-secondary{background:transparent;color:#fff;border-color:#fff}
.kdb .hero-cta .btn-secondary:hover{background:#fff;color:var(--carbon)}
.kdb .hero-art{background:var(--steel-2);border:1px solid #4a5560;border-radius:var(--r-md);color:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;padding:24px;min-height:0}
.kdb .hero-art:after{display:none}
.kdb .hero-art small{color:#c8d1d9;font-size:12px;letter-spacing:.16em;font-family:inherit}
.kdb .hero-art strong{font-size:22px}
.kdb .hero-art strong span{color:#fff;box-shadow:inset 0 -.35em 0 var(--red)}
.kdb .art-bars{height:56px}
.kdb .art-bars i{background:var(--red);opacity:1!important;border-radius:2px 2px 0 0}
.kdb .hero-art p{color:#c8d1d9;font-size:13px}
.kdb .hero[data-hero=barbell]{--hero-img:url(photos/barbell-1600.webp)}
.kdb .hero[data-hero=plate]{--hero-img:url(photos/plate-1600.webp)}
.kdb .hero[data-hero=deadlift]{--hero-img:url(photos/deadlift-1600.webp)}
.kdb .hero[data-hero=dumbbell]{--hero-img:url(photos/dumbbell-1600.webp)}
.kdb .hero[data-hero=pushup]{--hero-img:url(photos/pushup-1600.webp)}
.kdb .hero[data-hero=nutrition]{--hero-img:url(photos/nutrition-1600.webp)}
.kdb .hero[data-hero=foods]{--hero-img:url(photos/foods-1600.webp)}

/* ===== 見出し・区切り ===== */
.kdb h1,.kdb h2,.kdb h3{color:var(--carbon);font-weight:800}
.kdb h2{font-size:clamp(22px,2.2vw,28px);line-height:1.4}
.kdb h3{font-size:clamp(18px,1.7vw,22px);line-height:1.5}
.kdb .section-head h2,.kdb .kdb-article h2:not(.calc-step),.kdb .kdb-search-guide h2{position:relative;padding-left:16px}
.kdb .section-head h2:before,.kdb .kdb-article h2:not(.calc-step):before,.kdb .kdb-search-guide h2:before{content:"";position:absolute;left:0;top:.2em;bottom:.2em;width:5px;border-radius:2px;background:var(--red)}
.kdb .section-head small{color:var(--muted)}

/* ===== 注記帯（スコアの意味） ===== */
.kdb .banner{background:#fff;border:1px solid var(--border);border-left:5px solid var(--red);border-radius:var(--r-md);padding:16px 22px}
.kdb .banner strong{font-size:16px;color:var(--carbon)}
.kdb .banner p{color:var(--muted);font-size:14px;line-height:1.75}
.kdb .banner button{color:var(--link);font-weight:700;text-decoration:underline;font-size:14px}

/* ===== タブ（部位）：選択中は赤 ===== */
.kdb .tabs{gap:8px}
.kdb .tab{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);color:var(--carbon);min-height:68px;transition:border-color .15s ease,box-shadow .15s ease}
.kdb .tab em{color:var(--muted);font-size:12px;letter-spacing:.08em}
.kdb .tab:hover{border-color:var(--steel);color:var(--carbon);box-shadow:0 2px 0 var(--steel)}
.kdb .tab[aria-selected=true]{background:var(--red);border-color:var(--red);color:#fff;box-shadow:none}
.kdb .tab[aria-selected=true] em{color:#fff}
.kdb .subtabs{gap:8px}
.kdb .subtab,.kdb .equip-filter button,.kdb .target-buttons button{background:#fff;border:1px solid var(--border);color:var(--carbon);min-height:44px;padding:8px 20px;border-radius:999px}
.kdb .subtab:hover,.kdb .equip-filter button:hover,.kdb .target-buttons button:hover{border-color:var(--steel);color:var(--carbon)}
.kdb .subtab[aria-selected=true],.kdb .equip-filter button[aria-pressed=true],.kdb .target-buttons button[aria-pressed=true]{background:var(--carbon);border-color:var(--carbon);color:#fff;box-shadow:inset 0 -3px 0 var(--red)}
.kdb .equip-filter>span{font-weight:700;color:var(--carbon)}
.kdb .equip-note{color:var(--muted)}

/* ===== 部位ガイド（筋肉の図）・フィルター ===== */
.kdb .muscle-guide{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);box-shadow:none}
.kdb .muscle-guide .eyebrow{color:var(--red)}
.kdb .muscle-legend i{background:var(--red)}
.kdb .muscle-guide figcaption{color:var(--muted)}
.kdb .target-filter{background:#fff;border:1px solid var(--border);border-radius:var(--r-md)}
.kdb .toolbar{border-top:1px solid var(--border)}
.kdb .toolbar label{color:var(--muted);font-size:14px}
.kdb input,.kdb select{background:#fff;border:1px solid #9aa6b1;border-radius:var(--r-sm);min-height:48px;padding:10px 14px;color:var(--carbon)}
.kdb .search-wrap input{font-size:16px}
.kdb .sort-wrap select{font-size:15px;max-width:220px}

/* ===== ランキングカード：順位 / 種目名 / スコア / 対象筋 / 器具 / 場所 / 根拠 / リンク ===== */
.kdb .ranking-list{gap:14px}
.kdb .rank-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);box-shadow:0 1px 2px rgba(16,20,24,.05);grid-template-columns:52px minmax(0,1fr) 128px;gap:18px;padding:22px 24px 18px}
.kdb .rank{color:var(--steel);font-size:30px;font-weight:800;line-height:1.1}
.kdb .rank.first{color:var(--red)}
.kdb .rank small{font-size:13px;margin-top:4px;font-weight:700}
.kdb .rank.out{color:var(--muted)}
.kdb .card-target{background:var(--steel);color:#fff;border-radius:var(--r-sm);padding:3px 10px;font-weight:700;letter-spacing:.04em}
.kdb .card-title{font-size:20px!important;line-height:1.55!important;font-weight:800}
.kdb .card-title a{color:var(--carbon);text-decoration:none}
.kdb .card-title a:hover{color:var(--red);text-decoration:underline}
.kdb .card-equip{gap:6px}
.kdb .card-equip li,.kdb .equip-chips li{background:#fff;border:1px solid #9aa6b1;color:var(--carbon);border-radius:var(--r-sm);padding:3px 10px}
.kdb .setting-badge,.kdb .card-equip li.setting-badge{border-radius:var(--r-sm);font-weight:800;padding:3px 10px}
.kdb .setting-badge.gym,.kdb .card-equip li.setting-badge.gym{background:var(--carbon);border:1px solid var(--carbon);color:#fff}
.kdb .setting-badge.home,.kdb .card-equip li.setting-badge.home{background:#fff;border:2px solid var(--carbon);color:var(--carbon)}
.kdb .card-equip li.fig-badge{background:#eef2f6;border-color:#c5cfd8;color:var(--steel)}
.kdb .kdb-badge{border-radius:var(--r-sm);font-weight:700}
.kdb .kdb-badge.top{background:var(--red);border-color:var(--red);color:#fff}
.kdb .kdb-badge.ev{background:#fff;color:var(--carbon);border:1px solid #9aa6b1}
.kdb .kdb-badge.ev-study{background:var(--steel);border-color:var(--steel);color:#fff}
.kdb .kdb-badge.ev-est{background:#fff;border:1px dashed #6b7885;color:var(--carbon)}
.kdb .kdb-badge.out{background:#eef2f6;border-color:#c5cfd8;color:var(--muted)}
.kdb .score{text-align:right}
.kdb .score-label{color:var(--muted);font-size:13px;font-weight:700}
.kdb .score strong{font-size:44px;font-weight:800;letter-spacing:-.04em;color:var(--carbon)}
.kdb .score strong small{font-size:14px;color:var(--muted)}
.kdb .score-line{background:#e3e8ed;height:6px}
.kdb .score-line i{background:var(--red)}
.kdb .card-foot{border-top:1px solid var(--border)}
.kdb .card-foot span{color:var(--muted)}
.kdb .card-foot button{color:var(--link);font-weight:700;min-height:44px;text-decoration:underline;border:0}
.kdb .card-foot a,.kdb .card-actions a{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;background:var(--carbon);color:#fff;border-radius:var(--r-sm);font-weight:700}
.kdb .card-actions a:hover{background:var(--red);color:#fff}
.kdb .card-actions{display:flex;align-items:center;gap:14px}
.kdb .target-section-head{background:#fff;border:1px solid var(--border);border-left:5px solid var(--red);border-radius:var(--r-md)}
.kdb .notice{color:var(--muted)}
.kdb .load-more{min-height:48px;font-weight:700;border:2px solid var(--carbon);background:#fff;color:var(--carbon)}
.kdb .load-more:hover{background:var(--carbon);color:#fff}
.kdb .empty{background:#fff;border:1px dashed #9aa6b1;border-radius:var(--r-md)}
.kdb .empty .empty-symbol{color:var(--steel)}

/* ===== 帯・行動の誘導 ===== */
.kdb .bottom-banner{background:var(--carbon);color:#fff;border-radius:var(--r-lg);padding:30px 34px;position:relative;overflow:hidden;margin:34px 0 28px}
.kdb .bottom-banner:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--red)}
.kdb .bottom-banner>*{position:relative}
.kdb .bottom-banner h3{color:#fff;font-size:22px}
.kdb .bottom-banner p{color:#d3dbe2;font-size:15px}
.kdb .bottom-banner .eyebrow{color:#fff}
.kdb .kdb-cta{background:var(--carbon);color:#fff;border:0;border-radius:var(--r-lg)}
.kdb .kdb-cta h2{color:#fff}
.kdb .kdb-cta p{color:#d3dbe2}
.kdb .kdb-hub-link a,.kdb .rec-more a{color:var(--link);font-weight:700;text-decoration:underline}

/* ===== トップの案内部：栄養・商品／評価方法／ガイド ===== */
.kdb .home-sections{display:grid;gap:44px;margin:12px 0 40px}
.kdb .home-head{margin-bottom:18px;max-width:52em}
.kdb .home-head h2{margin:2px 0 8px;position:relative;padding-left:16px}
.kdb .home-head h2:before{content:"";position:absolute;left:0;top:.2em;bottom:.2em;width:5px;border-radius:2px;background:var(--red)}
.kdb .home-head p{color:var(--muted);font-size:15px;line-height:1.85}
.kdb .home-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.kdb .home-card{display:flex;flex-direction:column;gap:6px;height:100%;background:#fff;border:1px solid var(--border);border-top:4px solid var(--carbon);border-radius:var(--r-md);padding:18px 18px 16px;color:var(--carbon);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease}
.kdb .home-card:hover{border-top-color:var(--red);box-shadow:0 6px 18px rgba(16,20,24,.1);color:var(--carbon)}
.kdb .home-card-en{font-size:12px;font-weight:800;letter-spacing:.16em;color:var(--red)}
.kdb .home-card strong{font-size:18px;line-height:1.5}
.kdb .home-card-text{font-size:14px;line-height:1.75;color:var(--muted)}
.kdb .home-card:after{content:"詳しく見る →";margin-top:auto;padding-top:6px;font-size:14px;font-weight:800;color:var(--link)}
.kdb .home-method-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px}
.kdb .home-method-box{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:22px 24px}
.kdb .home-method-box h3{font-size:18px;margin-bottom:12px}
.kdb .home-points{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.kdb .home-points li{display:grid;grid-template-columns:minmax(0,11em) minmax(0,1fr) 3.6em;align-items:center;gap:12px;font-size:15px}
.kdb .home-point-name{font-weight:700;line-height:1.45}
.kdb .home-point-bar{display:block;height:10px;background:#e3e8ed;border-radius:3px;overflow:hidden}
.kdb .home-point-bar i{display:block;height:100%;background:var(--steel)}
.kdb .home-point-num{text-align:right;font-size:20px;font-weight:800;color:var(--carbon)}
.kdb .home-point-num small{font-size:13px;font-weight:700;margin-left:1px}
.kdb .home-note{margin-top:14px;font-size:14px;color:var(--muted)}
.kdb .home-evidence{display:grid;gap:14px;margin:0}
.kdb .home-evidence dt{margin:0 0 4px}
.kdb .home-evidence dd{margin:0;font-size:15px;line-height:1.8}
.kdb .home-more{margin-top:18px}
.kdb .home-button{text-decoration:none}

/* ===== 表・早見表・カード（商品比較） ===== */
.kdb .card,.kdb .product-card,.kdb .rec-group,.kdb .hub-cat{background:#fff;border-color:var(--border);box-shadow:0 1px 2px rgba(16,20,24,.05);border-radius:var(--r-md)}
.kdb .quick-table thead th{background:var(--carbon);color:#fff}
.kdb .quick-table td,.kdb .quick-table tr,.kdb .score-line,.kdb .card-foot{border-color:var(--border)}
.kdb .quick-unit b,.kdb .quick-total{font-variant-numeric:tabular-nums}
.kdb .rec-meta{font-family:inherit;font-variant-numeric:tabular-nums}
.kdb .preview{background:#eef2f6;color:var(--muted)}
.kdb .product-disclosure,.kdb .ai-guide,.kdb .protein-guide,.kdb .target-section-head{background:#fff}
.kdb .protein-guide{border-left-color:var(--red)}
.kdb .product-price-block,.kdb .product-unit-price,.kdb .protein-calc,.kdb .calc-gap-grid div,.kdb .calc-gap-row{background:#f1f4f8;border-color:var(--border)}
.kdb .product-price-block span,.kdb .product-unit-price span,.kdb .product-summary .product-total>span:first-child{color:var(--muted)}
.kdb .calc-gap-row.high{background:#fdecec}
.kdb .calc-main-high{border-left-color:var(--red)}
.kdb .key-points{background:#fff;border:1px solid var(--border);border-top:4px solid var(--carbon)}
.kdb .ai-note,.kdb .ai-box{border-left-color:var(--steel);background:#f1f4f8}
.kdb .ai-table thead th{background:#e9edf1}
.kdb .ai-facts .ai-ppg{color:var(--red)}
.kdb .ai-unit-hero,.kdb .ai-unit-hero.is-ref,.kdb .ai-unit-hero.is-none{background:#fdecec;border-color:#f1b4b4}   /* v0.28.1: 価格欄の背景色を全商品で統一（以前は販売先の価格／参考価格／未確認で色が違っていた） */
.kdb .ai-unit-hero.is-ref strong{color:#1d3a0c}
.kdb .ai-buy-link,.kdb .ai-tools button,.kdb .ranking-about-button{border-color:var(--carbon);color:var(--carbon);min-height:44px}
.kdb .ranking-about-button:hover,.kdb .ranking-about-button:focus-visible{background:#e9edf1}
.kdb .rank-jump{border-color:var(--carbon);color:var(--carbon)!important}
.kdb .rank-jump:hover{background:#fdecec}
.kdb .retailer-link>em,.kdb .affiliate-code>em{background:var(--steel)}
.kdb .retailer-link.cheapest::after,.kdb .cheapest-ribbon{background:var(--red)!important;color:#fff!important;border-color:var(--red)!important}
.kdb .plain-reasons li::marker{color:var(--red)}
/* 販売先タイルの文字色（背景との対比を4.5:1以上に） */
.kdb .retailer-link.unavailable,.kdb .retailer-link.unavailable>*:not(em){color:#4f5651!important}
.kdb .retailer-iherb:not(.unavailable),.kdb .retailer-iherb:not(.unavailable) *:not(em){color:#2c4a06!important}
/* 広告である旨の表示は弱めない：はっきりした枠＋赤の縦線 */
.kdb .affiliate-disclosure{background:#fff;border:1px solid var(--border);border-left:5px solid var(--red);color:var(--carbon)}

/* ===== 記事 ===== */
.kdb .kdb-article{max-width:56em}
.kdb .kdb-article p,.kdb .kdb-article li{line-height:1.9}
.kdb .kdb-article a:not(.kdb-button){color:var(--link);text-decoration:underline}
.kdb .kdb-muted{color:var(--muted)}

/* ===== ダイアログ・メニュー ===== */
.kdb dialog{background:#fff;border-radius:var(--r-lg);border:1px solid var(--border)}
.kdb dialog::backdrop{background:rgba(16,20,24,.72);backdrop-filter:none}
.kdb .dialog-head{background:var(--carbon);color:#fff;border-bottom:3px solid var(--red)}
.kdb .dialog-head strong{color:#fff;font-size:16px}
.kdb .dialog-head button{background:#fff;color:var(--carbon);border:0;min-width:44px;min-height:44px;font-size:20px}
.kdb .drawer{max-width:360px}
.kdb .mobile-bottom{background:#fff;border-top:3px solid var(--carbon);backdrop-filter:none}
.kdb .mobile-bottom a{color:var(--carbon);font-size:12px;font-weight:700;min-height:52px}
.kdb .mobile-bottom a[aria-current=page]{background:var(--carbon);color:#fff;box-shadow:inset 0 -3px 0 var(--red)}

/* ===== フッター：カーボンブラック。ロゴは白地のプレート ===== */
.kdb .footer{background:var(--carbon);color:#d3dbe2;border-top:3px solid var(--red);margin-top:40px}
.kdb .footer-inner{max-width:1360px}
.kdb .footer p{color:#d3dbe2;font-size:14px}
.kdb .footer a{color:#fff;font-size:14px;text-decoration:underline}
.kdb .footer a:hover{color:#fff;text-decoration-thickness:3px}
.kdb .footer-links{gap:10px 26px}
.kdb .footer-links a,.kdb .footer-links button{display:inline-flex;align-items:center;min-height:44px;color:#fff}
.kdb .footer .copyright{color:#aab5bf;border-color:#3a444e;font-size:13px}
.kdb .footer .brand-logo-footer{width:220px;border-radius:var(--r-sm);padding:0}


/* ===== トップ以外のヒーローはコンパクトに（種目名・要点・動作図へ早く到達できるように） ===== */
.kdb:not([data-home]) .hero{padding:30px 36px 28px;grid-template-columns:1fr}
.kdb:not([data-home]) .hero-art{display:none}
.kdb:not([data-home]) .hero h1,.kdb:not([data-home]) .hero #hero-title{font-size:clamp(24px,2.6vw,34px);line-height:1.45;margin:10px 0 10px}
.kdb:not([data-home]) .hero-copy{font-size:15px;line-height:1.8}

/* ===== 種目詳細：要点・採点内訳 ===== */
.kdb .key-points h2{padding-left:16px!important}
.kdb .factor-table,.kdb .factor-table tbody{display:block;width:100%;border:0}
.kdb .factor-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;align-items:baseline;background:#fff;border:1px solid var(--border);border-left:5px solid var(--steel);border-radius:var(--r-md);padding:14px 18px;margin:0 0 10px}
.kdb .factor-table th{display:block;text-align:left;border:0;padding:0;background:none;font-size:17px;font-weight:800;color:var(--carbon);width:auto}
.kdb .factor-table td{display:contents;font-size:22px;font-weight:800;text-align:right;color:var(--carbon);font-variant-numeric:tabular-nums}
.kdb .factor-table td br{display:none}
.kdb .factor-table .check-breakdown{grid-column:1/-1;display:block;font-size:14px;font-weight:400;line-height:1.8;color:var(--muted);text-align:left}

.kdb p,.kdb li,.kdb dd,.kdb td,.kdb th{overflow-wrap:break-word}
.kdb .product-note,.kdb .product-summary p{overflow-wrap:anywhere}

/* ===== 動きの抑制 ===== */
@media (prefers-reduced-motion:reduce){.kdb *,.kdb *:before,.kdb *:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ===== 画面幅の調整 ===== */
@media (max-width:1100px){
  .kdb .layout{grid-template-columns:220px minmax(0,1fr);gap:28px}
  .kdb .rank-card{grid-template-columns:44px minmax(0,1fr) 112px}
  .kdb .hero{padding:36px 30px 32px}
}
@media (max-width:820px){
  .kdb .header-inner{padding:8px 16px;min-height:72px;gap:12px}
  .kdb .brand-logo{width:184px}
  .kdb .home-method-grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .kdb .hero{padding:30px 20px 28px;border-radius:var(--r-md);grid-template-columns:1fr}
  .kdb .hero-art{display:none}
  .kdb .hero-copy{font-size:16px}
  .kdb .hero-cta a{flex:1 1 100%}
  .kdb .hero[data-hero=barbell]{--hero-img:url(photos/barbell-800.webp)}
  .kdb .hero[data-hero=plate]{--hero-img:url(photos/plate-800.webp)}
  .kdb .hero[data-hero=deadlift]{--hero-img:url(photos/deadlift-800.webp)}
  .kdb .hero[data-hero=dumbbell]{--hero-img:url(photos/dumbbell-800.webp)}
  .kdb .hero[data-hero=pushup]{--hero-img:url(photos/pushup-800.webp)}
  .kdb .hero[data-hero=nutrition]{--hero-img:url(photos/nutrition-800.webp)}
  .kdb .hero[data-hero=foods]{--hero-img:url(photos/foods-800.webp)}
  .kdb .rank-card{grid-template-columns:40px minmax(0,1fr);gap:10px 12px;padding:18px 16px 14px}
  .kdb .rank-card .score{grid-column:2;display:flex;align-items:baseline;justify-content:space-between;gap:10px;text-align:left;flex-wrap:wrap}
  .kdb .rank-card .score-line{flex:1 0 100%}
  .kdb .score strong{font-size:38px}
  .kdb .card-foot{grid-column:1/-1;flex-wrap:wrap}
  .kdb .home-points li{grid-template-columns:minmax(0,1fr) 3.4em;grid-template-areas:"n v" "b b"}
  .kdb .home-point-name{grid-area:n}.kdb .home-point-num{grid-area:v}.kdb .home-point-bar{grid-area:b}
  .kdb .bottom-banner{padding:24px 20px;flex-direction:column;align-items:flex-start}
  .kdb .bottom-banner a{width:100%}
}
@media (max-width:560px){
  .kdb .wrap{padding:0 16px}
  .kdb .brand-logo{width:168px}
  .kdb .tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .kdb .tab{min-height:64px;padding:10px 2px}
  .kdb .home-cards{grid-template-columns:1fr}
  .kdb .home-sections{gap:36px}
  .kdb .footer-top{flex-direction:column}
  .kdb .footer .brand-logo-footer{width:200px}
}

/* 暗い背景のCTA内リンク・補助表示の対比 */
.kdb .kdb-cta a{color:#9fd0ee}
.kdb .ai-thumb-ph{color:#4f5c68}
.kdb .ai-none{color:#4f5c68}
.kdb .retailer-links>.retailer-link.retailer-official.cheapest .offer-unit,.kdb .retailer-links>.retailer-link.retailer-official.cheapest .offer-unit strong,.kdb .retailer-links>.retailer-link.retailer-official.cheapest .offer-unit small{color:#fff!important}
.kdb .kdb-article .kdb-cta p a,.kdb .kdb-cta p a{color:#9fd0ee!important}
.kdb .retailer-links>.retailer-link.retailer-official:not(.unavailable) .offer-unit,.kdb .retailer-links>.retailer-link.retailer-official:not(.unavailable) .offer-unit strong,.kdb .retailer-links>.retailer-link.retailer-official:not(.unavailable) .offer-unit small{color:#fff!important}

/* =====================================================================
   v0.23.0 承認済み参考画像のレイアウト：白い縦サイドバー＋黒い上部ナビ＋大判ヒーロー＋部位カード＋下部2分割
   配色・ロゴは v0.22.0 のまま（新しいブランド色は追加しない）
   ===================================================================== */
.kdb .layout{grid-template-columns:minmax(0,1fr);gap:0}
.kdb .rail-brand{display:none}
@media (min-width:1024px){
  .kdb{display:grid;grid-template-columns:248px minmax(0,1fr);grid-template-rows:auto auto 1fr;background:var(--surface)}
  .kdb>.header{grid-column:2;grid-row:1;border-bottom:0}
  .kdb>.header .brand,.kdb>.header .menu-button{display:none}
  .kdb>.header .header-inner{max-width:none;min-height:64px;padding:0 36px;gap:20px;justify-content:flex-start}
  .kdb>.header .header-nav{margin-left:0;gap:4px}
  .kdb>.header .header-nav a{padding:20px 16px;border-radius:0;font-size:15px}
  .kdb>.header .header-nav a[aria-current=page]{box-shadow:inset 0 -3px 0 var(--red)}
  .kdb>.sidebar{display:block;grid-column:1;grid-row:1/span 3;align-self:start;position:sticky;top:0;height:100vh;max-height:100vh;overflow-y:auto;overscroll-behavior:contain;
    background:#fff;border-right:1px solid var(--border);padding:0 14px 24px;margin:0;scrollbar-width:thin;z-index:5}
  .kdb>.sidebar .rail-brand{display:block;padding:22px 2px 16px;margin:0 0 4px;border-bottom:1px solid var(--border)}
  .kdb>.sidebar .rail-brand img{display:block;width:100%;max-width:216px;height:auto;margin:0 auto;border-radius:0;background:#fff}
  .kdb>.wrap{grid-column:2;grid-row:2;max-width:1360px;width:100%;margin:0 auto;padding:0 36px}
  .kdb>.footer{grid-column:2;grid-row:3;align-self:end}
  .kdb .side-section{padding:14px 0 12px}
  .kdb .side-link[aria-current=page],.kdb .side-link.sub[aria-current=page]{background:var(--red);color:#fff;box-shadow:none}
  .kdb .side-link[aria-current=page]:hover{background:var(--red-dark);color:#fff}
}
@media (max-width:1023px){
  .kdb>.sidebar{display:none}
  .kdb .menu-button{display:inline-flex}
}

/* --- トップ：大判ヒーロー（写真はモノクロ。人物・器具が推奨・監修に見えない使い方） --- */
.kdb[data-home] .hero{display:flex;align-items:center;min-height:380px;padding:44px 56px 40px;border-radius:var(--r-lg);border-left:6px solid var(--red);background:var(--carbon);margin-bottom:28px}
.kdb[data-home] .hero:before{content:"";position:absolute;inset:0;z-index:-2;background:var(--hero-img,none) right center/cover no-repeat;filter:grayscale(1) contrast(1.06) brightness(.95)}
.kdb[data-home] .hero:after{content:"";position:absolute;inset:0;width:auto;z-index:-1;background:linear-gradient(90deg,rgba(16,20,24,.97) 0%,rgba(16,20,24,.9) 36%,rgba(16,20,24,.55) 68%,rgba(16,20,24,.3) 100%)}
.kdb[data-home] .hero-art{display:none}
.kdb[data-home] .hero-main{max-width:40em}
.kdb[data-home] .hero h1,.kdb[data-home] .hero #hero-title{font-size:clamp(38px,4.6vw,66px);line-height:1.16;letter-spacing:.01em;margin:8px 0 14px}
.kdb .hero-line{display:inline-block}
.kdb[data-home] .hero .hero-brand{font-size:15px;letter-spacing:.2em;color:#d3dbe2;margin-bottom:14px}
.kdb[data-home] .hero-copy{font-size:18px;max-width:30em}
.kdb[data-home] .hero-cta{margin-top:24px}
.kdb[data-home] .hero-cta a{min-width:200px}

/* --- 鍛える部位から選ぶ：図つきの部位カード --- */
.kdb #body-tabs{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}
.kdb #body-tabs .tab{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:0 0 9px;min-height:0;overflow:hidden;text-align:center;line-height:1.35}
.kdb #body-tabs .tab-fig{display:block;width:100%;height:112px;object-fit:cover;object-position:50% 12%;background:#fff;border-bottom:1px solid var(--border);margin:0 0 8px}
.kdb #body-tabs .tab em{display:block;font-size:11px;letter-spacing:.1em}
.kdb #body-tabs .tab .tab-name{display:block;font-size:15px;font-weight:800}
.kdb #body-tabs .tab[aria-selected=true]{background:var(--red);border-color:var(--red);box-shadow:0 0 0 2px var(--red);color:#fff}
.kdb #body-tabs .tab[aria-selected=true] em,.kdb #body-tabs .tab[aria-selected=true] .tab-name{color:#fff}
.kdb #body-tabs .tab[aria-selected=true] .tab-fig{border-bottom-color:var(--red)}

/* --- 対象筋の図を大きく --- */
.kdb .muscle-guide{grid-template-columns:260px minmax(0,1fr);gap:32px;padding:22px 26px}
.kdb .muscle-guide figure button{border-radius:var(--r-md);overflow:hidden}
.kdb .muscle-guide-copy h3{font-size:clamp(22px,2.4vw,30px);margin:4px 0 10px}
.kdb .muscle-guide-copy p{font-size:16px;max-width:36em}

/* --- 下部2分割：左＝黒地（科学・ガイド）、右＝白地（栄養・商品） --- */
.kdb .home-duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border)}
.kdb .home-duo>section{padding:30px 30px 28px}
.kdb .home-duo-science{background:var(--carbon);color:#fff}
.kdb .home-duo-science .home-head h2,.kdb .home-duo-science .home-head h2:before{color:#fff}
.kdb .home-duo-science .home-head p{color:#d3dbe2}
.kdb .home-duo-science .eyebrow{color:#fff;opacity:.85}
.kdb .home-duo-nutrition{background:#fff}
.kdb .home-tiles{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.kdb .home-tile{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:center;padding:10px 14px 10px 10px;border-radius:var(--r-md);text-decoration:none;min-height:72px}
.kdb .home-tile img{width:72px;height:72px;object-fit:cover;border-radius:var(--r-sm);background:#fff}
.kdb .home-tile-body{display:grid;gap:2px}
.kdb .home-tile-body strong{font-size:16px;line-height:1.4}
.kdb .home-tile-body span{font-size:13px;line-height:1.6}
.kdb .home-tile-go{font-weight:800;font-size:18px}
.kdb .home-duo-science .home-tile{background:#1c2229;border:1px solid #343E48;color:#fff}
.kdb .home-duo-science .home-tile:hover{border-color:#fff;color:#fff}
.kdb .home-duo-science .home-tile-body span{color:#d3dbe2}
.kdb .home-duo-nutrition .home-tile{background:var(--surface);border:1px solid var(--border);color:var(--carbon)}
.kdb .home-duo-nutrition .home-tile:hover{border-color:var(--red);color:var(--carbon)}
.kdb .home-duo-nutrition .home-tile-body span{color:var(--muted)}
.kdb .home-duo-nutrition .home-tile-go{color:var(--red)}
.kdb .home-tiles li:nth-child(2) .home-tile img[src*=nutrition]{object-position:100% 50%}
.kdb .home-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin:16px 0 0;font-size:15px;font-weight:700}
.kdb .home-links a{color:var(--link);text-decoration:underline}
@media (max-width:1100px){.kdb .home-duo{grid-template-columns:1fr}}
@media (max-width:1100px){.kdb #body-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){
  .kdb[data-home] .hero{min-height:320px;padding:34px 22px 30px}
  .kdb[data-home] .hero h1,.kdb[data-home] .hero #hero-title{font-size:clamp(34px,10vw,46px)}
  .kdb[data-home] .hero:after{background:linear-gradient(90deg,rgba(16,20,24,.94) 0%,rgba(16,20,24,.78) 100%)}
  .kdb .muscle-guide{grid-template-columns:132px minmax(0,1fr);gap:16px;padding:16px}
  .kdb .home-duo>section{padding:24px 18px}
  .kdb #body-tabs .tab-fig{height:84px}
}
@media (max-width:420px){
  .kdb #body-tabs .tab-fig{height:70px}
  .kdb #body-tabs .tab .tab-name{font-size:14px}
}

/* --- 種目詳細：要点と動作解説図を2カラムに（PC。DOM順は変更なし）／ヒーローを短く --- */
.kdb:not([data-home]) .hero h1,.kdb:not([data-home]) .hero #hero-title{font-size:clamp(26px,2.6vw,36px);line-height:1.35}
@media (min-width:1100px){
  .kdb .kdb-article.exercise-page{max-width:none}
  .kdb .exercise-page .motion-figures{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.kdb .home-tiles li:nth-child(1) .home-tile img[src*=nutrition],.kdb .home-tiles li .home-tile img[src*=nutrition]{object-position:15% 50%}

/* --- 順位カード（幅760px以下）：点数ブロックが本文に重なる不具合（v0.22.0で混入）の修正。本文→点数→フッターの順に積む --- */
@media (max-width:760px){
  .kdb .rank-card .card-main{grid-column:2;grid-row:1}
  .kdb .rank-card .score{grid-column:2;grid-row:2}
  .kdb .rank-card .card-foot{grid-column:1/-1;grid-row:3}
}

/* ===== v0.23.1 トップ専用のヒーロー写真（Pexels・Tristan Le。モノクロ表示。装飾用） ===== */
.kdb .hero[data-hero=top]{--hero-img:url(photos/hero-top-1600.webp)}
@media (max-width:760px){.kdb .hero[data-hero=top]{--hero-img:url(photos/hero-top-sm-800.webp)}}
@media (min-width:761px) and (max-width:1100px){.kdb .hero[data-hero=top]{--hero-img:url(photos/hero-top-800.webp)}}
