/**
 * オリパ訴求ブロック（カード個別記事）専用スタイル.
 *
 * templates/single-card-improved.php 冒頭の \CardGame\Oripa_Block::render() 出力に対応。
 * single-card 表示かつ表示対象がある時のみ 1 度だけ enqueue される。
 */
.oripa-cta{margin:1.25em 0 1.75em;padding:14px 12px 12px;border:1px solid #d9d6cf;border-radius:10px;background:#fbfaf8;font-size:14px;line-height:1.7;color:#2c2c2a;-webkit-text-size-adjust:100%}
.oripa-cta__eyebrow{margin:0 0 10px;font-size:13px;font-weight:500;color:#5f5e5a}
.oripa-card{padding:10px;border:1px solid #e4e1da;border-radius:8px;background:#fff}
.oripa-card+.oripa-card{margin-top:8px}
.oripa-card__head{display:flex;align-items:flex-start;gap:10px}
.oripa-card__rank{flex:0 0 auto;align-self:center;padding:3px 7px;border-radius:4px;font-size:11px;font-weight:500;line-height:1.4;white-space:nowrap}
.oripa-card__rank--1{background:#fac775;color:#412402}
.oripa-card__rank--2{background:#d3d1c7;color:#2c2c2a}
.oripa-card__icon{flex:0 0 auto;width:48px;height:48px;border-radius:8px;object-fit:cover;background:#f1efe8}
.oripa-card__body{min-width:0;flex:1 1 auto}
.oripa-card__name{margin:0 0 2px;font-size:14px;font-weight:500;line-height:1.5}
.oripa-card__point{margin:0;font-size:13px;color:#5f5e5a;line-height:1.6}
.oripa-code{display:flex;gap:6px;margin-top:10px}
.oripa-code__field{flex:1 1 auto;min-width:0;height:40px;padding:0 10px;border:1px solid #d9d6cf;border-radius:6px;background:#fbfaf8;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;color:#2c2c2a}
.oripa-code__btn{flex:0 0 auto;min-height:40px;padding:0 14px;border:1px solid #b4b2a9;border-radius:6px;background:#fff;font-size:13px;color:#2c2c2a;cursor:pointer}
.oripa-code__btn:active{transform:scale(0.98)}
.oripa-code__btn[data-copied]{border-color:#0f6e56;color:#0f6e56}
.oripa-card__note{margin:8px 0 0;font-size:12px;font-weight:500;color:#a32d2d;line-height:1.6}
.oripa-card__cta{display:block;margin-top:10px;padding:13px 10px;border-radius:6px;background:#0f6e56;color:#fff !important;font-size:15px;font-weight:500;text-align:center;text-decoration:none !important;min-height:46px;box-sizing:border-box}
.oripa-card__cta:hover{background:#0c5c48}
.oripa-card__cta:active{transform:scale(0.99)}
.oripa-card__cta::after{content:" ›";font-weight:400}
.oripa-cta__more{display:block;margin-top:10px;padding:8px;font-size:13px;text-align:center;color:#185fa5;text-decoration:none}
.oripa-cta__more::after{content:" ▾"}
.oripa-card__cta:focus-visible,.oripa-code__btn:focus-visible,.oripa-cta__more:focus-visible{outline:2px solid #185fa5;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.oripa-card__cta:active,.oripa-code__btn:active{transform:none}}
@media(max-width:360px){.oripa-cta{padding:12px 10px 10px}.oripa-card__icon{width:40px;height:40px}.oripa-card__cta{font-size:14px}}

/* パックシミュレーターと共通のクーポン訴求。 */
.cg-standard-post-oripa{margin:1.3em 0}
.cg-coupon-card{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr);gap:14px;align-items:center;padding:14px;border:1px solid #e7eaf0;border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(17,28,49,.16);color:#16202f;box-sizing:border-box}
.cg-coupon-card+.cg-coupon-card{margin-top:10px}
.cg-coupon-card__pr{position:absolute;top:9px;right:11px;color:#8a97a8;font:700 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}
.cg-coupon-card__badge{position:absolute;top:-9px;left:13px;padding:4px 9px;border-radius:999px;background:#ff3d7f;color:#fff;font:800 10px/1 system-ui,sans-serif;letter-spacing:.03em;box-shadow:0 4px 12px rgba(255,61,127,.28)}
.cg-coupon-card__visual{display:flex;align-items:center;justify-content:center;overflow:hidden;width:104px;height:104px;border-radius:10px;background:linear-gradient(160deg,#eef2f8,#dbe4f0);color:#4a5768!important;font:800 12px/1.3 system-ui,sans-serif;text-align:center;text-decoration:none!important;box-sizing:border-box}
.cg-coupon-card__visual img{display:block;width:100%;height:100%;object-fit:contain}
.cg-coupon-card__body{min-width:0}
.cg-coupon-card__name{margin:0!important;padding-right:28px;font:800 16px/1.3 system-ui,sans-serif}
.cg-coupon-card__name a{color:#16202f!important;text-decoration:none!important}
.cg-coupon-card__name a:hover{text-decoration:underline!important}
.cg-coupon-card__tagline{margin:4px 0 0!important;color:#4d5a6b;font:400 12px/1.5 system-ui,sans-serif}
.cg-coupon-card__coupon{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:9px;padding:6px 8px 6px 10px;border:1px dashed #ff6a3d;border-radius:7px;background:#fff5ef;box-sizing:border-box}
.cg-coupon-card__coupon b{color:#e2431c;font:800 13px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;white-space:nowrap}
.cg-coupon-card__coupon em{flex:1 1 auto;min-width:0;color:#2a3547;font:700 11px/1.3 system-ui,sans-serif;font-style:normal}
.cg-coupon-card__copy{flex:0 0 auto;margin-left:auto;padding:6px 10px;border:0;border-radius:5px;background:#16202f;color:#fff;font:800 11px/1 system-ui,sans-serif;white-space:nowrap;cursor:pointer}
.cg-coupon-card__copy.is-done{background:#1f9d6a}
.cg-coupon-card__cta{display:block;width:100%;margin-top:10px;padding:12px;border:0!important;border-radius:9px;background:linear-gradient(135deg,#ff7a45,#ff3d7f)!important;color:#fff!important;font:800 13px/1.2 system-ui,sans-serif;text-align:center;text-decoration:none!important;box-sizing:border-box}
.cg-coupon-card__cta:link,.cg-coupon-card__cta:visited{color:#fff!important}
.cg-coupon-card__cta:hover{filter:brightness(1.05)}
@media(max-width:560px){
  .cg-standard-post-oripa .oripa-cta{padding:12px}
  .cg-coupon-card{grid-template-columns:76px minmax(0,1fr);gap:10px;padding:12px}
  .cg-coupon-card__visual{width:76px;height:76px}
  .cg-coupon-card__name{font-size:15px}
  .cg-coupon-card__coupon{gap:6px;padding:5px 6px 5px 8px}
  .cg-coupon-card__coupon b{font-size:12px}
  .cg-coupon-card__coupon em{font-size:10px}
}

/* 「〇〇の購入方法」セクション：枠と見出しは各コンテキストの標準セクション
   (.card-section / .cg-pack-section) を流用。ここは中身だけを中立トーンで整える。 */
.cg-buy-inner{margin-top:6px}
.cg-buy-pitch{font-size:14px;line-height:1.85;color:#3a3a37;margin:0 0 14px}
.cg-buy-pitch p{margin:0 0 8px}
.cg-buy-pitch strong{font-weight:700}
.cg-buy-tablewrap{overflow-x:auto}
.cg-buy-table{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}
.cg-buy-table th{background:#f4f5f7;color:#555;font-weight:700;padding:9px 10px;text-align:left;white-space:nowrap;font-size:12px;border-bottom:1px solid #e5e7eb}
.cg-buy-table td{padding:10px;border-top:1px solid #eef0f2;vertical-align:middle}
.cg-buy-name{display:flex;align-items:center;gap:8px;font-weight:700;color:#1f2328;min-width:118px}
.cg-buy-name img{width:38px;height:38px;object-fit:cover;border-radius:6px;flex:0 0 auto}
.cg-buy-rating{white-space:nowrap;color:#6b7280}
.cg-buy-stars{color:#f5a623;letter-spacing:1px}
.cg-buy-aff{display:inline-block;padding:7px 14px;background:#1a5fb4;color:#fff !important;font-weight:700;text-decoration:none !important;border-radius:6px;white-space:nowrap;font-size:12px}
/* 訪問済み(クリック済み)リンクだけ文字が黒くなるバグ対策：link/visited/hover 全部で白を固定 */
.cg-buy-aff:link,.cg-buy-aff:visited{color:#fff !important}
.cg-buy-aff:hover{background:#154c92;color:#fff !important}
.cg-buy-ranking{margin:12px 0 0;text-align:right;font-size:13px;font-weight:700}
.cg-buy-ranking a{color:#1a5fb4}
@media(max-width:600px){
  /* スマホ：ラベル×値の縦長テーブルを廃し、1オリパ=コンパクトなカードに。
     全要素を block・全幅・折り返しにして横溢れを原理的にゼロにする（旧版は右端で
     星や公式ボタンが見切れていた）。ラベル非表示で高さも従来の約半分。 */
  .cg-buy-tablewrap{overflow-x:hidden}
  .cg-buy-table,.cg-buy-table thead,.cg-buy-table tbody,.cg-buy-table tr,.cg-buy-table td,.cg-buy-aff{box-sizing:border-box}
  .cg-buy-table{display:block;border:0;background:transparent;overflow:visible}
  .cg-buy-table thead{display:none}
  .cg-buy-table tbody{display:block}
  .cg-buy-table tr{display:block;border:1px solid #e5e7eb;border-radius:10px;margin:0 0 10px;padding:11px 14px;background:#fff}
  .cg-buy-table td{display:block;border:0;padding:0}
  .cg-buy-table td::before{display:none}
  .cg-buy-table td:empty{display:none}
  .cg-buy-name{display:flex;align-items:center;gap:8px;min-width:0;font-size:15px}
  .cg-buy-name img{width:32px;height:32px;flex:0 0 auto}
  .cg-buy-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .cg-buy-rating{margin-top:3px;font-size:13px}
  .cg-buy-table td[data-label="特徴"]{margin-top:4px;font-size:12px;color:#6b7280;line-height:1.5}
  .cg-buy-table td[data-label="公式"]{margin-top:8px}
  .cg-buy-aff{display:block;width:100%;text-align:center;white-space:normal;padding:11px 10px;font-size:14px}
  .cg-buy-table td[data-label="レビュー"]{margin-top:5px;text-align:right;font-size:12px}
}

/* ===== 購入方法：入手ルート（案デザイン。cgbx__head/kicker/title は box-price.css を流用） ===== */
.cgway__state{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#5f6a76;background:#f8f9fb;border:1px solid #e7eaef;border-radius:20px;padding:3px 11px;margin:2px 0 14px}
.cgway__state i{width:6px;height:6px;border-radius:50%;background:#0f5fd0;display:block;flex:0 0 auto}
.cgway__list{display:grid;gap:10px}
.cgway{border:1px solid #e7eaef;border-radius:12px;padding:14px 15px;position:relative;overflow:hidden}
.cgway::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c,#0f5fd0)}
.cgway__top{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.cgway__no{flex:0 0 auto;width:23px;height:23px;border-radius:50%;background:var(--c,#0f5fd0);color:#fff;font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
.cgway__name{font-size:14.5px;font-weight:700;line-height:1.35;flex:1;min-width:0}
.cgway__badge{flex:0 0 auto;font-size:10.5px;font-weight:700;color:var(--c,#0f5fd0);background:var(--cb,#eaf1fc);padding:2px 8px;border-radius:20px;white-space:nowrap}
.cgway__spec{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;font-size:12.5px;align-items:baseline;margin:0}
.cgway__spec dt{color:#8b95a1;font-size:11.5px;white-space:nowrap}
.cgway__spec dd{margin:0;font-weight:600;color:#14181d}
.cgway__spec dd.cgway__num{font-variant-numeric:tabular-nums}
.cgway__meter{display:inline-flex;gap:3px;vertical-align:middle;margin-right:7px}
.cgway__meter i{width:14px;height:5px;border-radius:3px;background:#e7eaef;display:block}
.cgway__meter i.on{background:var(--c,#0f5fd0)}
.cgway__note{margin:9px 0 0;padding-top:9px;border-top:1px dashed #e7eaef;font-size:12px;color:#5f6a76;line-height:1.65}
.cgway__note b{color:#14181d}
.cgway.w1{--c:#0f5fd0;--cb:#eaf1fc}
.cgway.w2{--c:#0d7a5f;--cb:#e7f4f0}
.cgway.w3{--c:#a8780c;--cb:#fdf5e5}
.cgway.w4{--c:#9a3b8f;--cb:#f8ecf6}
@media(min-width:601px){.cgway__list{grid-template-columns:1fr 1fr}}

/* オリパPR枠 */
.cgway__oripa{margin-top:16px;border:1px solid #e3d3ad;background:linear-gradient(180deg,#fefaf1,#fff);border-radius:12px;padding:15px 16px;position:relative}
.cgway__pr{position:absolute;right:12px;top:12px;font-size:10px;font-weight:700;letter-spacing:.06em;color:#9a8354;border:1px solid #e0cfa6;border-radius:3px;padding:1px 6px;background:#fff}
.cgway__oh{margin:0 0 7px;font-size:14.5px;font-weight:700;line-height:1.45}
.cgway__oh em{font-style:normal;color:#a8780c}
.cgway__ot{margin:0 0 12px;font-size:12.5px;color:#5f6a76;line-height:1.7}
.cgway__ot b{color:#14181d}
.cgway__table{margin-top:12px}
.cgway__onote{margin:9px 0 0;font-size:10.5px;color:#8b95a1;line-height:1.6}

/* ===== オリパ比較：縦積み編集部ランキングカード（横スクロールしない） ===== */
.cg-oripa-cards{display:grid;gap:14px;margin-top:6px}
.cg-ocard{border:1px solid #e6e2d6;border-radius:14px;padding:15px 16px 16px;background:#fff;box-shadow:0 2px 10px -6px rgba(0,0,0,.2)}
.cg-ocard__head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.cg-ocard__rank{flex:0 0 auto;font-size:12px;font-weight:800;color:#8a6d1f;background:linear-gradient(135deg,#fbe79b,#e6c34d);border-radius:8px;padding:3px 9px;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.cg-ocard:nth-child(2) .cg-ocard__rank{color:#5c5c5c;background:linear-gradient(135deg,#eef0f2,#c9ccd1)}
.cg-ocard:nth-child(3) .cg-ocard__rank{color:#7a4a22;background:linear-gradient(135deg,#f0d3ba,#d8a273)}
.cg-ocard:nth-child(n+4) .cg-ocard__rank{color:#666;background:#eee;box-shadow:none}
.cg-ocard__logo{width:40px;height:40px;object-fit:contain;border-radius:8px;background:#fff;flex:0 0 auto}
.cg-ocard__name{font-size:16px;font-weight:800;color:#1a1a1a;flex:1 1 auto;min-width:0;line-height:1.3}
.cg-ocard__rating{flex:0 0 auto;font-size:12.5px;font-weight:700;color:#6b7280;white-space:nowrap}
.cg-ocard__stars{color:#f5a623;margin-right:3px}
.cg-ocard__catch{margin:9px 0 0;font-size:13.5px;line-height:1.6;color:#3a3a37;font-weight:600}
.cg-ocard__banner{margin:11px 0 0;border-radius:10px;overflow:hidden;line-height:0}
.cg-ocard__banner img{width:100%;height:auto;display:block}
.cg-ocard__specs{display:flex;flex-wrap:wrap;gap:7px;margin:11px 0 0}
.cg-ochip{display:inline-flex;align-items:baseline;gap:5px;background:#f6f7f9;border:1px solid #e7eaef;border-radius:8px;padding:5px 10px;font-size:12.5px;font-weight:700;color:#c0392b}
.cg-ochip b{font-weight:700;color:#8b95a1;font-size:10.5px}
.cg-ocard__coupon{margin:11px 0 0;background:#fff8e6;border:1px dashed #e6c34d;border-radius:8px;padding:8px 11px;font-size:12.5px;color:#7a5a10;text-align:center}
.cg-ocard__coupon b{color:#b8860b;font-weight:800;letter-spacing:.02em}
.cg-ocard__cta{display:block;margin:12px 0 0;padding:14px 12px;border:0 !important;border-radius:10px;background:linear-gradient(180deg,#22c55e,#16a34a) !important;color:#fff !important;font-size:15px;font-weight:800;text-align:center;text-decoration:none !important;box-shadow:0 4px 12px -3px rgba(22,163,74,.6)}
.cg-ocard__cta:link,.cg-ocard__cta:visited{color:#fff !important}
.cg-ocard__cta:hover{filter:brightness(1.05)}
.cg-oripa-more{display:block !important;width:100%;margin:14px 0 0;padding:13px;border:1px solid #d6d3c8 !important;border-radius:10px;background:#fff !important;color:#3a3a36 !important;font-size:14px;font-weight:700;text-align:center;cursor:pointer;font-family:inherit}
.cg-oripa-more:hover{background:#f7f5ef !important}
.cg-ocard__review{margin:10px 0 0;text-align:center;font-size:13px}
.cg-ocard__review a{color:#1a5fb4;font-weight:700;text-decoration:none}
.cg-ocard__review a::before{content:"\1F4DD  "}
.cg-ocard__review a:hover{text-decoration:underline}
.cg-ocard__note{margin:10px 0 0;font-size:12px}
.cg-ocard__note summary{cursor:pointer;color:#6b7280;font-weight:600;list-style:none}
.cg-ocard__note summary::-webkit-details-marker{display:none}
.cg-ocard__note summary::before{content:"▶ ";font-size:10px}
.cg-ocard__note[open] summary::before{content:"▼ "}
.cg-ocard__note p{margin:7px 0 0;color:#5a5a52;line-height:1.6}
.cg-ocard__note a{color:#1a5fb4}

/* カード記事・パックアーカイブの比較枠も、シミュレーターと同じcoupon cardへ統一。 */
.cg-oripa-cards .cg-coupon-card{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr);gap:14px;align-items:center;padding:14px;border:1px solid #e7eaf0;border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(17,28,49,.13)}
.cg-oripa-cards .cg-ocard__rank{position:absolute;z-index:1;top:-9px;left:13px}
.cg-oripa-cards .cg-coupon-card__badge{left:84px}
.cg-oripa-cards .cg-ocard__review{margin-top:9px;text-align:left}
.cg-oripa-cards .cg-ocard__note{margin-top:8px}
@media(max-width:560px){
  .cg-oripa-cards .cg-coupon-card{grid-template-columns:76px minmax(0,1fr);gap:10px;padding:12px}
  .cg-oripa-cards .cg-coupon-card__badge{left:76px;max-width:calc(100% - 124px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
