.rnk-cushion-options {
  margin: 0 0 1.5rem;
  padding: clamp(1.1rem, 3vw, 1.5rem);
  border: 1px solid color-mix(in srgb, var(--rnk-color-primary, #6f315e) 22%, transparent);
  border-radius: 1rem;
  background: color-mix(in srgb, var(--rnk-color-primary, #6f315e) 5%, #fff);
}

.rnk-ready-cushions { margin: 0 0 .75rem; }
.rnk-ready-cushions__heading h2 { margin: 0 0 .45rem; font-size: clamp(1.3rem, 3vw, 1.65rem); }
.rnk-ready-cushions__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.rnk-ready-cushion { min-width: 0; overflow: hidden; border: 1px solid var(--rnk-color-border); border-radius: .8rem; background: #fff; transition: border-color .18s, transform .18s; }
.rnk-ready-cushion:hover { border-color: var(--rnk-color-accent); transform: translateY(-2px); }
.rnk-ready-cushion__visual { display: flex; width: 100%; aspect-ratio: 1; flex-direction: column; overflow: hidden; background: #fff; }
.rnk-ready-cushion__media { display: grid; width: 100%; min-height: 0; flex: 1; place-items: center; overflow: hidden; background: #fff; }
.rnk-ready-cushion__media img { position: relative; top: -26px; width: 100%; height: auto; }
.rnk-ready-cushion__swatch { width: 100%; height: 100%; background: radial-gradient(circle at 32% 28%, color-mix(in srgb, var(--rnk-ready-color) 72%, white), var(--rnk-ready-color) 68%); }
.rnk-ready-cushion__cta { margin: .5rem; padding: .5rem .35rem; border-radius: .45rem; background: var(--rnk-color-bg-alt); color: var(--rnk-color-text); font-size: .68rem; font-weight: 700; line-height: 1.2; text-align: center; transition: background-color .18s, color .18s; }
.rnk-ready-cushion:hover .rnk-ready-cushion__cta { background: var(--rnk-color-accent); color: #fff; }
.rnk-ready-cushions__divider { display: flex; align-items: center; gap: .75rem; margin: 1.75rem 0 0; color: var(--rnk-color-text-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.rnk-ready-cushions__divider::before,.rnk-ready-cushions__divider::after { height: 1px; flex: 1; background: var(--rnk-color-border); content: ""; }

.woocommerce div.product.rnk-reading-cushion .rnk-product-title__type { font-size: 1em; }
.woocommerce div.product.rnk-reading-cushion .rnk-product-title__motif { font-size: .75em; line-height: 1.15; }

.rnk-cushion-options__heading h2 { margin: .15rem 0 .5rem; font-size: clamp(1.3rem, 3vw, 1.65rem); }
.rnk-cushion-options__heading p { margin: 0; }
.rnk-cushion-options__eyebrow { color: var(--rnk-color-primary, #6f315e); font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.rnk-cushion-picker { margin-top: 1.25rem; }
.rnk-cushion-picker__label { display: block; margin-bottom: .5rem; font-weight: 800; }
.rnk-cushion-picker__button { display: flex; width: 100%; min-height: 3.5rem; align-items: center; justify-content: space-between; gap: .75rem; padding: .65rem .85rem; border: 1px solid #cfc6cc; border-radius: .75rem; background: #fff; color: #211b21; text-align: left; cursor: pointer; }
.rnk-cushion-picker__button:hover { border-color: var(--rnk-color-primary, #6f315e); }
.rnk-cushion-picker__button.is-invalid { border-color: #c6203e; box-shadow: 0 0 0 2px rgba(198, 32, 62, .12); }
.rnk-cushion-picker__button:focus-visible { outline: 3px solid color-mix(in srgb, var(--rnk-color-primary, #6f315e) 45%, transparent); outline-offset: 2px; }
.rnk-cushion-picker__error { margin: .5rem 0 0; color: #b41634; font-size: .8rem; font-weight: 700; line-height: 1.35; }
.rnk-cushion-picker__selection { flex: 1; align-items: center; gap: .75rem; }
.rnk-cushion-picker__selection:not([hidden]) { display: flex; }
.rnk-cushion-picker__selection img { width: 3rem; height: 3rem; border-radius: .45rem; object-fit: cover; }
.rnk-cushion-picker__selection span { display: grid; gap: .1rem; }
.rnk-cushion-picker__selection small { color: #756973; font-size: .72rem; }
.rnk-cushion-picker__selection strong { font-size: .9rem; }

.rnk-cushion-dialog { width: min(58rem, calc(100% - 2rem)); max-width: none; max-height: min(48rem, calc(100dvh - 2rem)); padding: 0; overflow: hidden; border: 0; border-radius: 1rem; background: #f8f4f6; color: #211b21; box-shadow: 0 1.5rem 5rem rgba(20, 12, 18, .28); }
.rnk-cushion-dialog::backdrop { background: rgba(22, 15, 20, .68); backdrop-filter: blur(3px); }
.rnk-cushion-dialog__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.5rem; background: #fff; border-bottom: 1px solid #e2dce0; }
.rnk-cushion-dialog__header p { margin: 0 0 .2rem; color: var(--rnk-color-primary, #6f315e); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.rnk-cushion-dialog__header h3 { margin: 0; font-size: clamp(1.25rem, 3vw, 1.7rem); }
.rnk-cushion-dialog__close { position: relative; display: grid; width: 2.5rem; height: 2.5rem; place-items: center; padding: 0; border: 0; border-radius: 50%; background: #eee8ec; color: #211b21; font-size: 0; line-height: 1; cursor: pointer; }
.rnk-cushion-dialog__close::before,
.rnk-cushion-dialog__close::after { position: absolute; top: 50%; left: 50%; width: 1.05rem; height: 2px; border-radius: 999px; background: currentColor; content: ""; }
.rnk-cushion-dialog__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.rnk-cushion-dialog__close::after { transform: translate(-50%, -50%) rotate(-45deg); }
.rnk-cushion-motifs { margin: 0; padding: 1.5rem; overflow: auto; border: 0; max-height: calc(100dvh - 11rem); }
.rnk-cushion-motifs__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .9rem; }
.rnk-cushion-motif { position: relative; min-width: 0; cursor: pointer; }
.rnk-cushion-motif input { position: absolute; opacity: 0; pointer-events: none; }
.rnk-cushion-motif__visual { display: block; height: 100%; overflow: hidden; border: 3px solid transparent; border-radius: .8rem; background: #fff; box-shadow: 0 2px 12px rgba(30,20,28,.08); transition: border-color .15s, transform .15s, box-shadow .15s; }
.rnk-cushion-motif img,.rnk-cushion-motif__placeholder { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: #e9e1e6; }
.rnk-cushion-motif__name { display: block; min-height: 3.25rem; padding: .65rem; font-size: .82rem; font-weight: 700; line-height: 1.25; }
.rnk-cushion-motif:hover .rnk-cushion-motif__visual { transform: translateY(-2px); box-shadow: 0 7px 20px rgba(30,20,28,.13); }
.rnk-cushion-motif input:focus-visible + .rnk-cushion-motif__visual { outline: 3px solid #111; outline-offset: 2px; }
.rnk-cushion-motif input:checked + .rnk-cushion-motif__visual { border-color: var(--rnk-color-primary, #6f315e); }
.rnk-cushion-dialog__hint { margin: 0; padding: .75rem 1.5rem 1.1rem; color: #665b63; font-size: .8rem; text-align: center; }
.rnk-cushion-color { margin-top: 1rem; padding: .9rem 1rem; border: 1px solid #ddd4da; border-radius: .75rem; background: rgba(255, 255, 255, .72); color: #393238; }
.rnk-cushion-color strong { color: var(--rnk-color-primary, #6f315e); font-size: 14px; }
.rnk-cushion-color p { margin: .3rem 0 0; color: #5f565d; font-size: 12px; }
.rnk-cushion-options__pending { margin: 1.25rem 0 0; padding: 1rem; border-radius: .75rem; background: #fff4cf; color: #4a3900; }

/* La personnalisation reste dans la colonne droite. Les détails commencent
   sous la photo afin de ne pas créer un grand espace vide à gauche. */
@media (min-width: 64rem) {
  .rnk-cushion-product-left { display: flex; min-width: 0; flex-direction: column; gap: var(--rnk-spacing-xl); }
  .woocommerce div.product.rnk-reading-cushion .rnk-native-gallery { width: 100%; }
  .woocommerce div.product.rnk-reading-cushion .rnk-native-product-details { width: 100%; max-width: none; margin: 0; }
}

@media (max-width: 63.99rem) {
  .rnk-cushion-product-left { display: contents; }
  .woocommerce div.product.rnk-reading-cushion .rnk-native-gallery { order: 1; }
  .woocommerce div.product.rnk-reading-cushion .rnk-native-gallery div.images:not(:has(.flex-control-thumbs))::after { display: none; }
  .woocommerce div.product.rnk-reading-cushion .rnk-native-gallery div.images .flex-viewport,
  .woocommerce div.product.rnk-ready-cushion-product .rnk-native-gallery div.images .flex-viewport { aspect-ratio: 1; }
  .woocommerce div.product.rnk-reading-cushion .rnk-native-gallery div.images .flex-control-thumbs,
  .woocommerce div.product.rnk-ready-cushion-product .rnk-native-gallery div.images .flex-control-thumbs { margin-top: .5rem; }
  .woocommerce div.product.rnk-reading-cushion div.summary { order: 2; }
  .woocommerce div.product.rnk-reading-cushion .rnk-native-product-details { order: 3; margin: -.75rem 0 0; }
}

@media (max-width: 48rem) {
  .woocommerce div.product.rnk-reading-cushion,
  .woocommerce div.product.rnk-reading-cushion .rnk-product-layout,
  .woocommerce div.product.rnk-reading-cushion .rnk-product-left,
  .woocommerce div.product.rnk-reading-cushion .rnk-product-info,
  .woocommerce div.product.rnk-reading-cushion .rnk-ready-cushions,
  .woocommerce div.product.rnk-reading-cushion .rnk-cushion-options {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  .rnk-ready-cushions__grid {
    width: 100%;
    max-width: 100%;
    grid-auto-columns: minmax(8.75rem, 42vw);
    grid-auto-flow: column;
    grid-template-columns: none;
    gap: .65rem;
    padding: 0 0 .25rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
    scrollbar-width: none;
  }
  .rnk-ready-cushions__grid::-webkit-scrollbar { display: none; }
  .rnk-ready-cushion { scroll-snap-align: start; }
  .rnk-ready-cushion__media img { top: -22px; height: 100%; object-fit: contain; }
  .rnk-ready-cushion__cta { padding-inline: .5rem; font-size: .75rem; white-space: nowrap; }
  .rnk-cushion-color { overflow-wrap: anywhere; }
  .woocommerce div.product.rnk-reading-cushion form.cart {
    width: 100%;
    min-width: 0;
    align-items: stretch;
  }
  .woocommerce div.product.rnk-reading-cushion form.cart > .rnk-ready-cushions,
  .woocommerce div.product.rnk-reading-cushion form.cart > .rnk-cushion-options { flex: 0 0 100%; box-sizing: border-box; }
  .woocommerce div.product.rnk-reading-cushion form.cart .quantity {
    flex: 0 0 8.5rem;
    width: 8.5rem;
    grid-template-columns: 2.5rem minmax(3rem, 1fr) 2.5rem;
  }
  .woocommerce div.product.rnk-reading-cushion form.cart .single_add_to_cart_button {
    width: auto;
    min-width: 0;
    flex: 1 1 10rem;
    padding-inline: .65rem;
    font-size: .875rem;
    white-space: nowrap;
  }
  .rnk-cushion-motifs__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 35rem) {
  .rnk-cushion-dialog { width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); }
  .rnk-cushion-dialog__header { padding: 1rem; }
  .rnk-cushion-motifs { padding: 1rem; }
  .rnk-cushion-motifs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
  .rnk-cushion-dialog__hint { padding-inline: 1rem; }
}
