
.sf-rail {
  grid-auto-columns: minmax(0, var(--sfr-w, 206px));
  justify-content: start;
  align-items: stretch;
  scroll-snap-type: x proximity;
}
.sf-rail > * { min-width: 0 }
.sf-rail > .product { height: auto; max-width: 100% }
.sf-rail > .product .product-visual { width: 100% }

@media (max-width: 1180px) { .sf-rail { --sfr-w: 196px } }
@media (max-width: 900px)  { .sf-rail { --sfr-w: 184px } }
@media (max-width: 700px)  { .sf-rail { grid-auto-columns: minmax(0, 46%) } }
@media (max-width: 420px)  { .sf-rail { grid-auto-columns: minmax(0, 62%) } }

@media (max-width: 520px) {
  .sf-sec-head { flex-wrap: wrap; gap: 4px 10px }
  .sf-sec-head a { margin-inline-start: auto }
}

.pcard.pc-row .product-flags .fs-flag,
.pcard.pc-row .fs-flag { display: none !important }

@media (max-width: 700px) {
  .pcard.pc-m-row .product-flags .fs-flag,
  .pcard.pc-m-row .fs-flag { display: none !important }
}

.pcard.pc-row .product-flags { gap: 4px }
.pcard.pc-row .product-flags .off { padding: 3px 7px }

.pcard.pc-overlay .product-visual .fs-box.is-over {
  top: 8px;
  bottom: auto;
  z-index: 1;
}
.pcard.pc-overlay .product-flags { z-index: 4 }

.pcard.pc-overlay .product-info .fs-box {
  margin-top: 8px;
  background: color-mix(in oklch, #000, transparent 42%);
  border-color: color-mix(in oklch, #fff, transparent 74%);
}
.pcard.pc-overlay .product-info .fs-box .fs-ttl { color: rgba(255, 255, 255, .82) }
.pcard.pc-overlay .product-info .fs-box .fs-left { color: rgba(255, 255, 255, .8) }
.pcard.pc-overlay .product-cta { position: relative; z-index: 2 }

@media (min-width: 641px) {
  footer.sf-foot .sf-trust-row {
    grid-template-columns: minmax(0, 1.35fr) max-content;
    justify-content: space-between;
  }
  footer.sf-foot .sf-trust-row.no-about { grid-template-columns: max-content }

  footer.sf-foot .sf-trust-row .sf-foot-trust {
    grid-template-columns: repeat(auto-fit, 92px);
    justify-content: end;
    justify-items: end;
    width: auto;
    max-width: 100%;
    margin-inline-start: auto;
  }
  footer.sf-foot .sf-trust-row .sf-foot-trust .sf-foot-trust-title {
    text-align: end;
    width: 100%;
  }
  footer.sf-foot .sf-trust-row .sf-foot-logo { width: 92px }
  footer.sf-foot .sf-trust-row.no-about .sf-foot-trust { margin-inline-start: auto }
}

.sf-act.nc-bell { position: relative }
.sf-act.nc-bell .nc-dot {
  position: absolute;
  top: -5px;
  inset-inline-end: -5px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--red, #e3342f);
  color: #fff;
  font: 900 10px/18px var(--font);
  text-align: center;
  box-shadow: 0 0 0 2px var(--surface, #fff);
}
.sf-act.nc-bell .nc-dot.is-zero { display: none }
.sf-act.nc-bell.has-new svg { animation: nc-ring 2.8s ease-in-out infinite }
@keyframes nc-ring {
  0%, 88%, 100% { transform: rotate(0) }
  90% { transform: rotate(-11deg) }
  94% { transform: rotate(9deg) }
  97% { transform: rotate(-5deg) }
}
@media (prefers-reduced-motion: reduce) {
  .sf-act.nc-bell.has-new svg { animation: none }
}

.acc-nav a .nc-n,
.sf-acct-menu a .nc-n {
  margin-inline-start: auto;
  min-width: 20px;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--red, #e3342f);
  color: #fff;
  font: 900 10.5px/1.7 var(--font);
  text-align: center;
}
.acc-nav a { display: flex; align-items: center; gap: 8px }

.nc-head {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.nc-head .nc-count { font: 800 12px var(--font); color: var(--muted) }
.nc-head form { margin-inline-start: auto }

.nc-list { display: grid; gap: 10px }
.nc-item {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface);
  transition: border-color .18s;
}
.nc-item.is-new {
  border-color: color-mix(in oklch, var(--green, #16a34a), transparent 62%);
  background: color-mix(in oklch, var(--green, #16a34a), transparent 95%);
}
@media (hover: hover) and (pointer: fine) {
  .nc-item:hover { border-color: color-mix(in oklch, var(--green, #16a34a), transparent 45%) }
}
.nc-item .nc-ic {
  width: 42px;
  height: 42px;
  border-radius: 13px;
  display: grid;
  place-items: center;
  font-size: calc(18px * var(--fz-base, 1));
  background: color-mix(in oklch, var(--green, #16a34a), transparent 88%);
}
.nc-item.t-order_canceled .nc-ic { background: color-mix(in oklch, var(--red, #e3342f), transparent 88%) }
.nc-item.t-wallet_credit .nc-ic { background: color-mix(in oklch, #7c5cff, transparent 88%) }

.nc-item .nc-txt { min-width: 0 }
.nc-item .nc-txt b {
  display: block;
  font-size: calc(13.5px * var(--fz-base, 1));
  font-weight: 900;
  margin-bottom: 4px;
}
.nc-item .nc-txt p {
  margin: 0;
  font-size: calc(12.5px * var(--fz-base, 1));
  color: var(--muted);
  line-height: 1.85;
  white-space: normal;
}
.nc-item .nc-txt .nc-go {
  display: inline-block;
  margin-top: 7px;
  font: 800 12px var(--font);
  color: var(--green);
}
.nc-item .nc-when { font: 700 11px var(--font); color: var(--muted); white-space: nowrap }
.nc-item.is-new .nc-when::before {
  content: '';
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-inline-end: 5px;
  border-radius: 999px;
  background: var(--green, #16a34a);
  vertical-align: middle;
}

@media (max-width: 520px) {
  .nc-item { grid-template-columns: 36px minmax(0, 1fr); padding: 12px }
  .nc-item .nc-ic { width: 36px; height: 36px; border-radius: 11px }
  .nc-item .nc-when { grid-column: 2; order: 3 }
}

.wl-gw {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
  margin-top: 4px;
}
.wl-gw label {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  cursor: pointer;
  font-weight: 800;
  font-size: calc(12.5px * var(--fz-base, 1));
  background: var(--surface);
}
.wl-gw label:has(input:checked) {
  border-color: var(--green);
  background: color-mix(in oklch, var(--green, #16a34a), transparent 92%);
}
.wl-gw label span { display: block }
.wl-gw label small { display: block; font-weight: 600; color: var(--muted) }
.wl-gw input { accent-color: var(--green) }

.wl-quick { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px }
.wl-quick button {
  border: 1px solid var(--line);
  background: transparent;
  border-radius: 999px;
  padding: 7px 13px;
  font: 800 12px var(--font);
  color: var(--ink);
  cursor: pointer;
}
.wl-quick button:hover { border-color: var(--green); color: var(--green) }

.wl-note-admin { margin-top: 12px; font-size: calc(12px * var(--fz-base, 1)); color: var(--muted) }
