/* t157u search_v2 (loaded only while the switch is ON) */
.st-hbtn--fav{position:relative}
.st-fav__n{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#C62828;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}
.st-fav{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--st-border);border-radius:50%;background:#fff;color:var(--st-primary);cursor:pointer;flex:none}
.st-fav:hover{background:var(--st-primary-tint)}
.st-fav[aria-pressed=true]{color:#C62828;border-color:#C62828}
.st-fav[aria-pressed=true] path{fill:currentColor}
.st-fav:focus-visible{outline:2px solid var(--st-primary);outline-offset:2px}
.st-card__actions .st-card__fav{margin-left:auto}
.st-card__fav+.st-card__act--more{margin-left:0}
.st-acc__fav{width:48px;height:48px}
/* t210u: header heart pulse on save + first-save toast (classes set only by ux_v2 code in search-v2.js) */
@keyframes st-pulse{0%{transform:scale(1)}30%{transform:scale(1.28)}60%{transform:scale(.94)}100%{transform:scale(1)}}
.st-hbtn--fav.is-pulse>svg,.st-hbtn--fav.is-pulse>.st-icon{animation:st-pulse .7s ease-out;color:#C62828}
.st-hbtn--fav.is-pulse .st-fav__n{animation:st-pulse .7s ease-out}
.st-sv-toast{position:fixed;left:50%;bottom:calc(var(--st-bnav-h) + var(--st-sab,0px) + 16px);z-index:1000;max-width:min(92vw,420px);padding:12px 18px;border-radius:var(--st-r);background:var(--st-primary-dark);color:#fff;font-size:15px;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.2);transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.st-sv-toast.is-on{opacity:1;transform:translate(-50%,0)}
@media (min-width:1024px){.st-sv-toast{bottom:24px}}
@media (prefers-reduced-motion:reduce){.st-hbtn--fav.is-pulse>svg,.st-hbtn--fav.is-pulse>.st-icon,.st-hbtn--fav.is-pulse .st-fav__n{animation:none}.st-sv-toast{transition:none}}
/* quick search */
.st-qs{padding:4px 16px 0}
.st-qs__box{position:relative}
.st-qs__box>.st-icon{position:absolute;left:12px;top:50%;width:20px;height:20px;transform:translateY(-50%);color:var(--st-text-muted);pointer-events:none}
.st-qs__in{width:100%;min-height:48px;padding-left:40px;font-size:16px}
.st-qs__hint{margin:6px 0 0;font-size:13px;color:var(--st-text-muted)}
.st-qs__list{list-style:none;margin:8px 0 0;padding:4px 0;border:1px solid var(--st-border);border-radius:var(--st-r-sm);background:#fff;max-height:min(60vh,420px);overflow:auto}
.st-qs__g{padding:8px 12px 2px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--st-text-muted)}
.st-qs__o a{display:flex;flex-direction:column;gap:1px;padding:8px 12px;color:inherit;text-decoration:none}
.st-qs__o[aria-selected=true] a,.st-qs__o a:hover{background:var(--st-primary-tint)}
.st-qs__n{font-weight:700;color:var(--st-primary-dark)}
.st-qs__m{font-size:13px;color:var(--st-text-muted)}
.st-qs__none{margin:8px 0 0;font-size:14px}
.st-qs__or{margin:14px 0 0;padding-top:10px;border-top:1px solid var(--st-border);font-size:13px;color:var(--st-text-muted)}
@media (max-width:767.98px){
  .st-sv2 dialog.st-search[open]{inset:0;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;border-radius:0}
}
/* grid / list */
.st-view{display:flex;gap:4px;justify-content:flex-end;margin:0 0 12px}
.st-view__b{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid var(--st-border);border-radius:var(--st-r-sm);background:#fff;font:inherit;font-size:14px;font-weight:600;color:var(--st-primary-dark);cursor:pointer}
.st-view__b[aria-pressed=true]{border-color:var(--st-primary);background:var(--st-primary-tint)}
.st-sv2 .st-cards.st-cards--rows{grid-template-columns:minmax(0,1fr)}
.st-sv2 .st-cards.st-cards--rows .st-card{grid-template-columns:112px minmax(0,1fr);gap:12px;padding:8px;overflow:visible}
.st-sv2 .st-cards.st-cards--rows .st-card__media{aspect-ratio:4/3;border-radius:var(--st-r-sm)}
.st-sv2 .st-cards.st-cards--rows .st-card__body{padding:0}
@media (min-width:768px){
  .st-sv2 .st-cards.st-cards--rows .st-card{grid-template-columns:280px minmax(0,1fr);gap:20px;padding:12px}
}
/* favorites dialog */
.st-favs__body{flex:1 1 auto;overflow:auto;overscroll-behavior:contain;padding:0 16px}
.st-favs__list{list-style:none;margin:8px 0;padding:0;display:grid;gap:8px}
.st-favs__it{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--st-border);border-radius:var(--st-r-sm)}
.st-favs__pick input{width:20px;height:20px}
.st-favs__tx{display:flex;flex-direction:column;flex:1;min-width:0}
.st-favs__n{font-weight:700}
.st-favs__p,.st-favs__note,.st-favs__hint{font-size:13px;color:var(--st-text-muted)}
.st-favs__rm{border:0;background:none;font:inherit;font-size:13px;color:var(--st-primary);text-decoration:underline;cursor:pointer;min-height:40px}
.st-favs__foot{padding:12px 16px 16px}
.st-favs__foot .st-btn{width:100%}
/* t160u: GRID view - favorites heart as an overlay in the top-right corner of the card image (44px tap target,
   light round background readable on any photo). Cards have no image badges, so nothing is covered.
   LIST (rows) view and compact horizontal cards keep the heart in the actions row (unchanged). */
@media (min-width:768px){
  .st-sv2 .st-cards:not(.st-cards--compact):not(.st-cards--rows) .st-card:not(.st-card--noimg) .st-card__actions{position:static}
  .st-sv2 .st-cards:not(.st-cards--compact):not(.st-cards--rows) .st-card:not(.st-card--noimg) .st-card__act{position:relative;z-index:2}
  .st-sv2 .st-cards:not(.st-cards--compact):not(.st-cards--rows) .st-card:not(.st-card--noimg) .st-card__fav{position:absolute;top:10px;right:10px;z-index:3;margin:0;width:44px;height:44px;border:0;background:rgba(255,255,255,.94);box-shadow:0 1px 4px rgba(0,0,0,.28)}
  .st-sv2 .st-cards:not(.st-cards--compact):not(.st-cards--rows) .st-card:not(.st-card--noimg) .st-card__fav+.st-card__act--more{margin-left:auto}
}
@media (max-width:767.98px){
  .st-sv2 .st-cards--list:not(.st-cards--rows) .st-card:not(.st-card--noimg) .st-card__actions{position:static}
  .st-sv2 .st-cards--list:not(.st-cards--rows) .st-card:not(.st-card--noimg) .st-card__act{position:relative;z-index:2}
  .st-sv2 .st-cards--list:not(.st-cards--rows) .st-card:not(.st-card--noimg) .st-card__fav{position:absolute;top:8px;right:8px;z-index:3;margin:0;width:44px;height:44px;border:0;background:rgba(255,255,255,.94);box-shadow:0 1px 4px rgba(0,0,0,.28)}
  .st-sv2 .st-cards--list:not(.st-cards--rows) .st-card:not(.st-card--noimg) .st-card__fav+.st-card__act--more{margin-left:auto}
}
.st-sv2 .st-card__fav[aria-pressed=true]{border-color:#C62828}
/* t161u: favorites window keeps its size when empty (no collapse/jump when the last offer is removed) */
.st-sv2 dialog.st-favs[open]{min-height:min(420px,70dvh)}
@media (min-width:768px){.st-sv2 dialog.st-favs[open]{width:min(520px,calc(100vw - 48px));height:min(560px,85vh);min-height:0}}
.st-favs__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:100%;padding:32px 8px;text-align:center}
.st-favs__empty[hidden]{display:none}
.st-favs__ico{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:4px;border-radius:50%;background:var(--st-primary-tint);color:var(--st-primary)}
.st-favs__ico .st-icon{width:30px;height:30px}
.st-favs__et{font-size:18px;font-weight:700;color:var(--st-primary-dark)}
.st-favs__ex{max-width:36ch;font-size:15px;color:var(--st-text-muted)}
.st-favs__go{margin-top:8px;min-width:200px}
.st-favs [data-st-favs-has]{padding-top:12px}
