:root {
  --r-primary: #243329;
  --r-darker: #465049;
  --r-grey-50: #fbfaf9;
  --r-grey-75: #f1f1f1;
  --r-grey-100: #f0f0ef;
  --r-grey-300: #D5D3D2;
  --r-grey-400: #a6a2a0;
  --r-grey-500: #76716e;
  --r-grey-600: #56534f;
  --r-grey-900: #1b1918;
  --r-red: #e04146;
  --r-blue: #4151e0;
  --r-green-500: #58cf80;
  --r-page-max: 1530px;
  --r-brand-yellow: #E4C75E;
  --r-white-50: #fbfaf9;
  --r-primary-muted: #5d7a67;
}

html {
  font-size: clamp(14px, 1.1vw, 16px);
}

body {
  font-family: "Nunito Sans", Nunito, system-ui, sans-serif;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
  background-color: var(--r-grey-50);
  color: var(--r-grey-900);
}

/* ── Utility ─────────────────────────────────────────────────────── */
.hidden {
  display: none !important;
}

/* ── Standard divider ───────────────────────────────────────────── */
/* Reusable hr-style rule line — use across pages instead of one-off borders */
.r-divider {
  border: none;
  border-top: 1.5px solid var(--r-grey-400);
}

/* ── Utility-bar text links ─────────────────────────────────────── */
.r-util-link {
  color: var(--r-grey-50);
  font-size: 0.8125rem;
  line-height: 1.25;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: transparent;
  transition: text-decoration-color 0.2s;
  letter-spacing: 0.02em;
}

.r-util-link:hover {
  text-decoration-color: currentColor;
}

/* ── Nav-bar category labels ────────────────────────────────────── */
.r-nav-label {
  color: var(--r-grey-50);
  font-size: 0.8125rem;
  letter-spacing: 0.05em;
  font-weight: 500;
  text-transform: uppercase;
}

/* ── Mobile offcanvas Account / Basket icon buttons ─────────────── */
.r-mobile-icon-btn {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.2rem 0.4rem 0.2rem 0.4rem;
  gap: 0.1rem;
  text-decoration: none;
}

.r-mobile-icon-svg {
  width: 1.4rem;
  height: 1.4rem;
  color: var(--r-grey-900);
}

.r-mobile-icon-label {
  font-size: 0.7rem;
  color: var(--r-grey-900);
  line-height: 1.2;
  font-weight: 600;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
  white-space: nowrap;
}

/* ── Header Account / Basket icon buttons ───────────────────────── */
.r-header-icon-btn {
  position: relative;
  height: 2.8rem;
  justify-content: space-between;
  gap: 0;
  text-decoration: none;
  opacity: 1;
  transition: opacity 0.2s;
}

.r-basket-count {
  position: absolute;
  top: -0.25rem;
  right: 0.375rem;
  min-width: 1.125rem;
  height: 1.125rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: var(--r-primary-muted);
  color: var(--r-white-50);
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1.125rem;
  text-align: center;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-basket-count--mobile {
  top: 0;
  right: -0.25rem;
}

.r-header-icon-btn:hover {
  opacity: 0.7;
}

.r-header-icon-svg {
  width: 2.1rem;
  height: 2.1rem;
  color: var(--r-primary);
  padding-bottom: 0.3rem;
}

.r-header-icon-label {
  font-size: 0.90rem;
  color: var(--r-primary);
  letter-spacing: -0.01em;
  line-height: 1.25;
  font-weight: 600;
}

/* ── Mega menu structural classes ───────────────────────────────── */
.r-mega-panel {
  padding: 0;
  background: var(--r-white-50);
  border-radius: 0;
  margin-top: 0;
  overflow: hidden;
  box-shadow: 4px 4px 8px 0px rgba(67, 64, 61, 0.15);
  display: none;
}

.r-mega-panel.uk-open {
  display: block;
}

.r-mega-layout {
  display: flex;
  align-items: stretch;
  max-width: var(--r-page-max);
  margin: 0 auto;
  width: 100%;
}

.r-mega-sidebar {
  width: 16.5rem;
  flex-shrink: 0;
  background: var(--r-grey-100);
  padding: clamp(1rem, 3.5vh, 2.8125rem);
  display: flex;
  flex-direction: column;
  gap: clamp(0.75rem, 2vh, 1.5rem);
}

.r-mega-featured-row {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  cursor: pointer;
}

.r-mega-featured-row.is-active .r-featured-link {
  color: var(--r-primary);
  font-weight: 600;
}

.r-mega-content {
  flex: 1;
  min-width: 0;
  max-width: 995px;
  min-height: 26.25rem;
  background: var(--r-grey-50);
  padding: clamp(1rem, 4vh, 3rem);
  display: flex;
  gap: clamp(1.5rem, 3vh, 3rem);
  overflow-y: auto;
}

.r-mega-col {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(0.75rem, 2vh, 1.5rem);
}

/* Popular Subjects/Genres spans two visual column widths */
.r-mega-col:first-child {
  flex: 2 1 0;
}

.r-mega-section-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-width: 235px;
}

/* Wide sections span two sub-columns of links, so the heading/rule should too */
.r-mega-section-wrap--wide {
  max-width: none;
}

.r-mega-links {
  display: flex;
  flex-direction: column;
  gap: clamp(0.3rem, 1vh, 0.75rem);
  max-width: 199px;
  min-width: 0;
}

.r-mega-cols {
  display: flex;
  gap: clamp(1.5rem, 3vh, 3rem);
  min-width: 0;
}

.r-mega-stack {
  display: flex;
  flex-direction: column;
  gap: clamp(0.75rem, 2vh, 1.5rem);
}

/* ── Mega menu footer bar ────────────────────────────────────────── */
.r-mega-footer {
  border-top: 1px solid var(--r-grey-100);
  background: var(--r-grey-50);
  height: clamp(2rem, 4vh, 3rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 3rem;
  max-width: var(--r-page-max);
  margin: 0 auto;
  width: 100%;
}

.r-mega-footer-left {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.r-mega-footer-label {
  font-size: 1.0rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--r-grey-900);
  white-space: nowrap;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-mega-footer-links {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  height: 1.375rem;
}

.r-mega-explore {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.r-mega-explore-link {
  font-size: 1.0rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--r-primary-muted);
  text-decoration: none;
  white-space: nowrap;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-mega-explore-arrow {
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
}

.r-mega-more {
  font-size: 1.0rem;
  font-weight: 600;
  font-style: italic;
  line-height: 1.2;
  color: var(--r-grey-900);
  text-decoration: none;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-mega-heading {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-weight: 800;
  font-size: 1.125rem;
  line-height: 1.15;
  letter-spacing: -0.0275rem;
  color: var(--r-grey-900);
  margin: 0;
}

.r-section-heading {
  font-weight: 800;
  font-size: 1rem;
  line-height: 1.2;
  color: var(--r-grey-900);
  margin: 0;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-section-hr {
  border: none;
  border-top: 1.5px solid var(--r-grey-400);
  margin: 0;
  width: 100%;
}

.r-sub-link {
  font-weight: 600;
  font-size: 0.9375rem;
  line-height: 1.2;
  color: var(--r-grey-900);
  text-decoration: none;
  display: block;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-sub-link:hover {
  color: var(--r-primary);
}

.r-featured-link {
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--r-grey-900);
  text-decoration: none;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-featured-link:hover {
  color: var(--r-primary);
}

.r-footer-link {
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--r-grey-900);
  text-decoration: none;
  white-space: nowrap;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-footer-link:hover {
  color: var(--r-primary);
}

.r-footer-sep {
  color: var(--r-grey-400);
  font-size: 0.9375rem;
  user-select: none;
}

/* ── Header inner rows: responsive horizontal padding ──────────── */
header .r-width-page-max.px {
  --px: 8 !important;
}

@media (min-width: 1024px) {
  header .r-width-page-max.px {
    --px: 12 !important;
  }
}

/* ── Hero slideshow ─────────────────────────────────────────────── */
.r-hero-slideshow {
  flex-shrink: 0;
}

.r-hero-slideshow .uk-slideshow-items {
  min-height: 160px;
  border-radius: 8px;
  overflow: hidden;
}

@media (min-width: 510px) {
  .r-hero-slideshow .uk-slideshow-items {
    min-height: 180px;
  }
}

@media (min-width: 660px) {
  .r-hero-slideshow .uk-slideshow-items {
    min-height: 220px;
  }
}

@media (min-width: 830px) {
  .r-hero-slideshow .uk-slideshow-items {
    min-height: 280px;
  }
}

@media (min-width: 1200px) {
  .r-hero-slideshow .uk-slideshow-items {
    min-height: 380px;
  }
}

@media (min-width: 1400px) {
  .r-hero-slideshow .uk-slideshow-items {
    min-height: 420px;
  }
}

.r-hero-dotnav {
  display: flex;
  justify-content: center;
  margin-top: 0.5rem;
}

/* ── Book section header ────────────────────────────────────────── */
.r-book-section {
  display: flex;
  flex-direction: column;
}

@media (max-width: 1023px) {
  .r-book-section {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

.r-book-section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding-bottom: 1rem;
}

.r-book-section-title {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.125rem, 1.8vw, 1.65rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.04em;
  color: var(--r-grey-900);
  margin: 0;
}

.r-book-section-more {
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--r-grey-900);
  text-decoration: none;
  white-space: nowrap;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
  transition: opacity 0.2s;
}

.r-book-section-more:hover {
  opacity: 0.7;
}

.r-book-section-divider {
  border: none;
  border-top: 1.5px solid var(--r-grey-400);
  margin: 0 0 3rem;
}

/* ── Book grid ───────────────────────────────────────────────────── */
.r-book-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

@media (min-width: 640px) {
  .r-book-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1200px) {
  .r-book-grid {
    grid-template-columns: repeat(6, 1fr);
  }
}

/* ── Book card ───────────────────────────────────────────────────── */
.r-book-card {
  display: flex;
  flex-direction: column;
  position: relative;
  min-width: 0;
}

.r-book-card-top {
  background: var(--r-grey-100);
  display: flex;
  flex-direction: column;
  padding: 0.5em;
  position: relative;
  flex: 1;
}

.r-book-card-img-wrap {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 5/8;
  flex-shrink: 0;
}

.r-book-card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  display: block;
}

.r-book-card-tags {
  position: absolute;
  left: -4px;
  top: 0.875rem;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-start;
  opacity: 0.9;
}

[data-tag=""] {
  display: none;
}

.r-book-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 1.125em;
  padding: 0 0.375em;
  border-radius: 1.5rem;
  font-size: 0.90rem;
  font-weight: 600;
  color: var(--r-white-50);
  white-space: nowrap;
  line-height: 1.2;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-book-tag[data-tag="new"] {
  background: var(--r-red);
}

.r-book-tag[data-tag="must-read"] {
  background: var(--r-blue);
}

.r-book-tag[data-tag="staff-pick"] {
  background: var(--r-brand-yellow);
  color: var(--r-grey-900);
}

.r-book-tag[data-tag="best-seller"] {
  background: var(--r-green-500);
}

.r-book-card-meta {
  display: flex;
  flex-direction: column;
  gap: 0.625em;
  flex-shrink: 0;
  margin-top: 0.75em;
}

.r-book-card-info {
  display: flex;
  flex-direction: column;
  gap: 0.375em;
}

.r-book-card-title {
  font-size: clamp(1rem, 1.4vw, 1.35rem);
  font-weight: 600;
  line-height: 1.2;
  color: var(--r-grey-900);
  margin: 0;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-book-card-author-row {
  display: flex;
  align-items: center;
  gap: 0.375em;
}

.r-book-card-author {
  font-size: 0.9375rem;
  font-weight: 400;
  color: var(--r-grey-600);
  line-height: 1.2;
  overflow-wrap: break-word;
  min-width: 0;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-book-card-author-icon {
  width: 1.125em;
  height: 1.125em;
  flex-shrink: 0;
  color: var(--r-grey-600);
}

.r-book-card-review {
  display: flex;
  flex-direction: column;
  gap: 0.375em;
  justify-content: flex-end;
}

.r-book-card-quote {
  font-size: 0.90rem;
  font-weight: 400;
  color: var(--r-grey-600);
  line-height: 1.2;
  margin: 0;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
  font-style: italic;
}

.r-book-card-quote:empty {
  display: none;
}

.r-book-card-stars {
  display: flex;
  align-items: center;
  gap: 1.5px;
  height: 0.9375em;
  flex-shrink: 0;
}

.r-book-card-star {
  width: 0.926em;
  height: 0.9375em;
  flex-shrink: 0;
  fill: var(--r-brand-yellow);
}

.r-book-card-price {
  background: var(--r-grey-50);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 3.5625rem;
  padding: 0.375em;
  flex-shrink: 0;
}

.r-book-card-price-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

.r-book-card-rrp {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--r-grey-500);
  text-decoration: line-through;
  text-decoration-color: var(--r-grey-400);
  line-height: 1.2;
  white-space: nowrap;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-book-card-actions {
  display: flex;
  align-items: center;
  gap: 0.6em;
}

.r-book-card-action-icon {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  width: 0.9375em;
  height: 0.9375em;
  flex-shrink: 0;
  color: var(--r-grey-600);
  cursor: pointer;
  transition: color 0.2s;
}

.r-book-card-action-icon:hover {
  color: var(--r-primary);
}

.r-book-card-sale-price {
  font-size: clamp(1rem, 1.5vw, 1.5rem);
  font-weight: 600;
  color: var(--r-grey-900);
  line-height: 1.2;
  white-space: nowrap;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-book-card-format {
  background: var(--r-grey-100);
  display: flex;
  align-items: center;
  gap: 0.375em;
  height: 2.4375rem;
  padding: 0.375em;
  flex-shrink: 0;
  margin-top: 0.2em;
}

.r-book-card-format-icon {
  width: 1.125em;
  height: 1.125em;
  flex-shrink: 0;
  color: var(--r-grey-500);
}

.r-book-card-format-text {
  font-size: 0.9375rem;
  font-weight: 400;
  color: var(--r-grey-500);
  line-height: 1.2;
  white-space: nowrap;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

/* ── Compact card modifier ──────────────────────────────────────── */
.r-book-card--compact .r-book-card-tags,
.r-book-card--compact .r-book-card-review,
.r-book-card--compact .r-book-card-format {
  display: none;
}

/* ── Page footer ─────────────────────────────────────────────────── */
.r-page-footer {
  background: var(--r-primary);
  position: relative;
  overflow: hidden;
}

.r-page-footer-wm {
  position: absolute;
  bottom: 0;
  right: 1.5rem;
  width: 11.5rem;
  height: 11.4375rem;
  opacity: 0.02;
  pointer-events: none;
}

.r-page-footer-inner {
  padding: 3rem;
  display: flex;
  align-items: flex-start;
}

.r-page-footer-grid {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.r-page-footer-left {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
}

.r-page-footer-logo {
  order: -1;
}

.r-page-footer-logo-img {
  width: 181px;
  height: 40px;
}

.r-page-footer-quote {
  font-size: 0.9375rem;
  font-weight: 300;
  font-style: italic;
  line-height: 1.2;
  color: var(--r-grey-50);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
  margin: 0;
}

.r-page-footer-social-wrap {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.r-page-footer-social-icons {
  display: flex;
  gap: 1rem;
  align-items: center;
}

.r-page-footer-social-icon {
  width: 1.5rem;
  height: 1.5rem;
  color: var(--r-grey-50);
  text-decoration: none;
  opacity: 1;
  transition: opacity 0.2s;
  display: block;
}

.r-page-footer-social-icon:hover {
  opacity: 0.75;
}

.r-page-footer-social-label {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--r-grey-50);
  line-height: 1.2;
  margin: 0;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-page-footer-cols {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}

.r-page-footer-col {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.r-footer-col-heading {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--r-white-50);
  white-space: nowrap;
  margin: 0;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-page-footer-col-links {
  display: none;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0.625rem;
  flex: 1;
}

.r-footer-nav-link {
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--r-grey-50);
  text-decoration: none;
  white-space: nowrap;
  display: block;
  opacity: 1;
  transition: opacity 0.2s;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-footer-nav-link:hover {
  opacity: 0.75;
}

.r-page-footer-right {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.r-page-footer-right-inner {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
}

.r-page-footer-newsletter {
  background: var(--r-darker);
  border-radius: 0.5rem;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  height: 6rem;
  flex-shrink: 0;
}

.r-page-footer-newsletter-form {
  display: flex;
  align-items: stretch;
  flex: 1;
  min-height: 0;
}

.r-page-footer-newsletter-input {
  flex: 1;
  min-width: 0;
  background: var(--r-white-50);
  border: 1.5px solid var(--r-primary);
  border-right: none;
  padding: 0.375em 0.75em;
  font-size: 0.9rem;
  font-style: italic;
  font-weight: 300;
  color: var(--r-grey-600);
  outline: none;
  font-family: inherit;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-page-footer-newsletter-btn {
  background: var(--r-primary);
  color: var(--r-white-50);
  border: none;
  border-radius: 0 0.5rem 0.5rem 0;
  padding: 0.1875em 1.5em;
  font-size: 1.0rem;
  cursor: pointer;
  white-space: nowrap;
  font-family: inherit;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-page-footer-extras {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding: 0;
}

.r-page-footer-influencer {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.r-page-footer-influencer-text {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--r-grey-50);
  line-height: 1.2;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-page-footer-contact {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.r-page-footer-contact-row {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  height: 1.75rem;
  font-size: 0.9375rem;
  font-weight: 400;
  color: var(--r-white-50);
  text-decoration: none;
  line-height: 1.2;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
  white-space: nowrap;
}

.r-page-footer-contact-icon {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
  color: var(--r-grey-50);
}

/* ── Tablet + desktop shared (768px+) ───────────────────────────── */
@media (min-width: 768px) {
  .r-page-footer-logo {
    order: 0;
  }

  .r-page-footer-col-links {
    display: flex;
  }
}

/* ── Tablet only (768px–1409px) ─────────────────────────────────── */
@media (min-width: 768px) and (max-width: 1409px) {
  .r-page-footer-inner {
    align-items: flex-start;
  }

  .r-page-footer-grid {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 3rem;
    align-items: flex-start;
  }

  .r-page-footer-left {
    order: 2;
    width: 15rem;
    flex-shrink: 0;
    gap: 3rem;
  }

  .r-page-footer-cols {
    order: 1;
    flex-direction: row;
    justify-content: space-between;
    width: 100%;
    gap: 0;
  }

  .r-page-footer-col-links {
    flex: none;
  }

  .r-page-footer-right {
    order: 3;
    flex: 1;
    min-width: 0;
    width: auto;
    align-items: flex-end;
  }

  .r-page-footer-right-inner {
    width: 22.5rem;
    max-width: 100%;
  }

  .r-page-footer-extras {
    gap: 1.5rem;
    padding: 0;
  }

  .r-page-footer-influencer {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0;
  }
}

/* ── Desktop (1410px+) ──────────────────────────────────────────── */
@media (min-width: 1410px) {
  .r-page-footer-inner {
    align-items: center;
    height: 21rem;
  }

  .r-page-footer-grid {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 4rem;
    height: 15rem;
  }

  .r-page-footer-left {
    width: 15rem;
    flex-shrink: 0;
    height: 100%;
    justify-content: space-between;
    gap: 0;
  }

  .r-page-footer-cols {
    flex-direction: row;
    gap: 4rem;
    flex: 1;
    align-self: stretch;
    width: auto;
  }

  .r-page-footer-col {
    flex: 1;
    height: 100%;
  }

  .r-page-footer-right {
    width: 22.5rem;
    flex-shrink: 0;
    align-self: stretch;
    justify-content: center;
  }

  .r-page-footer-extras {
    flex: 1;
    justify-content: space-between;
    padding: 0 1.5rem;
    gap: 0;
    min-height: 0;
  }

  .r-page-footer-influencer {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0;
  }
}

/* ── Book cover utility ─────────────────────────────────────────── */
.book-cover {
  aspect-ratio: 2/3;
  object-fit: cover;
  object-position: top;
}

/* ── Mobile accordion nav ───────────────────────────────────────── */
.r-mobile-chevron {
  transition: transform 0.2s ease;
  flex-shrink: 0;
}

.uk-parent.uk-open > a .r-mobile-chevron {
  transform: rotate(90deg);
}

#mobile-menu ul[data-uk-nav] > li:not(:last-child) {
  border-bottom: 1px solid var(--r-grey-400);
  padding-bottom: 0.5rem;
  margin-bottom: 0.5rem;
}

#mobile-menu .uk-nav-sub {
  list-style: none;
  padding: 0.375rem 0 0 1.875rem;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

#mobile-menu .uk-nav-sub li a {
  font-size: 0.875rem;
  color: var(--r-grey-600);
  text-decoration: none;
  line-height: 1.4;
  display: block;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

#mobile-menu .uk-nav-sub li a:hover {
  color: var(--r-primary);
}

/* ── Layout helpers ─────────────────────────────────────────────── */
.r-width-page-max {
  max-width: var(--r-page-max);
  width: 100%;
  margin: auto;
}

.r-container {
  width: 100%;
  max-width: var(--r-page-max);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  padding-left: 1rem;
  padding-right: 1rem;
}

/* ── Tablet only (768px–1409px) ─────────────────────────────────── */
@media (min-width: 768px) and (max-width: 1023px) {
  .r-container {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}


@media (min-width: 1024px) {
  .r-container {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

/* ── Icon masks (Phosphor icons via CSS mask) ───────────────────── */
.ph--user {
  display: inline-block;
  width: 1.4em;
  height: 1.4em;
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='black' d='M230.92 212c-15.23-26.33-38.7-45.21-66.09-54.16a72 72 0 1 0-73.66 0c-27.39 8.94-50.86 27.82-66.09 54.16a8 8 0 1 0 13.85 8c18.84-32.56 52.14-52 89.07-52s70.23 19.44 89.07 52a8 8 0 1 0 13.85-8M72 96a56 56 0 1 1 56 56a56.06 56.06 0 0 1-56-56'/%3E%3C/svg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.ph--list-heart-light {
  display: inline-block;
  width: 1.4em;
  height: 1.4em;
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='black' d='M34 64a6 6 0 0 1 6-6h176a6 6 0 0 1 0 12H40a6 6 0 0 1-6-6m6 70h64a6 6 0 0 0 0-12H40a6 6 0 0 0 0 12m80 52H40a6 6 0 0 0 0 12h80a6 6 0 0 0 0-12m126-42c0 35.3-49.22 60.32-51.32 61.37a6 6 0 0 1-5.36 0C187.22 204.32 138 179.3 138 144a30 30 0 0 1 54-18a30 30 0 0 1 54 18m-12 0a18 18 0 0 0-36 0a6 6 0 0 1-12 0a18 18 0 0 0-36 0c0 14.15 11.78 27 21.67 35.25A139 139 0 0 0 192 193.19a138 138 0 0 0 20.33-13.94C222.22 171 234 158.15 234 144'/%3E%3C/svg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.ph--basket-light {
  display: inline-block;
  width: 1.4em;
  height: 1.4em;
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='black' d='M134 120v56a6 6 0 0 1-12 0v-56a6 6 0 0 1 12 0m40.83-.6l-5.6 56a6 6 0 0 0 5.37 6.6h.61a6 6 0 0 0 6-5.4l5.6-56a6 6 0 0 0-11.94-1.2Zm-93.66 0a6 6 0 0 0-11.94 1.2l5.6 56a6 6 0 0 0 6 5.4h.61a6 6 0 0 0 5.37-6.57ZM238 88.79l-15.13 113.06A14 14 0 0 1 209 214H47a14 14 0 0 1-13.87-12.15L18.05 88.79A6 6 0 0 1 24 82h45.28l54.2-61.95a6 6 0 0 1 9 0l54.2 62H232a6 6 0 0 1 6 6.74M85.22 82h85.56L128 33.11Zm139.93 12H30.85L45 200.26a2 2 0 0 0 2 1.74h162a2 2 0 0 0 2-1.74Z'/%3E%3C/svg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.r-cart-notice-icon {
  vertical-align: -0.15em;
  margin-right: 0.4em;
}

.uk-notification-message-success {
  background-color: #fff;
  border: 1px solid #e5e5e5;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  color: var(--r-primary);
}

/* Basket icon — normal (regular) weight */
.ph--basket {
  display: inline-block;
  width: 1em;
  height: 1em;
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='black' d='M136 120v56a8 8 0 0 1-16 0v-56a8 8 0 0 1 16 0m36.84-.8l-5.6 56a8 8 0 0 0 7.16 8.8a7 7 0 0 0 .81 0a8 8 0 0 0 7.95-7.2l5.6-56a8 8 0 0 0-15.92-1.6m-89.68 0a8 8 0 0 0-15.92 1.6l5.6 56a8 8 0 0 0 8 7.2a7 7 0 0 0 .81 0a8 8 0 0 0 7.16-8.76Zm156.77-30.14l-15.07 113.06A16.06 16.06 0 0 1 209 216H47a16.06 16.06 0 0 1-15.86-13.88L16.07 89.06A8 8 0 0 1 24 80h44.37L122 18.73a8 8 0 0 1 12 0L187.63 80H232a8 8 0 0 1 7.93 9.06M89.63 80h76.74L128 36.15Zm133.23 16H33.14L47 200h162Z'/%3E%3C/svg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

/* Wish List icon — normal (regular) weight */
.ph--list-heart {
  display: inline-block;
  width: 1em;
  height: 1em;
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='black' d='M32 64a8 8 0 0 1 8-8h176a8 8 0 0 1 0 16H40a8 8 0 0 1-8-8m8 72h64a8 8 0 0 0 0-16H40a8 8 0 0 0 0 16m80 48H40a8 8 0 0 0 0 16h80a8 8 0 0 0 0-16m128-40c0 36.52-50.28 62.08-52.42 63.16a8 8 0 0 1-7.16 0C186.28 206.08 136 180.52 136 144a32 32 0 0 1 56-21.14A32 32 0 0 1 248 144m-16 0a16 16 0 0 0-32 0a8 8 0 0 1-16 0a16 16 0 0 0-32 0c0 20.18 26.21 39.14 40 46.93c13.79-7.78 40-26.74 40-46.93'/%3E%3C/svg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

/* Gift icon — normal (regular) weight */
.ph--gift {
  display: inline-block;
  width: 1em;
  height: 1em;
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='black' d='M216 72h-35.08c.39-.33.79-.65 1.17-1A29.53 29.53 0 0 0 192 49.57A32.62 32.62 0 0 0 158.44 16A29.53 29.53 0 0 0 137 25.91a55 55 0 0 0-9 14.48a55 55 0 0 0-9-14.48A29.53 29.53 0 0 0 97.56 16A32.62 32.62 0 0 0 64 49.57A29.53 29.53 0 0 0 73.91 71c.38.33.78.65 1.17 1H40a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16v64a16 16 0 0 0 16 16h144a16 16 0 0 0 16-16v-64a16 16 0 0 0 16-16V88a16 16 0 0 0-16-16m-67-35.49a13.7 13.7 0 0 1 10-4.5h.49A16.62 16.62 0 0 1 176 49.08a13.7 13.7 0 0 1-4.5 10c-9.49 8.4-25.24 11.36-35 12.4c1.2-10.59 4.5-25.98 12.5-34.97m-64.09.36A16.63 16.63 0 0 1 96.59 32h.49a13.7 13.7 0 0 1 10 4.5c8.39 9.48 11.35 25.2 12.39 34.92c-9.72-1-25.44-4-34.92-12.39a13.7 13.7 0 0 1-4.5-10a16.6 16.6 0 0 1 4.82-12.16ZM40 88h80v32H40Zm16 48h64v64H56Zm144 64h-64v-64h64Zm16-80h-80V88h80z'/%3E%3C/svg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

/* Card / PayPal payment icons */
.quill--creditcard {
  display: inline-block;
  width: 1em;
  height: 1em;
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M11 20h8M3 13h26m-6 7h2M5 7C4 7 3 8 3 9v14c0 1 1 2 2 2h22c1 0 2-1 2-2V9c0-1-1-2-2-2z'/%3E%3C/svg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.ic--baseline-paypal {
  display: inline-block;
  width: 1em;
  height: 1em;
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9.93 12.99c.1 0 2.42.1 3.8-.24h.01c1.59-.39 3.8-1.51 4.37-5.17c0 0 1.27-4.58-5.03-4.58H7.67c-.49 0-.91.36-.99.84L4.38 18.4c-.05.3.19.58.49.58H8.3l.84-5.32c.06-.38.39-.67.79-.67'/%3E%3Cpath fill='black' d='M18.99 8.29c-.81 3.73-3.36 5.7-7.42 5.7H10.1l-1.03 6.52c-.04.26.16.49.42.49h1.9c.34 0 .64-.25.69-.59c.08-.4.52-3.32.61-3.82c.05-.34.35-.59.69-.59h.44c2.82 0 5.03-1.15 5.68-4.46c.26-1.34.12-2.44-.51-3.25'/%3E%3C/svg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.simple-icons--afterpay {
  display: inline-block;
  width: 1em;
  height: 1em;
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 0C5.373 0 0 5.373 0 12c0 6.628 5.373 12 12 12c6.628 0 12-5.372 12-12c0-6.627-5.372-12-12-12m1.236 4.924a2.2 2.2 0 0 1 1.15.299l4.457 2.557c1.495.857 1.495 3.013 0 3.87l-4.457 2.558c-1.488.854-3.342-.22-3.342-1.935v-.34a.441.441 0 0 0-.66-.383L6.287 13.9a.441.441 0 0 0 0 .765l4.096 2.35a.44.44 0 0 0 .661-.382v-.685c0-.333.36-.542.649-.376l1.041.597a.44.44 0 0 1 .222.383v.29c0 1.715-1.854 2.789-3.342 1.935L5.157 16.22c-1.495-.857-1.495-3.013 0-3.87l4.457-2.558c1.488-.854 3.342.22 3.342 1.935v.34c0 .34.366.551.66.383l4.097-2.35a.441.441 0 0 0 0-.765l-4.096-2.351a.441.441 0 0 0-.661.382v.685c0 .333-.36.541-.649.375l-1.041-.597a.44.44 0 0 1-.222-.383v-.29c0-1.285 1.043-2.21 2.192-2.233z'/%3E%3C/svg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

/* ── Page wrapper ───────────────────────────────────────────────── */
.r-page-wrapper {
  min-height: 100vh;
}

/* ── Main content area ──────────────────────────────────────────── */
.r-main {
  margin-top: 2rem;
  margin-bottom: 4rem;
}

/* ── Section vertical gap (between homepage sections) ───────────── */
.r-section-gap {
  margin-top: 48px;
}

/* ── Header ─────────────────────────────────────────────────────── */
.r-header {
  background: var(--r-grey-50);
}

.r-header-bar {
  background: var(--r-primary);
  height: 1.7rem;
  width: 100%;
}

.r-header-main {
  height: 7rem;
  width: 100%;
  display: flex;
  align-items: center;
}

.r-header-divider {
  flex-basis: 100%;
  /* width: 100%; */
  border: none;
  border-top: 1.5px solid var(--r-grey-400);
  margin-left: 2rem;
  margin-right: 2rem;
}

.r-header-logo-link {
  flex-shrink: 0;
  width: 190px;
}

.r-header-logo-svg {
  width: auto;
  height: 2.2rem;
  color: var(--r-primary);
}

.r-header-icons {
  width: 168px;
  justify-content: flex-end;
}

/* ── Header search ──────────────────────────────────────────────── */
.r-header-search {
  width: 540px;
  height: 2rem;
  align-items: center;
}

.r-header-search-input {
  flex: 1;
  height: 100%;
  border: 1.6px solid var(--r-primary);
  border-right: none;
  border-radius: 2px 0 0 2px;
  padding: 0 1rem;
  font-size: 0.875rem;
  color: var(--r-grey-500);
  outline: none;
  background: var(--r-white-50);
  font-family: inherit;
}

.r-header-search-cat-btn {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  height: 100%;
  border: 1.6px solid var(--r-primary);
  border-right: none;
  border-radius: 0;
  padding: 0 0.875rem;
  font-size: 0.875rem;
  color: var(--r-primary);
  white-space: nowrap;
  cursor: pointer;
  font-family: inherit;
  background: var(--r-white-50);
  transition: background 0.15s;
}

.r-header-search-cat-btn:hover {
  background: var(--r-grey-100);
}

.r-header-search-dropdown {
  padding: 0.25rem 0;
  min-width: 10rem;
  border-radius: 2px;
  border: 1.6px solid var(--r-primary);
  box-shadow: none;
  display: none;
}

.r-header-search-dropdown.uk-open {
  display: block;
}

.r-header-search-submit {
  height: 100%;
  padding: 0 1.5rem;
  border-radius: 0 4px 4px 0;
  font-size: 0.875rem;
  white-space: nowrap;
  color: var(--r-grey-50);
  cursor: pointer;
  font-family: inherit;
  background: var(--r-primary);
  border: none;
  transition: background 0.15s;
}

.r-header-search-submit:hover {
  background: var(--r-darker);
}

/* ── Nav button (mega-menu trigger) ─────────────────────────────── */
.r-nav-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0 0.75rem;
  height: 2rem;
  font-family: inherit;
}

.r-nav-label:hover {
  opacity: 0.75;
}

.r-nav-chevron {
  width: 14px;
  height: 14px;
}
.r-header-search-cat-btn .r-nav-chevron {
  width: 11px;
  height: 11px;
}

.r-mega-featured-chevron {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* ── Mobile menu ────────────────────────────────────────────────── */
.r-mobile-menu {
  display: none;
}

.r-mobile-menu-bar {
  background: var(--r-grey-50);
  color: var(--r-grey-900);
  width: 80vw;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.r-mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem;
  flex-shrink: 0;
}

.r-mobile-menu-hr {
  border: none;
  border-top: 1px solid var(--r-grey-400);
  margin: 0;
  flex-shrink: 0;
}

.r-mobile-close-btn {
  color: var(--r-grey-900);
  width: 1.875rem;
  height: 1.875rem;
  padding: 0;
  flex-shrink: 0;
}

.r-mobile-menu-search {
  display: flex;
  padding: 1.5rem;
  flex-shrink: 0;
}

.r-mobile-search-input {
  flex: 1;
  border: 1.6px solid var(--r-primary);
  border-right: none;
  border-radius: 4px 0 0 4px;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  color: var(--r-grey-500);
  outline: none;
  background: var(--r-white-50);
  font-family: inherit;
}

.r-mobile-search-btn {
  background: var(--r-primary);
  color: var(--r-grey-50);
  border: none;
  border-radius: 0 4px 4px 0;
  padding: 0 0.875rem;
  cursor: pointer;
}

.r-mobile-menu-nav {
  background: var(--r-grey-100);
  padding: 1.5rem;
  flex: 1;
  overflow-y: auto;
}

.r-mobile-nav-link {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.125rem 0.5rem;
  text-decoration: none;
}

.r-mobile-nav-label {
  font-size: 0.9375rem;
  color: var(--r-grey-900);
  line-height: 1.2;
  font-weight: 400;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-mobile-menu-footer {
  background: var(--r-grey-50);
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.5rem 0;
  flex-shrink: 0;
}

.r-mobile-footer-link {
  font-size: 0.9375rem;
  color: var(--r-grey-900);
  text-decoration: none;
  line-height: 1.2;
  font-weight: 400;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
  white-space: nowrap;
}

.r-mobile-footer-sep {
  color: var(--r-grey-400);
  user-select: none;
}

/* ── Footer accordion (mobile only) ─────────────────────────────── */
.r-footer-accordion-btn {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  text-align: left;
  font: inherit;
  color: var(--r-grey-50);
  cursor: pointer;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-footer-accordion-icon {
  display: block;
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  transition: transform 0.2s ease;
}

.r-footer-accordion-btn[aria-expanded="true"] .r-footer-accordion-icon {
  transform: rotate(180deg);
}

@media (max-width: 767px) {
  .r-footer-accordion-btn[aria-expanded="true"] + .r-page-footer-col-links {
    display: flex;
  }
}

@media (min-width: 768px) {
  .r-footer-accordion-btn {
    pointer-events: none;
    cursor: default;
  }

  .r-footer-accordion-icon {
    display: none;
  }
}

/* ════════════════════════════════════════════════════════════════
   BOOK PAGE — scoped styles, r-bp- prefix.
   Used by templates/_pages/book/entry.twig and its components.
   ════════════════════════════════════════════════════════════════ */

/* ── Breadcrumb ─────────────────────────────────────────────── */
.r-bp-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 0 1.5rem;
}

@media (max-width: 767px) {
  .r-bp-breadcrumb {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

.r-bp-crumb {
  font-size: 0.9375rem;
  color: var(--r-grey-900);
  text-decoration: none;
  line-height: 1.35;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

a.r-bp-crumb:hover {
  color: var(--r-primary);
}

.r-bp-crumb--current {
  font-weight: 600;
  font-size: 1rem;
}

.r-bp-crumb-sep {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  color: var(--r-grey-500);
}

/* ── Detail: two-column on desktop, stacked on mobile ───────── */
.r-bp-detail {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* Small screens: collapse the left-column wrapper so the cover, buy box
   and specs all become direct children of .r-bp-detail. Order then drops
   the specs table beneath the buy box (.r-bp-detail-right). */
.r-bp-detail-left {
  display: contents;
}

.r-bp-detail-right {
  order: 1;
}

.r-bp-specs {
  order: 2;
}

@media (min-width: 900px) {
  .r-bp-detail {
    flex-direction: row;
    align-items: flex-start;
  }

  /* Restore the left column: cover above specs */
  .r-bp-detail-left {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    width: 33%;
    max-width: 480px;
    flex-shrink: 0;
  }

  .r-bp-detail-right {
    flex: 1;
    min-width: 0;
  }
}

/* Cover image */
.r-bp-cover {
  width: 100%;
  aspect-ratio: 2 / 3;
  overflow: hidden;
}

@media (max-width: 899px) {
  .r-bp-cover {
    padding: 1.5rem;
  }
}


.r-bp-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Product / shipping details — tabbed panel */
.r-bp-specs {
  display: flex;
  flex-direction: column;
}

.r-bp-specs-tabs {
  display: flex;
  gap: 0.25rem;
}

/* Tab buttons styled like the section headings. Inactive = transparent
   so the active tab reads as the open one and merges into its panel. */
.r-bp-specs-tab {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--r-grey-500);
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0.75rem 1.25rem;
  border-radius: 8px 8px 0 0;
}

.r-bp-specs-tab--active {
  background: var(--r-grey-75);
  color: var(--r-grey-900);
}

.r-bp-specs-panel {
  background: var(--r-grey-75);
  padding: 1.5rem;
}

.r-bp-specs-panel[hidden] {
  display: none;
}

.r-bp-specs-grid {
  display: flex;
  gap: 1.5rem;
}

.r-bp-specs-col {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.r-bp-spec-label {
  font-size: 1.0rem;
  font-weight: 600;
  color: var(--r-grey-900);
  line-height: 1.2;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-spec-value {
  font-size: 1.0rem;
  font-weight: 500;
  color: var(--r-grey-900);
  line-height: 1.2;
  word-break: break-word;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

/* ── Buy box (right column) ─────────────────────────────────── */
.r-bp-buybox {
  background: var(--r-grey-75);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 3rem;
  position: relative;
}

.r-bp-head {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.r-bp-titlewrap {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.r-bp-titleblock {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
  /* reserve space at the right so the title clears the overhanging badges */
  padding-right: 4.5rem;
}

.r-bp-title {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-weight: 700;
  font-size: clamp(1.75rem, 2.4vw, 2.125rem);
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--r-grey-900);
  margin: 0;
}

.r-bp-subtitle {
  font-size: 1rem;
  font-weight: 400;
  color: var(--r-grey-600);
  margin: 0.25rem 0 0;
}

.r-bp-author {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--r-grey-900);
}

.r-bp-author a {
  color: inherit;
  text-decoration: none;
  margin: 0;
}

.r-bp-rating {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.r-bp-stars {
  display: flex;
  align-items: center;
  gap: 2px;
}

.r-bp-star {
  width: 1.15rem;
  height: 1.15rem;
  flex-shrink: 0;
}

.r-bp-star--full polygon {
  fill: var(--r-brand-yellow);
}

.r-bp-star--empty polygon {
  fill: var(--r-grey-400);
}

.r-bp-rating-text {
  font-size: 1rem;
  font-weight: 600;
  color: var(--r-grey-900);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

/* Badges (Staff Pick / Best Seller) top-right of buy box */
/* Badges overhang the right edge of the buy box by 4px */
.r-bp-badges {
  position: absolute;
  top: 1.5rem;
  right: -4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-end;
}

.r-bp-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 1.125rem;
  padding: 0 0.5rem;
  border-radius: 1.5rem;
  font-size: 0.8rem;
  font-weight: 400;
  color: var(--r-white-50);
  white-space: nowrap;
  line-height: 1.2;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-badge--staff-pick {
  background: var(--r-brand-yellow);
  color: var(--r-grey-900);
}

.r-bp-badge--best-seller {
  background: var(--r-green-500);
}

.r-bp-badge--new {
  background: var(--r-red);
}

.r-bp-badge--must-read {
  background: var(--r-blue);
}

/* Separator */
.r-bp-sep {
  border: none;
  border-top: 1px solid var(--r-grey-400);
  margin: 0;
  width: 100%;
}

/* Price */
.r-bp-pricegroup {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.r-bp-price-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.r-bp-price {
  font-size: clamp(1.5rem, 2.2vw, 1.875rem);
  font-weight: 500;
  color: var(--r-grey-900);
  line-height: 1;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-price-meta {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.r-bp-rrp {
  font-size: 1.125rem;
  font-weight: 400;
  color: var(--r-grey-600);
  text-decoration: line-through;
  line-height: 1.2;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-save {
  font-size: 1rem;
  font-weight: 600;
  color: var(--r-red);
  line-height: 1.2;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-format-line {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.r-bp-format-line-icon {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
  color: var(--r-grey-500);
}

.r-bp-format-line-text {
  font-size: 1rem;
  font-weight: 400;
  color: var(--r-grey-500);
  line-height: 1.2;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

/* Format selector buttons */
.r-bp-formats {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  width: 100%;
}

.r-bp-format-btn {
  flex: 1 1 0;
  min-width: 5.5rem;
  background: #e7e5e4;
  border: 0.1rem solid var(--r-primary);
  border-radius: 6px;
  padding: 0.75rem 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  cursor: pointer;
  text-align: center;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.r-bp-format-btn--active {
  background: var(--r-primary);
  border-color: var(--r-primary);
}

.r-bp-format-btn--active .r-bp-format-btn-name,
.r-bp-format-btn--active .r-bp-format-btn-price {
  color: var(--r-white-50);
}

.r-bp-format-btn-name {
  font-size: 1rem;
  font-weight: 500;
  color: var(--r-primary);
  line-height: 1.3;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-format-btn-price {
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--r-primary);
  line-height: 1.2;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

/* Actions box (Basket / Wish List / Gift Wrap + payment) */
.r-bp-actions {
  background: #e7e5e4;
  border-radius: 1rem;
  padding: 1.25rem;
  display: flex;
  gap: 1.5rem;
  align-items: center;
  flex-wrap: wrap;
}

@media (min-width: 900px) {
  .r-bp-actions {
    padding: 2rem 3rem;
  }
}

.r-bp-action-btns {
  display: flex;
  gap: 1rem;
  flex: 1 1 16rem;
  min-width: 0;
  flex-wrap: wrap;
}

.r-bp-btn {
  flex: 1 1 0;
  min-width: 6.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.35;
  text-decoration: none;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-btn-icon {
  width: 1.1rem;
  height: 1.1rem;
  flex-shrink: 0;
}

.r-bp-btn--basket {
  background: var(--r-primary);
  color: var(--r-white-50);
}

.r-bp-btn--wish {
  background: var(--r-primary-muted);
  color: var(--r-white-50);
}

.r-bp-btn--gift {
  background: #d5d3d2;
  color: var(--r-primary);
}

.r-bp-pay {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  /* centre the "Payment options" label over the icon row */
  align-items: center;
  /* nudge the block up so it doesn't sit low against the buttons */
  align-self: flex-start;
  margin-top: -0.25rem;
}

@media (max-width: 899px) {
  .r-bp-pay {
    width: 100%;
  }
}

.r-bp-pay-label {
  font-size: 1rem;
  font-weight: 600;
  color: var(--r-grey-600);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-pay-methods {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  flex-wrap: wrap;
}

.r-bp-pay-method {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--r-grey-600);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-pay-icon {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
  color: var(--r-grey-600);
}

/* Description */
.r-bp-desc {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

@media (min-width: 1024px) {
  .r-bp-desc {
    padding: 1.5rem;
  }
}

.r-bp-desc-heading {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-weight: 700;
  font-size: clamp(1.5rem, 2vw, 1.75rem);
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--r-grey-900);
  margin: 0;
}

.r-bp-desc-text {
  font-size: 1.125rem;
  font-weight: 400;
  color: var(--r-grey-900);
  line-height: 1.5;
  margin: 0;
  max-width: 75ch;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-desc-text p {
  margin: 0 0 0.25rem;
}

/* Separators and pull quotes authored inline in the CKEditor blurb HTML */
.r-bp-desc-text hr {
  border: none;
  border-top: 1px solid var(--r-grey-400);
  margin: 2rem 0;
  width: 100%;
}

.r-bp-desc-text quote {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  margin: 0 0 0.75rem;
  font-size: 1.125rem;
  font-style: italic;
  font-weight: 500;
  color: var(--r-grey-900);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-desc-text quote:last-child {
  margin-bottom: 0;
}

.r-bp-desc-text quote cite {
  font-style: normal;
  font-weight: 600;
}

/* ── Section heading (author / bookchatter) ─────────────────── */
.r-bp-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}

.r-bp-section-title {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 2.125rem);
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--r-grey-900);
  margin: 0;
}

.r-bp-section-link {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--r-grey-900);
  text-decoration: none;
  white-space: nowrap;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-section-link:hover {
  opacity: 0.7;
}

.r-bp-section-hr {
  border: none;
  border-top: 1px solid var(--r-grey-400);
  margin: 0.5rem 0 0;
  width: 100%;
}

/* ── Author biography ───────────────────────────────────────── */
.r-bp-author-sec {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-top: 3rem;
}

@media (max-width: 1023px) {
  .r-bp-author-sec {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}



.r-bp-author-body {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  align-items: flex-start;
}

@media (min-width: 760px) {
  .r-bp-author-body {
    flex-direction: row;
    gap: 3rem;
  }
}

.r-bp-author-photo {
  width: 100%;
  max-width: 15rem;
  aspect-ratio: 1 / 1;
  flex-shrink: 0;
  overflow: hidden;
}

.r-bp-author-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.r-bp-author-text {
  flex: 1;
  min-width: 0;
  font-size: 1.125rem;
  font-weight: 400;
  color: var(--r-grey-900);
  line-height: 1.5;
  max-width: 75ch;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-author-text p {
  margin: 0 0 0.75rem;
}

.r-bp-author-text p:last-child {
  margin-bottom: 0;
}

/* ── Bookchatter ────────────────────────────────────────────── */
.r-bp-chatter {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-top: 3rem;
}

.r-bp-chatter-body {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

@media (min-width: 760px) {
  .r-bp-chatter-body {
    flex-direction: row;
    align-items: flex-start;
    gap: 3rem;
  }
}

.r-bp-chatter-aside {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
  width: 100%;
}

@media (min-width: 760px) {
  .r-bp-chatter-aside {
    width: 11.25rem;
    flex-shrink: 0;
  }
}

.r-bp-chatter-cover {
  width: 100%;
  max-width: 11.25rem;
  aspect-ratio: 2 / 3;
  overflow: hidden;
}

.r-bp-chatter-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.r-bp-chatter-buy {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  width: 100%;
  max-width: 11.25rem;
  align-items: stretch;
}

.r-bp-chatter-buy-label {
  font-size: 1rem;
  font-weight: 600;
  color: var(--r-grey-900);
  text-align: center;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-chatter-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.r-bp-chatter-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.r-bp-chatter-count {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--r-grey-900);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-pager {
  display: flex;
  align-items: flex-end;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.r-bp-pager-field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.r-bp-pager-caption {
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--r-grey-900);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-pager-row {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.r-bp-pager-arrow {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  color: var(--r-grey-900);
  cursor: pointer;
}

.r-bp-pager-input {
  border: 1.5px solid var(--r-primary);
  background: var(--r-white-50);
  padding: 0.25rem 0.75rem;
  font-size: 0.9375rem;
  color: var(--r-grey-900);
  font-family: inherit;
  min-width: 3rem;
  text-align: center;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-pager-of {
  font-size: 0.9375rem;
  color: var(--r-grey-900);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-pager-select {
  border: 1.5px solid var(--r-primary);
  background: var(--r-white-50);
  padding: 0.25rem 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9375rem;
  color: var(--r-grey-900);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-sort {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 1rem;
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--r-primary);
  cursor: pointer;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-caret {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

/* Comment composer */
.r-bp-composer {
  background: #fff;
  display: flex;
  gap: 1rem;
  padding: 1rem;
}

.r-bp-mood {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: center;
  width: 3.5rem;
  flex-shrink: 0;
}

.r-bp-mood-label {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--r-grey-900);
  text-align: center;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-mood-add {
  width: 0.75rem;
  height: 0.75rem;
  color: var(--r-grey-900);
}

.r-bp-mood-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.375rem;
}

.r-bp-mood-icon {
  width: 1.5rem;
  height: 1.5rem;
  color: var(--r-grey-600);
}

.r-bp-compose-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

.r-bp-field-label {
  font-size: 1rem;
  font-weight: 600;
  color: var(--r-grey-900);
  padding: 0 0.75rem;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-input {
  background: #fff;
  border: 1.5px solid var(--r-grey-400);
  border-radius: 6px;
  padding: 0.5rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.r-bp-input-placeholder {
  font-size: 1.125rem;
  font-style: italic;
  font-weight: 300;
  color: var(--r-grey-500);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-input-icon {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  color: var(--r-grey-600);
}

.r-bp-textarea {
  background: #fff;
  border: 1.5px solid var(--r-grey-400);
  border-radius: 6px;
  padding: 1rem;
  min-height: 10.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
}

.r-bp-textarea-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.r-bp-toolbar {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.r-bp-toolbar-group {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.r-bp-toolbar-btn {
  font-size: 1rem;
  font-weight: 600;
  color: var(--r-grey-600);
  cursor: pointer;
  line-height: 1;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-toolbar-btn--i {
  font-style: italic;
}

.r-bp-toolbar-btn--s {
  text-decoration: line-through;
}

.r-bp-toolbar-btn--u {
  text-decoration: underline;
}

.r-bp-toolbar-icon {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  color: var(--r-grey-600);
  cursor: pointer;
}

.r-bp-toolbar-sep {
  width: 1px;
  height: 1.25rem;
  background: var(--r-grey-400);
  flex-shrink: 0;
}

.r-bp-textarea-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.r-bp-textarea-placeholder {
  font-size: 1.125rem;
  font-style: italic;
  font-weight: 300;
  color: var(--r-grey-500);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-composer-actions {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
  padding: 0 1.5rem;
  flex-wrap: wrap;
}

.r-bp-composer-cancel {
  background: var(--r-grey-50);
  border: 1px solid var(--r-primary);
  color: var(--r-primary);
  border-radius: 8px;
  padding: 0.5rem 1.5rem;
  font-size: 1rem;
  font-family: inherit;
  cursor: pointer;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bp-composer-add {
  background: var(--r-primary);
  color: var(--r-white-50);
  border: none;
  border-radius: 8px;
  padding: 0.5rem 1.5rem;
  font-size: 1rem;
  font-family: inherit;
  cursor: pointer;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

/* Celia's Other books: single row of six from tablet up (scoped — does
   not change the shared .r-book-grid used on other pages). */
@media (min-width: 900px) {
  .r-bp-other-grid {
    grid-template-columns: repeat(6, 1fr);
  }
}

/* ── Catalog page ────────────────────────────────────────────── */

.r-catalog {
  display: grid;
  grid-template-columns: clamp(14rem, 18vw, 18rem) minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
  margin-top: .5rem;
}

.r-catalog-sidebar {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.r-catalog-content {
  min-width: 0;
  position: relative;
}

/* AJAX filtering states (web/assets/js/catalogue.js) ----------------------- */

/* Applied-filter chip slots are always in the DOM so catalogue.js can populate
   them, but render no chip group when nothing is applied — collapse them so the
   empty wrapper doesn't take up space (sidebar slot is a flex item; mobile slot
   is a padded box). */
[data-applied-slot]:not(:has(.r-filters-applied-group)) {
  display: none;
}

/* Loading: dim + block the results while a filter request is in flight, with a
   spinner overlay anchored to .r-catalog-content. */
.r-catalog-content.is-loading .r-catalog-results {
  opacity: 0.45;
  pointer-events: none;
}

.r-catalog-content.is-loading::after {
  content: "";
  position: fixed;
  top: 50%;
  left: 50%;
  width: 2.5rem;
  height: 2.5rem;
  /* center via margins (not transform) so the spin animation's transform
     doesn't fight the centering — keeps the spinner in view at any scroll pos */
  margin: -1.25rem 0 0 -1.25rem;
  border: 3px solid var(--r-grey-300);
  border-top-color: var(--r-primary);
  border-radius: 50%;
  animation: r-catalog-spin 0.7s linear infinite;
  z-index: 1000;
}

@keyframes r-catalog-spin {
  to { transform: rotate(360deg); }
}

/* Empty state: rendered inside .r-catalog-grid, spanning all columns. */
.r-catalog-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 3rem 1rem;
  color: var(--r-grey-500);
}

.r-catalog-empty-title {
  font-size: 1.125rem;
  color: var(--r-primary);
  margin-bottom: 0.5rem;
}

/* Inline error banner shown when a filter request fails. */
.r-catalog-error {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: var(--r-red);
  color: var(--r-white-50);
  padding: 0.75rem 1rem;
  border-radius: 4px;
  margin-bottom: 1.5rem;
}

.r-catalog-error[hidden] {
  display: none;
}

.r-catalog-error-close {
  background: none;
  border: none;
  color: inherit;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

/* Shown on mobile/tablet only */
.r-catalog-mobile-bar {
  display: none;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  gap: 0.75rem;
}

/* Applied-filter chips, shown below the mobile bar instead of the desktop
   sidebar's card — same chip styling, no backing filter data yet. */
.r-catalog-mobile-applied {
  display: none;
  background: var(--r-grey-100);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

/* Top bar inside sidebar on mobile/tablet */
.r-filter-panel-top {
  display: none;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
  gap: 0.75rem;
}

.r-filter-choose-heading {
  display: none;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0;
}

/* Filters Applied + Sort — desktop sidebar only, one shared card */
.r-filters-applied {
  background: var(--r-grey-100);
  display: flex;
  flex-direction: column;
  gap: 3rem;
  padding: 1.5rem;
}

.r-filters-applied-group {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.r-filters-applied-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.25rem 0.7rem;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid var(--r-grey-600);
}

.r-filters-applied-label {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.025em;
}

.r-filters-clear {
  font-size: 0.8125rem;
  color: var(--r-grey-600);
  text-decoration: none;
  white-space: nowrap;
}

.r-filters-clear:hover {
  color: var(--r-primary);
  text-decoration: underline;
}

.r-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375em;
}

.r-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
  background: var(--r-grey-300);
  border-radius: 1rem;
  padding: 0.1875em 0.5em;
  font-size: 0.8125rem;
}

.r-filter-chip-remove {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--r-grey-600);
  font-size: 0.9rem;
  line-height: 1;
}

/* Sort — desktop sidebar, nested inside .r-filters-applied */
.r-sidebar-sort {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.r-sort-field {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1;
}

.r-sort-label {
  font-size: 0.9375rem;
  font-weight: 500;
  white-space: nowrap;
}

.r-sort-select {
  border: 1px solid var(--r-grey-400);
  background: var(--r-white-50);
  padding: 0.3125em 1.625em 0.3125em 0.625em;
  font-size: 0.875rem;
  font-family: inherit;
  color: var(--r-grey-900);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2356534f' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  min-width: 8.75rem;
  flex: 1;
  width: 100%;
}

/* "Sort by" row on mobile — both the catalog top bar and the slide-out
   filter panel's top bar — primary-outlined field and larger label,
   instead of the muted grey desktop styling. */
.r-catalog-mobile-bar .r-sort-field,
.r-filter-panel-top .r-sort-field {
  flex: 0 1 33%;
}

.r-catalog-mobile-bar .r-sort-label,
.r-filter-panel-top .r-sort-label {
  font-size: 1.125rem;
}

.r-catalog-mobile-bar .r-sort-select,
.r-filter-panel-top .r-sort-select {
  border: 0.09375rem solid var(--r-primary);
  color: var(--r-primary);
  font-size: 1.125rem;
  font-weight: 500;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23243329' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}

/* Filter accordion */
.r-filter-accordion.uk-accordion {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.r-filter-accordion.uk-accordion > * + * {
  margin-top: 0;
}

.r-filter-section {
  background: var(--r-grey-100);
  padding: 1rem 1.5rem;
}

.r-filter-section.uk-open {
  padding: 1.5rem;
}

.r-filter-section-title.uk-accordion-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--r-grey-900);
  text-decoration: none;
  padding: 0;
}

.r-filter-section.uk-open .r-filter-section-title.uk-accordion-title {
  padding-bottom: 0.875rem;
  border-bottom: 1px solid var(--r-grey-900);
}

.r-filter-section-title.uk-accordion-title::after {
  content: '+';
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--r-grey-600);
  flex-shrink: 0;
}

.r-filter-section.uk-open .r-filter-section-title.uk-accordion-title::after {
  content: '−';
}

.r-filter-accordion .uk-accordion-content {
  margin-top: 1.5rem;
}

.r-filter-section .uk-accordion-content {
  margin-bottom: 0;
}

.r-filter-category-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3125em;
}

.r-filter-category-list li a {
  font-size: 0.95rem;
  color: var(--r-grey-600);
  text-decoration: none;
  display: block;
  line-height: 1.4;
}

.r-filter-category-list li a:hover,
.r-filter-category-list li a.r-active {
  color: var(--r-primary);
  font-weight: 600;
  letter-spacing: -0.008em;
}

/* Parent category shown above its indented children, like a breadcrumb nav */
.r-filter-category-list li a.r-filter-category-bold {
  color: var(--r-grey-900);
  font-weight: 700;
}

.r-filter-category-list li.r-filter-category-indent {
  padding-left: 1rem;
}

.r-filter-count-note {
  font-size: 0.8125rem;
  color: var(--r-grey-400);
  display: block;
  margin-top: 0.5rem;
  cursor: pointer;
  text-decoration: underline;
}

/* "Show more / less" toggle for long facet lists (catalogue.js) */
.r-filter-more-btn {
  background: none;
  border: none;
  padding: 0;
  margin-top: 0.625rem;
  font-size: 0.8125rem;
  font-family: inherit;
  color: var(--r-primary);
  text-decoration: underline;
  cursor: pointer;
}

.r-filter-checkbox-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}

.r-filter-checkbox {
  display: flex;
  align-items: center;
  gap: 0.5em;
  font-size: 0.95rem;
  color: var(--r-grey-600);
  cursor: pointer;
}

.r-filter-checkbox input[type="checkbox"],
.r-filter-checkbox input[type="radio"] {
  accent-color: var(--r-primary);
  width: 1rem;
  height: 1rem;
  margin: 0;
  cursor: pointer;
}

/* "& up" suffix on the single-select rating rows */
.r-rating-andup {
  font-size: 0.85rem;
  color: var(--r-grey-500);
}

.r-filter-keyword-input {
  width: 100%;
  border: 1px solid var(--r-grey-400);
  padding: 0.4375em 0.625em;
  font-size: 0.875rem;
  font-family: inherit;
  color: var(--r-grey-900);
  outline: none;
  box-sizing: border-box;
}

/* ── Rating filter: one checkbox row per rating value, N filled stars ───── */
.r-rating-stars {
  display: flex;
  gap: 0.125rem;
}

.r-rating-stars svg {
  width: 1.25rem;
  height: 1.25rem;
}

.r-rating-stars svg polygon {
  fill: var(--r-brand-yellow);
}

/* ── Price filter: fixed price-bucket options, single-select via radios
   that are visually hidden — the chosen label is highlighted instead. ── */
.r-filter-price-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}

.r-filter-price {
  display: block;
  font-size: 0.95rem;
  color: var(--r-grey-600);
  cursor: pointer;
}

.r-filter-price-input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.r-filter-price-input:checked ~ span {
  color: var(--r-primary);
  font-weight: 600;
  letter-spacing: -0.008em;
}

/* Results header */
.r-catalog-results-header {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.r-catalog-results-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.r-catalog-heading {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-weight: 700;
  letter-spacing: -0.025em;
  font-size: clamp(1.25rem, 1.6vw, 1.75rem);
  color: var(--r-grey-900);
  margin: 0;
}

.r-catalog-pagination {
  display: flex;
  align-items: flex-end;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.r-page-nav,
.r-page-size {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.375rem;
  height: 3.5rem;
}

.r-page-size {
  width: 4rem;
}

.r-page-nav-label {
  font-size: 1rem;
  line-height: 1.25rem;
  font-weight: 400;
  color: var(--r-grey-900);
  white-space: nowrap;
}

.r-page-nav-label--page {
  /* Lines the label up over the page-number input, not the prev arrow */
  margin-left: calc(2rem + 0.375rem);
}

.r-page-nav-row {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.r-page-nav-btn {
  width: 2rem;
  height: 1.875rem;
  background: none;
  border: none;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--r-primary);
  line-height: 1;
}

.r-page-nav-btn svg {
  width: 60%;
  height: 60%;
}

.r-page-nav-btn:disabled {
  color: var(--r-grey-400);
  cursor: not-allowed;
}

.r-page-nav-input {
  width: 4.5rem;
  height: 1.875rem;
  border: 1.5px solid var(--r-primary);
  background: var(--r-white-50);
  padding: 0;
  text-align: center;
  font-size: 1rem;
  line-height: 1.25rem;
  font-family: inherit;
  color: var(--r-primary);
  appearance: textfield;
  -moz-appearance: textfield;
}

.r-page-nav-input::-webkit-outer-spin-button,
.r-page-nav-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.r-page-nav-of {
  padding-left: 0.375rem;
  font-size: 1rem;
  line-height: 1.25rem;
  font-weight: 400;
  color: var(--r-grey-900);
  white-space: nowrap;
}

.r-page-size-select {
  width: 100%;
  height: 1.875rem;
  border: 1.5px solid var(--r-primary);
  background: var(--r-white-50);
  padding: 0 1.25rem 0 0.5rem;
  text-align: left;
  font-size: 1rem;
  line-height: 1.25rem;
  font-family: inherit;
  color: var(--r-primary);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23243329' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.5rem center;
}

/* Catalog grid — 4 col base, steps down at narrower widths */
.r-catalog-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.r-catalog-banner {
  overflow: hidden;
  margin-bottom: 3rem;
}

.r-catalog-banner img {
  width: 100%;
  display: block;
  object-fit: cover;
}

.r-filter-open-btn,
.r-filter-close-btn {
  background: var(--r-primary-muted);
  color: var(--r-white-50);
  border: none;
  padding: 0.5em 1.25em;
  font-size: 0.9375rem;
  font-family: inherit;
  cursor: pointer;
  font-weight: 600;
  border-radius: 0.25rem;
}

/* ── Catalog: responsive ───────────────────────────────────────── */

@media (max-width: 1023px) {
  .r-catalog {
    grid-template-columns: 1fr;
  }

  .r-catalog-sidebar {
    display: none;
    width: 100%;
  }

  .r-catalog.r-filters-open .r-catalog-sidebar {
    display: flex;
  }

  .r-catalog.r-filters-open .r-catalog-content {
    display: none;
  }

  .r-catalog-mobile-bar {
    display: flex;
  }

  .r-catalog-mobile-applied {
    display: block;
  }

  .r-filter-panel-top {
    display: flex;
  }

  .r-filter-choose-heading {
    display: block;
  }

  .r-filters-applied {
    display: none;
  }
}

@media (max-width: 829px) {
  .r-catalog-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 659px) {
  .r-catalog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ════════════════════════════════════════════════════════════════════
   BASKET PAGE (_pages/checkout/basket.twig) — scoped styles, r-bk- prefix.
════════════════════════════════════════════════════════════════════ */

/* ── Layout: cart + order summary ───────────────────────────── */
.r-bk-detail {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  background: var(--r-grey-100);
  padding: 0.75rem;
}

.r-bk-cart,
.r-bk-order {
  background: var(--r-grey-50);
  padding: 0.75rem;
}

@media (min-width: 640px) {
  .r-bk-detail {
    padding: 1.5rem;
  }

  .r-bk-cart,
  .r-bk-order {
    padding: 1.5rem;
  }
}

@media (min-width: 1280px) {
  .r-bk-detail {
    flex-direction: row;
    align-items: flex-start;
    gap: 1.5rem;
  }

  .r-bk-cart {
    flex: 1;
    min-width: 0;
  }

  .r-bk-order {
    width: 25.5rem;
    flex-shrink: 0;
  }
}

/* ── Cart table ─────────────────────────────────────────────── */
.r-bk-head,
.r-bk-row {
  display: flex;
  align-items: center;
  width: 100%;
}

.r-bk-head {
  padding: 0 0 1rem;
}

.r-bk-row {
  padding: 1.5rem 0;
}

.r-bk-col-item {
  flex: 1 1 0;
  min-width: 0;
  padding: 0 1rem;
}

.r-bk-col-price,
.r-bk-col-qty,
.r-bk-col-total {
  width: 5.5rem;
  flex-shrink: 0;
  padding: 0 1rem;
}

.r-bk-col-qty {
  padding: 0 0.5rem;
}

.r-bk-th {
  font-size: 1rem;
  font-weight: 400;
  color: var(--r-grey-500);
  line-height: 1.35;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-sep {
  border: none;
  border-top: 1px solid #e2e0de;
  margin: 0;
  width: 100%;
}

/* Item cell: cover + Title/Author/ISBN */
.r-bk-item {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.r-bk-cover {
  width: 3.5rem;
  aspect-ratio: 2 / 3;
  flex-shrink: 0;
  overflow: hidden;
}

.r-bk-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.r-bk-book {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.r-bk-book-row {
  display: flex;
  gap: 0.75rem;
  align-items: baseline;
}

.r-bk-book-label {
  width: 3.75rem;
  flex-shrink: 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--r-grey-900);
  line-height: 1.2;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-book-value {
  min-width: 0;
  font-size: 1rem;
  font-weight: 400;
  color: var(--r-grey-600);
  line-height: 1.35;
  word-break: break-word;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-price,
.r-bk-total {
  font-size: 1rem;
  font-weight: 600;
  color: var(--r-grey-900);
  line-height: 1.2;
  white-space: nowrap;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

/* Qty stepper */
.r-bk-qty-stepper {
  position: relative;
  display: inline-flex;
  width: 100%;
}

.r-bk-qty {
  width: 100%;
  border: 1.5px solid var(--r-primary);
  background: var(--r-white-50);
  padding: 0.25rem 1.25rem 0.25rem 0.5rem;
  height: 2.25rem;
  min-width: 3.5rem;
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--r-primary);
  font-family: inherit;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
  -webkit-appearance: textfield;
  appearance: textfield;
}

.r-bk-qty::-webkit-outer-spin-button,
.r-bk-qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.r-bk-qty-arrows {
  position: absolute;
  top: 1.5px;
  right: 1.5px;
  bottom: 1.5px;
  display: flex;
  flex-direction: column;
  width: 1.0625rem;
}

.r-bk-qty-arrow {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
}

.r-bk-qty-arrow::before {
  content: '';
  display: block;
  width: 0.625rem;
  height: 0.625rem;
  background-color: var(--r-primary);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M6 15l6-6 6 6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M6 15l6-6 6 6'/%3E%3C/svg%3E");
}

.r-bk-qty-arrow--down::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}

/* Small screens: drop the Total column, tighten the side columns */
@media (max-width: 699px) {
  .r-bk-col-total {
    display: none;
  }

  .r-bk-col-price,
  .r-bk-col-qty {
    width: 4.5rem;
    padding: 0 0.5rem;
  }

  .r-bk-col-item {
    padding: 0 0.5rem;
  }

  .r-bk-cover {
    width: 3rem;
  }
}

@media (min-width: 640px) {
  .r-bk-cover {
    width: 5rem;
  }
}

/* ── Order summary ──────────────────────────────────────────── */
.r-bk-order-title {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--r-grey-900);
  margin: 0;
}

.r-bk-order-sep {
  border: none;
  border-top: 1px solid var(--r-grey-400);
  margin: 0.75rem 0 0;
  width: 100%;
}

.r-bk-order-rows {
  display: flex;
  flex-direction: column;
  padding: 1rem 0;
}

.r-bk-order-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0;
}

.r-bk-order-label {
  font-size: 1rem;
  font-weight: 400;
  color: var(--r-grey-600);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-order-value {
  font-size: 1rem;
  font-weight: 600;
  color: var(--r-grey-900);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-order-value-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.r-bk-order-remove {
  background: none;
  border: none;
  padding: 0;
  font-size: 1.125rem;
  line-height: 1;
  color: var(--r-grey-600);
  cursor: pointer;
}

.r-bk-order-remove:hover {
  color: var(--r-primary);
}

.r-bk-total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
}

.r-bk-total-label {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--r-grey-900);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-total-amt {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.r-bk-total-cur {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--r-grey-600);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-total-val {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--r-grey-900);
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-vouchers {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 1.5rem 0;
}

.r-bk-voucher {
  font-size: 1.125rem;
  font-weight: 600;
  color: #62a578;
  text-decoration: none;
  align-self: flex-start;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-voucher:hover {
  text-decoration: underline;
}

.r-bk-voucher-form {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: flex-start;
}

.r-bk-voucher-input-wrap {
  width: 100%;
  margin-bottom: 0.75rem;
}

.r-bk-voucher-input-row {
  display: flex;
  gap: 0.5rem;
  width: 100%;
}

.r-bk-voucher-input {
  flex: 1;
  min-width: 0;
  border: 1.5px solid var(--r-primary);
  background: var(--r-white-50);
  padding: 0.375em 0.75em;
  font-size: 0.9375rem;
  color: var(--r-grey-900);
  font-family: inherit;
  outline: none;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-voucher-apply {
  background: var(--r-primary);
  color: var(--r-white-50);
  border: none;
  padding: 0.375em 1.25em;
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-voucher-close {
  background: none;
  border: none;
  padding: 0;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.2;
  color: #62a578;
  cursor: pointer;
  white-space: nowrap;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-voucher-close:hover {
  text-decoration: underline;
}

.r-bk-voucher-error {
  margin: 0.25rem 0 0;
  font-size: 0.8125rem;
  color: var(--r-red);
}

.r-bk-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 3.5rem 1.5rem;
}

.r-bk-empty-icon {
  font-size: 3.5rem;
  color: var(--r-grey-400);
  margin-bottom: 1.25rem;
}

.r-bk-empty-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--r-grey-900);
  margin: 0 0 0.5rem;
}

.r-bk-empty-text {
  font-size: 1rem;
  color: var(--r-grey-600);
  max-width: 26rem;
  margin: 0 0 1.75rem;
}

.r-bk-empty-cta {
  text-decoration: none;
  padding: 0 2rem;
  width: auto;
}

.r-bk-order-btns {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.r-bk-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 3rem;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 1.375rem;
  font-weight: 400;
  line-height: 1.2;
  width: 100%;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}

.r-bk-btn--update {
  background: var(--r-primary-muted);
  color: var(--r-white-50);
}

.r-bk-btn--checkout {
  background: #d5d3d2;
  color: var(--r-primary);
}

.r-bk-disclaimer {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  padding: 1.5rem 0;
}

.r-bk-disclaimer-icon {
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
  color: var(--r-grey-900);
}

.r-bk-disclaimer-text {
  flex: 1;
  min-width: 0;
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--r-grey-900);
  line-height: 1.5;
  font-variation-settings: 'YTLC' 500, 'wdth' 100;
}
