.rs-shop-offer {
  box-sizing: border-box;
  margin: 0 0 1.1rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface);
  box-shadow: 0 12px 34px rgb(0 0 0 / 0.06);
  color: var(--color-text);
}
.rs-shop-offer .rs-shop-offer__title {
  margin: 0 0 .7rem;
  color: var(--color-heading);
  font-size: 1.12rem;
  font-weight: 700;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.rs-shop-offer p.rs-shop-offer__price { margin: 0 0 .15rem; font-size: 1.45rem; }
.rs-shop-offer p.rs-shop-offer__tax { margin: 0 0 1rem; color: var(--color-text-soft); font-size: .83rem; }
.rs-shop-offer .rs-shop-offer__form { display: grid; grid-template-columns: 4rem minmax(0, 1fr); align-items: end; gap: .65rem; }
.rs-shop-offer__quantity { display: grid; gap: .3rem; font-size: .85rem; }
.rs-shop-offer__quantity input {
  box-sizing: border-box; width: 100%; min-height: 2.8rem; padding: .45rem .5rem;
  border: 1px solid var(--color-border); border-radius: 6px;
  background: var(--color-bg); color: var(--color-text); font: inherit;
}
.rs-shop-offer .rs-shop-offer__button {
  min-height: 2.8rem; padding: .6rem .65rem; width: 100%; border-radius: 6px;
  border: 1px solid color-mix(in srgb, var(--color-accent) 30%, var(--color-heading));
  background: var(--color-heading); color: var(--color-surface); font: inherit;
  font-size: .9rem; font-weight: 650; line-height: 1.3; cursor: pointer;
}
.rs-shop-offer .rs-shop-offer__button:hover { background: color-mix(in srgb, var(--color-heading) 85%, var(--color-accent)); }
.rs-shop-offer input:focus-visible, .rs-shop-offer button:focus-visible, .rs-shop-offer a:focus-visible {
  outline: 2px solid var(--color-primary); outline-offset: 3px;
}
.rs-shop-offer p.rs-shop-offer__basket { margin: .85rem 0 0; font-size: .82rem; line-height: 1.45; }
.rs-shop-offer .rs-shop-offer__basket a { display: inline; width: auto; color: var(--color-text-soft); text-underline-offset: .18em; }
@media (min-width: 48rem) {
  .ce-rsarticle__item:has(.rs-shop-offer) { width: min(20rem, 45%); }
}
@media (min-width: 66rem) {
  .ce-rsarticle__item:has(.rs-shop-offer) { width: var(--rsarticle-side-item-width); }
}

/* A short product description with a complete calendar preview uses a compact article gallery. */
.ce-rsarticle .rs-shop-calendar {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.8rem;
}
.ce-rsarticle .rs-shop-calendar .ce-rsarticle__item {
  float: none; clear: none; width: 100%; margin: 0; min-width: 0;
}
@media (max-width: 47.98rem) {
  .ce-rsarticle .rs-shop-calendar { grid-template-columns: minmax(0, 1fr); }
}
