@charset "UTF-8";
/* Web 版のポイント条件(段 2-ii・js/kn-point-web.js が付ける部品の見た目)。
   注(.kn-effnote): 1 行目＝13px 灰(今のまま)・①の 2 行目＝13px 黒(依頼者 11/6「上の実質価格と同じフォントサイズで」)・
   1 行目と 2 行目は途中で切れない塊にして横に続け、入れば 1 行・入らなければ 2 行目の頭で折れる(依頼者 11/6 00:43)。
   ②③は 1 行目と同じ行の右端に「ポイント条件を変更」(依頼者 11/6 19:48)。 */
.kn-effnote .kn-en1, .kn-effnote .kn-en2 { display: inline-block; max-width: 100%; vertical-align: top; }
.kn-effnote .kn-en2 { color: #202124; font-size: inherit; margin-left: 0.5em; }
.kn-effnote .kn-en2 a, .kn-effnote .kn-enchg { color: #1A5FB4; text-decoration: underline; text-underline-offset: 2px; }
.kn-effnote .kn-enrow { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 12px; }
.kn-effnote .kn-enchg { margin-left: auto; white-space: nowrap; }
/* JAN の頁(design 決まった形 §2・図は kekka_cond/20261105_第3版直し_J*・20261106_注の右端_NJ2_*)。
   ①の帯: 題の上に 1 行＋［ポイント条件を設定］(15px 太字・薄い青の箱)。字の後半は折れる時に文の切れ目で折る(.kn-ib)。 */
.kn-k2 .kn-jb { display: flex; align-items: center; gap: 16px; margin: 0 0 12px; padding: 7px 8px 7px 16px; background: #F3F7FC; border: 1px solid #CFDCEB; border-radius: 10px; }
.kn-k2 .kn-jt { flex: 1 1 auto; min-width: 0; font-size: 15px; font-weight: 700; line-height: 1.5; color: #202124; }
.kn-k2 .kn-ib { display: inline-block; }
.kn-k2 .kj a.kn-jb1 { flex: none; display: inline-block; font-size: 14px; font-weight: 700; border-radius: 8px; white-space: nowrap; text-align: center; text-decoration: none; background: #1B4F8A; color: #fff; padding: 6px 16px; }
/* 最安値の箱(②③): 大きな価格のすぐ後ろに「ポイント条件 ⓘ」(依頼者 11/5: ［このお店を見る］から離す) */
.kn-k2 .kn-pvt { display: inline-block; margin-left: 12px; vertical-align: 6px; line-height: 1; font-size: 13px; font-weight: 400; color: #202124; white-space: nowrap; cursor: pointer; }
.kn-k2 .kn-tag { display: inline-block; font-size: 11px; font-weight: 700; line-height: 1.5; color: #1B4F8A; background: #fff; border: 1px solid #1B4F8A; border-radius: 3px; padding: 0 5px; margin-left: 5px; white-space: nowrap; vertical-align: 1px; }
.kn-k2 .kn-ii { display: inline-block; width: 15px; height: 15px; line-height: 15px; border-radius: 50%; background: #80868B; color: #fff; font: 700 10px/15px Arial, sans-serif; text-align: center; margin-left: 4px; vertical-align: -2px; }
/* 一覧の上の注(②③): kekka にそろえる＝1 行目と同じ行の右端に「ポイント条件を変更」(字は注と同じ 12px・入らない時はリンクだけ次の行の右端) */
.kn-k2 .kj-note.kn-nr { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 1em; }
.kn-k2 .kj-note.kn-nr .kn-en1 { display: block; margin: 0; }
.kn-k2 .kj a.kn-enchg { margin-left: auto; white-space: nowrap; font-size: inherit; color: #1A5FB4; text-decoration: underline; text-underline-offset: 2px; }
/* ポイント条件の窓(A2p・design 第 3 版直し A2p・kn-ipop と同じ線と影・幅 360px)。矢印の横の位置は JS が --kn-arrow で渡す */
.kn-k2 .kn-pop { position: absolute; z-index: 60; box-sizing: border-box; background: #fff; color: #202124; border: 1px solid #C4C7CC; border-radius: 8px; box-shadow: 0 4px 14px rgba(0, 0, 0, .15); padding: 14px 16px; font-size: 13px; line-height: 1.55; text-align: left; }
.kn-k2 .kn-pop:before { content: ""; position: absolute; top: -6px; left: var(--kn-arrow, 22px); width: 10px; height: 10px; background: #fff; border-left: 1px solid #C4C7CC; border-top: 1px solid #C4C7CC; transform: rotate(45deg); }
.kn-k2 .kn-pop h4 { margin: 0 0 8px; font-size: 15px; font-weight: 700; }
.kn-k2 .kn-pop table { width: 100%; border-collapse: collapse; }
.kn-k2 .kn-pop td { padding: 6px 0; font-size: 13px; border-top: 1px solid #ECEEF1; vertical-align: top; }
.kn-k2 .kn-pop tr:first-child td { border-top: 0; }
.kn-k2 .kn-np td:first-child { color: #5F6368; padding-right: 10px; }
.kn-k2 .kn-np td:last-child { text-align: right; font-weight: 700; font-size: 14px; color: #202124; }
.kn-k2 .kn-pop p { margin: 8px 0 0; font-size: 12px; color: #5F6368; }
.kn-k2 .kn-pop .kn-pb { display: flex; justify-content: flex-end; gap: 10px; margin-top: 12px; }
.kn-k2 .kn-pop .kn-pb1, .kn-k2 .kn-pop .kn-pb2 { display: inline-block; font: inherit; font-size: 14px; font-weight: 700; line-height: 1.5; border-radius: 8px; white-space: nowrap; cursor: pointer; text-decoration: none; }
.kn-k2 .kn-pop .kn-pb1 { background: #1B4F8A; color: #fff; padding: 8px 16px; border: 0; }
.kn-k2 .kn-pop .kn-pb2 { background: #fff; color: #202124; padding: 7px 16px; border: 1px solid #C4C7CC; }
.kn-k2 .kn-pvt.on .kn-ii { background: #1B4F8A; }
/* 行の ⓘ の内訳(R2m・design 全部盛り 6289dce)。押せる所＝「43ポイント ⓘ」の全体・見た目は字の下の点線と ⓘ だけ。
   幅は表に合わせて 340px から広げ、上限は「440px か画面の幅から余白を引いた幅の狭い方」(PM 1a 11/8)。窓は ⓘ の少し右で終わり左へ広げる(値段を隠さない) */
.kn-k2 .kn-pw { cursor: pointer; white-space: nowrap; }
.kn-k2 .kn-pw .pointprice { border-bottom: 1px dotted #80868B; }
.kn-k2 .kn-pw .kn-ii { margin-left: 3px; }
.kn-k2 .kn-pw.on .kn-ii { background: #1B4F8A; }
.kn-k2 .kn-bd { width: auto; min-width: min(340px, calc(100vw - 16px)); max-width: min(440px, calc(100vw - 16px)); }
.kn-k2 .kn-bd td:first-child { white-space: nowrap; padding-right: 16px; }
.kn-k2 .kn-bd td:last-child { text-align: right; white-space: nowrap; }
.kn-k2 .kn-bd .pt td:last-child { color: #0A7D32; }
.kn-k2 .kn-bd .add td:first-child { padding-left: 12px; color: #3C4043; }
.kn-k2 .kn-bd .tot td { border-top: 1px solid #9AA0A6; font-weight: 700; font-size: 14px; padding-top: 6px; }
.kn-k2 .kn-bd .tot td:last-child { color: #D7263D; }
.kn-k2 .kn-bd p { width: 0; min-width: 100%; }   /* 終わりの 1 文は幅を決めない(表の幅に合わせて折る＝design の Yahoo! 340px・楽天 417px) */
/* ポイント条件の窓(A2p)も表に合わせて広げる(B の字は長い・360〜440px)。値は 1 つずつ改行し、語の途中で折らない */
.kn-k2 .kn-np { width: auto; min-width: min(360px, calc(100vw - 16px)); max-width: min(440px, calc(100vw - 16px)); }
.kn-k2 .kn-np p { width: 0; min-width: 100%; }
.kn-k2 .kn-np .kn-v { display: block; white-space: nowrap; }
/* 診断の窓 C1(js/kn-point-diag.js・design 第 3 版直し C1 と 611f118・012c017 の値)。頁の上に暗い幕＋真ん中の窓(幅 600px)。幕の中だけで縦に動く */
html.kn-dg-open, html.kn-dg-open body { overflow: hidden; }
.kn-k2 .kn-dg-dim { position: fixed; inset: 0; z-index: 10000; background: rgba(32, 33, 36, .5); overflow-y: auto; -webkit-overflow-scrolling: touch; }
.kn-k2 .kn-dg-win { position: relative; box-sizing: border-box; width: 600px; max-width: calc(100% - 24px); margin: 72px auto 24px; background: #fff; border-radius: 12px; box-shadow: 0 8px 28px rgba(0, 0, 0, .2); overflow: hidden; color: #202124; font-size: 14px; line-height: 1.6; text-align: left; }
.kn-k2 .kn-dg-hd { padding: 20px 24px 0 28px; }
.kn-k2 .kn-dg-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.kn-k2 .kn-dg-ttl { font-size: 15px; font-weight: 700; color: #1B4F8A; }
.kn-k2 .kn-dg-x { flex: none; width: 40px; height: 40px; border-radius: 50%; border: 1px solid #C4C7CC; background: #fff; font-size: 20px; line-height: 1; color: #5F6368; cursor: pointer; padding: 0; }
.kn-k2 .kn-dg-prog { display: flex; align-items: center; gap: 6px; padding-right: 4px; }
.kn-k2 .kn-dg-prog i { display: block; height: 8px; flex: 1; border-radius: 4px; background: #E3E5E8; }
.kn-k2 .kn-dg-prog i.on { background: #1B4F8A; }
.kn-k2 .kn-dg-prog span { font-size: 15px; font-weight: 700; color: #1B4F8A; margin-left: 8px; white-space: nowrap; min-width: 38px; text-align: right; }
.kn-k2 .kn-dg-wb { padding: 18px 28px 6px; }
.kn-k2 .kn-dg-q { font-size: 22px; font-weight: 700; line-height: 1.45; }
.kn-k2 .kn-dg-qh { font-size: 14px; color: #5F6368; margin: 4px 0 16px; }
.kn-k2 .kn-dg-more { font-size: 15px; color: #3C4043; line-height: 1.7; }
.kn-k2 .kn-dg-ch { display: flex; flex-direction: column; gap: 10px; }
.kn-k2 .kn-dg-ch.g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kn-k2 .kn-dg-o { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 8px 16px 8px 18px; border: 1px solid #C4C7CC; border-radius: 10px; background: #fff; font: inherit; font-size: 17px; font-weight: 700; line-height: 1.4; color: #202124; text-align: left; cursor: pointer; box-sizing: border-box; }
.kn-k2 .kn-dg-o .t { flex: 1; min-width: 0; }
.kn-k2 .kn-dg-o .t small { display: block; font-size: 13px; font-weight: 400; color: #5F6368; }
.kn-k2 .kn-dg-o .rd { flex: none; width: 22px; height: 22px; border: 1.5px solid #80868B; border-radius: 50%; background: #fff; box-sizing: border-box; }
.kn-k2 .kn-dg-o .bx { flex: none; width: 22px; height: 22px; border: 1.5px solid #80868B; border-radius: 5px; background: #fff; box-sizing: border-box; }
.kn-k2 .kn-dg-o.on { border-color: #1B4F8A; background: #F3F7FC; box-shadow: inset 0 0 0 1px #1B4F8A; }
.kn-k2 .kn-dg-o.on .rd { border-color: #1B4F8A; background: #1B4F8A; box-shadow: inset 0 0 0 4px #fff; }
.kn-k2 .kn-dg-o.on .bx { border-color: #1B4F8A; background: #1B4F8A url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7' fill='none' stroke='%23fff' stroke-width='3.2'/%3E%3C/svg%3E") center/100% no-repeat; }
.kn-k2 .kn-dg-o:focus-visible, .kn-k2 .kn-dg-b1:focus-visible, .kn-k2 .kn-dg-b2:focus-visible, .kn-k2 .kn-dg-lk:focus-visible, .kn-k2 .kn-dg-x:focus-visible { outline: 2px solid #1A5FB4; outline-offset: 2px; }
.kn-k2 .kn-dg-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 16px 28px 18px; }
.kn-k2 .kn-dg-nav1 { padding-top: 12px; }
.kn-k2 .kn-dg-lk { justify-self: start; background: none; border: 0; padding: 4px 0; font: inherit; font-size: 16px; font-weight: 700; color: #1A5FB4; text-decoration: underline; cursor: pointer; }
.kn-k2 .kn-dg-nav .kn-dg-lk:last-child:not(:first-child) { justify-self: end; }
.kn-k2 .kn-dg-b1, .kn-k2 .kn-dg-b2 { display: inline-block; box-sizing: border-box; font: inherit; font-weight: 700; border-radius: 8px; white-space: nowrap; text-align: center; text-decoration: none; cursor: pointer; }
.kn-k2 .kn-dg-b1 { background: #1B4F8A; color: #fff; border: 0; }
.kn-k2 .kn-dg-b2 { background: #fff; color: #202124; border: 1px solid #C4C7CC; }
.kn-k2 .kn-dg-nav .kn-dg-b1 { justify-self: center; min-width: 160px; font-size: 16px; padding: 11px 22px; }
.kn-k2 .kn-dg-b1:disabled { background: #9AA0A6; cursor: default; }
.kn-k2 .kn-dg-wide { display: block; width: 100%; font-size: 16px; padding: 12px 0; }
.kn-k2 .kn-dg-yn { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 18px 0 6px; }
.kn-k2 .kn-dg-yn .kn-dg-b1, .kn-k2 .kn-dg-yn .kn-dg-b2 { font-size: 16px; padding: 12px 0; }
.kn-k2 .kn-dg-sum { display: grid; grid-template-columns: max-content minmax(0, 1fr); border: 1px solid #E3E5E8; border-radius: 10px; overflow: hidden; margin: 0 0 16px; }
.kn-k2 .kn-dg-sum dt, .kn-k2 .kn-dg-sum dd { margin: 0; padding: 9px 14px; border-top: 1px solid #ECEEF1; }
.kn-k2 .kn-dg-sum dt:first-of-type, .kn-k2 .kn-dg-sum dd:first-of-type { border-top: 0; }
.kn-k2 .kn-dg-sum dt { font-size: 14px; color: #5F6368; background: #F8F9FA; white-space: nowrap; padding-right: 20px; }
.kn-k2 .kn-dg-sum dd { font-size: 15px; font-weight: 700; }
.kn-k2 .kn-dg-safe { display: flex; align-items: center; gap: 6px; padding: 10px 28px; border-top: 1px solid #ECEEF1; font-size: 12px; color: #5F6368; background: #fff; }
.kn-k2 .kn-dg-safe svg { flex: none; }
@media (max-width: 599px) {
	.kn-k2 .kn-dg-win { margin-top: 16px; }
	.kn-k2 .kn-dg-hd { padding: 16px 16px 0 18px; }
	.kn-k2 .kn-dg-wb { padding: 16px 18px 6px; }
	.kn-k2 .kn-dg-q { font-size: 19px; }
	.kn-k2 .kn-dg-o { font-size: 16px; min-height: 52px; padding: 8px 12px; }
	.kn-k2 .kn-dg-nav { padding: 14px 18px 16px; }
	.kn-k2 .kn-dg-nav .kn-dg-b1 { min-width: 120px; padding: 11px 16px; }
	.kn-k2 .kn-dg-safe { padding: 10px 18px; }
}
@media (max-width: 420px) { .kn-k2 .kn-dg-ch.g2 { grid-template-columns: 1fr; } }
/* 内訳の要エントリーの名前のリンク(依頼者 11/8・新しいタブでエントリーの頁)。「＋」はリンクの外 */
.kn-k2 .kn-bd a.kn-bd-en { color: #1A5FB4; text-decoration: underline; text-underline-offset: 2px; }
/* 差が負の時の 2 行目「エントリーが必要なキャンペーンポイント ▾」の開閉と一覧(design 0-13 R3b・R3c の値・依頼者「この形でよい」11/8)。字はリンクと同じ見た目(a・role=button)・一覧は薄い灰の地で左寄せ */
.kn-k2 .kn-bd a.kn-bd-tg { color: #1A5FB4; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.kn-k2 .kn-bd .kn-bd-tg .kn-tg { display: inline-block; margin-left: 4px; font-size: 11px; text-decoration: none; }
.kn-k2 .kn-bd tr[hidden] { display: none; }
.kn-k2 .kn-bd tr.kn-bd-sub td { padding: 0 0 6px 30px; border-top: 0; text-align: left; white-space: normal; }
.kn-k2 .kn-bd .kn-bd-el { display: flex; flex-direction: column; gap: 3px; padding: 6px 10px; background: #F8F9FA; border-radius: 6px; }
.kn-k2 .kn-bd .kn-bd-el > * { font-size: 13px; align-self: flex-start; }
/* 幅の狭い画面(窓の上限 440px が画面に入らない＝479px 以下)では名前の列を折り返す(長い名前「Rakuten Turbo／楽天ひかり（要エントリー）」で数が窓の外へ出ていた・390 の幅で見つけた)。数の列は折らない */
@media (max-width: 479px) { .kn-k2 .kn-bd td:first-child { white-space: normal; } }
