/* Extend the approved royal homepage to catalog, gift and print products.
   Existing images, product artwork, controls and responsive layouts stay intact. */
body.royal-store {
  --primary: #165dde; --primary-hover: #114bbc; --primary-strong: #165dde;
  --primary-ink: #1454ca; --primary-tint: #eef4ff; --primary-tint-2: #dce8ff;
  --on-primary: #fff; --primary-shadow: rgba(22, 93, 222, .2);
  --ink: #20242c; --ink-soft: #515c6b; --ink-faint: #657080;
  --page: #fff; --mist: #f6f7fa; --mist-2: #eef0f4;
  --line: #dfe3e9; --line-strong: #b7c0cc;
  --r-md: 12px; --r-lg: 16px;
  color: var(--ink); background: var(--page);
  scrollbar-color: #a8b4c6 #f6f7fa;
}
.royal-store ::selection { background: var(--primary-tint-2); color: var(--ink); }
.royal-store :is(input, textarea) { caret-color: var(--primary); }
.royal-store a { text-underline-offset: .2em; }
.royal-store :focus-visible { outline: 3px solid var(--primary); outline-offset: 3px; }
.royal-store :is(input, textarea)::placeholder { color: var(--ink-soft); opacity: 1; }
.royal-store .btn--primary { box-shadow: none; }
.royal-store .announce { position: relative; border: 0; border-image: none; background: #fff; color: var(--ink); }
.royal-store .announce::after { content: ''; position: absolute; inset-block-end: 0; inset-inline-start: 50%; transform: translateX(50%); inline-size: 86px; block-size: 3px; border-radius: 2px; background: linear-gradient(to right, #00bfea 0 33.333%, #eb1488 33.333% 66.666%, #ffda00 66.666%); }
.royal-store .announce__inner { height: 36px; }
.royal-store .royal-tagline { grid-column: 2; text-align: center; white-space: nowrap; }
.royal-store .header { background: #fff; border-block-end: 1px solid var(--line); }
.royal-store .crumbs { color: var(--ink-soft); }

/* Catalog: flat white cards, graphite titles and the same royal actions. */
.royal-store .plp-head { padding-block: 16px 24px; }
.royal-store .plp-head__text { min-inline-size: 0; }
.royal-store :is(.plp-head h1, .store-empty h2) { overflow-wrap: anywhere; }
.royal-store .plp-head h1 { font-size: clamp(30px, 3.4vw, 48px); font-weight: 800; line-height: 1.16; letter-spacing: -.025em; }
.royal-store .plp-head__strip img { border-radius: 10px; box-shadow: none; border: 1px solid var(--line); }
/* Search is a working catalog: keep its title and controls close to the products. */
.royal-store.plp--query .crumbs { padding-block: 12px 4px; }
.royal-store.plp--query .plp-head { padding-block: 6px 10px; }
.royal-store.plp--query .plp-head h1 { font-size: 32px; }
.royal-store.plp--query .plp { padding-block-start: 4px; }
.royal-store.plp--query .plp-bar { margin-block-end: 8px; }
.royal-store.plp--query .toolbar { margin-block-end: 10px; }
@media (max-width: 767px) {
  .royal-store.plp--query .plp-head { padding-block: 8px 6px; }
  .royal-store.plp--query .plp-head h1 { font-size: 26px; }
  .royal-store.plp--query .plp-bar { margin-block-end: 4px; }
  .royal-store.plp--query .toolbar { margin-block-end: 8px; }
}
.royal-store .pcard { border: 1px solid var(--line); border-radius: 12px; box-shadow: none; }
.royal-store .pcard:hover { border-color: var(--primary); box-shadow: none; transform: none; }
.royal-store .pcard__title { font-weight: 700; }
body.royal-store .pcard__cta.btn { background: var(--primary); color: var(--on-primary); border-color: transparent; box-shadow: none; }
body.royal-store .pcard:hover .pcard__cta.btn, body.royal-store .pcard__cta.btn:hover { background: var(--primary-hover); color: #fff; }
.royal-store .catalog-search, .royal-store .select { border-color: var(--line-strong); }
.royal-store .catalog-search:focus-within { border-color: var(--primary); }
.royal-store .price, .royal-store .pp-price, .royal-store .sticky-buy__info { font-variant-numeric: tabular-nums; }

/* Gift product: keep the approved buying layout, normalize its fixed blue shades. */
.royal-store .pdp--gift .gallery__main { background: var(--primary-tint); border-radius: 16px; }
.royal-store .pdp--gift .gallery__note { color: var(--ink-soft); }
.royal-store .pdp--gift .gift-swatches [aria-pressed=true] { color: var(--primary-ink); }
.royal-store .pdp--gift .gift-quantity .qty { border-color: var(--line); }
.royal-store .pdp--gift .gift-quantity .qty button { background: var(--mist); }
.royal-store .pdp--gift .gift-quantity .qty button:hover:not(:disabled) { background: var(--primary-tint); }
.royal-store .pdp--gift .gift-quantity .qty :is([data-step="+"], [data-step="-"]) { border-color: var(--line); }
.royal-store :is(.gift-specs, .gift-specs li + li, .gift-price #buy-total) { border-color: var(--line); }
.royal-store .gift-tiers .tier span { color: var(--ink-soft); }
.royal-store .gift-tiers .tier:hover { background: var(--primary-tint); }
.royal-store .gift-tiers .tier[aria-pressed=true] { background: var(--primary-tint); outline-color: var(--primary); }
.royal-store .gift-steps { background: var(--primary-tint); }
.royal-store .gift-steps__n { background: var(--primary-tint-2); color: var(--primary-ink); }
.royal-store .gift-steps li:not(:last-child)::after { background: var(--line-strong); }
.royal-store .pdp--gift .design-cta__go, .royal-store .pdp--gift .buy .btn { border-radius: 999px; }
.royal-store .sticky-buy { box-shadow: none; }
.royal-store .design-cta__go .pp-buy__sum { border-color: rgba(255,255,255,.45); }

/* Print / gift editor chrome follows the theme; artwork and color swatches do not. */
.royal-store :is(.pp-stage, .pp-big__stage, .dz-summary__preview) { background: var(--primary-tint); }
.royal-store .pp-tabs button[aria-pressed=true] { color: var(--primary-ink); border-color: var(--primary); }
.royal-store .dz-card__shape i { background: var(--primary-tint); }
.royal-store :is(.dz-sel, .dz-sel__h) { border-color: var(--primary); }
.royal-store .dz-sel__h--rot::after { border-color: var(--primary); border-top-color: transparent; }

@media (min-width: 1100px) {
  .royal-store .filters { border: 1px solid var(--line); border-radius: 12px; box-shadow: none; }
}
@media (max-width: 700px) {
  .royal-store { --header-h: 51px; }
  .royal-store .announce { min-block-size: 24px; }
  .royal-store .announce__inner { height: 24px; }
  .royal-store .royal-tagline { font-size: 11px; }
  .royal-store .header__inner { height: 51px; min-height: 51px; padding-inline: 0; }
  .royal-store .brand img { height: 30px; }
  .royal-store .header .iconbtn { width: 40px; height: 40px; }
  .royal-store .header .iconbtn .i { width: 21px; height: 21px; }
  .royal-store .header__actions { margin-inline-end: 0; }
  .royal-store .plp-head { padding-block: 12px 16px; }
  .royal-store .plp-head h1 { font-size: 30px; }
  .royal-store .pcard { border-radius: 10px; }
}
html.high-contrast body.royal-store { --ink: #000; --ink-soft: #222; --primary: #1048ac; --primary-strong: #1048ac; --primary-ink: #1048ac; }
