.cfgd-bar {
  --cfgd-bg: #13232c;
  --cfgd-fg: #f4f1ea;
  --cfgd-accent: #f2c14e;
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  z-index: 9990;
  display: flex;
  align-items: center;
  max-width: 640px;
  margin: 0 auto;
  background: var(--cfgd-bg);
  color: var(--cfgd-fg);
  border-radius: 10px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, .25);
  font-size: 13px;
  line-height: 1.35;
}
.cfgd-bar__link {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 4px 10px 12px;
  color: inherit;
  text-decoration: none;
  min-width: 0;
}
.cfgd-bar__pr {
  flex: none;
  font-size: 10px;
  border: 1px solid currentColor;
  border-radius: 3px;
  padding: 0 4px;
  opacity: .8;
}
.cfgd-bar__label {
  flex: none;
  font-weight: 700;
  color: var(--cfgd-accent);
}
.cfgd-bar__body {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.cfgd-bar__name,
.cfgd-bar__price {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cfgd-bar__name { font-weight: 700; }
.cfgd-bar__close {
  flex: none;
  width: 40px;
  height: 40px;
  border: 0;
  background: none;
  color: inherit;
  font-size: 18px;
  cursor: pointer;
}

/* [cfgd_calendar] */
.cfgd-cal__day { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(0,0,0,.08); }
.cfgd-cal__date { flex: none; width: 5.5em; font-weight: 700; }
.cfgd-cal ul { margin: 0; padding: 0; list-style: none; }
.cfgd-cal__item { margin: 2px 0; }
.cfgd-cal__item--rakuten b { color: #bf0000; }
.cfgd-cal__item--yahoo b { color: #ff0033; }
.cfgd-tag { font-size: 11px; margin-left: 4px; padding: 0 5px; border-radius: 3px; background: rgba(0,0,0,.07); }
.cfgd-cal__note { font-size: 12px; opacity: .75; }

.cfgd-bar__img {
  flex: none;
  width: 44px;
  height: 44px;
  object-fit: contain;
  background: #fff;
  border-radius: 6px;
}

/* ---------- 価格カタログ [cfgd_catalog] ---------- */
.cfgd-catalog { --cfgd-hot: #d6452f; --cfgd-line: rgba(19,35,44,.12); margin: 1em 0; }
.cfgd-catalog__note { font-size: 12px; opacity: .8; margin: 0 0 10px; }
.cfgd-catalog__pr { display: inline-block; font-size: 10px; border: 1px solid currentColor; border-radius: 3px; padding: 0 4px; margin-right: 6px; }
.cfgd-catalog__cat { margin: 1.4em 0 .6em; }
.cfgd-catalog__grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.cfgd-card { border: 1px solid var(--cfgd-line); border-radius: 10px; padding: 10px 12px; background: #fff; color: #13232c; min-width: 0; }
.cfgd-card--hot { border-color: var(--cfgd-hot); box-shadow: 0 0 0 1px var(--cfgd-hot) inset; }
.cfgd-card__head { display: flex; gap: 10px; align-items: center; }
.cfgd-card__img { width: 80px; height: 80px; object-fit: contain; flex: none; border-radius: 6px; background: #fff; }
.cfgd-card__title { min-width: 0; }
.cfgd-card__model { font-weight: 700; line-height: 1.3; font-size: 15px; }
.cfgd-card__from { font-size: 13px; margin-top: 2px; }
.cfgd-card__from b { font-size: 17px; margin-left: 2px; }
.cfgd-card__from.is-none { opacity: .6; }
.cfgd-card__why { display: block; color: var(--cfgd-hot); font-size: 11px; line-height: 1.35; margin-top: 2px; }
.cfgd-badge { display: inline-block; background: var(--cfgd-hot); color: #fff; font-size: 11px; font-weight: 700; border-radius: 4px; padding: 1px 6px; margin-top: 4px; }
.cfgd-badge--sm { font-size: 10px; margin: 0 0 0 4px; padding: 0 4px; vertical-align: 1px; }
.cfgd-card__more { margin-top: 8px; border-top: 1px solid var(--cfgd-line); }
.cfgd-card__more > summary { cursor: pointer; font-size: 12px; padding: 6px 0 2px; list-style: revert; }
.cfgd-card__list { list-style: none; margin: 4px 0 0; padding: 0; }
.cfgd-card__row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "var eff btn" "shop shop btn"; column-gap: 8px; row-gap: 1px; align-items: center; padding: 5px 0; border-top: 1px dashed var(--cfgd-line); font-size: 12px; line-height: 1.3; }
.cfgd-card__var { grid-area: var; }
.cfgd-card__eff { grid-area: eff; text-align: right; }
.cfgd-card__shop { grid-area: shop; }
.cfgd-card__btn { grid-area: btn; }
.cfgd-card__list > .cfgd-card__row:first-child { border-top: 0; }
.cfgd-card__row.is-hot { background: rgba(214,69,47,.06); }
.cfgd-card__shop { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cfgd-card__var { min-width: 0; overflow-wrap: anywhere; }
.cfgd-card__var { font-weight: 600; }
.cfgd-card__eff { font-weight: 700; white-space: nowrap; }
.cfgd-card__shop { font-size: 11px; opacity: .75; }
.cfgd-card__none { grid-area: eff; font-size: 11px; opacity: .6; }
.cfgd-card__btn { background: #13232c; color: #fff !important; text-decoration: none !important; border-radius: 5px; padding: 4px 9px; font-size: 11px; white-space: nowrap; }

.cfgd-bar__guide {
  flex: none;
  align-self: stretch;
  display: flex;
  align-items: center;
  padding: 0 8px;
  font-size: 11px;
  color: var(--cfgd-accent) !important;
  text-decoration: underline;
  white-space: nowrap;
}

/* ラベル・名前・価格を縦に3行。スマホでも名前が潰れないように */
.cfgd-bar__label { font-size: 11px; }
.cfgd-bar__body { flex: 1; }
@media (max-width: 560px) {
  .cfgd-bar__guide { white-space: normal; width: 52px; text-align: center; line-height: 1.3; padding: 0 4px; }
  .cfgd-bar__close { width: 32px; }
}

/* ポイント還元のラベル */
.cfgd-pt { display: inline-block; margin: 4px 4px 0 0; padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 700; color: #b24a00; background: #fff1e5; border: 1px solid #f6c39b; }
.cfgd-pt.is-high { color: #fff; background: #e8730c; border-color: #e8730c; }
.cfgd-card__pt { display: block; font-size: 10px; font-weight: 600; color: #b24a00; text-align: right; }

/* 「今日が買い時」の右にポイント数 */
.cfgd-bar__head { display: flex; align-items: baseline; gap: 6px; min-width: 0; white-space: nowrap; }
.cfgd-bar__head .cfgd-bar__label { flex: none; }
.cfgd-bar__pt { flex: none; font-size: 11px; font-weight: 700; color: #13232c; background: var(--cfgd-accent); border-radius: 999px; padding: 0 6px; line-height: 1.5; }
