.search-product-tile, .product-card { position: relative; min-width: 0; }
.search-product-tile .search-product-card { height: 100%; box-sizing: border-box; }
.search-product-tile .search-product-info { padding-right: 34px; }
.favorite-button {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  width: 44px; min-height: 44px; padding: 10px; border: 1px solid #eee5e6;
  border-radius: 50%; background: #fff; color: #7b7173; cursor: pointer;
  box-shadow: 0 2px 8px #31101708; transition: color .15s, background .15s, transform .15s;
}
.favorite-button svg { width: 21px; height: 21px; flex-shrink: 0; }
.favorite-button:hover { color: var(--tenant-primary, #d9152b); background: #fff6f7; transform: translateY(-1px); }
.favorite-button:focus-visible { outline: 3px solid #d9152b55; outline-offset: 3px; }
.favorite-button.is-favorite { color: var(--tenant-primary, #d9152b); background: #fff2f4; border-color: #f2cdd3; }
.favorite-button.is-favorite svg { fill: currentColor; }
.favorite-button:disabled { opacity: .6; cursor: wait; }
.favorite-button-detail { position: static; width: auto; border-radius: 999px; gap: 8px; margin-bottom: 18px; font: inherit; font-size: 13px; font-weight: 750; }
.product-card-content h4 { padding-right: 36px; }
.personal-product-badge { display: inline-flex; align-items: center; margin-top: 8px; padding: 4px 8px; background: #fff1f3; color: #a31327; border-radius: 7px; font-size: 11px; font-weight: 750; }
.personal-product-badge[hidden] { display: none; }
.favorite-account-note { color: #7a7376; font-size: 13px; line-height: 1.6; margin: -8px 0 24px; }
.favorite-account-grid { gap: 14px; }
.favorite-empty { padding: 42px 20px; text-align: center; background: #fffafa; border: 1px dashed #efdde0; border-radius: 18px; }
.favorite-empty > span { display: block; color: #cf1830; font-size: 52px; margin-bottom: 10px; }
.favorite-empty h3 { margin: 0 0 10px; font-size: 19px; }
.favorite-empty p { color: #7a7376; font-size: 14px; margin: 0 0 24px; }
.favorite-login-dialog { position: fixed; width: min(420px, calc(100vw - 32px)); padding: 36px 26px 24px; border: 0; border-radius: 22px; color: #262126; text-align: center; box-sizing: border-box; box-shadow: 0 20px 80px #0002; }
.favorite-login-dialog::backdrop { background: #21141c66; }
.favorite-login-close { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; border: 0; background: transparent; font-size: 26px; color: #75696e; cursor: pointer; }
.favorite-login-heart { display: block; font-size: 56px; color: #d9152b; }
.favorite-login-dialog h2 { font-size: 23px; line-height: 1.3; margin: 12px 0; }
.favorite-login-dialog p { color: #746b6f; font-size: 14px; line-height: 1.7; margin-bottom: 24px; }
.favorite-login-dialog > .button { width: 100%; }
.favorite-login-dialog > .text-link { margin-top: 16px; font: inherit; font-size: 13px; border: 0; background: transparent; cursor: pointer; min-height: 44px; }
.privacy-page { max-width: 850px; padding-top: 48px; padding-bottom: 70px; }
.privacy-page header { margin-bottom: 38px; }
.privacy-page h1 { font-size: clamp(25px,4vw,36px); line-height: 1.25; margin: 0 0 16px; }
.privacy-page h2 { font-size: 20px; margin: 0 0 14px; }
.privacy-page section { padding: 24px 0; border-top: 1px solid #f0e5e8; }
.privacy-page p { color: #797075; font-size: 14px; line-height: 1.9; }
.privacy-page a { color: #b61a31; }
@media (max-width: 900px) { .favorite-account-grid { grid-template-columns: 1fr; } }
@media (max-width: 360px) {
  .search-product-tile .search-product-info { padding-right: 28px; }
  .favorite-button { top: 8px; right: 8px; width: 40px; padding: 8px; }
  .favorite-button-detail { width: auto; padding: 10px 14px; }
}
