/* Shop menus (category grid only) */

/* メニュー表セクションだけゴシック体にする */
.shop.shop--menus {
  font-family: 
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    "Noto Sans JP",
    "Yu Gothic",
    "YuGothic",
    Meiryo,
    sans-serif;
}

/* 10 categories: desktop 5 columns x 2 rows */
.shop.shop--menus .shop__menus {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
}

/* Mobile: 2 columns x 5 rows */
@media (max-width: 768px) {
  .shop.shop--menus .shop__menus {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
  }
}

/* Each category card */
.shop.shop--menus details.shop__menu-category {
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 0;
  background: #ffffff; /* default (unselected) white */
  overflow: hidden;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

/* Selected category (open) */
.shop.shop--menus details.shop__menu-category[open] {
  background: #ffffff; /* keep container white; we color the summary only */
  border-color: rgba(0, 0, 0, 0.25);
}

/* Default (not selected) summary stays white */
.shop.shop--menus details.shop__menu-category > summary {
  background: #ffffff;
}

/* Selected (open) summary becomes beige */
.shop.shop--menus details.shop__menu-category[open] > summary {
  background: #e8dfd2;
}

/* Optional: subtle hover only when NOT selected */
.shop.shop--menus details.shop__menu-category:not([open]) > summary:hover {
  background: #f5f2ed;
}

/* Hide default disclosure marker */
.shop.shop--menus details.shop__menu-category > summary {
  list-style: none;
}
.shop.shop--menus details.shop__menu-category > summary::-webkit-details-marker {
  display: none;
}

/* Make summary a clickable tile */
.shop.shop--menus .shop__menu-category-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 8px;
  cursor: pointer;
  user-select: none;
}

.shop.shop--menus .shop__menu-category-title {
  display: block;
  font-weight: 600;
  line-height: 1.2;
  font-size: 12px;
}

.shop.shop--menus .shop__menu-category-meta {
  display: none;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.16);
  font-size: 12px;
  line-height: 1;
  opacity: 0.9;
}

/* Hover/focus states */
.shop.shop--menus details.shop__menu-category:hover {
  border-color: rgba(0, 0, 0, 0.22);
}

.shop.shop--menus .shop__menu-category-summary:focus-visible {
  outline: 2px solid rgba(0, 0, 0, 0.55);
  outline-offset: 2px;
  border-radius: 10px;
}

/* Keep bodies hidden inside each tile; we render the selected menu list in the panel below */
.shop.shop--menus .shop__menu-category-body {
  display: none;
}

/* Selected menu panel (shown under the grid) */
.shop.shop--menus .shop__menus-panel {
  grid-column: 1 / -1;
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: #ffffff;
  padding: 14px 12px;
  display: block;
}

/* 未選択でもパネル自体は表示する（中身だけ切り替える） */
.shop.shop--menus .shop__menus-panel.is-empty {
  display: block;
}

.shop.shop--menus .shop__menus-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 10px;
  padding: 0;
}

.shop.shop--menus .shop__menus-panel-title {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
}

.shop.shop--menus .shop__menus-panel-hint {
  font-size: 12px;
  opacity: 0.75;
  margin: 0;
}

/* Menu list styling inside the panel */
.shop.shop--menus .shop__menus-panel .shop__menu-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.shop.shop--menus .shop__menus-panel .shop__menu-item {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  padding-top: 10px;
}

.shop.shop--menus .shop__menus-panel .shop__menu-item:first-child {
  border-top: none;
  padding-top: 0;
}

.shop.shop--menus .shop__menus-panel .shop__menu-name {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
}

.shop.shop--menus .shop__menus-panel .shop__menu-duration {
  font-size: 12px;
  opacity: 0.8;
  white-space: nowrap;
}

.shop.shop--menus .shop__menus-panel .shop__menu-price {
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  text-align: right;
  justify-self: end;
  width: auto;
}

.shop.shop--menus .shop__menus-panel .shop__menu-desc {
  font-size: 12px;
  line-height: 1.55;
  margin: 6px 0 0;
  opacity: 0.9;
}

/* In the selected panel, hide effects by default; show them only when a menu is expanded */
.shop.shop--menus .shop__menus-panel .shop__menu-effects {
  display: none;
}
.shop.shop--menus details.shop__menu-details[open] .shop__menu-effects {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* Scores are not used for now */
.shop.shop--menus .shop__menus-panel .shop__menu-scores {
  display: none;
}

/* 未選択（is-empty）のときは、リスト部分だけ隠す */
.shop.shop--menus .shop__menus-panel.is-empty .shop__menus-panel-body {
  display: none;
}

/* 選択中（not is-empty）のときは、header（ヒント＋タイトル）を隠す */
.shop.shop--menus .shop__menus-panel:not(.is-empty) .shop__menus-panel-header {
  display: none;
}
/* =========================
   Menu detail row (menus)
   - 3 columns: name(+duration) | price | arrow
   NOTE: template uses `details.shop__menu-details` (plural)
========================= */

/* summary itself becomes a full-width grid so the price can stick to the right */
.shop.shop--menus details.shop__menu-details > summary.shop__menu-summary {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 10px;
  align-items: baseline;
  cursor: pointer;
  list-style: none;
  width: 100%;
}

.shop.shop--menus details.shop__menu-details > summary.shop__menu-summary::-webkit-details-marker {
  display: none;
}

/* Ensure the name part behaves like a block so the grid can measure properly */
.shop.shop--menus details.shop__menu-details > summary.shop__menu-summary .shop__menu-name {
  display: block;
  min-width: 0;
}

/* Duration stays with the name and never wraps */
.shop.shop--menus details.shop__menu-details > summary.shop__menu-summary .shop__menu-duration {
  white-space: nowrap;
  opacity: 0.8;
  font-size: 12px;
  margin-left: 6px;
}

/* Price sticks to the right and never wraps */
.shop.shop--menus details.shop__menu-details > summary.shop__menu-summary .shop__menu-price {
  text-align: right;
  white-space: nowrap;
  justify-self: end;
  font-weight: 700;
}

/* Arrow indicator (no template change required) */
.shop.shop--menus details.shop__menu-details > summary.shop__menu-summary::after {
  content: "›";
  display: inline-block;
  line-height: 1;
  opacity: 0.7;
  transform: rotate(0deg);
  transition: transform 0.15s ease;
}

.shop.shop--menus details.shop__menu-details[open] > summary.shop__menu-summary::after {
  transform: rotate(90deg);
}

@media (hover: hover) {
  .shop.shop--menus details.shop__menu-details > summary.shop__menu-summary:hover::after {
    opacity: 0.95;
  }
}
/* --- Inline description inside <summary> (keep arrow on the first row) --- */
.shop.shop--menus details.shop__menu-details > summary.shop__menu-summary {
  row-gap: 6px; /* allow 2nd row spacing */
}

/* Place elements explicitly in the first row */
.shop.shop--menus details.shop__menu-details > summary.shop__menu-summary .shop__menu-name {
  grid-column: 1;
  grid-row: 1;
}

.shop.shop--menus details.shop__menu-details > summary.shop__menu-summary .shop__menu-price {
  grid-column: 2;
  grid-row: 1;
}

/* Arrow stays in column 3, row 1 */
.shop.shop--menus details.shop__menu-details > summary.shop__menu-summary::after {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  align-self: center;
}

/* Description spans full width on the 2nd row */
.shop.shop--menus details.shop__menu-details > summary.shop__menu-summary .shop__menu-desc-inline {
  grid-column: 1 / -1;
  grid-row: 2;
  margin: 0;
  font-size: 12px;
  line-height: 1.55;
  opacity: 0.9;
}

/* =========================
   Effects icons (menu details)
   - Show ONLY when the menu <details> is open (native behavior)
   - True: accent color / False: gray / None: hidden
   - Line-art via CSS mask (swap SVG files later)
========================= */

/* Layout under the description (inside opened detail body) */
.shop.shop--menus details.shop__menu-details .shop__menu-detail-body {
  margin-top: 10px;
}

/* =========================
   Score blocks (0–100)
   - Compact segmented bars (10 segments)
   - PC: 3 columns x 2 rows
   - Mobile: 2 columns x 3 rows
   - Label and bar on the same line
   - Expects inline CSS variable: style="--s: <0-10>" on dd
========================= */

.shop.shop--menus .shop__menu-score-values {
  margin-top: 10px;
}

.shop.shop--menus .shop__menu-score-list {
  /* dl reset */
  margin: 0;
  padding: 0;

  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 8px; /* row / column */
}

@media (max-width: 768px) {
  .shop.shop--menus .shop__menu-score-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* REPLACED SCORE BLOCKS (0–100) */
.shop.shop--menus .shop__menu-score {
  /* wrapper is a <div> inside <dl> */
  display: grid;
  /* Give labels a bit more room so they don't get clipped */
  grid-template-columns: 4.6em minmax(0, 1fr);
  align-items: center;
  column-gap: 6px;
  padding: 4px 0; /* no box around each item */
}

/* Column separators (PC: 3 cols / Mobile: 2 cols)
   We add a left border to items that are not in the first column.
*/
.shop.shop--menus .shop__menu-score {
  /* make room for the separator when it exists */
  padding-left: 0;
}

/* PC (3 columns): add separator before col 2 and col 3 */
.shop.shop--menus .shop__menu-score-list > .shop__menu-score:nth-child(3n + 2),
.shop.shop--menus .shop__menu-score-list > .shop__menu-score:nth-child(3n + 3) {
  border-left: 1px solid rgba(0, 0, 0, 0.08);
  padding-left: 10px;
}

/* Mobile (2 columns): add separator before col 2 */
@media (max-width: 768px) {
  /* First, force-clear any PC separators that might still apply */
  .shop.shop--menus .shop__menu-score-list > .shop__menu-score {
    border-left: none !important;
    padding-left: 0 !important;
  }

  /* Then add the separator ONLY for the 2nd column items (2,4,6,...) */
  .shop.shop--menus .shop__menu-score-list > .shop__menu-score:nth-child(2n) {
    border-left: 1px solid rgba(0, 0, 0, 0.08) !important;
    padding-left: 10px !important;
  }
}

.shop.shop--menus .shop__menu-score-label,
.shop.shop--menus .shop__menu-score-value {
  margin: 0; /* reset dt/dd */
}

.shop.shop--menus .shop__menu-score-label {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  opacity: 0.9;
  white-space: nowrap;
  /* Match the label column; allow full label to show */
  width: 4.6em;
  overflow: visible;
  text-overflow: clip;
}

/* dd renders ONLY the segmented bar (numbers hidden)
   Expects inline: style="--s:<0..10>;" */
/* dd renders ONLY the segmented bar (numbers hidden)
   Expects inline:
     - style="--p:20%;"  (recommended)
     - (legacy) style="--s:2;" will still work via fallback
*/
/* NEW SCORE BLOCKS (0–100) */
.shop.shop--menus .shop__menu-score-value {
  /* input */
  --s: 0;                /* 0..10 */
  --p: calc(var(--s) * 10%); /* default: derive percent from --s (override inline with --p:20% etc.) */

  /* colors */
  --off: rgba(0, 0, 0, 0.14);
  --on: #b79f7b;

  /* geometry */
  --bar-h: 10px;
  --blk: 8.2%;           /* block width within each 10% slice */
  --gap: 10%;            /* slice size (10 segments) */

  position: relative;
  display: block;
  width: 100%;
  height: var(--bar-h);
  border-radius: 999px;
  overflow: hidden;

  /* keep numeric text in DOM but hide visually */
  font-size: 0;
  line-height: 0;
  color: transparent;
}

/* Track: exactly 10 grey blocks with gaps (always based on FULL bar width) */
.shop.shop--menus .shop__menu-score-value::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    90deg,
    var(--off) 0 var(--blk),
    transparent var(--blk) var(--gap)
  );
}

/* Fill: draw beige blocks across FULL width, then clip to --p
   (This prevents the "2コマを10分割" issue where the mask scales with the fill width.) */
.shop.shop--menus .shop__menu-score-value::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    90deg,
    var(--on) 0 var(--blk),
    transparent var(--blk) var(--gap)
  );

  /* Show only the left part (0..100%) */
  clip-path: inset(0 calc(100% - var(--p)) 0 0);
}

/* If value is missing, dim the bar (you can also hide it entirely if preferred) */
.shop.shop--menus .shop__menu-score-value.is-null {
  opacity: 0.45;
}

/* Effects container (when visible) */
/* Base icon chip (shared: menu details + modal list)
   NOTE: The dialog is often rendered outside the `.shop.shop--menus` section,
         so we scope to BOTH the menu section and the dialog itself.
*/
:where(.shop.shop--menus, .shop__effect-dialog) .effect {
  --icon-url: url("/static/icons/effects/placeholder.svg");
  width: 28px;
  height: 28px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  border: 1px solid currentColor;
  opacity: 0.95;
  flex: 0 0 auto;
}

/* Line-art icon using mask (color = currentColor) */
:where(.shop.shop--menus, .shop__effect-dialog) .effect::before {
  content: "";
  width: 22px;
  height: 22px;
  background-color: currentColor;
  -webkit-mask-image: var(--icon-url);
  mask-image: var(--icon-url);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  display: block;
}

/* State colors */
/* True: filled chip + white line icon */
:where(.shop.shop--menus, .shop__effect-dialog) .effect.is-true {
  background: #b79f7b; /* 仮：ベージュ系（後で変数にしてもOK） */
  color: #ffffff;      /* currentColor -> icon becomes white */
  border-color: transparent; /* 枠線は出さない */
  opacity: 1;
}

/* False: outline chip + gray line icon */
:where(.shop.shop--menus, .shop__effect-dialog) .effect.is-false {
  background: transparent;
  color: rgba(0, 0, 0, 0.25);
  border-color: currentColor;
}

/* None は非表示 */
:where(.shop.shop--menus, .shop__effect-dialog) .effect.is-null {
  display: none;
}

/* Icon mapping (shared; no HTML changes needed) */
:where(.shop.shop--menus, .shop__effect-dialog) .effect[data-effect="moisture"] { --icon-url: url("/static/icons/effects/moisture.svg"); }
:where(.shop.shop--menus, .shop__effect-dialog) .effect[data-effect="volume"] { --icon-url: url("/static/icons/effects/volume.svg"); }
:where(.shop.shop--menus, .shop__effect-dialog) .effect[data-effect="texture"] { --icon-url: url("/static/icons/effects/texture.svg"); }
:where(.shop.shop--menus, .shop__effect-dialog) .effect[data-effect="cuticle"] { --icon-url: url("/static/icons/effects/cuticle.svg"); }
:where(.shop.shop--menus, .shop__effect-dialog) .effect[data-effect="root-cleanse"] { --icon-url: url("/static/icons/effects/root-cleanse.svg"); }
:where(.shop.shop--menus, .shop__effect-dialog) .effect[data-effect="coating"] { --icon-url: url("/static/icons/effects/coating.svg"); }
:where(.shop.shop--menus, .shop__effect-dialog) .effect[data-effect="gips-coat"] { --icon-url: url("/static/icons/effects/gips-coat.svg"); }
:where(.shop.shop--menus, .shop__effect-dialog) .effect[data-effect="color-tone"] { --icon-url: url("/static/icons/effects/color-tone.svg"); }
:where(.shop.shop--menus, .shop__effect-dialog) .effect[data-effect="shape-memory"] { --icon-url: url("/static/icons/effects/shape-memory.svg"); }
:where(.shop.shop--menus, .shop__effect-dialog) .effect[data-effect="hair-quality-fix"] { --icon-url: url("/static/icons/effects/hair-quality-fix.svg"); }

/* =========================
   Effect list (modal)
   - 3 columns: icon | title | desc
   NOTE: the <dialog> is often rendered outside `.shop.shop--menus`,
         so scope to BOTH the shop section and the dialog itself.
========================= */

:where(.shop.shop--menus, .shop__effect-dialog) .shop__effect-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

:where(.shop.shop--menus, .shop__effect-dialog) .shop__effect-item {
  display: grid;
  grid-template-columns: 36px 110px 1fr;
  column-gap: 12px;
  row-gap: 2px;
  align-items: center; /* 3列を縦中央揃え */
  padding: 10px 0;
  border-top: 1px solid rgba(0,0,0,0.08);
}

:where(.shop.shop--menus, .shop__effect-dialog) .shop__effect-item:first-child {
  border-top: none;
  padding-top: 0;
}

:where(.shop.shop--menus, .shop__effect-dialog) .shop__effect-item-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Modal list icons: force the same style as shop "true" (beige fill + white line-art)
   regardless of is-true / is-false on the element.
*/
.shop__effect-dialog .shop__effect-item-icon .effect {
  background: #b79f7b !important;
  color: #ffffff !important;
  border-color: transparent !important;
  opacity: 1 !important;
}

/* In the modal list, icons are for display only */
.shop__effect-dialog .shop__effect-item-icon .effect {
  pointer-events: none;
}

:where(.shop.shop--menus, .shop__effect-dialog) .shop__effect-item-title {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
}

:where(.shop.shop--menus, .shop__effect-dialog) .shop__effect-item-desc {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
  opacity: 0.85;
}

@media (max-width: 480px) {
  :where(.shop.shop--menus, .shop__effect-dialog) .shop__effect-item {
    grid-template-columns: 36px 92px 1fr;
  }
}
/* ======================================
   Effect modal (shop menus only)
====================================== */

.shop__effect-dialog {
  border: none;
  border-radius: 12px;
  padding: 0;
  width: min(520px, calc(100vw - 32px));
}

.shop__effect-dialog::backdrop {
  background: rgba(0, 0, 0, 0.55);
}

.shop__effect-dialog .shop__effect-dialog-inner {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
}

.shop__effect-dialog .shop__effect-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px;
  border-bottom: 1px solid rgba(0,0,0,0.10);
}

.shop__effect-dialog .shop__effect-dialog-title {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
}

.shop__effect-dialog .shop__effect-dialog-close {
  appearance: none;
  border: 1px solid rgba(0,0,0,0.16);
  background: #fff;
  border-radius: 999px;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  line-height: 1;
  font-size: 16px;
}

.shop__effect-dialog .shop__effect-dialog-body {
  padding: 14px;
  font-size: 13px;
  line-height: 1.6;
}
/* モーダル内だけゴシック体にする */
.shop__effect-dialog,
.shop__effect-dialog * {
  font-family:
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    "Noto Sans JP",
    "Yu Gothic",
    "YuGothic",
    Meiryo,
    sans-serif;
}


/* ======================================
   FIX: Effect modal list (current markup)
   - Markup uses: .shop__effect-list, .shop__effect-list-rows, .shop__effect-row
   - Each row: <span class="effect"> + title + desc
   Goals:
     1) Center align (vertical) icon/title/desc
     2) Modal icons: beige background + white line art (inverted)
====================================== */

/* Layout: 3 columns (icon / title / desc) */
.shop__effect-dialog .shop__effect-list-rows {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.shop__effect-dialog .shop__effect-row {
  display: grid;
  grid-template-columns: 36px 110px 1fr;
  column-gap: 12px;
  row-gap: 2px;
  align-items: center; /* <-- vertical center */
  padding: 10px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.shop__effect-dialog .shop__effect-list-rows .shop__effect-row:first-child {
  border-top: none;
  padding-top: 0;
}

/* Title/desc typography */
.shop__effect-dialog .shop__effect-title {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
}

.shop__effect-dialog .shop__effect-desc {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
  opacity: 0.85;
}

/* Ensure each cell is vertically centered even if line-height differs */
.shop__effect-dialog .shop__effect-row > .effect,
.shop__effect-dialog .shop__effect-row > .shop__effect-title,
.shop__effect-dialog .shop__effect-row > .shop__effect-desc {
  align-self: center;
}

/* --- Modal icon inversion (always beige + white) ---
   NOTE: icon is drawn by ::before using mask + background-color.
   We force the chip background and force the line-art to white.
*/
.shop__effect-dialog .shop__effect-row > .effect {
  background: #b79f7b !important;
  color: #ffffff !important; /* used by some rules */
  border-color: transparent !important;
  opacity: 1 !important;
}

.shop__effect-dialog .shop__effect-row > .effect::before {
  background-color: #ffffff !important; /* force line-art to white */
}

/* Responsive: narrower title column */
@media (max-width: 480px) {
  .shop__effect-dialog .shop__effect-row {
    grid-template-columns: 36px 92px 1fr;
  }
}

/* ======================================
   FINAL OVERRIDE (modal only)
   If earlier rules conflict, this block wins.
   Targets the CURRENT markup:
     .shop__effect-list-rows > .shop__effect-row > .effect + title + desc
====================================== */

.shop__effect-dialog .shop__effect-list-rows {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
}

.shop__effect-dialog .shop__effect-list-rows .shop__effect-row {
  display: grid !important;
  grid-template-columns: 36px 110px 1fr !important;
  column-gap: 12px !important;
  row-gap: 2px !important;
  align-items: center !important; /* vertical center for all cells */
}

.shop__effect-dialog .shop__effect-list-rows .shop__effect-row > .effect,
.shop__effect-dialog .shop__effect-list-rows .shop__effect-row > .shop__effect-title,
.shop__effect-dialog .shop__effect-list-rows .shop__effect-row > .shop__effect-desc {
  align-self: center !important;
}

/* Force modal icons to match shop "true" style: beige chip + white line-art */
.shop__effect-dialog .shop__effect-list-rows .shop__effect-row > .effect {
  background: #b79f7b !important;
  color: #ffffff !important;
  border-color: transparent !important;
  opacity: 1 !important;
}

.shop__effect-dialog .shop__effect-list-rows .shop__effect-row > .effect::before {
  background-color: #ffffff !important;
}

@media (max-width: 480px) {
  .shop__effect-dialog .shop__effect-list-rows .shop__effect-row {
    grid-template-columns: 36px 92px 1fr !important;
  }
}
@media (max-width: 768px) {
  .shop.shop--menus .shop__menu-score-value {
    max-width: none;
  }
}
@media (max-width: 480px) {
  .shop.shop--menus .shop__menu-score {
    grid-template-columns: 4.2em minmax(0, 1fr);
  }
  .shop.shop--menus .shop__menu-score-label {
    width: 4.2em;
  }
}
.shop.shop--menus .shop__menu-score.is-null {
  display: none;
}