/* Tenant shop adapter: keep core gallery, filter, form and cart behavior intact.
   Specificity deliberately exceeds the public page heading/link reset. */
.nsstars-royal .royal-shop {
  --ri-paper:var(--paper); --ri-mist:var(--mist); --ri-ink:var(--ink); --ri-muted:var(--muted);
  --ri-line:var(--line); --ri-accent:var(--blue); --ri-action:var(--action-bg); --ri-action-hover:var(--action-hover);
  --bs-secondary-bg:var(--mist); --bs-secondary-color:var(--muted); --bs-tertiary-bg:var(--mist);
}
.nsstars-royal .royal-shop .ri-content { padding-bottom:40px; font-size:16px; }
.nsstars-royal .royal-shop .container { max-width:1240px; }
.nsstars-royal .royal-shop .ri-content .h2 { font-size:30px; }
.nsstars-royal .royal-shop .ri-content .h3 { font-size:26px; }
.nsstars-royal .royal-shop .ri-content .h4 { font-size:22px; }
.nsstars-royal .royal-shop .ri-content .h5 { font-size:18px; }
.nsstars-royal .royal-shop .ri-content .h6 { font-size:15px; }
/* Bootstrap color utilities are important; neutralize only shop surfaces that
   were selected server-side, so a browser appearance toggle also updates them. */
.nsstars-royal .royal-shop :is(.bg-white,.bg-dark) { background-color:var(--paper)!important; }
.nsstars-royal .royal-shop :is(.bg-light,.bg-body-secondary,.bg-white-subtle) { background-color:var(--mist)!important; }
.nsstars-royal .royal-shop :is(.link-dark,.link-light) { color:var(--ink)!important; }
.nsstars-royal .royal-shop .ri-content .breadcrumb {
  font-size:12px; --breadcrumb-color:var(--muted); --breadcrumb-hover-color:var(--blue);
  --bs-breadcrumb-divider-color:var(--muted); --bs-breadcrumb-item-active-color:var(--ink);
}
.nsstars-royal .royal-shop .ri-content .btn {
  min-height:44px; padding:10px 16px; font:650 14px/1.45 var(--body); white-space:normal;
}
.nsstars-royal .royal-shop .ri-content :is(.btn-primary,.btn-cart) {
  color:var(--action-ink); background:var(--action-bg); border-color:var(--action-bg);
}
.nsstars-royal .royal-shop .ri-content :is(.btn-primary,.btn-cart):is(:hover,:focus-visible,:active) {
  color:var(--action-ink); background:var(--action-hover); border-color:var(--action-hover);
}
.nsstars-royal .royal-shop .ri-content :is(.btn-light,.btn-secondary,.btn-outline-dark,.btn-outline-light,[data-bs-target="#filter-offcanvas"],[data-bs-toggle="dropdown"]) {
  color:var(--ink); background:var(--paper); border:1px solid var(--line);
}
.nsstars-royal .royal-shop .ri-content :is(.btn-light,.btn-secondary,.btn-outline-dark,.btn-outline-light,[data-bs-target="#filter-offcanvas"],[data-bs-toggle="dropdown"]):is(:hover,:focus-visible,:active) {
  color:var(--brand-soft-ink); background:var(--brand-soft); border-color:var(--brand-border);
}
.nsstars-royal .royal-shop :is(.dropdown-menu,.offcanvas-md,.offcanvas-body) { color:var(--ink); background-color:var(--paper); border-color:var(--line); }
.nsstars-royal .royal-shop .ri-content .dropdown-item { color:var(--ink); font-size:14px; padding:10px 16px; }
.nsstars-royal .royal-shop .ri-content .dropdown-item:is(:hover,:focus,.active) { color:var(--brand-soft-ink); background:var(--brand-soft); }
.nsstars-royal .royal-shop .ri-content :is(.form-control,.form-select) {
  color:var(--ink); background-color:var(--paper); border-color:var(--line); font-size:15px;
}
.nsstars-royal .royal-shop .filter { color:var(--ink); }
.nsstars-royal .royal-shop .filter__container { padding-block:16px; border-bottom:1px solid var(--line); }
.nsstars-royal .royal-shop .filter__container--background { padding:18px; background:var(--mist); border:1px solid var(--line); border-radius:4px; }
.nsstars-royal .royal-shop .filter__header-link { color:var(--ink); font:700 14px/1.5 var(--body); }
/* Legacy data-URI plus/minus images contain an unescaped dark color fragment. */
.nsstars-royal .royal-shop .filter .dropdown-toggle::after { content:'−'; display:inline-block; width:20px; border:0; margin:0; vertical-align:middle; text-align:center; color:var(--ink); font:400 20px/1 var(--body); }
.nsstars-royal .royal-shop .filter .collapsed .dropdown-toggle::after { content:'+'; }
.nsstars-royal .royal-shop :is(.filter__filter-link,.filter__filter-checkbox,.form-check-label) { color:var(--muted); font:400 13px/1.7 var(--body); }
.nsstars-royal .royal-shop .filter__filter-link:is(:hover,.active) { color:var(--blue); }
.nsstars-royal .royal-shop .filter .form-check { min-height:30px; }
.nsstars-royal .royal-shop .filter .form-check-input:checked { background-color:var(--action-bg); border-color:var(--action-bg); }
.nsstars-royal .royal-shop .filter .form-label { font-size:13px; }
.nsstars-royal .royal-shop .product-card {
  height:100%; border:1px solid var(--line); background:var(--paper); box-shadow:none;
  --product-card-bg:var(--paper); --product-card-title-color:var(--ink); --product-card-placeholder-bg:var(--mist);
}
.nsstars-royal .royal-shop .product-card__header { background:var(--paper); border-bottom:1px solid var(--line); }
.nsstars-royal .royal-shop .product-card__image { width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.nsstars-royal .royal-shop .product-card__body { padding:20px; }
.nsstars-royal .royal-shop .ri-content .product-card__title {
  margin:0 0 16px; min-height:2.8em; color:var(--ink); font:700 18px/1.4 var(--display);
  letter-spacing:-.02em; text-transform:none; overflow-wrap:anywhere;
}
.nsstars-royal .royal-shop .product-card__title a { color:var(--ink); }
.nsstars-royal .royal-shop .product-card__title a:hover { color:var(--blue); }
.nsstars-royal .royal-shop .product-card__price { margin:0 0 18px; color:var(--ink); font-size:21px; }
.nsstars-royal .royal-shop .product-card__price-old { color:var(--muted); font-size:13px; }
.nsstars-royal .royal-shop .product-card__price-new { color:var(--blue); }
.nsstars-royal .royal-shop .product-card__actions { margin-top:auto; gap:10px; }
.nsstars-royal .royal-shop .product-card > .product-card__actions { padding:0 20px 20px; }
.nsstars-royal .royal-shop .ri-content .product-card__actions .btn-cart { min-height:44px; padding:11px 12px; font-size:13px; }
.nsstars-royal .royal-shop .product-card__actions-wish-list { min-width:36px; min-height:44px; }
.nsstars-royal .royal-shop .product-card__badges > * { color:var(--brand-soft-ink); background:var(--brand-soft); }
.nsstars-royal .royal-shop .product-card__draft { color:var(--muted); background:var(--mist); }
.nsstars-royal .royal-shop .page-link {
  min-width:44px; min-height:44px; display:grid; place-items:center; color:var(--ink);
  background:var(--paper); border-color:var(--line); font-size:14px;
}
.nsstars-royal .royal-shop .page-item.active .page-link { color:var(--action-ink); background:var(--action-bg); border-color:var(--action-bg); }
.nsstars-royal .royal-shop .page-item.disabled .page-link { color:var(--muted); background:var(--mist); }
.nsstars-royal .royal-shop :is(.category-card,.brand-card) { background:var(--paper); border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.nsstars-royal .royal-shop :is(.category-card__image-container,.brand-card__image-container) { background:var(--mist); }
.nsstars-royal .royal-shop .ri-content :is(.category-card__title,.brand-card__title) { margin:0; padding:18px; color:var(--ink); font:700 18px/1.4 var(--display); }
.nsstars-royal .royal-product .royal-shop-notice { padding-block:14px; background:var(--brand-soft); color:var(--brand-soft-ink); border-bottom:1px solid var(--brand-border); font-size:14px; line-height:1.6; }
.nsstars-royal .royal-product .royal-product-price { margin-block:8px 12px; color:var(--ink); font:700 30px/1.25 var(--display); letter-spacing:-.035em; }
.nsstars-royal .royal-product .ri-content .royal-product-contact { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; padding:14px 20px; min-height:50px; }
.nsstars-royal .royal-product .ri-content .share-buttons { flex-wrap:wrap; justify-content:flex-start; gap:8px; margin-left:0!important; }
.nsstars-royal .royal-product .ri-content .share-buttons .btn { display:grid; place-items:center; width:44px; height:44px; padding:10px; color:var(--muted); background:var(--paper); border:1px solid var(--line); }
.nsstars-royal .royal-product .ri-content .share-buttons .btn:hover { color:var(--blue); background:var(--brand-soft); border-color:var(--brand-border); }
.nsstars-royal .royal-product .ri-content .share-buttons svg { width:18px; height:18px; }
.nsstars-royal .royal-product [data-cs-product-image-slider-images] { border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.nsstars-royal .royal-product .product-thumbnail-slider__item { border:1px solid var(--line); background:var(--paper); border-radius:3px; }
.nsstars-royal .royal-product .product-thumbnail-slider__item.is-active { border:2px solid var(--blue); }
.nsstars-royal .royal-product .product-thumbnail-slider__item-image { object-fit:contain; }
.nsstars-royal .royal-product .ri-content :is(p,ul,ol) { margin-bottom:16px; }
.nsstars-royal .royal-product .ri-content form { margin-top:24px; }
.nsstars-royal .royal-product .ri-content [data-cs-input-group-quantity] { border-radius:3px; }
.nsstars-royal .royal-product .ri-content [data-cs-input-group-quantity] .form-control { text-align:center; border-color:var(--line)!important; }
.nsstars-royal .royal-product .ri-content .product-details__flag { background:var(--action-bg)!important; color:var(--action-ink); border-radius:3px; font-size:12px; }
.nsstars-royal .royal-product .ri-content .product-details__flag.bg-danger { background:var(--ri-sale-bg)!important; color:var(--ri-sale-ink); }
.nsstars-royal .royal-product .ri-content #additional-info { margin-block:32px; }
.nsstars-royal .royal-product .ri-content .nav-tabs { gap:8px; border-color:var(--line); }
.nsstars-royal .royal-product .ri-content .nav-tabs .nav-link { padding:13px 16px; min-height:48px; color:var(--muted)!important; background:transparent; border:0; border-bottom:2px solid transparent; border-radius:0; font-size:14px; }
.nsstars-royal .royal-product .ri-content .nav-tabs .nav-link.active { color:var(--blue)!important; border-bottom-color:var(--blue); }
.nsstars-royal .royal-product .ri-content .tab-content { padding-top:24px; }
.nsstars-royal .royal-product .specification-table { --bs-table-color:var(--ink); --bs-table-bg:var(--paper); --bs-table-border-color:var(--line); }
.nsstars-royal .royal-product .specification-table td { padding:14px; }
.nsstars-royal .royal-product #question-form { margin-top:16px; scroll-margin-top:calc(var(--site-header-height,84px) + 24px); }
@media(max-width:767.98px) {
  .nsstars-royal .royal-shop #filter-offcanvas { width:min(360px,90vw); }
  .nsstars-royal .royal-shop #filter-offcanvas .offcanvas-body { padding:20px; }
  .nsstars-royal .royal-shop .ri-content :is(.form-control,.form-select) { font-size:16px; }
  .nsstars-royal .royal-shop .product-card__body { padding:14px 12px; }
  .nsstars-royal .royal-shop .product-card > .product-card__actions { padding:0 12px 14px; }
  .nsstars-royal .royal-shop .ri-content .product-card__title { font-size:16px; margin-bottom:12px; }
  .nsstars-royal .royal-shop .product-card__price { font-size:18px; gap:4px 7px; }
  .nsstars-royal .royal-shop .ri-content .product-card__actions .btn-cart { font-size:12px; padding:10px 8px; }
  .nsstars-royal .royal-product .ri-content .nav-tabs { justify-content:flex-start!important; }
  .nsstars-royal .royal-product .ri-content .royal-product-contact { width:100%; }
}
/* Remaining catalogue, promotion and checkout families share the same palette. */
.nsstars-royal .royal-shop .category-card { --category-card-image-bg:var(--mist); --category-card-title-color:var(--ink); }
.nsstars-royal .royal-shop .brand-card { --brand-card-image-bg:var(--mist); --brand-card-title-color:var(--ink); }
.nsstars-royal .royal-shop :is(.category-card__title,.brand-card__title) a { color:var(--ink); }
.nsstars-royal .royal-shop .coupon-card { --coupon-card-bg:var(--paper); --coupon-card-placeholder-bg:var(--mist); border:1px solid var(--line); border-radius:4px; }
.nsstars-royal .royal-shop .ri-content .coupon-card__title { margin:0; padding:18px; font:700 18px/1.4 var(--display); }
.nsstars-royal .royal-shop .coupon-card__title a { color:var(--ink); }
.nsstars-royal .royal-shop .coupon-card__badge,
.nsstars-royal .royal-shop .product-card__flag--discount { color:var(--ri-sale-ink); background:var(--ri-sale-bg); }
.nsstars-royal .royal-shop :is(.product-card__flag--discount-company,.product-card__flag--loyalty) { color:var(--action-ink); background:var(--action-bg); }
.nsstars-royal .royal-shop :is(.box,.subscription-card) { color:var(--ink); background:var(--paper); border-color:var(--line); }
.nsstars-royal .royal-shop :is(.alert-primary,.alert-secondary) { color:var(--brand-soft-ink); background:var(--brand-soft); border-color:var(--brand-border); }
.nsstars-royal .royal-shop .list-group { --bs-list-group-color:var(--ink); --bs-list-group-bg:var(--paper); --bs-list-group-border-color:var(--line); --bs-list-group-action-hover-bg:var(--mist); --bs-list-group-active-bg:var(--action-bg); --bs-list-group-active-color:var(--action-ink); --bs-list-group-active-border-color:var(--action-bg); }
.nsstars-royal .royal-shop .table :is(th,td) { border-color:var(--line); }
.nsstars-royal .royal-shop .royal-subscription-card { height:100%; }
/* Core emits an inline gold active border; retain that state using Royal Ice. */
.nsstars-royal .royal-shop .royal-subscription-card .subscription-card { --subscription-card-bg:var(--paper); --subscription-card-placeholder-bg:var(--mist); border:1px solid var(--line)!important; border-radius:4px!important; padding:0!important; }
.nsstars-royal .royal-shop .royal-subscription-card.is-active .subscription-card { border:3px solid var(--action-bg)!important; }
.nsstars-royal .royal-shop .ri-content .subscription-card__title { color:var(--ink); font:700 20px/1.4 var(--display); }
.nsstars-royal .royal-shop .subscription-card__body { padding:20px; }
.nsstars-royal .royal-shop .collection-card { --collection-card-image-bg:var(--mist); --collection-card-title-color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.nsstars-royal .royal-shop .ri-content .collection-card__title { margin:0; padding:18px; font:700 18px/1.4 var(--display); }
.nsstars-royal .royal-shop .collection-card__title a { color:var(--ink); }
.nsstars-royal .royal-shop .alert-light { color:var(--ink); background:var(--mist); border-color:var(--line); }
.nsstars-royal .royal-shop .product-card__body > .text-body-secondary { opacity:1!important; }
/* Subscription actions use core-specific classes rather than btn-primary. */
.nsstars-royal .royal-shop .ri-content :is(.btn-subscription,.btn-subscription-resume) { color:var(--action-ink); background:var(--action-bg); border-color:var(--action-bg); }
.nsstars-royal .royal-shop .ri-content :is(.btn-subscription,.btn-subscription-resume):is(:hover,:focus-visible,:active) { color:var(--action-ink); background:var(--action-hover); border-color:var(--action-hover); }
.nsstars-royal .royal-shop .ri-content .btn-dark { color:var(--ink); background:var(--mist); border-color:var(--line); }
.nsstars-royal .royal-shop .ri-content .btn-dark:is(:hover,:focus-visible,:active) { color:var(--brand-soft-ink); background:var(--brand-soft); border-color:var(--brand-border); }
