/** Shopify CDN: Minification failed

Line 927:11 Expected identifier but found whitespace
Line 927:20 Unexpected ";"

**/
/* ==========================================================================
   Printed Love 3.0 · Everyday Love Blanket PDP · prototype stylesheet
   Every rule is scoped under .pl (or a .pl-* block) so it cannot leak into
   Kalles. The only unscoped rules are in PROTOTYPE SHELL and do not ship.
   ========================================================================== */

/* ---------- Tokens ---------- */
.pl {
  --pl-ivory: #FCFAF7;
  --pl-ink: #342E2A;
  --pl-coral: #B15947;
  --pl-coral-deep: #A14E3E;
  --pl-ink-2: #68615C;
  --pl-soft: #F5F1EC;
  --pl-line: #DDD7D1;
  --pl-line-strong: #8F857D;
  --pl-note: #2F5E73;

  --pl-serif: "Fraunces", "Iowan Old Style", Georgia, serif;
  --pl-sans: "Figtree", "Avenir Next", "Segoe UI", system-ui, sans-serif;

  --pl-r: 12px;
  --pl-r-media: 18px;
  --pl-gutter: clamp(16px, 4.2vw, 48px);
  --pl-section: clamp(64px, 11vw, 136px);
  --pl-ease: cubic-bezier(.22, .7, .2, 1);
  --pl-shadow: 0 1px 2px rgb(52 46 42 / .06), 0 8px 24px -12px rgb(52 46 42 / .18);

  font-family: var(--pl-sans);
  font-size: 17px;
  line-height: 1.55;
  color: var(--pl-ink);
  -webkit-font-smoothing: antialiased;
}
.pl *, .pl *::before, .pl *::after { box-sizing: border-box; }
.pl img { display: block; max-width: 100%; height: auto; }
.pl :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote, fieldset) { margin: 0; padding: 0; }
.pl :where(ul, ol) { list-style: none; }
.pl fieldset { border: 0; min-width: 0; }
.pl :where(button, input) { font: inherit; color: inherit; }
.pl :where(a) { color: inherit; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.pl :focus-visible { outline: 3px solid var(--pl-ink); outline-offset: 3px; border-radius: 6px; }
.pl .pl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pl [hidden] { display: none !important; }

/* ---------- Type ---------- */
.pl .pl-h2 {
  font-family: var(--pl-serif); font-weight: 400; font-optical-sizing: auto;
  font-size: clamp(3.04rem, 2.08rem + 2.6vw, 4.96rem); line-height: 1.06; letter-spacing: -0.015em;
  text-wrap: balance;
}
.pl .pl-h2 em { font-style: italic; color: var(--pl-coral-deep); }
.pl .pl-h3 { font-family: var(--pl-serif); font-weight: 400; font-size: 2.56rem; line-height: 1.15; }
.pl .pl-h4 { font-family: var(--pl-sans); font-size: 1.68rem; font-weight: 650; line-height: 1.3; }
.pl .pl-lede { color: var(--pl-ink-2); font-size: 1.728rem; max-width: 34ch; text-wrap: pretty; }

/* ---------- Buttons ---------- */
.pl .pl-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .45em;
  min-height: 56px; padding: 0 28px; border-radius: var(--pl-r); border: 1.5px solid transparent;
  font-size: 1.872rem; font-weight: 700; letter-spacing: .005em; text-decoration: none; cursor: pointer;
  transition: background-color .18s var(--pl-ease), transform .18s var(--pl-ease), border-color .18s;
}
/* White on the old coral (#B95E4C) was 4.4:1, now #B15947 is 4.8:1. The label is also set ≥18.7px bold so it qualifies as large text (3:1). */
.pl .pl-btn--primary { background: var(--pl-coral); color: #fff; }
.pl .pl-btn--primary:hover { background: var(--pl-coral-deep); }
.pl .pl-btn--primary:active { transform: translateY(1px); }
.pl .pl-btn--secondary { background: transparent; border-color: var(--pl-ink); color: var(--pl-ink); font-size: 1.68rem; min-height: 50px; }
.pl .pl-btn--secondary:hover { background: var(--pl-soft); }
.pl .pl-btn--quiet { background: var(--pl-ivory); color: var(--pl-ink); border-color: var(--pl-line-strong); font-size: 1.6rem; min-height: 48px; padding: 0 20px; }
.pl .pl-btn--block { width: 100%; }
.pl .pl-btn:disabled { background: var(--pl-line); color: var(--pl-ink-2); cursor: not-allowed; }
.pl .pl-iconbtn {
  display: inline-grid; place-items: center; min-width: 48px; min-height: 48px; padding: 0;
  border: 0; background: transparent; border-radius: 10px; cursor: pointer; color: var(--pl-ink);
}
.pl .pl-iconbtn:hover { background: var(--pl-soft); }

/* ---------- Review notes (prototype annotation) ---------- */
.pl .pl-note {
  margin-top: 10px; padding: 8px 10px 8px 12px; border-left: 3px solid var(--pl-note);
  background: #EAF1F4; color: #1F3F4E; font-size: 1.312rem; line-height: 1.45; border-radius: 0 8px 8px 0;
}
.pl .pl-note::before { content: "Review note · "; font-weight: 700; }
html.pl-notes-off .pl-note { display: none; }

/* ---------- Prototype banner ---------- */
.pl-proto {
  display: flex; align-items: center; gap: 12px; justify-content: space-between;
  padding: 8px var(--pl-gutter); background: #1F3F4E; color: #F1F6F8; font-size: 1.36rem; line-height: 1.35;
}
.pl-proto__toggle {
  flex: none; min-height: 40px; padding: 0 12px; border-radius: 8px; cursor: pointer;
  border: 1px solid rgb(255 255 255 / .5); background: transparent; color: inherit; font-size: 1.312rem; font-weight: 600;
}
.pl-proto :focus-visible { outline-color: #fff; }

/* ==========================================================================
   Header
   ========================================================================== */
.pl-header { background: var(--pl-ivory); border-bottom: 1px solid var(--pl-line); }
.pl-header__bar { background: var(--pl-soft); text-align: center; font-size: 1.376rem; font-weight: 500; padding: 7px var(--pl-gutter); color: var(--pl-ink); }
.pl-header__bar span { margin: 0 .5em; color: var(--pl-ink-2); }
.pl-header__row {
  display: grid; grid-template-columns: 48px 1fr 48px; align-items: center;
  padding: 6px calc(var(--pl-gutter) - 10px); min-height: 64px;
}
.pl-header__logo { justify-self: center; display: block; padding: 6px; }
.pl-header__logo img { width: 164px; height: auto; }
.pl-header__nav { display: none; }
.pl-header__cart { position: relative; }
.pl-header__count {
  position: absolute; top: 7px; right: 5px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 10px;
  background: var(--pl-ink); color: var(--pl-ivory); font-size: 1.12rem; font-weight: 700; line-height: 19px; text-align: center;
}
.pl-header .pl-note { margin: 0 var(--pl-gutter) 10px; }

/* Drawers (native <dialog>: focus-trapped, Esc closes) */
.pl-drawer {
  position: fixed; inset: 0 auto 0 0; margin: 0; height: 100dvh; max-height: none; width: min(88vw, 420px);
  border: 0; padding: 0; background: var(--pl-ivory); color: var(--pl-ink); box-shadow: 0 0 60px rgb(52 46 42 / .25);
  overflow-y: auto;
}
.pl-drawer--right { inset: 0 0 0 auto; }
.pl-drawer::backdrop { background: rgb(40 34 31 / .45); }
.pl-drawer[open] { animation: pl-in-left .28s var(--pl-ease); }
.pl-drawer--right[open] { animation-name: pl-in-right; }
@keyframes pl-in-left { from { transform: translateX(-24px); opacity: 0; } }
@keyframes pl-in-right { from { transform: translateX(24px); opacity: 0; } }
.pl-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 10px 10px 10px var(--pl-gutter); border-bottom: 1px solid var(--pl-line); }
.pl-drawer__title { font-family: var(--pl-serif); font-size: 2.24rem; }
.pl-drawer__links a { display: block; padding: 16px var(--pl-gutter); font-size: 1.84rem; text-decoration: none; border-bottom: 1px solid var(--pl-line); }

/* ==========================================================================
   Product (desire + creation + purchase)
   ========================================================================== */
.pl-product { padding-bottom: var(--pl-section); }
.pl-product__media { min-width: 0; }
.pl-gallery { position: relative; }
.pl-gallery__track {
  display: grid; grid-auto-flow: column; grid-auto-columns: 100%;
  overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none;
  background: var(--pl-soft);
}
.pl-gallery__track::-webkit-scrollbar { display: none; }
.pl-gallery__track:focus-visible { outline-offset: -3px; }
.pl-gallery__slide { scroll-snap-align: start; aspect-ratio: 1; }
.pl-gallery__slide img { width: 100%; height: 100%; object-fit: cover; }
.pl-gallery__controls { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px var(--pl-gutter) 0; }
.pl .pl-gallery__arrow { display: none; } /* phones: swipe + thumbs (beats .pl .pl-iconbtn) */
.pl-gallery__thumbs { display: flex; gap: 8px; min-width: 0; overflow-x: auto; scrollbar-width: none; position: relative; padding: 2px 0; } /* scrolls when there are more thumbs than room */
.pl-gallery__thumbs::-webkit-scrollbar { display: none; }
.pl-gallery__thumbs > :first-child { margin-left: auto; } .pl-gallery__thumbs > :last-child { margin-right: auto; } /* centred when they fit, never clipped when they don't */
.pl-gallery__thumb {
  flex: none; width: 52px; height: 52px; padding: 0; border-radius: 10px; overflow: hidden; cursor: pointer;
  border: 2px solid transparent; background: var(--pl-soft); opacity: .78;
}
.pl-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.pl-gallery__thumb[aria-current="true"] { border-color: var(--pl-ink); opacity: 1; }
.pl-gallery__missing { margin: 8px var(--pl-gutter) 0; font-size: 1.472rem; color: var(--pl-ink-2); text-align: center; }
.pl-product__media > .pl-note { margin-inline: var(--pl-gutter); }

.pl-product__buy { padding: 22px var(--pl-gutter) 0; }
.pl-product__title {
  font-family: var(--pl-serif); font-weight: 400; font-optical-sizing: auto;
  font-size: clamp(3.36rem, 2.56rem + 2.2vw, 5.12rem); line-height: 1.02; letter-spacing: -0.02em;
}
.pl-product__desc { margin-top: 8px; font-size: 1.76rem; color: var(--pl-ink-2); max-width: 32ch; }
.pl-rating {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; min-height: 32px;
  font-size: 1.568rem; color: var(--pl-ink); text-decoration: none; border-radius: 6px;
}
.pl-rating__stars { color: #9A6B1E; letter-spacing: 1.5px; font-size: 1.6rem; }
a.pl-rating .pl-rating__text { text-decoration: underline; text-decoration-color: var(--pl-line-strong); text-underline-offset: .22em; }
a.pl-rating:hover .pl-rating__text { text-decoration-color: currentColor; }
.pl-product__price { margin-top: 12px; display: flex; align-items: baseline; gap: 10px; font-variant-numeric: tabular-nums; }
.pl-product__now { font-size: 2.56rem; font-weight: 650; }
.pl-product__was { font-size: 1.84rem; color: var(--pl-ink-2); }
.pl-product__was s { text-decoration-thickness: 1.5px; }

/* Form: blocks carry different weights by job */
.pl-form { margin-top: 28px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 30px; }
.pl-create, .pl-field, .pl-upload, .pl-upload__done { min-width: 0; }
.pl-block { display: grid; gap: 12px; }
.pl-block__legend { display: flex; width: 100%; align-items: baseline; gap: 10px; padding: 0; margin-bottom: 16px; }
/* Size guide sits right beside its label, not out at the edge */
.pl-block__guide { display: inline-flex; text-decoration: none; align-items: center; gap: 5px; min-height: 36px; padding: 0 10px 0 8px; border: 1px solid var(--pl-line); border-radius: 99px; background: #fff; cursor: pointer; font-size: 1.44rem; font-weight: 600; color: var(--pl-ink); align-self: center; transition: border-color .15s, background-color .15s; }
.pl-block__legend:has(.pl-block__guide) { align-items: center; }
.pl-block__guide svg { color: var(--pl-coral-deep); flex: none; }
.pl-block__guide span { text-decoration: underline; text-underline-offset: .22em; text-decoration-thickness: 1px; }
.pl-block__guide:hover { border-color: var(--pl-line-strong); background: var(--pl-soft); }
.pl-block__kicker { font-size: 1.6rem; font-weight: 700; }
.pl-block__chosen { font-size: 1.6rem; font-weight: 500; color: var(--pl-ink-2); }
.pl-block__more { justify-self: start; font-size: 1.52rem; font-weight: 550; padding: 6px 0; }
.pl-field { display: grid; gap: 10px; }
.pl-field__legend { display: flex; width: 100%; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 1.6rem; font-weight: 700; padding: 0; }
.pl-field__opt { font-weight: 500; color: var(--pl-ink-2); }
.pl-field__count { font-weight: 500; font-size: 1.44rem; color: var(--pl-ink-2); font-variant-numeric: tabular-nums; }
.pl-field__hint { font-size: 1.52rem; color: var(--pl-ink-2); }
.pl-field__soft { font-size: 1.52rem; padding: 10px 12px; border-radius: 10px; background: #fff; }
.pl-field__ok { display: flex; gap: 10px; align-items: flex-start; }
.pl-field__ok[hidden] { display: none; }
.pl-field__ok::before { content: ""; flex: none; width: 18px; height: 18px; margin-top: 2px; background: var(--pl-coral); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7.5-4.6-9.6-9.3C.9 8.2 3 4.5 6.7 4.5c2.1 0 3.6 1.2 4.3 2.4.7-1.2 2.2-2.4 4.3-2.4 3.7 0 5.8 3.7 4.3 7.2C19.5 16.4 12 21 12 21Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7.5-4.6-9.6-9.3C.9 8.2 3 4.5 6.7 4.5c2.1 0 3.6 1.2 4.3 2.4.7-1.2 2.2-2.4 4.3-2.4 3.7 0 5.8 3.7 4.3 7.2C19.5 16.4 12 21 12 21Z'/%3E%3C/svg%3E") center / contain no-repeat; } /* a small coral heart */
.pl-field__error { font-size: 1.568rem; font-weight: 600; color: #9A3D2D; display: flex; gap: 6px; }
.pl-field__error::before { content: "!"; flex: none; display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #9A3D2D; color: #fff; font-size: 1.2rem; margin-top: 2px; }
.pl-field.is-invalid .pl-input, .pl-field.is-invalid .pl-upload__empty { border-color: #9A3D2D; }

/* Design patterns (shared by swatches, the looks rail and the illustration) */
.pl-pat--dream { background: radial-gradient(120% 90% at 30% 20%, var(--sw) 0 38%, var(--sw2) 100%) !important; }
.pl-pat--garden {
  /* a small repeating floral: four-petal blooms, a bud and two leaves per tile */
  background:
    radial-gradient(circle at 30% 30%, var(--f2) 0 3%, transparent 3.5%),
    radial-gradient(circle at 30% 20%, var(--f1) 0 8%, transparent 8.5%),
    radial-gradient(circle at 30% 40%, var(--f1) 0 8%, transparent 8.5%),
    radial-gradient(circle at 20% 30%, var(--f1) 0 8%, transparent 8.5%),
    radial-gradient(circle at 40% 30%, var(--f1) 0 8%, transparent 8.5%),
    radial-gradient(circle at 76% 74%, var(--f1) 0 6%, transparent 6.5%),
    radial-gradient(ellipse 13% 5% at 58% 46%, var(--f2) 0 90%, transparent 100%),
    radial-gradient(ellipse 11% 4.5% at 80% 20%, var(--f2) 0 90%, transparent 100%),
    radial-gradient(ellipse 12% 5% at 22% 80%, var(--f2) 0 90%, transparent 100%),
    var(--sw) !important;
  background-size: 50% 42% !important;
}
.pl-pat--cosmos {
  background:
    radial-gradient(circle at 22% 30%, #fff 0 1.3px, transparent 2px),
    radial-gradient(circle at 70% 20%, #F2D69A 0 1.5px, transparent 2.2px),
    radial-gradient(circle at 58% 70%, #fff 0 1.2px, transparent 2px),
    radial-gradient(circle at 34% 82%, #fff 0 1px, transparent 1.8px),
    radial-gradient(circle at 86% 52%, #fff 0 1px, transparent 1.8px),
    radial-gradient(90% 70% at 70% 80%, #3D3A7A 0, transparent 70%),
    var(--sw) !important;
}

/* Design: one grid, the most visual weight in the form */
.pl-swatches { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding-top: 4px; }
.pl-swatch { position: relative; display: grid; justify-items: center; gap: 7px; cursor: pointer; }
.pl-swatch input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pl-swatch__tile {
  position: relative; width: 100%; aspect-ratio: 5 / 6; border-radius: 12px; background-color: var(--sw); background-size: cover; background-position: center;
  box-shadow: inset 0 0 0 1px rgb(52 46 42 / .14), 0 2px 6px -3px rgb(52 46 42 / .25);
  outline: 2px solid transparent; outline-offset: 3px; transition: outline-color .15s, transform .2s var(--pl-ease);
}
.pl-swatch:hover .pl-swatch__tile { transform: translateY(-2px); }
/* names are shown once, beside "Design", for the selected swatch; kept here for screen readers */
.pl-swatch__name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pl-swatch input:checked + .pl-swatch__tile { outline-color: var(--pl-ink); }
.pl-swatch input:checked + .pl-swatch__tile::after {
  content: ""; position: absolute; right: -7px; top: -7px; width: 20px; height: 20px; border-radius: 50%;
  background: var(--pl-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 2.8L12.5 5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.pl-swatch input:focus-visible + .pl-swatch__tile { outline: 3px solid var(--pl-ink); outline-offset: 4px; }

/* Size: decision support (where it fits) */
.pl-sizeopts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pl-sizeopt { position: relative; cursor: pointer; display: grid; }
.pl-sizeopt__box { height: 100%; }
.pl-sizeopt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pl-sizeopt__box {
  display: grid; justify-items: center; gap: 1px; padding: 12px 6px 11px; min-height: 118px; align-content: center; text-align: center;
  border: 1.5px solid var(--pl-line); border-radius: var(--pl-r); background: #fff; transition: border-color .15s, background-color .15s;
}
.pl-sizeopt--popular .pl-sizeopt__box { position: relative; }
.pl-sizeopt__badge {
  position: absolute; top: 0; left: 50%; transform: translate(-50%, -52%); white-space: nowrap;
  padding: 2px 9px; border-radius: 99px; background: var(--pl-ink); color: var(--pl-ivory);
  font-size: 1.152rem; font-weight: 700; letter-spacing: .01em; line-height: 1.5;
}
.pl-sizeopts { padding-top: 8px; }
.pl-sizeopt__icon { width: 44px; height: 30px; margin-bottom: 4px; fill: none; stroke: var(--pl-ink-2); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.pl-sizeopt__throw { fill: var(--pl-coral); fill-opacity: .28; stroke: var(--pl-coral); }
.pl-sizeopt__use { font-weight: 700; font-size: 1.52rem; line-height: 1.2; }
.pl-sizeopt__dim { font-size: 1.408rem; color: var(--pl-ink-2); white-space: nowrap; }
.pl-sizeopt__price { font-size: 1.52rem; font-variant-numeric: tabular-nums; margin-top: 3px; }
/* same border width in every state, so nothing inside (the badge included) shifts on select */
.pl-sizeopt input:checked + .pl-sizeopt__box { border-color: var(--pl-ink); box-shadow: inset 0 0 0 1px var(--pl-ink); background: var(--pl-soft); }
.pl-sizeopt input:checked + .pl-sizeopt__box .pl-sizeopt__icon { stroke: var(--pl-ink); }
.pl-sizeopt input:focus-visible + .pl-sizeopt__box { outline: 3px solid var(--pl-ink); outline-offset: 3px; }

/* Creation card */
.pl-create { display: grid; gap: 20px; padding: 20px 16px 18px; border-radius: 18px; background: var(--pl-soft); margin-inline: -4px; }
.pl-create__title { font-family: var(--pl-serif); font-size: 2.48rem; line-height: 1.1; }

/* Inputs */
.pl .pl-input {
  width: 100%; min-height: 54px; padding: 0 16px; border-radius: var(--pl-r); border: 1.5px solid var(--pl-line-strong);
  background: #fff; font-size: 1.76rem; color: var(--pl-ink);
}
.pl .pl-input::placeholder { color: #756D67; }
.pl .pl-input:focus-visible { outline: 3px solid var(--pl-ink); outline-offset: 2px; border-color: var(--pl-ink); }

/* Upload */
.pl-upload { position: relative; }
.pl-upload__input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.pl-upload__empty {
  display: grid; justify-items: center; gap: 2px; padding: 26px 16px; border-radius: var(--pl-r);
  border: 1.5px dashed var(--pl-line-strong); background: #fff; text-align: center; cursor: pointer; transition: background-color .15s, border-color .15s;
}
.pl-upload__empty:hover { background: var(--pl-ivory); border-color: var(--pl-ink-2); }
.pl-upload__input:focus-visible ~ .pl-upload__empty,
.pl-upload__input:focus-visible ~ .pl-upload__done { outline: 3px solid var(--pl-ink); outline-offset: 3px; }
.pl-upload__empty svg { color: var(--pl-coral); margin-bottom: 4px; }
.pl-upload__cta { font-weight: 700; font-size: 1.76rem; }
.pl-upload__sub { font-size: 1.472rem; color: var(--pl-ink-2); }
.pl-upload__done { display: flex; align-items: center; gap: 14px; padding: 10px; border-radius: var(--pl-r); border: 1.5px solid var(--pl-ink); background: #fff; }
.pl-upload__thumb { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; flex: none; }
.pl-upload__meta { min-width: 0; flex: 1; }
.pl-upload__ok { font-weight: 700; display: flex; align-items: center; gap: 6px; }
.pl-upload__ok::before { content: ""; width: 18px; height: 18px; border-radius: 50%; background: #3F6B45 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 2.8L12.5 5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
.pl-upload__file { font-size: 1.44rem; color: var(--pl-ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl-upload__change { flex: none; min-height: 44px; padding: 0 14px; display: inline-grid; place-items: center; border-radius: 10px; border: 1.5px solid var(--pl-line-strong); font-weight: 600; cursor: pointer; }
.pl-upload__change:hover { background: var(--pl-soft); }

/* Preview: a risk reducer, set apart with a hairline, not a loud card */
.pl-check { position: relative; display: flex; gap: 14px; padding: 16px 2px; border-top: 1px solid var(--pl-line); border-bottom: 1px solid var(--pl-line); cursor: pointer; }
.pl-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pl-check__box { flex: none; width: 26px; height: 26px; margin-top: 1px; border-radius: 7px; border: 2px solid var(--pl-ink-2); background: #fff; display: grid; place-items: center; color: transparent; }
.pl-check input:checked + .pl-check__box { background: var(--pl-ink); border-color: var(--pl-ink); color: #fff; }
.pl-check input:focus-visible + .pl-check__box { outline: 3px solid var(--pl-ink); outline-offset: 3px; }
.pl-check__text { display: grid; gap: 4px; }
.pl-check__label { font-weight: 700; line-height: 1.35; }
.pl-check__tag { display: inline-block; margin-left: 4px; padding: 1px 8px; border-radius: 99px; background: var(--pl-soft); border: 1px solid var(--pl-line); font-size: 1.28rem; font-weight: 650; white-space: nowrap; vertical-align: 1px; }
.pl-check__sub { font-size: 1.52rem; color: var(--pl-ink-2); }

/* Purchase footer: summary → delivery → button → reassurance */
.pl-buyfoot { display: grid; gap: 14px; margin-top: -6px; }
.pl-summary { display: flex; align-items: center; gap: 12px; }
.pl-summary__thumb { width: 48px; height: 48px; flex: none; border-radius: 9px; background: var(--sw, #EFE4D2) center / cover; box-shadow: inset 0 0 0 1px rgb(52 46 42 / .14); }
.pl-summary__text { font-size: 1.6rem; line-height: 1.35; min-width: 0; overflow-wrap: anywhere; }
.pl-summary__label { display: block; font-size: 1.36rem; color: var(--pl-ink-2); }
.pl-eta { font-size: 1.568rem; display: flex; flex-wrap: wrap; gap: 2px 6px; align-items: baseline; }
.pl-eta__label { color: var(--pl-ink-2); }
.pl-eta__extra { font-size: 1.408rem; color: var(--pl-ink-2); }
.pl-assure { display: grid; gap: 6px; font-size: 1.52rem; color: var(--pl-ink-2); }
.pl-assure strong { color: var(--pl-ink); font-weight: 650; }
.pl-assure li { padding-left: 18px; position: relative; }
.pl-assure li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--pl-coral); }
.pl-assure li.is-free { color: var(--pl-ink); font-weight: 650; }

/* ==========================================================================
   Transformation (signature)
   ========================================================================== */
.pl-transform { position: relative; background: var(--pl-soft); }
.pl-transform__stage { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; align-items: center; }
.pl-transform__inner { width: 100%; padding: 22px var(--pl-gutter) 18px; display: grid; gap: 16px; align-content: center; }
.pl-transform__copy { display: grid; gap: 14px; }
.pl-transform .pl-h2 { font-size: clamp(2.8rem, 1.92rem + 2.6vw, 4.96rem); }
.pl-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.pl-step {
  width: 100%; height: 100%; display: grid; gap: 4px; justify-items: start; text-align: left; padding: 8px 8px 10px;
  border: 0; border-top: 2.5px solid var(--pl-line-strong); background: none; cursor: pointer; color: var(--pl-ink-2);
  transition: color .2s, border-color .2s;
}
.pl-step__n { font-family: var(--pl-serif); font-size: 1.68rem; }
.pl-step__t strong { display: block; font-size: 1.52rem; line-height: 1.2; }
.pl-step__t span { display: none; font-size: 1.52rem; line-height: 1.4; }
.pl-step[aria-current="step"] { color: var(--pl-ink); border-top-color: var(--pl-coral); }

.pl-transform__figure { display: grid; gap: 8px; justify-items: center; }
.pl-transform__frame {
  position: relative; width: min(100%, 62svh, 560px); aspect-ratio: 1; border-radius: var(--pl-r-media); overflow: hidden;
  background: #EDE6DC; box-shadow: var(--pl-shadow); isolation: isolate;
  --a: 0; --b: 0;
}
/* Step 2: the painting is revealed from its centre as the photo shrinks away */
.pl-transform .pl-transform__art {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; /* square art with the paper extended: whole dog, no box edge */
  clip-path: circle(calc(var(--a) * 78%) at 50% 40%);
  transform: scale(calc(1.08 - .08 * var(--a)));
  will-change: transform, clip-path;
}
/* Step 3: the finished blanket settles in over the painting */
.pl-transform__blanket {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: var(--b); transform: scale(calc(1.12 - .12 * var(--b)));
  will-change: transform, opacity;
}
.pl-transform__photo {
  position: absolute; inset: 0; z-index: 2; background: #E8E1D6; border-radius: 0; overflow: hidden;
  transform-origin: 10% 90%; /* keepsake settles bottom-left, clear of the name printed at the top */
  transform: translate(calc(var(--a) * 12px), calc(var(--a) * -12px)) scale(calc(1 - .72 * var(--a)));
  border: calc(var(--a) * 10px) solid #fff;
  box-shadow: 0 10px 24px -10px rgb(52 46 42 / calc(var(--a) * .55));
  border-radius: calc(var(--a) * 22px);
}
.pl-transform .pl-transform__userphoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pl-transform__tag {
  position: absolute; left: 50%; bottom: 10%; transform: translateX(-50%) scale(calc(1 + 1.8 * var(--a)));
  transform-origin: 50% 100%;
  padding: 3px 10px; border-radius: 99px; background: rgb(252 250 247 / .92); font-size: 1.28rem; font-weight: 700; white-space: nowrap;
  opacity: var(--a);
}
.pl-transform__cap { font-size: 1.408rem; color: var(--pl-ink-2); text-align: center; max-width: 46ch; }
.pl-transform > .pl-note--float { position: absolute; left: var(--pl-gutter); right: var(--pl-gutter); bottom: 12px; z-index: 3; margin: 0; }
.pl-stills { display: none; }
@media (max-width: 989px) { html.pl-sticky-on .pl-transform__inner { padding-bottom: 92px; } }

/* ==========================================================================
   Material
   ========================================================================== */
.pl-material { padding: var(--pl-section) var(--pl-gutter) 0; display: grid; gap: 28px; }
.pl-material__media { border-radius: var(--pl-r-media); overflow: hidden; aspect-ratio: 5 / 4; }
.pl-material__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; }
.pl-material__copy { display: grid; gap: 16px; align-content: start; }
.pl-spec { display: grid; margin-top: 6px; border-top: 1px solid var(--pl-line); }
.pl-spec > div { display: grid; grid-template-columns: 11.52rem 1fr; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--pl-line); }
.pl-spec dt { font-weight: 700; }
.pl-spec dd { color: var(--pl-ink-2); }
/* Blanket details: a light three-up strip between hairlines, then care as one quiet line of symbols */
.pl-feats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 8px; padding: 18px 0; border-top: 1px solid var(--pl-line); border-bottom: 1px solid var(--pl-line); }
.pl-feat { display: grid; gap: 8px; align-content: start; padding: 0 12px; }
.pl-feat:first-child { padding-left: 0; }
.pl-feat + .pl-feat { border-left: 1px solid var(--pl-line); }
.pl-feat > div { display: grid; gap: 2px; }
.pl-feat__icon { color: var(--pl-coral); display: grid; }
.pl-feat__icon svg { width: 24px; height: 24px; }
.pl .pl-feat__label { font-size: 1.12rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--pl-ink-2); }
.pl .pl-feat__value { font-size: 1.568rem; font-weight: 600; line-height: 1.3; color: var(--pl-ink); }
.pl .pl-feat__sub { font-size: 1.312rem; color: var(--pl-ink-2); }
@media (max-width: 599px) { /* phones: slim rows (icon · label · value) instead of three narrow columns */
  .pl-feats { grid-template-columns: 1fr; padding: 4px 0; }
  .pl-feat, .pl-feat:first-child { grid-template-columns: 24px 8.64rem 1fr; gap: 12px; align-items: baseline; padding: 11px 0; }
  .pl-feat + .pl-feat { border-left: 0; border-top: 1px solid var(--pl-line); }
  .pl-feat > div { display: contents; }
  .pl-feat__icon { align-self: center; }
  .pl .pl-feat__sub { grid-column: 3; margin-top: -8px; }
}
.pl-care { display: grid; gap: 10px; }
.pl-care__list { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.pl-care__list li { display: flex; align-items: center; gap: 8px; font-size: 1.408rem; line-height: 1.3; color: var(--pl-ink-2); }
.pl-care__list svg { flex: none; width: 22px; height: 22px; color: var(--pl-ink-2); }
.pl [data-sc-in] { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--pl-ease), transform .7s var(--pl-ease); }
.pl [data-sc-in].sc-in { opacity: 1; transform: none; }

/* Shop menu (desktop panel) */
.pl-header { position: relative; }
.pl-header__navlist { display: flex; gap: 30px; align-items: center; }
.pl-header__navlist a, .pl-header__navbtn {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 2px;
  border: 0; background: none; cursor: pointer; font-size: 1.632rem; font-weight: 550; text-decoration: none; color: var(--pl-ink);
}
.pl-header__navlist a:hover, .pl-header__navbtn:hover { text-decoration: underline; text-underline-offset: .3em; }
.pl-header__navbtn svg { transition: transform .2s var(--pl-ease); }
.pl-header__navbtn[aria-expanded="true"] svg { transform: rotate(180deg); }
.pl-shop { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; background: var(--pl-ivory); border-top: 1px solid var(--pl-line); border-bottom: 1px solid var(--pl-line); box-shadow: 0 24px 40px -28px rgb(52 46 42 / .35); }
.pl-shop__inner { max-width: 1040px; margin: 0 auto; padding: 28px var(--pl-gutter) 32px; display: grid; grid-template-columns: 1fr 1.2fr; gap: 56px; align-items: start; }
.pl-shop__h { font-size: 1.312rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--pl-ink-2); margin-bottom: 10px; }
.pl-shop__col a { display: inline-block; padding: 7px 0; font-size: 1.68rem; text-decoration: none; }
.pl-shop__col a:hover { text-decoration: underline; }
.pl .pl-shop__all { font-weight: 700; }
.pl-shop__feature { display: grid; gap: 4px; text-decoration: none; }
.pl-shop__feature img { border-radius: 14px; aspect-ratio: 16 / 10; object-fit: cover; object-position: 50% 35%; width: 100%; margin-bottom: 8px; }
.pl-shop__ftitle { font-family: var(--pl-serif); font-size: 2.08rem; }
.pl-shop__fsub { color: var(--pl-ink-2); font-size: 1.52rem; }

/* Mobile menu */
.pl-mnav__group { border-bottom: 1px solid var(--pl-line); }
.pl-mnav__group summary { list-style: none; cursor: pointer; min-height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 var(--pl-gutter); font-size: 1.84rem; font-weight: 600; }
.pl-mnav__group summary::-webkit-details-marker { display: none; }
.pl-mnav__group summary::after { content: ""; width: 9px; height: 9px; border-right: 1.8px solid; border-bottom: 1.8px solid; transform: rotate(45deg); margin-top: -4px; transition: transform .2s; }
.pl-mnav__group[open] summary::after { transform: rotate(-135deg); margin-top: 4px; }
.pl-mnav__list { padding: 0 var(--pl-gutter) 14px; }
.pl-mnav__list a { display: block; padding: 8px 0; font-size: 1.68rem; text-decoration: none; }
.pl-drawer__links a { font-weight: 600; }

/* ==========================================================================
   Looks (visual merchandising)
   ========================================================================== */
.pl-looks { padding: var(--pl-section) 0 0; display: grid; gap: 22px; }
.pl-looks__head { display: grid; gap: 12px; padding: 0 var(--pl-gutter); }
.pl-looks__figure { display: grid; gap: 12px; padding: 0 var(--pl-gutter); }
.pl-looks__stage { position: relative; aspect-ratio: 1; border-radius: var(--pl-r-media); overflow: hidden; background: #EDE6DC; box-shadow: var(--pl-shadow); }
.pl-looks__stage.is-swapping > * { animation: pl-fade .35s var(--pl-ease); }
@keyframes pl-fade { from { opacity: .35; } }
.pl-looks__chip { position: absolute; top: 12px; left: 12px; z-index: 2; padding: 4px 10px; border-radius: 99px; background: rgb(252 250 247 / .92); font-size: 1.248rem; font-weight: 700; letter-spacing: .02em; max-width: calc(100% - 24px); }
.pl-looks__chip[hidden] { display: none; }
.pl-looks__design { position: absolute; right: 16px; top: 15px; z-index: 2; font-size: 1.28rem; font-weight: 600; letter-spacing: .04em; color: var(--pl-ink-2); }
.pl-looks__controls { display: grid; gap: 14px; }
.pl-looks__rail { display: grid; grid-auto-flow: column; grid-auto-columns: 76px; gap: 12px; overflow-x: auto; padding: 6px var(--pl-gutter) 8px; scroll-padding-inline: var(--pl-gutter); scroll-snap-type: x proximity; scrollbar-width: thin; }
.pl-looks__rail { scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 82%, transparent); mask-image: linear-gradient(90deg, #000 82%, transparent); }
.pl-looks__rail::-webkit-scrollbar { display: none; }
.pl-look { scroll-snap-align: start; display: grid; gap: 6px; justify-items: stretch; width: 76px; padding: 0; border: 0; background: none; cursor: pointer; text-align: center; font-size: 1.28rem; line-height: 1.2; color: var(--pl-ink-2); }
.pl-look__tile { display: block; align-self: start; width: 100%; aspect-ratio: 5 / 6; border-radius: 12px; background-color: var(--sw, #EFE4D2); background-size: cover; background-position: center; box-shadow: inset 0 0 0 1px rgb(52 46 42 / .14); outline: 2px solid transparent; outline-offset: 3px; }
.pl-look[aria-pressed="true"] { color: var(--pl-ink); font-weight: 700; }
.pl-look[aria-pressed="true"] .pl-look__tile { outline-color: var(--pl-ink); }
.pl-look:focus-visible { outline: none; }
.pl-look:focus-visible .pl-look__tile { outline: 3px solid var(--pl-ink); outline-offset: 4px; }
/* One confirmation style for every "this is selected" message (design explorer, size guides) */
.pl-confirm { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 14px; padding: 12px 14px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--pl-line); font-size: 1.52rem; }
.pl-confirm[hidden] { display: none; }
.pl-confirm:focus { outline: none; } /* focused only so screen readers announce it; not a control */
.pl-confirm__msg { display: flex; align-items: center; gap: 10px; color: var(--pl-ink-2); }
.pl-confirm__msg strong { color: var(--pl-ink); font-weight: 650; }
.pl-confirm__msg::before {
  content: ""; flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--pl-coral) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 12.5l3 3 7-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
}
.pl .pl-confirm a { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 0 14px; border-radius: 99px; border: 1px solid var(--pl-line-strong); font-weight: 600; font-size: 1.408rem; text-decoration: none; white-space: nowrap; color: var(--pl-ink); }
.pl .pl-confirm a:hover { background: var(--pl-soft); }
.pl-looks__status { margin: 0 var(--pl-gutter); }
.pl [data-pl-nextstep] svg { transition: transform .2s; }
.pl [data-pl-nextstep].is-down svg { transform: rotate(180deg); }
.pl .pl-confirm [data-pl-nextstep].is-cart { background: var(--pl-coral); border-color: var(--pl-coral); color: #fff; }
.pl .pl-confirm [data-pl-nextstep].is-cart:hover { background: var(--pl-coral-deep); }
.pl [data-pl-nextstep].is-cart svg { display: none; }
/* the buy-box step a "Next" button lands on glows once, so the eye finds it */
.is-next { animation: pl-next 1.6s var(--pl-ease); border-radius: 14px; }
@keyframes pl-next { 0%, 60% { box-shadow: 0 0 0 3px rgb(185 94 76 / .45), 0 0 0 10px rgb(185 94 76 / .12); } 100% { box-shadow: 0 0 0 0 transparent; } }
@media (prefers-reduced-motion: reduce) { .is-next { animation: none; } }
.pl-looks > .pl-note { margin-inline: var(--pl-gutter); }

/* Illustrated blanket (designs without product photos) */
/* The real blanket photo, cut out of its white backdrop, lying flat on a warm surface */
.pl-looks__stage { background: radial-gradient(120% 90% at 20% 10%, #F6F1EA, #E8DFD3 70%); }
.pl .pl-looks__blank { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: drop-shadow(0 14px 16px rgb(70 52 36 / .2)) drop-shadow(0 2px 3px rgb(70 52 36 / .18)); }
/* the blanket's area in the photo (all ten share one framing) */
.pl-looks__print { position: absolute; left: 16.6%; top: 9.9%; width: 66.3%; height: 80.3%; }
.pl .pl-looks__blank, .pl-looks__print { transform: scale(1.04) translateY(2%); transform-origin: 50% 50%; } /* the blanket fills more of the frame; name and oval scale with it */
.pl-illo__portrait {
  position: absolute; z-index: 2; left: 50%; top: 26%; transform: translateX(-50%); width: 60%; aspect-ratio: 4 / 5; border-radius: 50%; overflow: hidden;
  background: rgb(255 255 255 / .4); border: 2px dashed rgb(52 46 42 / .3); display: grid; place-items: center;
}
.pl-illo__ph { display: grid; justify-items: center; gap: 6px; padding: 6px; text-align: center; max-width: 100%; }
.pl-illo__ph[hidden] { display: none; }
.pl-illo__ph p { font-family: var(--pl-serif); font-size: clamp(1.184rem, 0.992rem + .5vw, 1.76rem); line-height: 1.2; color: rgb(52 46 42 / .82); background: rgb(252 250 247 / .8); padding: 4px 10px; border-radius: 12px; }
.pl .pl-illo__add {
  display: inline-flex; align-items: center; gap: 5px; min-height: 36px; padding: 0 clamp(9px, 0.8rem + .4vw, 14px); border-radius: 99px; cursor: pointer; white-space: nowrap;
  border: 1px solid var(--pl-line-strong); background: var(--pl-ivory); color: var(--pl-ink); font: 700 clamp(1.184rem, 1.056rem + .3vw, 1.472rem)/1 var(--pl-sans);
}
.pl .pl-illo__add:hover { background: #fff; }
.pl .pl-illo__add svg { color: var(--pl-coral); }
.pl .pl-illo__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.pl-illo__portrait.has-photo { border: 0; box-shadow: inset 0 0 0 1px rgb(52 46 42 / .12); }
.pl .pl-illo__name { /* an inline field: type their name right on the blanket */
  position: absolute; z-index: 3; left: 12%; right: 12%; top: 9%; width: 76%; padding: 4px 6px; margin: 0; text-align: center;
  font-family: var(--pl-sans); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; font-size: clamp(1.44rem, 3.4vw, 2.4rem); color: var(--ink, #342E2A);
  background: transparent; border: 0; border-bottom: 1.5px dashed transparent; border-radius: 0; outline: 0; text-overflow: ellipsis;
}
.pl .pl-illo__name::placeholder { color: var(--ink, #342E2A); opacity: .75; letter-spacing: .1em; font-size: .78em; }
.pl .pl-illo__name.is-empty { border-bottom-color: currentColor; }
.pl .pl-illo__name:hover { border-bottom-color: currentColor; }
.pl .pl-illo__name:focus-visible { border-bottom-color: currentColor; background: rgb(255 255 255 / .18); }

/* ==========================================================================
   Size guide: to-scale plan-view scenes
   ========================================================================== */
.pl-size { padding: var(--pl-section) var(--pl-gutter) 0; display: grid; gap: 22px; }
.pl-size__head { display: grid; gap: 12px; }
.pl-size__tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; border-radius: 14px; background: var(--pl-soft); }
.pl-size__tab { min-height: 56px; border: 0; border-radius: 10px; background: none; cursor: pointer; display: grid; place-content: center; gap: 1px; color: var(--pl-ink-2); }
.pl-size__tab span { font-weight: 700; font-size: 1.6rem; }
.pl-size__tab small { font-size: 1.28rem; }
.pl-size__tabs { margin-top: 12px; } /* room for the badge */
.pl-size__tab:has(.pl-size__badge) { padding-top: 10px; }
.pl-size__tab { position: relative; }
.pl .pl-size__tab .pl-size__badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); padding: 2px 9px; border-radius: 99px; background: var(--pl-coral); color: #fff; font-size: 1.088rem; font-weight: 700; letter-spacing: .04em; white-space: nowrap; box-shadow: 0 2px 6px -2px rgb(52 46 42 / .3); }
.pl-size__tab[aria-selected="true"] { background: #fff; color: var(--pl-ink); box-shadow: var(--pl-shadow); }
.pl-size__panel { display: grid; gap: 18px; padding-top: 14px; }
.pl-scene { border-radius: var(--pl-r-media); background: #F3EDE5; overflow: hidden; }
.pl-scene svg { display: block; width: 100%; height: auto; }
/* size drawings are for scale, not the finished artwork */
[data-pl-scene], [data-pl-wall-scene] { position: relative; }
[data-pl-scene]::after, [data-pl-wall-scene]::after { content: "Size preview only"; position: absolute; right: 10px; bottom: 10px; padding: 3px 10px; border-radius: 99px; background: rgb(255 255 255 / .85); font: 600 1.152rem/1.4 var(--pl-sans); letter-spacing: .03em; color: var(--pl-ink-2); pointer-events: none; }
.pl-scene .grid { stroke: #E4DBCF; stroke-width: 1; }
.pl-scene .floor { fill: #F3EDE5; }
.pl-scene .rug { fill: #EAE0D2; }
.pl-scene .furn { fill: #DCCFBF; }
.pl-scene .furn-2 { fill: #CDBFAE; }
.pl-scene .furn-3 { fill: #E8DED2; }
.pl-scene .pillow { fill: #F7F2EB; stroke: #D8CCBC; stroke-width: 1; }
.pl-scene .pillow-under { fill: rgb(255 255 255 / .12); stroke: rgb(255 255 255 / .85); stroke-width: 1.4; stroke-dasharray: 4 3; }
.pl-scene .leaf { fill: #93A383; }
.pl-scene .blanket { stroke: rgb(52 46 42 / .35); stroke-width: 1.2; filter: drop-shadow(0 3px 4px rgb(52 46 42 / .25)); transition: fill .3s; }
.pl-scene .portrait { fill: rgb(255 255 255 / .35); stroke: rgb(52 46 42 / .25); stroke-dasharray: 3 3; }
.pl-scene .namebar { fill: rgb(255 255 255 / .55); }
.pl-scene .dim { stroke: var(--pl-coral-deep); stroke-width: 1.4; fill: none; }
.pl-scene .dimtxt { font: 700 12px var(--pl-sans); fill: var(--pl-coral-deep); }
.pl-scene .lbl { font: 600 10.5px var(--pl-sans); fill: #625850; letter-spacing: .06em; }
.pl-size__facts { display: grid; gap: 8px; justify-items: start; }
.pl-size__popular { font-size: 1.312rem; font-weight: 700; padding: 3px 10px; border-radius: 99px; background: var(--pl-ink); color: var(--pl-ivory); }
.pl-size .pl-size__dim { font-family: var(--pl-serif); font-size: 3.52rem; line-height: 1.05; font-weight: 400; }
.pl-size .pl-size__dim span { display: block; font-family: var(--pl-sans); font-size: 1.6rem; color: var(--pl-ink-2); margin-top: 4px; }
.pl-size .pl-size__use { font-size: 1.68rem; color: var(--pl-ink-2); max-width: 36ch; }
.pl-size .pl-size__price { font-size: 1.92rem; font-weight: 650; margin: 0 0 6px; }
.pl-size__scale { font-size: 1.44rem; color: var(--pl-ink-2); }

/* ==========================================================================
   Proof
   ========================================================================== */
.pl-proof { padding: var(--pl-section) 0 0; display: grid; gap: 22px; }
.pl-proof > .pl-note { margin-inline: var(--pl-gutter); }
.pl-proof__head { display: grid; gap: 12px; padding: 0 var(--pl-gutter); }

/* Before / after: drag to compare photo and artwork */
.pl-ba {
  --pos: 50%;
  position: relative; aspect-ratio: 4 / 5; border-radius: var(--pl-r-media); overflow: hidden;
  background: #E8E1D6; box-shadow: var(--pl-shadow); touch-action: pan-y; user-select: none; -webkit-user-select: none; cursor: ew-resize;
}
.pl-ba__before, .pl-ba__after { position: absolute; inset: 0; }
.pl-ba__after { clip-path: inset(0 0 0 var(--pos)); }
.pl-ba__after img { width: 100%; height: 100%; object-fit: cover; transform: scale(2.1); transform-origin: var(--fx) var(--fy); pointer-events: none; }
.pl-ba__ph {
  display: grid; place-content: center; justify-items: center; gap: 8px; padding: 0 52% 0 16px; text-align: center; color: var(--pl-ink-2); font-size: 1.36rem; font-weight: 600;
  background: repeating-linear-gradient(-45deg, #EAE3D9 0 12px, #E3DBCF 12px 24px);
}
.pl-ba__tag {
  position: absolute; top: 12px; z-index: 2; padding: 4px 10px; border-radius: 99px; font-size: 1.184rem; font-weight: 700; letter-spacing: .03em;
  background: rgb(252 250 247 / .92); color: var(--pl-ink); pointer-events: none;
}
.pl-ba__tag--before { left: 12px; }
.pl-ba__tag--after { right: 12px; background: var(--pl-ink); color: var(--pl-ivory); }
.pl-ba__divider { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: #fff; box-shadow: 0 0 0 1px rgb(52 46 42 / .12); z-index: 2; pointer-events: none; }
.pl-ba__handle {
  position: absolute; top: 50%; left: var(--pos); z-index: 3; width: 48px; height: 48px; margin: -24px 0 0 -24px; border-radius: 50%;
  display: grid; place-items: center; background: var(--pl-ivory); color: var(--pl-ink); box-shadow: 0 4px 14px rgb(52 46 42 / .3); cursor: ew-resize;
}
.pl-ba__handle:focus-visible { outline: 3px solid var(--pl-ink); outline-offset: 3px; border-radius: 50%; }
.pl-ba.is-dragging .pl-ba__handle { transform: scale(1.06); }
.pl-ba-hint { padding: 0 var(--pl-gutter); font-size: 1.44rem; color: var(--pl-ink-2); text-align: center; }
.pl-ba-one { display: grid; gap: 10px; padding: 0 var(--pl-gutter); width: 100%; max-width: calc(440px + 2 * var(--pl-gutter)); margin: 0 auto; }
.pl-ba--full { aspect-ratio: 1; } /* square: a smaller, calmer comparison */
.pl-ba-one .pl-ba-hint { padding: 0; }
.pl .pl-ba--full .pl-ba__before img, .pl .pl-ba--full .pl-ba__after img { width: 100%; height: 100%; object-fit: cover; transform: none; pointer-events: none; }
.pl-reviews { margin: 18px var(--pl-gutter) 0; display: grid; gap: 14px; }
.pl-reviews__src { color: var(--pl-ink-2); margin-top: -8px; }
.pl-reviews__list { display: grid; gap: 12px; }
.pl-review { padding: 20px; border-radius: var(--pl-r-media); background: var(--pl-soft); display: grid; gap: 10px; }
.pl-review__stars { color: #9A6B1E; letter-spacing: 2px; font-size: 1.6rem; }
.pl-review blockquote { margin: 0; font-family: var(--pl-serif); font-size: 1.92rem; line-height: 1.4; }
.pl-review__by { font-weight: 700; font-size: 1.52rem; }
.pl-review__by span { font-weight: 500; color: var(--pl-ink-2); }
.pl-reviews__head { display: grid; gap: 6px; }
.pl-reviews__score { color: var(--pl-ink-2); }
.pl-reviews__score strong { color: var(--pl-ink); }
.pl-rwall__stars { color: #9A6B1E; letter-spacing: 2px; font-size: 1.52rem; }
.pl-reviews > .pl-reviews__src { margin-top: 0; font-size: 1.36rem; }
.pl-rwall__by { font-weight: 700; font-size: 1.472rem; }
/* photo wall: swipe row on phones, masonry on desktop */
.pl-rwall { display: grid; grid-auto-flow: column; grid-auto-columns: 58%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(-1 * var(--pl-gutter)); padding: 2px var(--pl-gutter) 6px; scroll-padding-inline: var(--pl-gutter); scrollbar-width: none; }
.pl-rwall::-webkit-scrollbar { display: none; }
.pl-rwall__card { scroll-snap-align: start; display: grid; align-content: start; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: inset 0 0 0 1px var(--pl-line); }
.pl-rwall__card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.pl-rwall__body { display: grid; gap: 8px; padding: 14px 16px 16px; }
.pl-rwall__body blockquote { margin: 0; font-size: 1.52rem; line-height: 1.5; color: var(--pl-ink); }

/* ==========================================================================
   Help
   ========================================================================== */
.pl-help { padding: var(--pl-section) var(--pl-gutter) 0; display: grid; gap: 26px; }
.pl-promises { display: grid; gap: 0; border-top: 1px solid var(--pl-line); }
.pl-promise { padding: 16px 0; border-bottom: 1px solid var(--pl-line); display: grid; gap: 4px; }
.pl-promise p { color: var(--pl-ink-2); }
.pl-faq { display: grid; }
.pl-acc { border-bottom: 1px solid var(--pl-line); }
.pl-acc summary {
  list-style: none; cursor: pointer; min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  font-weight: 650; font-size: 1.68rem; padding: 10px 0;
}
.pl-acc summary::-webkit-details-marker { display: none; }
.pl-acc summary::after {
  content: ""; flex: none; width: 14px; height: 14px; margin-right: 4px;
  background: linear-gradient(currentColor, currentColor) center / 14px 2px no-repeat, linear-gradient(currentColor, currentColor) center / 2px 14px no-repeat;
  transition: transform .25s var(--pl-ease);
}
.pl-acc[open] summary::after { transform: rotate(45deg); }
.pl-acc__body { padding: 0 0 18px; color: var(--pl-ink-2); max-width: 62ch; }

/* ==========================================================================
   Moment: one large lifestyle image inside the story (blanket)
   ========================================================================== */
.pl-moment { margin: 0; padding: var(--pl-section) var(--pl-gutter) 0; display: grid; gap: 22px; }
.pl-moment__media { margin: 0; display: grid; gap: 8px; }
.pl-moment__copy { display: grid; gap: 12px; }
.pl-why { display: grid; gap: 12px; margin-top: 6px; }
.pl-why li { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; font-size: 1.632rem; line-height: 1.45; color: var(--pl-ink-2); }
.pl-why strong { color: var(--pl-ink); font-weight: 650; }
.pl-why__icon { color: var(--pl-coral); display: grid; padding-top: 2px; }
.pl-moment img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--pl-r-media); } /* square: both dogs and the name stay in frame */
.pl-moment figcaption { font-size: 1.408rem; color: var(--pl-ink-2); }
.pl-moment > .pl-note { margin: 0; }

/* ==========================================================================
   Footer
   ========================================================================== */
.pl-footer { background: var(--pl-ink); color: #EFE8E1; padding: 48px var(--pl-gutter) 28px; display: grid; gap: 32px; }
.pl-footer .pl-footer__brand img { width: 176px; filter: brightness(0) invert(.94) sepia(.15); }
.pl-footer__brand p { margin-top: 12px; color: #CFC5BB; max-width: 34ch; }
.pl-footer__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 20px; }
.pl-footer__cols > div:last-child { grid-column: 1 / -1; }
.pl-footer__h { font-family: var(--pl-sans); display: block; font-size: 1.52rem; font-weight: 700; margin-bottom: 10px; color: #fff; }
.pl-footer__cols a { display: inline-block; padding: 6px 0; color: #E1D8CF; text-decoration: none; }
.pl-footer__cols a:hover { text-decoration: underline; }
.pl-footer :focus-visible { outline-color: #fff; }
.pl-news__row { display: flex; gap: 8px; }
.pl-news .pl-input { background: #FCFAF7; border-color: transparent; }
.pl-news .pl-btn--secondary { border-color: #EFE8E1; color: #EFE8E1; flex: none; }
.pl-news .pl-btn--secondary:hover { background: rgb(255 255 255 / .08); }
.pl-news__done { margin-top: 8px; color: #CFC5BB; }
.pl-footer__legal { font-size: 1.408rem; color: #CFC5BB; border-top: 1px solid rgb(255 255 255 / .14); padding-top: 18px; }
.pl-footer__legal a { color: inherit; }
.pl-footer .pl-note { background: #DDE9EE; }

/* ==========================================================================
   Sticky bar + cart
   ========================================================================== */
.pl-sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; align-items: center; gap: 12px;
  padding: 10px var(--pl-gutter) calc(10px + env(safe-area-inset-bottom));
  background: rgb(252 250 247 / .97); border-top: 1px solid var(--pl-line); box-shadow: 0 -8px 24px -16px rgb(52 46 42 / .4);
  transform: translateY(110%); transition: transform .3s var(--pl-ease);
}
.pl-sticky.is-on { transform: none; }
.pl-sticky__text { flex: 1; min-width: 0; font-size: 1.472rem; line-height: 1.3; }
.pl-sticky__text span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl-sticky__name { font-weight: 700; }
.pl-sticky .pl-btn { min-height: 52px; padding: 0 20px; flex: none; }

.pl-cart__sim { margin: 12px var(--pl-gutter) 0; font-size: 1.408rem; color: #1F3F4E; background: #EAF1F4; padding: 8px 10px; border-radius: 8px; }
.pl-cart__added { margin: 14px var(--pl-gutter) 0; font-weight: 650; }
.pl-cart__empty { margin: 24px var(--pl-gutter); color: var(--pl-ink-2); }
.pl-cart__lines { padding: 8px var(--pl-gutter); }
.pl-line { display: grid; grid-template-columns: 76px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--pl-line); }
.pl-line__img { width: 76px; height: 76px; border-radius: 10px; background: var(--sw, #EFE4D2) center / cover; box-shadow: inset 0 0 0 1px rgb(52 46 42 / .12); }
.pl-line__title { font-weight: 700; }
.pl-line__props { overflow-wrap: anywhere; font-size: 1.44rem; color: var(--pl-ink-2); display: grid; gap: 1px; margin-top: 4px; }
.pl-line__row { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }
.pl-line__remove { border: 0; background: none; text-decoration: underline; cursor: pointer; font-size: 1.44rem; color: var(--pl-ink-2); min-height: 40px; padding: 0; }
.pl-line__photo { display: flex; align-items: center; gap: 6px; }
.pl-line__photo span { overflow-wrap: anywhere; }
.pl-line__photo img { width: 22px; height: 22px; border-radius: 4px; object-fit: cover; }
.pl-cart__foot { padding: 16px var(--pl-gutter) 28px; display: grid; gap: 8px; }
.pl-freeship { display: grid; gap: 8px; margin: 4px var(--pl-gutter) 6px; padding: 12px 14px; border-radius: 12px; background: var(--pl-soft); }
.pl-freeship[hidden] { display: none; }
.pl-freeship__msg { font-size: 1.472rem; color: var(--pl-ink-2); }
.pl-freeship__msg strong { color: var(--pl-ink); }
.pl-freeship__bar { height: 6px; border-radius: 99px; background: #E6DDD2; overflow: hidden; }
.pl-freeship__bar span { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--pl-coral); transition: width .5s var(--pl-ease); }
.pl-freeship.is-free .pl-freeship__bar span { background: #6E8B5E; }
.pl-freeship.is-free .pl-freeship__msg::before { content: "✓ "; color: #6E8B5E; font-weight: 700; }
.pl-cart__total { display: flex; justify-content: space-between; font-weight: 700; font-size: 1.76rem; }
/* set savings: a quiet nudge, or a price breakdown like any checkout */
.pl-cart__set { display: grid; gap: 6px; }
.pl-cart__nudge { display: flex; gap: 8px; align-items: center; font-size: 1.44rem; color: var(--pl-ink-2); }
.pl-cart__nudge::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--pl-coral); }
.pl-cart__sum { display: grid; gap: 4px; margin: 0; }
.pl-cart__sum > div { display: flex; justify-content: space-between; gap: 12px; font-size: 1.52rem; }
.pl-cart__sum > div[hidden] { display: none; }
.pl-cart__sum dt, .pl-cart__sum dd { margin: 0; }
.pl-cart__sum dd { font-variant-numeric: tabular-nums; }
.pl-cart__save { color: var(--pl-coral-deep); font-weight: 600; }
.pl-cart__save dt span { font-weight: 500; font-size: .85em; padding: 1px 7px; margin-left: 4px; border-radius: 99px; background: #F7EEE8; }
.pl-cart__set > .pl-note { margin: 0; }
/* edit a cart line in place */
.pl-line__acts { display: flex; gap: 16px; }
.pl-line.is-updated { animation: pl-updated 1.4s var(--pl-ease); }
@keyframes pl-updated { 0% { background: #F7EEE8; } 100% { background: transparent; } }
.pl-edit { grid-column: 1 / -1; display: grid; gap: 12px; margin-top: 10px; padding: 14px; border-radius: 12px; background: var(--pl-soft); }
.pl-edit__field { display: grid; gap: 6px; }
.pl-edit__choice { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pl-edit__lbl { font-size: 1.184rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pl-ink-2); padding: 0; margin-bottom: 2px; width: 100%; }
.pl-edit__choice label { position: relative; }
.pl-edit__choice input { position: absolute; opacity: 0; }
.pl-edit__choice span { display: grid; min-height: 44px; place-content: center; text-align: center; padding: 4px 12px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px var(--pl-line-strong); font-size: 1.408rem; font-weight: 600; cursor: pointer; }
.pl-edit__choice small { font-weight: 500; color: var(--pl-ink-2); }
.pl-edit__choice input:checked + span { box-shadow: inset 0 0 0 2px var(--pl-ink); }
.pl-edit__choice input:focus-visible + span { outline: 3px solid var(--pl-ink); outline-offset: 2px; }
.pl-edit__select, .pl-edit__input { min-height: 44px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--pl-line-strong); background: #fff; font: inherit; font-size: 1.6rem; color: var(--pl-ink); }
.pl-edit__check { display: flex; gap: 10px; align-items: flex-start; font-size: 1.472rem; cursor: pointer; }
.pl-edit__check input { width: 20px; height: 20px; margin-top: 1px; accent-color: var(--pl-coral); flex: none; }
.pl-edit__photo { font-size: 1.36rem; color: var(--pl-ink-2); }
.pl-edit__acts { display: flex; align-items: center; gap: 16px; }
.pl .pl-edit__save { min-height: 44px; padding: 0 18px; font-size: 1.52rem; }
.pl-cart__ship { color: var(--pl-ink-2); font-size: 1.52rem; }
.pl-cart__foot .pl-cart__sim { margin: 0; }

/* ==========================================================================
   Shared product-page pieces (first built for the pillow; reused by every product)
   ========================================================================== */
/* Product illustrations (every product can draw every other, in any background) */
/* Illustrated pillow (swatch art + soft shading). Used in the gallery and the flip. */
.pl-pillow { position: relative; aspect-ratio: 1; filter: drop-shadow(0 18px 22px rgb(52 46 42 / .28)); }
.pl-pillow__face {
  /* cushion silhouette: pinched corners, sides bowing slightly inward (scales with the element) */
  position: absolute; inset: 5%; overflow: hidden;
  background-color: var(--sw, #EFE4D2); background-size: cover; background-position: center;
  display: grid; place-items: center;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M4 5.5 Q4 3 6.5 3.4 Q50 9.5 93.5 3.4 Q96 3 95.6 5.5 Q90.5 50 95.6 94.5 Q96 97 93.5 96.6 Q50 90.5 6.5 96.6 Q4 97 4.4 94.5 Q9.5 50 4.4 5.5 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M4 5.5 Q4 3 6.5 3.4 Q50 9.5 93.5 3.4 Q96 3 95.6 5.5 Q90.5 50 95.6 94.5 Q96 97 93.5 96.6 Q50 90.5 6.5 96.6 Q4 97 4.4 94.5 Q9.5 50 4.4 5.5 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.pl-pillow__face::after { /* the puff: light across the middle, soft fall-off toward the seams and corners */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(70% 60% at 50% 45%, rgb(255 255 255 / .18) 0 30%, transparent 70%),
    radial-gradient(120% 120% at 50% 50%, transparent 58%, rgb(40 30 25 / .34) 100%),
    linear-gradient(180deg, transparent 70%, rgb(40 30 25 / .12));
}
.pl-pillow__portrait {
  position: relative; z-index: 1; width: 56%; aspect-ratio: 4 / 5; border-radius: 46% 46% 42% 42%; overflow: hidden;
  display: grid; place-items: center; background: rgb(255 255 255 / .42); border: 2px dashed rgb(52 46 42 / .32);
}
.pl-pillow__portrait span { white-space: nowrap; font-size: 1.28rem; font-weight: 700; color: var(--pl-ink); background: rgb(252 250 247 / .88); padding: 3px 10px; border-radius: 99px; }
.pl-pillow__portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pl-pillow__portrait.has-photo { border-style: solid; border-color: rgb(255 255 255 / .75); }
.pl-pillow__portrait.has-photo span { position: absolute; bottom: 8px; z-index: 1; font-size: 1.12rem; }

/* ==========================================================================
   Framed artwork (illustration). Follows background, frame, size ratio,
   name and photo. Used in the gallery, collection, and proof email.
   ========================================================================== */
.pl-framed {
  --frame: #F3F1ED; --ar: 3 / 4; --ink: #342E2A;
  position: relative; aspect-ratio: var(--ar); padding: 5.2%; background: var(--frame);
  box-shadow: inset 0 0 0 1px rgb(52 46 42 / .10), 0 1px 1px rgb(52 46 42 / .12), 0 22px 34px -20px rgb(40 30 25 / .55), 0 6px 10px -6px rgb(40 30 25 / .25);
  transition: aspect-ratio .3s var(--pl-ease);
}
.pl-framed[data-frame="Black"] { --frame: #24211F; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .06), 0 22px 34px -20px rgb(20 15 12 / .6), 0 6px 10px -6px rgb(20 15 12 / .3); }
.pl-framed[data-frame="White"] { --frame: #F5F3EF; }
.pl-framed[data-frame="Natural"] { background: linear-gradient(90deg, #D6BC93, #CBAE84 30%, #D9C29D 55%, #C9AB80); }
.pl-framed__canvas {
  position: relative; width: 100%; height: 100%; overflow: hidden; container-type: inline-size;
  background: var(--sw, #EFE4D2) center / cover no-repeat;
  box-shadow: 0 0 0 max(2px, .5vw) rgb(40 32 28 / .22); /* the shadow gap between canvas and frame */
}
.pl-framed__name {
  position: absolute; left: 0; right: 0; top: 8%; text-align: center; z-index: 1;
  font-family: var(--pl-sans); font-weight: 500; font-size: 8.4cqw; letter-spacing: .09em; line-height: 1; color: var(--ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 8%;
}
.pl-framed__pet {
  position: absolute; left: 19%; right: 19%; top: 23%; bottom: 7%;
  border-radius: 46% 46% 12% 12% / 34% 34% 8% 8%; overflow: hidden;
  display: grid; place-items: center; background: rgb(255 255 255 / .36); border: 2px dashed rgb(52 46 42 / .3);
}
.pl-framed__pet span { white-space: nowrap; font-size: max(0.992rem, 5.4cqw); font-weight: 700; color: var(--pl-ink); background: rgb(252 250 247 / .9); padding: 2px 9px; border-radius: 99px; }
.pl-framed__pet img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pl-framed__pet.has-photo { border-style: solid; border-color: rgb(255 255 255 / .7); }
.pl-framed__pet.has-photo span { position: absolute; bottom: 6%; z-index: 1; }

/* Quiet facts line (chips) under the price */
.pl-facts { display: flex; flex-wrap: wrap; gap: 6px 8px; margin-top: 14px; }
.pl-facts li {
  padding: 6px 12px; border-radius: 99px; border: 1px solid var(--pl-line); background: #fff;
  font-size: 1.44rem; font-weight: 600; color: var(--pl-ink);
}
/* Image placeholders (photography to come) */
.pl-ph {
  width: 100%; height: 100%; display: grid; place-content: center; justify-items: center; gap: 6px; padding: 24px; text-align: center;
  background: repeating-linear-gradient(-45deg, #EFE9E1 0 14px, #E8E1D6 14px 28px); color: var(--pl-ink-2);
}
.pl-ph--texture { background: radial-gradient(circle at 30% 30%, rgb(255 255 255 / .35), transparent 60%), repeating-linear-gradient(35deg, #E6DDD1 0 2px, #EAE2D7 2px 5px); }
.pl-ph__title { font-family: var(--pl-serif); font-size: 2.16rem; color: var(--pl-ink); }
.pl-ph__sub { font-size: 1.472rem; max-width: 26ch; }
.pl-gallery__thumb--ph { background: repeating-linear-gradient(-45deg, #EFE9E1 0 6px, #E4DCD0 6px 12px); }
/* Delivery: reserved slot for the Essential Estimated widget */
.pl-eta__slot { padding: 2px 10px; border-radius: 8px; border: 1px dashed var(--pl-line-strong); color: var(--pl-ink-2); font-size: 1.44rem; }
/* Reviews without the before/after block */
.pl-proof--short { padding-inline: var(--pl-gutter); }
.pl-proof--short .pl-reviews { margin: 0; }
@media (min-width: 990px) {
  .pl-proof--short { max-width: 1320px; margin-inline: auto; }
}

/* ==========================================================================
   Better together: the Everyday Love set (shared by every product page)
   Calm, editorial: an illustrated room with two pieces in the same
   background, then quiet product cards. No badges, no strikethroughs.
   ========================================================================== */
.pl-bt { padding: var(--pl-section) var(--pl-gutter) calc(var(--pl-section) * .8); display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.pl-bt__head { display: grid; gap: 10px; }
.pl-bt__kicker { font-size: 1.312rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pl-ink-2); }
.pl-bt__scene { position: relative; }
.pl-bt__room .floor2 { fill: #E6DBCD; }
.pl-bt__room .skirting { fill: #ECE3D7; }
.pl-bt__room .shade { fill: #EFE6DA; stroke: #D8CCBC; }
.pl-bt__room .pot { fill: #C9A58A; }
.pl-bt__room .frame { fill: #2B2622; filter: drop-shadow(3px 6px 6px rgb(52 46 42 / .28)); }
.pl-bt__room .bevel { fill: none; stroke: rgb(0 0 0 / .35); stroke-width: 1.2; }
.pl-bt__room .pillow { filter: drop-shadow(0 4px 4px rgb(52 46 42 / .28)); }
.pl-bt__room .seam { fill: none; stroke: rgb(52 46 42 / .25); stroke-width: 1; }
.pl-bt__room .blanket { filter: drop-shadow(0 4px 5px rgb(52 46 42 / .25)); }
.pl-bt__room .wrap { fill: rgb(0 0 0 / .06); }
.pl-bt__room .portrait { fill: rgb(255 255 255 / .4); stroke: rgb(52 46 42 / .3); stroke-width: 1; stroke-dasharray: 3 2.5; }
.pl-bt__room .portrait.has-photo { fill: none; stroke: rgb(255 255 255 / .5); stroke-dasharray: none; }
.pl-bt__room .namebar { opacity: .7; }
.pl-bt__room .nm { font-family: var(--pl-sans); font-weight: 600; letter-spacing: .12em; }
/* product cards beside the room */
.pl-bt__side { display: grid; gap: 14px; align-content: center; }
.pl-bt__cards { display: grid; gap: 10px; }
.pl .pl-bt__card { display: grid; grid-template-columns: 84px 1fr; gap: 14px; align-items: center; padding: 10px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--pl-line); color: var(--pl-ink); text-decoration: none; transition: box-shadow .2s, transform .2s var(--pl-ease); }
.pl .pl-bt__card:hover { box-shadow: inset 0 0 0 1px var(--pl-line-strong), 0 8px 18px -12px rgb(52 46 42 / .4); transform: translateY(-1px); }
.pl .pl-bt__card.is-here { background: var(--pl-soft); box-shadow: none; }
.pl-bt__thumb { width: 84px; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: #F4EEE6; }
.pl-bt__thumb img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.18); } /* studio shots on white: let the product fill the tile */
.pl-bt__txt { display: grid; gap: 2px; }
.pl-bt__name { font-family: var(--pl-serif); font-size: 1.792rem; line-height: 1.15; }
.pl-bt__price { font-size: 1.6rem; font-weight: 650; }
.pl-bt__go { font-size: 1.52rem; font-weight: 700; color: var(--pl-coral-deep); margin-top: 4px; }
.pl-bt__card.is-here .pl-bt__go { color: var(--pl-ink-2); font-weight: 600; }
.pl-bt__offer { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 11px 14px; border-radius: 12px; border: 1px dashed #D9B7A9; background: #FBF4F0; font-size: 1.472rem; color: var(--pl-ink-2); }
.pl-bt__offer svg { flex: none; color: var(--pl-coral); }
.pl-bt__offer strong { color: var(--pl-coral-deep); font-weight: 700; }
.pl-bt__design { color: var(--pl-ink-2); }
.pl-bt > .pl-note { margin: 0; }
@media (min-width: 990px) {
  .pl-bt { max-width: 1320px; margin-inline: auto; grid-template-columns: minmax(0, 2.3fr) minmax(320px, 1fr); column-gap: clamp(24px, 3vw, 40px); align-items: stretch; }
  .pl-bt__side { align-content: stretch; grid-template-rows: 1fr auto; } /* cards fill the room's height */
  .pl-bt__cards { grid-template-rows: repeat(3, 1fr); gap: 12px; }
  .pl-bt__side { position: relative; }
  @media (min-width: 1200px) { /* the room sets the height; cards and offer fill it exactly */
    .pl-bt__cards { position: absolute; inset: 0 0 58px 0; }
    .pl-bt__offer { position: absolute; left: 0; right: 0; bottom: 0; }
  }
  .pl .pl-bt__card { height: 100%; grid-template-columns: 132px 1fr; gap: 18px; padding: 12px; }
  .pl-bt__card .pl-bt__thumb { width: 132px; height: 100%; aspect-ratio: auto; }
  .pl-bt__name { font-size: 2.08rem; }
  .pl-bt__head, .pl-bt > .pl-note { grid-column: 1 / -1; }
}
/* Three prints scattered on a table: white borders, a small caption, a slight tilt.
   The piece chosen on the right lifts forward and straightens; the other tucks back. */
  position: absolute; display: block; margin: 0; padding: 4.5% 4.5% 0; border: 0; border-radius: 6px; background: #fff; color: var(--pl-ink);
  box-shadow: 0 1px 2px rgb(52 46 42 / .10), 0 18px 34px -18px rgb(52 46 42 / .45);
  transform: rotate(var(--r, 0deg)) scale(var(--s, 1)); transition: transform .45s var(--pl-ease), box-shadow .45s var(--pl-ease), opacity .3s;
}
/* a piece of the set without a photo yet: its background art, clearly labelled */
/* the incentive: one quiet line, after the pieces */

/* Cart: Everyday Love set status (prototype preview) */

@media (min-width: 990px) {
}

/* ==========================================================================
   Tablet / desktop: the phone system, expanded
   ========================================================================== */
@media (min-width: 700px) {
  .pl-looks__rail { grid-auto-columns: 84px; }
  .pl-look { width: 84px; }
  .pl-reviews__list { grid-template-columns: repeat(3, 1fr); }
  .pl-reviews { max-width: 1100px; margin-inline: auto; } /* same width as the other content sections */
  .pl-rwall { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-auto-flow: row; gap: 14px; overflow: visible; margin: 0; padding: 0; } /* even rows: a straight bottom edge */
  .pl-rwall__card { margin: 0; grid-template-rows: auto 1fr; }
  .pl-rwall__body { grid-template-rows: auto 1fr auto; }
  .pl-rwall__body blockquote p { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
  .pl-rwall__body { padding: 10px 12px 12px; gap: 6px; }
  .pl-rwall__body blockquote { font-size: 1.376rem; line-height: 1.45; }
  .pl-rwall__stars { font-size: 1.28rem; }
  .pl-rwall__by { font-size: 1.312rem; }
  .pl-rwall__card img { aspect-ratio: 1; } /* one photo height keeps the wall calm */
  .pl-promises { grid-template-columns: repeat(3, 1fr); gap: 28px; border-top: 0; }
  .pl-promise { border-bottom: 0; border-top: 2px solid var(--pl-ink); padding-top: 14px; }
  .pl-step__t span { display: block; }
}

@media (min-width: 990px) {
  .pl { font-size: 17.5px; }
  .pl-header__row { grid-template-columns: auto 1fr auto; gap: 32px; padding: 10px var(--pl-gutter); }
  .pl .pl-header__menu { display: none; }
  .pl-header__logo { justify-self: start; padding: 0; }
  .pl-header__logo img { width: 190px; }
  .pl-header__nav { display: block; justify-self: center; }

  .pl-product { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(380px, 1fr); gap: clamp(32px, 4vw, 72px); padding: 28px var(--pl-gutter) var(--pl-section); align-items: start; }
  .pl-gallery__track { border-radius: var(--pl-r-media); }
  .pl-gallery__controls { justify-content: space-between; padding: 14px 0 0; }
  .pl .pl-gallery__arrow { display: inline-grid; }
  .pl-gallery__thumb { width: 76px; height: 76px; }
  .pl-product__media > .pl-note { margin-inline: 0; }
  .pl-gallery__missing { margin-inline: 0; }
  /* Stacked gallery (blanket): lead image full width, the rest two-up, so the column stays full beside the sticky buy box */
  .pl-gallery--stack .pl-gallery__track { grid-auto-flow: row; grid-template-columns: 1fr 1fr; grid-auto-columns: auto; gap: 12px; overflow: visible; scroll-snap-type: none; background: none; border-radius: 0; }
  .pl-gallery--stack .pl-gallery__slide { border-radius: var(--pl-r-media); overflow: hidden; background: var(--pl-soft); }
  .pl-gallery--stack .pl-gallery__slide.is-lead { grid-column: 1 / -1; }
  .pl-gallery--stack .pl-gallery__slide:last-child:nth-child(even) { grid-column: 1 / -1; } /* lead + odd tail: the last one fills the row */
  .pl-gallery--stack .pl-gallery__controls { display: none; }
  .pl-swatches { gap: 14px; }
  .pl-product__buy { position: sticky; top: var(--pl-buy-top, 20px); padding: 6px 0 0; max-height: none; }

  .pl-transform__inner { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 88px); align-items: center; max-width: 1320px; margin: 0 auto; }
  .pl-transform__copy { gap: 28px; }
  .pl-steps { grid-template-columns: 1fr; gap: 0; }
  .pl-step { border-top: 0; border-left: 3px solid var(--pl-line-strong); padding: 14px 0 14px 18px; grid-template-columns: 3.2rem 1fr; }
  .pl-step__n { font-size: 2.08rem; }
  .pl-step__t strong { font-size: 1.76rem; }
  .pl-step[aria-current="step"] { border-left-color: var(--pl-coral); }
  .pl-transform__frame { width: min(100%, 72svh, 620px); }

  .pl-material { grid-template-columns: 1.1fr 1fr; gap: clamp(32px, 5vw, 88px); align-items: center; max-width: 1320px; margin: 0 auto; }
  .pl-size { grid-template-columns: .8fr 1.2fr; gap: 56px; align-items: start; max-width: 1320px; margin: 0 auto; }
  .pl-size__panel { grid-template-columns: 1.35fr 1fr; align-items: center; gap: 40px; }
  .pl-looks { max-width: 1320px; margin-inline: auto; grid-template-columns: .85fr 1.15fr; column-gap: clamp(32px, 5vw, 88px); align-items: center; padding-inline: var(--pl-gutter); }
  .pl-looks__head, .pl-looks__figure, .pl-looks > .pl-note { padding-inline: 0; margin-inline: 0; }
  .pl-looks__status { margin-inline: 0; } /* keeps its card padding */
  .pl-looks__head { grid-column: 1; grid-row: 1; align-self: end; }
  .pl-looks__figure { grid-column: 2; grid-row: 1 / span 3; }
  .pl-looks__controls { grid-column: 1; grid-row: 2; align-self: start; }
  .pl-looks__rail { grid-auto-flow: row; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-auto-columns: auto; gap: 16px 12px; overflow: visible; padding: 6px 0 8px; -webkit-mask-image: none; mask-image: none; } /* two rows of five */
  .pl-look { width: 100%; align-content: start; }
  .pl-looks__rail li { min-width: 0; }
  .pl-looks > .pl-note { grid-column: 1 / -1; }
  .pl-proof, .pl-help { max-width: 1320px; margin-inline: auto; }
  .pl-proof__head { text-align: center; justify-items: center; }
  .pl-help { grid-template-columns: .8fr 1.2fr; column-gap: 72px; align-items: start; }
  .pl-help > .pl-h2 { grid-row: span 2; }
  .pl-moment { max-width: 1320px; margin: 0 auto; grid-template-columns: 1fr 1.1fr; column-gap: clamp(32px, 5vw, 88px); align-items: center; } /* same grid as the material section, mirrored */
  .pl-moment img { aspect-ratio: 5 / 4; object-position: 50% 60%; } /* matches the hand photo's shape */
  .pl-moment__media { order: 2; } /* photo right, so photos alternate: Nacho right, hand left, design preview right */
  .pl-moment > .pl-note { grid-column: 1 / -1; }
  .pl-footer { grid-template-columns: 1fr 1.4fr; column-gap: 64px; }
  .pl-footer__cols { grid-template-columns: repeat(3, 1fr); }
  .pl-footer__cols > div:last-child { grid-column: auto; }
  .pl-news, .pl-footer__legal, .pl-footer > .pl-note { grid-column: 1 / -1; }
  .pl-news { max-width: 520px; }
  .pl-sticky { display: none; }
}

/* ==========================================================================
   Reduced motion: no pin, same story as three stills, nothing withheld
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .pl *, .pl *::before, .pl *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .pl [data-sc-in] { opacity: 1; transform: none; }
  .pl-transform { height: auto !important; padding: var(--pl-section) 0 calc(var(--pl-section) * .6); }
  .pl-transform__stage { position: static !important; height: auto; overflow: visible; }
  .pl-transform__figure { display: none; }
  .pl-step { cursor: default; color: var(--pl-ink); border-top-color: var(--pl-coral); }
  .pl-step__t span { display: block; }
  .pl-stills { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .pl-stills__item p { font-size: 1.36rem; font-weight: 700; margin-top: 6px; }
  .pl-stills__img { aspect-ratio: 1; border-radius: 12px; overflow: hidden; background: repeating-linear-gradient(-45deg, #E8E1D6 0 10px, #E3DBCF 10px 20px); display: grid; place-items: center; }
  .pl-stills__img span { font-size: 1.28rem; color: var(--pl-ink-2); }
  .pl-stills__img img { width: 100%; height: 100%; object-fit: cover; }
  .pl-stills__img--art img { object-fit: cover; }
  .pl-transform > .pl-note--float { position: static; margin: 18px var(--pl-gutter) 0; }
  .pl-sticky { transition: none; }
}

.pl-turn__confirm { margin-top: 18px; }
.pl-world__status.pl-confirm { margin: 0 var(--pl-gutter); }
@media (min-width: 990px) { .pl-world__status.pl-confirm { margin: 0; } }

/* two before/after sliders */
.pl-ba-two { display: grid; gap: 18px; padding: 0 var(--pl-gutter); width: 100%; max-width: calc(900px + 2 * var(--pl-gutter)); margin: 0 auto; }
.pl-ba-item { margin: 0; display: grid; gap: 8px; }
.pl-ba-item figcaption { text-align: center; font-family: var(--pl-serif); font-size: 1.76rem; }
.pl-ba-two .pl-ba--full { aspect-ratio: 3 / 4; }
@media (min-width: 700px) { .pl-ba-two { grid-template-columns: 1fr 1fr; gap: 24px; } }

/* before/after slider: the "before" is the original photo as a small tilted print on a table, the "after" the finished blanket */
.pl-ba-three { display: grid; gap: 22px; padding: 0 var(--pl-gutter); width: 100%; max-width: 1320px; margin: 0 auto; }
.pl-ba--print { aspect-ratio: 1; background: #F4EEE6; }
.pl-ba--print .pl-ba__before { display: grid; place-items: center; background: radial-gradient(90% 80% at 40% 35%, #FBF8F3, #EDE5DA); }
.pl-ba__print { width: 50%; padding: 7px 7px 26px; background: #fff; border-radius: 3px; box-shadow: 0 14px 26px -10px rgb(52 46 42 / .45); transform: rotate(-5deg); }
.pl .pl-ba__print img { width: 100%; aspect-ratio: 3 / 4; height: auto; object-fit: cover; border-radius: 2px; transform: none; }
.pl-ba--print .pl-ba__after { background: radial-gradient(90% 80% at 40% 35%, #FBF8F3, #EDE5DA); }
.pl .pl-ba--print .pl-ba__after img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; transform: scale(1.02); transform-origin: 50% 50%; pointer-events: none; filter: drop-shadow(0 10px 14px rgb(52 46 42 / .18)); } /* the whole blanket on the same table as the photo */
@media (min-width: 990px) { .pl-ba-three { grid-template-columns: repeat(3, 1fr); gap: 22px; } }

/* living-room pieces link to their products */
.pl-room__link { cursor: pointer; outline: none; }
.pl-room__link > g { transition: transform .25s var(--pl-ease), filter .25s; transform-box: fill-box; transform-origin: 50% 50%; }
.pl-room__link:hover > g, .pl-room__link:focus-visible > g { transform: translateY(-4px) scale(1.03); filter: drop-shadow(0 10px 12px rgb(52 46 42 / .3)); }
.pl-room__link:focus-visible > g { outline: 3px solid var(--pl-ink); }

/* Image slot: a placeholder that describes the photo to create (prototype) */
.pl-slot { width: 100%; height: 100%; min-height: 160px; display: grid; place-content: center; justify-items: center; gap: 6px; padding: 18px; text-align: center; border-radius: var(--pl-r-media);
  border: 1.5px dashed #CDBBA9; background: repeating-linear-gradient(-45deg, #F6F0E8 0 12px, #F1E9DE 12px 24px); color: var(--pl-ink-2); }
.pl-slot svg { color: var(--pl-coral); }
.pl-slot__t { font-size: 1.184rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pl-ink); }
.pl-slot__d { font-size: 1.408rem; line-height: 1.45; max-width: 34ch; }
.pl-slot__s { font-size: 1.216rem; font-weight: 600; padding: 2px 9px; border-radius: 99px; background: #fff; }
.pl-slot--sm .pl-slot__d { font-size: 1.216rem; } .pl-slot--sm { padding: 10px; min-height: 0; }
.pl-moment__media .pl-slot { aspect-ratio: 5 / 4; }

/* "Add your photo" opens the picker in place: a camera icon instead of an arrow */
.pl [data-pl-nextstep].is-photo svg { display: none; }
.pl [data-pl-nextstep].is-photo::before { content: ""; width: 16px; height: 16px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M4 8.5A1.5 1.5 0 0 1 5.5 7h2.2l1.4-2h5.8l1.4 2h2.2A1.5 1.5 0 0 1 20 8.5v9a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 4 17.5v-9Z'/%3E%3Ccircle cx='12' cy='13' r='3.4'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M4 8.5A1.5 1.5 0 0 1 5.5 7h2.2l1.4-2h5.8l1.4 2h2.2A1.5 1.5 0 0 1 20 8.5v9a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 4 17.5v-9Z'/%3E%3Ccircle cx='12' cy='13' r='3.4'/%3E%3C/svg%3E") center / contain no-repeat; }
.pl [data-pl-nextstep].is-photo { background: var(--pl-ink); border-color: var(--pl-ink); color: var(--pl-ivory); }
.pl [data-pl-nextstep].is-photo:hover, .pl [data-pl-nextstep].is-photo:focus, .pl [data-pl-nextstep].is-photo:active { background: #1F1A17; border-color: #1F1A17; color: var(--pl-ivory); } /* stays dark after a tap (was turning pale) */
.pl [data-pl-nextstep].is-cart:focus, .pl [data-pl-nextstep].is-cart:active { background: var(--pl-coral-deep); border-color: var(--pl-coral-deep); color: #fff; }
/* The card's title already says "Start with their photo": keep the field label for screen readers only */
.pl-create--lead .pl-field[data-pl-step="photo"] > .pl-field__legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Closing band: the emotional why, then the one next step */
.pl-close { display: block; padding: var(--pl-section) var(--pl-gutter); background: var(--pl-soft); margin-top: var(--pl-section); }
.pl-close__inner { max-width: 760px; margin: 0 auto; display: grid; gap: 18px; justify-items: center; text-align: center; }
.pl-close__why { list-style: none; margin: 6px 0 4px; padding: 0; display: grid; gap: 12px; width: 100%; }
.pl-close__why li { display: grid; gap: 2px; color: var(--pl-ink-2); }
.pl-close__why strong { color: var(--pl-ink); font-family: var(--pl-serif); font-weight: 400; font-size: 2rem; }
.pl .pl-close__cta { display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 0 28px; border-radius: 99px; background: var(--pl-coral-deep, #A44A3F); color: #fff; font-weight: 700; text-decoration: none; }
.pl .pl-close__cta:hover { filter: brightness(1.06); }
.pl-close__fine { font-size: 1.376rem; color: var(--pl-ink-2); }
@media (min-width: 990px) { .pl-close__why { grid-template-columns: repeat(3, 1fr); gap: 28px; } }
.pl-close + [data-pl-site="set"], .pl-close ~ * .pl-set { margin-top: 0; }
.pl-proof .pl-reviews { margin-top: clamp(56px, 7vw, 96px); } /* breathing room after the before/after sliders */

/* Small design-preview checkbox under an "Add to cart" next-step button */
.pl-minipv { display: none; align-items: center; gap: 8px; flex-basis: 100%; font-size: 1.376rem; color: var(--pl-ink-2); cursor: pointer; }
.is-cart + .pl-minipv { display: flex; }
.pl-minipv input { width: 17px; height: 17px; margin: 0; accent-color: var(--pl-ink); flex: none; cursor: pointer; }
.pl-minipv__t { color: var(--pl-ink-3, var(--pl-ink-2)); opacity: .8; }
.pl-close__inner .pl-minipv { flex-basis: auto; justify-content: center; }


/* "For you / As a gift / In their memory": the label on top, the reason under it */
.pl-why--stack strong { display: block; font-family: var(--pl-serif); font-weight: 400; font-size: 1.84rem; line-height: 1.2; color: var(--pl-ink); margin-bottom: 2px; }
.pl-why--stack li { align-items: start; }

/* Size guide on phones: "Choose this size" sits beside the size, so it's reachable without scrolling */
@media (max-width: 989px) {
  .pl-size__facts { grid-template-columns: 1fr auto; column-gap: 12px; row-gap: 6px; align-items: center; }
  .pl-size__facts > * { grid-column: 1 / -1; }
  .pl-size__facts > .pl-size__dim { grid-column: 1; }
  .pl .pl-size__facts > .pl-btn { grid-column: 2; grid-row: 1; justify-self: end; min-height: 46px; padding: 0 16px; font-size: 1.52rem; }
  .pl-size .pl-size__dim { font-size: 3.04rem; }
}

/* "Better together" collection graphic: flat editorial composition (no room, no literal scale) */
.pl-bt__room--col { background: none; }
.pl-col { position: relative; aspect-ratio: 1 / 1; border-radius: var(--pl-r-media); overflow: hidden; background: #F3ECE3; isolation: isolate; }
.pl-col__arch { position: absolute; left: 7%; top: 7%; width: 47%; height: 56%; border-radius: 999px 999px 18px 18px; background: #EAD7C7; }
.pl-col__disc { position: absolute; right: -10%; bottom: -14%; width: 62%; aspect-ratio: 1; border-radius: 50%; background: #E3E3D3; }
.pl-col__ring { position: absolute; right: 9%; top: 7%; width: 15%; aspect-ratio: 1; border-radius: 50%; border: 1.5px solid #C98F7F; opacity: .7; }
.pl .pl-col__item { position: absolute; display: block; transition: transform .35s var(--pl-ease); }
.pl .pl-col__item:hover { transform: translateY(-4px); }
.pl .pl-col__item img { display: block; width: 100%; height: auto; }
.pl-col__item--portrait { left: 9%; top: 9%; width: 43%; }
.pl-col__frame { position: relative; display: block; aspect-ratio: 1; }
.pl .pl-col__item .pl-col__frame img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; mix-blend-mode: multiply; }
.pl .pl-col__item .pl-col__frame .pl-col__print { left: 20.2%; top: 12.75%; width: 59.6%; height: 74.6%; object-fit: cover; mix-blend-mode: normal; }
.pl-col__item--blanket { right: 6%; top: 18%; width: 50%; transform: rotate(3deg); z-index: 1; }
.pl .pl-col__item--blanket img { border-radius: 10px; box-shadow: 0 1px 0 rgb(52 46 42 / .06), 0 10px 20px -14px rgb(52 46 42 / .45); }
.pl .pl-col__item--blanket:hover { transform: rotate(3deg) translateY(-4px); }
.pl-col__item--pillow { left: 33%; bottom: 3%; width: 36%; z-index: 2; mix-blend-mode: multiply; }
.pl .pl-col__item--pillow img { mix-blend-mode: multiply; }
@media (min-width: 990px) { .pl-col { aspect-ratio: 5 / 4; } .pl-col__item--portrait { width: 37%; left: 10%; } .pl-col__arch { width: 41%; } .pl-col__item--pillow { width: 28%; left: 35%; bottom: 5%; } .pl-col__item--blanket { width: 40%; right: 8%; top: 12%; } }

/* "Better together", v3 (2026-10-03): big warm headline + three tall product cards on colour shapes. No room scene. */
.pl-set2 { display: grid; gap: 28px; padding: var(--pl-section) var(--pl-gutter); background: linear-gradient(180deg, var(--pl-ivory), #F6EEE6); }
.pl-set2__head { display: grid; gap: 12px; align-content: center; }
.pl-set2__kicker { display: flex; align-items: center; gap: 14px; font-size: 1.28rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--pl-coral-deep); }
.pl-set2__kicker::after { content: ""; width: 56px; height: 1.5px; background: currentColor; }
.pl-set2__title { font-family: var(--pl-serif); font-weight: 400; font-size: clamp(3.4rem, 10vw, 7rem); line-height: .98; letter-spacing: -.02em; }
.pl-set2__title em { display: block; color: var(--pl-coral); font-style: italic; white-space: nowrap; }
.pl-set2__lede { font-family: var(--pl-serif); font-size: clamp(2rem, 4.5vw, 2.72rem); color: var(--pl-ink); }
.pl-set2__cards { list-style: none; margin: 0 calc(var(--pl-gutter) * -1); padding: 6px var(--pl-gutter) 12px; display: grid; grid-auto-flow: column; grid-auto-columns: 78%; gap: 16px;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--pl-gutter); scrollbar-width: none; }
.pl-set2__cards::-webkit-scrollbar { display: none; }
.pl-set2__cards li { scroll-snap-align: start; display: grid; }
.pl .pl-set2__card { --tint: #F0D9CC; --tint2: #E7C3B1; display: grid; justify-items: center; gap: 6px; padding: 18px 18px 24px; border-radius: 22px; background: #fff;
  box-shadow: 0 1px 2px rgb(52 46 42 / .05), 0 18px 40px -26px rgb(120 70 50 / .45); text-decoration: none; color: inherit; text-align: center;
  transition: transform .35s var(--pl-ease), box-shadow .35s var(--pl-ease); }
.pl .pl-set2__card:hover { transform: translateY(-6px); box-shadow: 0 1px 2px rgb(52 46 42 / .05), 0 26px 50px -24px rgb(120 70 50 / .5); }
.pl .pl-set2__card--pillow { --tint: #DDE5D6; --tint2: #C9D5BF; }
.pl .pl-set2__card--blanket { --tint: #F3E3C9; --tint2: #EACFA6; }
.pl .pl-set2__card.is-here { background: #FFFCF8; box-shadow: inset 0 0 0 1.5px var(--tint2); }
.pl-set2__kind { font-size: 1.184rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--pl-ink); padding: 6px 14px; border-radius: 99px; background: var(--tint); }
.pl-set2__media { position: relative; width: 100%; aspect-ratio: 1; margin: 10px 0 12px; display: grid; place-items: center; isolation: isolate; }
.pl-set2__blob { position: absolute; inset: 6% 4% 2%; border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%; background: radial-gradient(120% 100% at 30% 20%, var(--tint), var(--tint2)); transition: transform .6s var(--pl-ease); }
.pl-set2__card--pillow .pl-set2__blob { border-radius: 56% 44% 52% 48% / 44% 56% 44% 56%; }
.pl-set2__card--blanket .pl-set2__blob { border-radius: 999px 999px 28px 28px; }
.pl .pl-set2__card:hover .pl-set2__blob { transform: rotate(-4deg) scale(1.03); }
.pl .pl-set2__media img { position: relative; width: 86%; height: 86%; object-fit: contain; mix-blend-mode: multiply; transition: transform .45s var(--pl-ease); }
.pl .pl-set2__card:hover .pl-set2__media img { transform: rotate(-2deg) scale(1.04); }
.pl-set2__name { font-family: var(--pl-serif); font-size: 2.32rem; line-height: 1.12; }
.pl-set2__price { font-weight: 700; font-size: 1.68rem; }
.pl-set2__go { margin-top: 6px; font-weight: 700; font-size: 1.6rem; color: var(--pl-coral-deep); }
.is-here .pl-set2__go { color: var(--pl-ink-2); font-weight: 600; }
.pl-set2__offer { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 18px; border-radius: 16px; border: 1.5px dashed #D9A99C; background: #FBEFEA; color: var(--pl-ink); font-size: 1.632rem; text-align: center; }
.pl-set2__offer strong { color: var(--pl-coral-deep); font-size: 1.1em; }
.pl-set2__offer svg { color: var(--pl-coral); flex: none; }
@media (min-width: 990px) {
  .pl-set2 { grid-template-columns: minmax(0, .9fr) minmax(0, 2.4fr); column-gap: clamp(32px, 4vw, 72px); row-gap: 36px; padding-inline: max(var(--pl-gutter), calc((100vw - 1400px) / 2 + var(--pl-gutter))); }
  .pl-set2__cards { margin: 0; padding: 0; grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-columns: auto; overflow: visible; gap: 22px; }
  .pl-set2__offer { grid-column: 1 / -1; }
}
/* v3 refinements: bigger cards, clean cut-outs */
.pl .pl-set2__card { padding: 22px 22px 28px; gap: 8px; }
.pl-set2__media { margin: 14px 0 16px; }
.pl .pl-set2__media .pl-set2__img { width: 84%; height: 84%; object-fit: contain; filter: contrast(1.06) brightness(1.04); }
.pl .pl-set2__card--blanket .pl-set2__img { width: 70%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 8px; mix-blend-mode: normal; filter: none; box-shadow: 0 10px 22px -12px rgb(80 50 30 / .45); transform: rotate(3deg); }
.pl .pl-set2__card--blanket:hover .pl-set2__img { transform: rotate(1deg) scale(1.04); }
.pl-set2__frame { position: relative; width: 84%; aspect-ratio: 1; display: block; transition: transform .45s var(--pl-ease); }
.pl .pl-set2__frame img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; mix-blend-mode: multiply; }
.pl .pl-set2__frame .pl-set2__print { left: 20.2%; top: 12.75%; width: 59.6%; height: 74.6%; object-fit: cover; mix-blend-mode: normal; }
.pl .pl-set2__card:hover .pl-set2__frame { transform: rotate(-2deg) scale(1.04); }
.pl-set2__name { font-size: clamp(2.24rem, 1.76rem + .8vw, 2.8rem); }
@media (min-width: 990px) { .pl-set2 { grid-template-columns: minmax(0, .8fr) minmax(0, 2.8fr); } .pl-set2__title { font-size: clamp(5rem, 4.6vw, 7.6rem); } }

/* "Better together", v4 (2026-10-03): headline + collage on top, three horizontal product cards below */
.pl-set3 .pl-col { background: none; aspect-ratio: 6 / 5; overflow: visible; }
.pl-set3 .pl-col__arch { left: 4%; top: 10%; width: 44%; height: 72%; background: #EED8CA; border-radius: 999px 999px 24px 24px; }
.pl-set3 .pl-col__disc { right: -2%; bottom: 0; top: auto; width: 58%; background: #E7C1A9; border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%; }
.pl-set3 .pl-col__ring { right: 4%; top: 2%; width: 13%; border-color: var(--pl-coral); opacity: .55; }
.pl-set3 .pl-col__item--portrait { left: 6%; top: 6%; width: 42%; }
.pl-set3 .pl-col__item--blanket { right: 4%; top: 6%; width: 47%; transform: rotate(3deg); }
.pl-set3 .pl-col__item--pillow { left: 33%; bottom: 0; width: 36%; z-index: auto; }
.pl-col__tag { position: absolute; left: 50%; top: -6px; transform: translate(-50%, -100%); font: 600 1.184rem/1 var(--pl-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--pl-ink); padding: 6px 12px; border-radius: 99px; background: #fff; box-shadow: 0 4px 10px -6px rgb(52 46 42 / .3); white-space: nowrap; mix-blend-mode: normal; }
.pl-col__item--pillow .pl-col__tag { top: auto; bottom: -8px; transform: translate(-50%, 100%); }
.pl-col__item--blanket .pl-col__tag { transform: translate(-50%, -100%) rotate(-3deg); }
.pl-set3 .pl-col__item--pillow { mix-blend-mode: normal; }
.pl-set3 .pl-col__item, .pl-set3 .pl-col__item:hover { transform: none; } .pl-set3 .pl-col__item--blanket, .pl-set3 .pl-col__item--blanket:hover { transform: rotate(3deg); }
.pl-set3 .pl-col { isolation: isolate; }
.pl-set3 .pl-col__item--pillow img { mix-blend-mode: multiply; }
/* horizontal cards: thumb left, text right */
.pl-set3 .pl-set2__cards { grid-auto-columns: 86%; }
.pl .pl-set3 .pl-set2__card { grid-template-columns: 40% 1fr; grid-template-rows: auto auto auto 1fr; justify-items: start; text-align: left; column-gap: 16px; row-gap: 4px; padding: 14px 18px 14px 14px; align-content: center; }
.pl-set3 .pl-set2__media { grid-row: 1 / span 4; grid-column: 1; margin: 0; align-self: center; }
.pl-set3 .pl-set2__kind { display: none; }
.pl-set3 .pl-set2__name { grid-column: 2; font-size: 2.16rem; align-self: end; }
.pl-set3 .pl-set2__price, .pl-set3 .pl-set2__go { grid-column: 2; }
.pl-set3 .pl-set2__go { align-self: start; }
@media (min-width: 990px) {
  .pl-set3 { grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr); }
  .pl-set3 .pl-set2__head { grid-column: 1; grid-row: 1; }
  .pl-set3__art { grid-column: 2; grid-row: 1; padding-top: 30px; }
  .pl-set3 .pl-set2__cards { grid-column: 1 / -1; }
}
@media (max-width: 989px) { .pl-set3__art { margin: 34px 0 40px; } }
@media (min-width: 990px) { .pl-set3__art { padding-bottom: 36px; } }
/* v4 fix: each piece is a cut-paper card (no blend modes, so no tint bleed) */
.pl-set3 .pl-col__item { background: #fff; padding: 3%; border-radius: 14px; box-shadow: 0 1px 0 rgb(52 46 42 / .05), 0 16px 30px -18px rgb(120 70 50 / .5); }
.pl-set3 .pl-col__item img, .pl-set3 .pl-col__frame img, .pl-set3 .pl-col__item--pillow img { mix-blend-mode: normal !important; }
.pl-set3 .pl-col__item--blanket { padding: 0; background: none; box-shadow: none; }
.pl-set3 .pl-col__item--portrait, .pl-set3 .pl-col__item--portrait:hover { transform: rotate(-3deg); width: 38%; left: 7%; top: 8%; }
.pl-set3 .pl-col__item--pillow, .pl-set3 .pl-col__item--pillow:hover { transform: rotate(-1.5deg); width: 31%; left: 36%; bottom: 2%; }
.pl-set3 .pl-col__item--portrait .pl-col__tag { transform: translate(-50%, -100%) rotate(3deg); }
.pl-set3 .pl-col__item--pillow .pl-col__tag { transform: translate(-50%, 100%) rotate(1.5deg); }
/* v3.1: bigger product photos, tighter card typography */
.pl .pl-set2__card { padding: 16px 16px 22px; gap: 4px; }
.pl-set2__media { width: 100%; margin: 10px 0 14px; }
.pl-set2__blob { inset: 0; }
.pl .pl-set2__media .pl-set2__img, .pl-set2__frame { width: 96%; height: 96%; }
.pl .pl-set2__card--blanket .pl-set2__img { width: 80%; height: auto; }
.pl-set2__name { font-size: clamp(2rem, 1.68rem + .5vw, 2.32rem); line-height: 1.2; letter-spacing: -.005em; text-wrap: balance; max-width: 14ch; }
.pl-set2__price { font-size: 1.6rem; margin-top: 2px; }
.pl-set2__go { margin-top: 8px; font-size: 1.52rem; }
.pl-set2__lede { font-size: clamp(1.68rem, 3.6vw, 2rem); color: var(--pl-ink-2); }
@media (min-width: 990px) { .pl-set2 { grid-template-columns: minmax(0, .75fr) minmax(0, 3fr); } }
.pl-set2__name { max-width: none; }
/* v3.2: no colour shapes behind products; tighter price → link */
.pl-set2__blob { display: none; }
.pl-set2__media { background: var(--pl-soft); border-radius: 14px; }
.pl .pl-set2__card.is-here .pl-set2__media { background: #F6EFE6; }
.pl .pl-set2__media .pl-set2__img { mix-blend-mode: multiply; }
.pl-set2__go { margin-top: 2px; }
.pl .pl-set2__card--blanket .pl-set2__img { width: 68%; }
@media (max-width: 989px) { .pl-set2__title { font-size: clamp(3.2rem, 9vw, 4.4rem); } .pl-set2__title em { display: inline; } }
.pl-set2__lede { font-family: var(--pl-sans); font-size: 1.68rem; }
.pl .pl-set2__card--blanket .pl-set2__img, .pl .pl-set2__card--blanket:hover .pl-set2__img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; border-radius: 14px; box-shadow: none; transform: none; }

/* ===== Blanket consolidated revision pass (2026-10-03) ===== */
/* Phones: ~18% less air between price → Design and the design grid → Size */
@media (max-width: 989px) {
  .pl-form { margin-top: 23px; gap: 25px; }
}
/* Carried-over photo: quiet helper line, not a callout box */
.pl-field__carried { font-size: 1.44rem; color: var(--pl-ink-2); background: none; border: 0; padding: 0; box-shadow: none; }
/* Transformation steps: lighter active state (coral accent, no heavy dark ring) */
.pl .pl-step:focus-visible { outline: 2px solid var(--pl-coral); outline-offset: 2px; border-radius: 4px; }
.pl .pl-step:focus:not(:focus-visible) { outline: none; }
.pl-step { color: #6F665F; }
.pl-step[aria-current="step"] { color: var(--pl-ink); }
.pl-step[aria-current="step"] .pl-step__t strong { font-weight: 700; }
.pl-transform__tag { background: #fff; color: var(--pl-ink); box-shadow: 0 1px 3px rgb(52 46 42 / .15); }
/* Before/after: a lighter, more elegant handle (still 44px+ to grab) */
.pl-ba__handle { width: 44px; height: 44px; margin: -22px 0 0 -22px; background: rgb(255 255 255 / .94); box-shadow: 0 2px 8px rgb(52 46 42 / .18), 0 0 0 1px rgb(52 46 42 / .08); }
.pl-ba__handle:focus-visible { outline: 2px solid var(--pl-coral); outline-offset: 3px; }
.pl-ba__tag--after { background: rgb(252 250 247 / .92); color: var(--pl-ink); }
/* FAQ: focus ring sits on the question row only, consistent and light */
.pl .pl-acc summary:focus-visible { outline: 2px solid var(--pl-coral); outline-offset: 2px; border-radius: 6px; }
.pl .pl-acc summary:focus:not(:focus-visible) { outline: none; }
/* Lower design explorer: quiet note about painting */
.pl-looks__paintnote { margin: 0 var(--pl-gutter); font-size: 1.44rem; color: var(--pl-ink-2); }
.pl-looks__paintnote[hidden] { display: none; }
@media (min-width: 990px) { .pl-looks__paintnote { margin-inline: 0; } }
[data-pl-scene]::after { content: none; }
/* Desktop: pull copy and image closer together (transformation + "Made for the people") */
@media (min-width: 990px) {
  .pl-transform__inner { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); column-gap: clamp(28px, 3.2vw, 56px); max-width: 1240px; }
  .pl-moment { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); column-gap: clamp(28px, 3.2vw, 56px); max-width: 1240px; }
}
/* "For you / As a gift / In their memory": one line, serif label + sans reason */
.pl-why--stack strong { display: inline; font-size: 1.792rem; margin: 0 4px 0 0; }
.pl-why--stack li { align-items: baseline; }
.pl-why--stack li { align-items: start; } .pl-why--stack .pl-why__icon { margin-top: 3px; }
/* Phones: once a size is chosen, the next-step button takes the "Choose this size" spot (beside the size), the confirmation sits under it */
@media (max-width: 989px) {
  .pl-size__facts > .pl-size__chosen:not([hidden]) { display: contents; }
  .pl-size__chosen .pl-confirm__msg { grid-column: 1 / -1; grid-row: 2; font-size: 1.472rem; }
  .pl .pl-size__chosen [data-pl-nextstep] { grid-column: 2; grid-row: 1; justify-self: end; align-self: center; }
}

/* Selection card, compact: "✓ X selected" on top, full-width next-step button, preview checkbox under it */
.pl-confirm { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 12px; padding: 16px; }
.pl-confirm__msg { font-size: 1.52rem; }
.pl-confirm__msg::before { width: 20px; height: 20px; }
.pl .pl-confirm a[data-pl-nextstep] { justify-content: center; min-height: 50px; font-size: 1.6rem; width: 100%; }
.pl-confirm .pl-minipv { margin-top: -2px; }
@media (max-width: 989px) {
  .pl-size__facts > .pl-size__chosen:not([hidden]) { display: flex; }
  .pl-size__chosen .pl-confirm__msg { grid-column: auto; grid-row: auto; }
  .pl .pl-size__chosen [data-pl-nextstep] { grid-column: auto; grid-row: auto; justify-self: auto; }
  .pl-size__facts > .pl-size__chosen { grid-column: 1 / -1; grid-row: 2; }
}
.pl-confirm .pl-minipv { flex-basis: auto; }
.pl-confirm.pl-size__chosen { width: 100%; box-sizing: border-box; }
.pl .pl-cart__nudge a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
/* Selection-card buttons match the main Add to cart buttons: same radius and weight, sized to the label */
.pl .pl-confirm a[data-pl-nextstep] { width: auto; align-self: flex-start; border-radius: var(--pl-r, 12px); min-height: 52px; padding: 0 26px; font-size: 1.68rem; font-weight: 700; }
.pl .pl-upload__file { display: none; } /* filename hidden on every product page */

/* Live chat (Shopify Inbox placeholder) */
.pl-chat { position: fixed; right: 16px; bottom: 16px; z-index: 60; }
html.pl-sticky-on .pl-chat { bottom: 92px; }
.pl .pl-chat__bubble { width: 56px; height: 56px; border-radius: 50%; border: 0; display: grid; place-items: center; background: var(--pl-ink); color: var(--pl-ivory); cursor: pointer; box-shadow: 0 8px 20px -8px rgb(52 46 42 / .55); }
.pl-chat__panel { position: absolute; right: 0; bottom: 68px; width: min(340px, calc(100vw - 32px)); background: var(--pl-ivory); border-radius: 18px; box-shadow: 0 20px 50px -20px rgb(52 46 42 / .5), 0 0 0 1px var(--pl-line); overflow: hidden; display: grid; }
.pl-chat__panel[hidden] { display: none; }
.pl-chat__head { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; background: var(--pl-ink); color: var(--pl-ivory); }
.pl-chat__head p { display: grid; font-size: 1.312rem; } .pl-chat__head strong { font-size: 1.6rem; }
.pl .pl-chat__x { border: 0; background: none; color: inherit; font-size: 2.56rem; line-height: 1; cursor: pointer; padding: 4px 8px; }
.pl-chat__body { padding: 16px; display: grid; gap: 8px; min-height: 120px; align-content: start; }
.pl-chat__msg { background: #fff; padding: 10px 12px; border-radius: 14px 14px 14px 4px; font-size: 1.472rem; box-shadow: inset 0 0 0 1px var(--pl-line); max-width: 85%; }
.pl-chat__msg--me { justify-self: end; background: var(--pl-coral); color: #fff; box-shadow: none; border-radius: 14px 14px 4px 14px; }
.pl-chat__form { display: flex; gap: 8px; padding: 0 12px 10px; }
.pl-chat__form .pl-input { flex: 1; min-height: 44px; }
.pl .pl-chat__form .pl-btn { min-height: 44px; padding: 0 16px; }
.pl-chat__note { font-size: 1.184rem; color: var(--pl-ink-2); padding: 0 16px 12px; }
.pl .pl-chat__bubble { box-shadow: 0 0 0 2px var(--pl-ivory), 0 8px 20px -8px rgb(52 46 42 / .55); }
.pl-why3 { margin-top: 10px; text-align: center; } .pl-why3 li { justify-items: center; } @media (min-width: 990px) { .pl-why3 { gap: 20px; } }
.pl-why3 li { align-content: start; gap: 4px; font-size: 1.472rem; } .pl-why3 strong { font-size: 1.728rem; white-space: nowrap; } @media (min-width: 990px) { .pl-why3 { gap: 14px; } }
.pl-why3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } .pl-why3 li { font-size: 1.376rem; } @media (max-width: 400px) { .pl-why3 strong { font-size: 1.6rem; white-space: normal; } }
.pl-why3__icon { color: var(--pl-coral); display: grid; place-items: center; margin-bottom: 4px; }
[data-pl-product="everyday-love-blanket"] .pl-swatch__tile, [data-pl-product="everyday-love-blanket"] .pl-look__tile { aspect-ratio: 1; }

/* "Add your photo" next-step button: white with a coral outline (was solid dark) */
.pl .pl-confirm a[data-pl-nextstep].is-photo, .pl [data-pl-nextstep].is-photo { background: #fff; border: 1.5px solid var(--pl-coral); color: var(--pl-coral-deep); }
.pl .pl-confirm a[data-pl-nextstep].is-photo:hover, .pl .pl-confirm a[data-pl-nextstep].is-photo:focus, .pl .pl-confirm a[data-pl-nextstep].is-photo:active,
.pl [data-pl-nextstep].is-photo:hover, .pl [data-pl-nextstep].is-photo:focus, .pl [data-pl-nextstep].is-photo:active { background: #FBF1EE; border-color: var(--pl-coral-deep); color: var(--pl-coral-deep); }
.pl [data-pl-nextstep].is-photo:focus-visible { outline: 2px solid var(--pl-coral); outline-offset: 3px; }

/* ===== Blanket: same refinements as the pillow page ===== */
/* slim "Create / Finish" button before the FAQ (desktop only; phones have the sticky bar) */
.pl-close.pl-close--cta { background: none; padding: 0 var(--pl-gutter); margin-top: clamp(40px, 6vw, 72px); margin-bottom: 0; display: grid; justify-items: center; gap: 10px; }
/* "Made for the people who love them": balanced points with dividers, blush icon circles, a line above, desktop text spans the photo's height */
[data-pl-product="everyday-love-blanket"] .pl-moment .pl-why3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; text-align: center; margin-top: 10px; padding-top: 30px; border-top: 1px solid var(--pl-line); }
[data-pl-product="everyday-love-blanket"] .pl-moment .pl-why3 li { padding: 2px 14px; align-content: start; justify-items: center; text-wrap: balance; }
[data-pl-product="everyday-love-blanket"] .pl-moment .pl-why3 li + li { border-left: 1px solid var(--pl-line); }
[data-pl-product="everyday-love-blanket"] .pl-moment .pl-why3 strong { white-space: normal; }
[data-pl-product="everyday-love-blanket"] .pl-moment .pl-why3__icon { width: 44px; height: 44px; border-radius: 50%; background: #FBF1EE; margin-bottom: 8px; }
@media (min-width: 990px) {
  [data-pl-product="everyday-love-blanket"] .pl-moment { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(28px, 3.2vw, 56px); align-items: stretch; }
  [data-pl-product="everyday-love-blanket"] .pl-moment__copy { display: flex; flex-direction: column; align-self: stretch; padding: 4px 0 0; }
  [data-pl-product="everyday-love-blanket"] .pl-moment .pl-why3 { margin-top: auto; }
  [data-pl-product="everyday-love-blanket"] .pl-moment .pl-lede { margin-bottom: 28px; max-width: 46ch; }
}
/* "Add your photo" in the selection cards: coral camera icon (as in the upload box), dark text, dashed dark outline */
[data-pl-product="everyday-love-blanket"] .pl-confirm a[data-pl-nextstep].is-photo { background: #fff; color: var(--pl-ink); border: 1.5px dashed var(--pl-ink); }
[data-pl-product="everyday-love-blanket"] .pl-confirm a[data-pl-nextstep].is-photo:hover, [data-pl-product="everyday-love-blanket"] .pl-confirm a[data-pl-nextstep].is-photo:focus, [data-pl-product="everyday-love-blanket"] .pl-confirm a[data-pl-nextstep].is-photo:active { background: var(--pl-ivory); color: var(--pl-ink); border-color: var(--pl-ink); }
[data-pl-product="everyday-love-blanket"] .pl-confirm a[data-pl-nextstep].is-photo::before { width: 22px; height: 22px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 8.5A1.5 1.5 0 0 1 5.5 7h2.2l1.4-2h5.8l1.4 2h2.2A1.5 1.5 0 0 1 20 8.5v9a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 4 17.5v-9Z' fill='none' stroke='%23B15947' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='13' r='3.4' fill='none' stroke='%23B15947' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat; -webkit-mask: none; mask: none; }
#pl-looks { scroll-margin-top: 72px; }

/* Uploaded photo thumbnail: left of the selection card's content, and at the left of the phone sticky bar */
.pl-confirm.has-photo { display: grid; grid-template-columns: 68px minmax(0, 1fr); column-gap: 16px; row-gap: 10px; align-items: center; }
.pl-confirm.has-photo > * { grid-column: 2; }
.pl-confirm.has-photo > .pl-confirm__thumb { grid-column: 1; grid-row: 1 / span 3; width: 68px; height: 68px; border-radius: 12px; object-fit: cover; box-shadow: inset 0 0 0 1px rgb(52 46 42 / .14); align-self: start; }
.pl-confirm.has-photo > a[data-pl-nextstep] { justify-self: start; }
.pl-sticky__thumb { flex: none; width: 46px; height: 46px; border-radius: 10px; object-fit: cover; box-shadow: inset 0 0 0 1px rgb(52 46 42 / .14); }
.pl-confirm.has-photo .pl-minipv { white-space: nowrap; } .pl-confirm.has-photo > .pl-confirm__thumb { width: 60px; height: 60px; } .pl-confirm.has-photo { grid-template-columns: 60px minmax(0, 1fr); }

/* Selection card with their photo, v2: a small thumbnail beside the "selected" line; the button and checkbox use the full card width below */
.pl-confirm.has-photo { grid-template-columns: 48px minmax(0, 1fr); column-gap: 12px; row-gap: 14px; align-items: center; }
.pl-confirm.has-photo > * { grid-column: 1 / -1; }
.pl-confirm.has-photo > .pl-confirm__thumb { grid-column: 1; grid-row: 1; width: 48px; height: 48px; border-radius: 10px; align-self: center; }
.pl-confirm.has-photo > .pl-confirm__msg { grid-column: 2; grid-row: 1; }
.pl-confirm.has-photo .pl-confirm__msg::before { display: none; } /* the photo replaces the check badge */
.pl-confirm.has-photo .pl-minipv { white-space: normal; }
/* phones: the size card was forced to flex (centered); keep the photo layout here too */
.pl-size__facts > .pl-size__chosen.has-photo:not([hidden]) { display: grid; text-align: left; justify-items: start; }
.pl-size__facts > .pl-size__chosen.has-photo .pl-confirm__msg { justify-content: flex-start; }
/* card with their photo: same look as the buy box summary / sticky bar (photo, product, selection) */
.pl-confirm.has-photo > .pl-confirm__msg { display: none; }
.pl-confirm.has-photo > .pl-confirm__sel { grid-column: 2; grid-row: 1; display: grid; gap: 2px; margin: 0; text-align: left; }
.pl-confirm__sellabel { font-size: 1.36rem; color: var(--pl-ink-2); }
.pl-confirm__seltext { font-size: 1.6rem; color: var(--pl-ink); }
.pl-confirm.has-photo > .pl-confirm__thumb { display: block; background-size: cover; background-position: center; }
.pl-confirm { background: var(--pl-soft); box-shadow: none; } /* warm, like the personalization card (was pure white) */
/* "No name, thanks": quiet skip link beside the name step */
.pl .pl-skipname { justify-self: start; align-self: center; border: 0; background: none; padding: 4px 2px; font: 600 1.472rem var(--pl-sans); color: var(--pl-ink-2); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.pl .pl-skipname[hidden] { display: none; }
.pl-confirm.has-photo > .pl-skipname { grid-column: 1 / -1; }

/* ===== Portrait: the same refinements as the blanket (moment section, photo button, square swatches) ===== */
[data-pl-product="everyday-love-portrait"] .pl-swatch__tile, [data-pl-product="everyday-love-portrait"] .pl-look__tile { aspect-ratio: 1; }
[data-pl-product="everyday-love-portrait"] .pl-moment .pl-why3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; text-align: center; margin-top: 10px; padding-top: 30px; border-top: 1px solid var(--pl-line); }
[data-pl-product="everyday-love-portrait"] .pl-moment .pl-why3 li { padding: 2px 14px; align-content: start; justify-items: center; text-wrap: balance; }
[data-pl-product="everyday-love-portrait"] .pl-moment .pl-why3 li + li { border-left: 1px solid var(--pl-line); }
[data-pl-product="everyday-love-portrait"] .pl-moment .pl-why3 strong { white-space: normal; }
[data-pl-product="everyday-love-portrait"] .pl-moment .pl-why3__icon { width: 44px; height: 44px; border-radius: 50%; background: #FBF1EE; margin-bottom: 8px; }
[data-pl-product="everyday-love-portrait"] .pl-confirm a[data-pl-nextstep].is-photo { background: #fff; color: var(--pl-ink); border: 1.5px dashed var(--pl-ink); }
[data-pl-product="everyday-love-portrait"] .pl-confirm a[data-pl-nextstep].is-photo:hover, [data-pl-product="everyday-love-portrait"] .pl-confirm a[data-pl-nextstep].is-photo:focus, [data-pl-product="everyday-love-portrait"] .pl-confirm a[data-pl-nextstep].is-photo:active { background: var(--pl-ivory); color: var(--pl-ink); border-color: var(--pl-ink); }
[data-pl-product="everyday-love-portrait"] .pl-confirm a[data-pl-nextstep].is-photo::before { width: 22px; height: 22px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 8.5A1.5 1.5 0 0 1 5.5 7h2.2l1.4-2h5.8l1.4 2h2.2A1.5 1.5 0 0 1 20 8.5v9a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 4 17.5v-9Z' fill='none' stroke='%23B15947' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='13' r='3.4' fill='none' stroke='%23B15947' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat; -webkit-mask: none; mask: none; }
@media (min-width: 990px) {
  [data-pl-product="everyday-love-portrait"] .pl-moment { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(28px, 3.2vw, 56px); align-items: stretch; }
  [data-pl-product="everyday-love-portrait"] .pl-moment__copy { display: flex; flex-direction: column; align-self: stretch; padding: 4px 0 0; }
  [data-pl-product="everyday-love-portrait"] .pl-moment .pl-why3 { margin-top: auto; }
  [data-pl-product="everyday-love-portrait"] .pl-moment .pl-lede { margin-bottom: 28px; max-width: 46ch; }
}

/* "Change photo" on the preview oval */
.pl .pl-changephoto { position: absolute; left: 50%; bottom: 9%; transform: translateX(-50%); z-index: 3; box-shadow: 0 4px 12px -6px rgb(52 46 42 / .4); }
.pl .pl-changephoto[hidden] { display: none; }

/* Set offer: lives in the "Make it a set" head as a tag, not a full-width banner */
.pl .pl-set2__offer { display: inline-flex; align-items: center; justify-content: flex-start; gap: 12px; justify-self: start; margin-top: 6px; padding: 0; border: 0; border-radius: 0; background: none; font-size: 1.568rem; color: var(--pl-ink-2, var(--pl-ink)); text-align: left; }
.pl .pl-set2__offer strong { font-size: 1.52rem; font-weight: 700; color: #fff; background: var(--pl-coral); padding: 7px 14px; border-radius: 999px; letter-spacing: .01em; white-space: nowrap; }
@media (min-width: 990px) { .pl .pl-set2__offer { grid-column: auto; } }
.pl .pl-set2__offer span { white-space: nowrap; }
/* No dotted underline on the "+ Add their name" field */
.pl .pl-illo__name, .pl .pl-illo__name.is-empty, .pl .pl-illo__name:hover, .pl .pl-illo__name:focus-visible { border-bottom-color: transparent; }
.pl .pl-care__sub { margin-top: 10px; }

/* Better together: all three thumbnails are transparent cutouts on the same beige tile and behave the same way (no blend modes, same size, shadow and hover). Cutouts: shared/assets/set/cut/ */
.pl .pl-set2__media, .pl .pl-set2__card.is-here .pl-set2__media { background: #F1E5D8 center / cover no-repeat; overflow: hidden; } /* textured backdrop image is set in sections/pl-better-together.liquid */
.pl .pl-set2__media .pl-set2__blob { display: none; }
.pl .pl-set2__card .pl-set2__img, .pl .pl-set2__card:hover .pl-set2__img {
  width: auto !important; height: auto !important; max-width: 74% !important; max-height: 74% !important; aspect-ratio: auto !important; object-fit: contain !important;
  mix-blend-mode: normal !important; border-radius: 0 !important; filter: drop-shadow(0 8px 10px rgb(52 46 42 / .22)) !important;
}
.pl .pl-set2__card .pl-set2__frame img { mix-blend-mode: normal !important; }
.pl .pl-set2__card .pl-set2__img, .pl .pl-set2__card .pl-set2__frame { transition: transform .45s var(--pl-ease); transform: none; }
.pl .pl-set2__card:hover .pl-set2__img, .pl .pl-set2__card:hover .pl-set2__frame { transform: scale(1.05) !important; }

/* ---------- Judge.me reviews grid, restyled to the prototype's review wall ----------
   The widget's own header is hidden (our section head shows the live rating). Each card: photo on top, then stars, the quote and the name beneath, always visible. */
.pl-reviews .jdgm-widget { max-width: none !important; margin: 0 !important; font-family: var(--pl-sans); }
.pl-reviews .jm-grid-header { display: none !important; }
.pl-reviews .jdgm-grid-body {
  display: grid !important; gap: 12px !important;
  grid-auto-flow: column; grid-auto-columns: 58%; grid-template-columns: none !important;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  margin: 0 calc(-1 * var(--pl-gutter)); padding: 2px var(--pl-gutter) 6px;
}
.pl-reviews .jdgm-grid-body::-webkit-scrollbar { display: none; }
.pl-reviews .jdgm-review-card {
  scroll-snap-align: start; display: grid !important; grid-template-rows: auto 1fr; align-content: start;
  border-radius: 16px !important; overflow: hidden; background: #fff !important; box-shadow: inset 0 0 0 1px var(--pl-line) !important; cursor: default;
}
.pl-reviews .jdgm-review-card::before { display: none !important; content: none !important; }
.pl-reviews .jdgm-review-card-media { position: relative !important; inset: auto !important; height: auto !important; width: 100% !important; aspect-ratio: 1 / 1 !important; border-radius: 0 !important; }
.pl-reviews .jdgm-review-card-media__image { width: 100%; height: 100%; object-fit: cover; }
.pl-reviews .jdgm-review-card__preview { display: none !important; }
.pl-reviews .jdgm-review-card__details {
  position: static !important; inset: auto !important; opacity: 1 !important; visibility: visible !important; transform: none !important; pointer-events: auto;
  background: none !important; color: var(--pl-ink) !important; display: flex !important; flex-direction: column; align-items: stretch !important; justify-content: flex-start !important;
  gap: 8px; padding: 12px 14px 14px !important; text-align: left;
}
.pl-reviews .jdgm-review-card__details-body { order: 2; padding: 0 !important; }
.pl-reviews .jdgm-review-card__details-body .jm-stack { gap: 0 !important; }
.pl-reviews .jdgm-review-card__details-description {
  text-align: left !important; color: var(--pl-ink) !important; font-family: var(--pl-sans) !important; font-size: 1.44rem !important; line-height: 1.5 !important;
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
.pl-reviews .jdgm-review-card__footer, .pl-reviews .jdgm-review-card__footer-inner--details { display: contents !important; }
.pl-reviews .jdgm-review-card__details .jm-star-rating { order: 1; --jm-star-color: #9A6B1E; color: #9A6B1E !important; font-size: 1.3rem; justify-content: flex-start; }
.pl-reviews .jdgm-review-card__details .jm-star-rating svg path, .pl-reviews .jdgm-review-card__details .jm-star-rating__filled { fill: #9A6B1E !important; color: #9A6B1E !important; }
.pl-reviews .jdgm-review-card__details .jdgm-review-card__reviewer-name-wrapper { order: 3; justify-content: flex-start; margin-top: auto; }
.pl-reviews .jdgm-review-card__details .jdgm-review-card__reviewer-name { color: var(--pl-ink) !important; font-family: var(--pl-sans) !important; font-weight: 700; font-size: 1.36rem; text-align: left; }
@media (min-width: 990px) {
  .pl-reviews .jdgm-grid-body { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 14px !important; overflow: visible; margin: 0; padding: 0; }
}

/* Dawn adds 0.6px of tracking to body text; the prototype uses none */
body, .pl { letter-spacing: normal; }
.pl-reviews .jdgm-review-card-media { overflow: hidden; }
.pl-reviews .jdgm-review-card-media__image { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover; }

/* breathing room after the before/after sliders */
#pl-reviews.pl-reviews { margin-top: clamp(40px, 5vw, 64px); }
.pl-reviews .jdgm-widget > div { padding-top: 0 !important; padding-bottom: 0 !important; }
.pl-reviews .jm-loading-overlay { margin-top: 0 !important; }
.pl-reviews .jm-show-more-button { margin-top: 14px; }
.shopify-section:has(#pl-reviews) + .shopify-section .pl-close--cta { margin-top: 24px; }


/* the portrait's front-facing photo already carries the textured backdrop: it fills the tile */
.pl .pl-set2__card .pl-set2__img--front, .pl .pl-set2__card:hover .pl-set2__img--front { width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important; object-fit: cover !important; filter: none !important; }

/* ===== Header, option A (2026-10-08): coral promise bar, centered logo, nav left, cart right ===== */
.pl .pl-header { border-bottom: 0; }
.pl .pl-header__bar { background: var(--pl-coral); color: #fff; font-size: 1.344rem; font-weight: 500; padding: 8px var(--pl-gutter); display: flex; justify-content: center; gap: 26px; }
.pl .pl-header__bar span { margin: 0; color: inherit; }
.pl .pl-header__bar span + span::before { content: "\2665"; margin-right: 26px; font-size: 0.992rem; opacity: .65; vertical-align: 1px; }
.pl .pl-header__bar span:not(:first-child) { display: none; }
.pl .pl-header__count { background: var(--pl-coral); color: #fff; }
@media (min-width: 990px) {
  .pl .pl-header__bar span:not(:first-child) { display: inline; }
  .pl .pl-header__row { grid-template-columns: 1fr auto 1fr; padding: 10px var(--pl-gutter); min-height: 72px; }
  .pl .pl-header__menu { display: none; }
  .pl .pl-header__nav { display: block; grid-column: 1; grid-row: 1; justify-self: start; }
  .pl .pl-header__logo { grid-column: 2; grid-row: 1; }
  .pl .pl-header__logo img { width: 176px; }
  .pl .pl-header__cart { grid-column: 3; grid-row: 1; justify-self: end; }
  .pl .pl-header__navlist { gap: 28px; }
  .pl .pl-header__navlist a, .pl .pl-header__navbtn { font-size: 1.568rem; font-weight: 500; }
}

/* Shop dropdown, 2026-10-08: intro + three product photo cards */
.pl .pl-shop__inner--cards { max-width: 1240px; grid-template-columns: minmax(0, .8fr) minmax(0, 3fr); gap: 48px; align-items: center; padding: 28px var(--pl-gutter) 32px; }
.pl-shop__intro { display: grid; gap: 10px; }
.pl-shop__lead { font-family: var(--pl-serif); font-size: 2.16rem; line-height: 1.25; color: var(--pl-ink); }
.pl .pl-shop__intro .pl-shop__all { justify-self: start; margin-top: 6px; color: var(--pl-coral-deep); text-decoration: none; font-weight: 700; }
.pl .pl-shop__intro .pl-shop__all:hover { text-decoration: underline; }
.pl-shop__cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.pl .pl-shop__card { display: grid; gap: 4px; text-decoration: none; color: var(--pl-ink); }
.pl .pl-shop__card img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 14px; background: var(--pl-soft); margin-bottom: 8px; transition: transform .4s var(--pl-ease); }
.pl .pl-shop__card:hover img { transform: scale(1.02); }
.pl .pl-shop__card:hover .pl-shop__ftitle { text-decoration: underline; text-underline-offset: .2em; }
.pl .pl-header__navbtn:focus-visible, .pl .pl-header__navlist a:focus-visible { outline-width: 2px; outline-offset: 4px; border-radius: 8px; }


/* the three promises on the product pages: same size as the closing sections */
.pl-promise .pl-h4 { font-size: 1.7rem; font-weight: 700; } /* same size as the line below, bold */
.pl-promise p { font-size: 1.7rem; }

/* Judge.me wall: cards keep their own height (no tall empty boxes beside photo cards) and the quote always starts at the left */
.pl-reviews .jdgm-grid-body { align-items: start !important; }
.pl-reviews .jdgm-review-card__details-body .jm-stack { align-items: stretch !important; }
.pl-reviews .jdgm-review-card__details-description { width: 100%; margin: 0 !important; }

/* selection cards: the Next / Add to cart button never wider than its card (it was overflowing the narrow size-guide card) */
.pl .pl-confirm a[data-pl-nextstep] { white-space: normal; text-align: center; min-width: 0; max-width: 100%; box-sizing: border-box; justify-self: stretch; line-height: 1.25; padding-top: 8px; padding-bottom: 8px; }
.pl .pl-confirm.has-photo { grid-template-columns: 48px minmax(0, 1fr); }

/* cart drawer line: stepper + Remove on the left, line total (and price each) on the right */
.pl-line__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; margin-top: 12px; }
.pl-line__ctl { display: inline-flex; align-items: center; gap: 14px; }
.pl-line__qty { display: inline-flex; align-items: center; height: 38px; border: 1px solid var(--pl-line); border-radius: 99px; background: #fff; }
.pl-line__qty button { width: 36px; height: 36px; border: 0; background: none; font-size: 2rem; line-height: 1; color: var(--pl-ink); cursor: pointer; border-radius: 99px; }
.pl-line__qty button:disabled { color: var(--pl-line-strong); opacity: .5; cursor: not-allowed; }
.pl-line__qty button:not(:disabled):hover { background: var(--pl-soft); }
.pl-line__qn { min-width: 22px; text-align: center; font-weight: 650; font-size: 1.5rem; }
.pl-line__remove { min-height: 38px; font-size: 1.36rem; }
.pl-line__sum { display: grid; justify-items: end; gap: 2px; margin-left: auto; text-align: right; }
.pl-line__price { font-weight: 700; font-size: 1.72rem; white-space: nowrap; }
.pl-line__was { font-weight: 400; font-size: 1.36rem; color: var(--pl-ink-2); }
.pl-line__each { display: block; font-size: 1.3rem; color: var(--pl-ink-2); }

/* cart line: smaller stepper, trash icon instead of the word Remove */
.pl-line__ctl { gap: 10px; }
.pl-line__qty { height: 30px; }
.pl-line__qty button { width: 28px; height: 28px; font-size: 1.7rem; }
.pl-line__qn { min-width: 20px; font-size: 1.4rem; }
.pl-line__remove { display: inline-grid; place-items: center; width: 32px; height: 32px; min-height: 32px; padding: 0; border-radius: 99px; text-decoration: none; color: var(--pl-ink-2); }
.pl-line__remove:hover { background: var(--pl-soft); color: var(--pl-ink); }
.pl-line__remove svg { display: block; }

/* cart drawer: Shipping is its own line under Subtotal; the free-shipping note shows only while shipping is $9.99 */
.pl-cart__shiprow { display: flex; justify-content: space-between; font-size: 1.6rem; color: var(--pl-ink); margin-top: 2px; }
.pl-cart__shipnote + .pl-cart__total { margin-top: 10px; }
.pl-cart__shipnote { color: var(--pl-ink-2); font-size: 1.4rem; margin-top: 2px; }
.pl-cart__shipnote[hidden] { display: none; }

/* a little room between the FAQ and "Better together" */
.pl-help { padding-bottom: clamp(40px, 5vw, 72px); }

/* Phones: the selection card's button spans the card (it was shrinking to a narrow column beside the photo) */
.pl .pl-confirm.has-photo > a[data-pl-nextstep] { justify-self: stretch; width: 100%; box-sizing: border-box; display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 16px; }

/* Phones, reviews: the first card keeps the page gutter after a swipe, no tap/focus ring around the wall, and no "Show more" under a swipe row */
.pl-reviews, .pl-reviews * { -webkit-tap-highlight-color: transparent; }
.pl-reviews :focus:not(:focus-visible), .pl-reviews:focus { outline: none; }
.pl-reviews .jdgm-grid-body { scroll-padding-inline: var(--pl-gutter); }
/* Phones: a two-column wall that grows with "Show more" (the swipe row could not show more cards) */
@media (max-width: 989px) {
  .pl-reviews .jdgm-grid-body { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; overflow: visible; margin: 0; padding: 0; }
  .pl-reviews .jdgm-review-card__details { padding: 10px 11px 12px !important; }
  .pl-reviews .jdgm-review-card__details-description { font-size: 1.36rem !important; -webkit-line-clamp: 5; }
}

/* the size card's button was landing in the 48px photo column (an earlier phone rule set grid-column: auto); span the whole card */
.pl .pl-size__chosen.pl-confirm.has-photo > a[data-pl-nextstep] { grid-column: 1 / -1; grid-row: auto; justify-self: stretch; width: 100%; white-space: normal; }

/* "Change photo" sits over the mockup, not clipped by the photo oval: the oval only crops the photo itself */
.pl-wp__pet, .pl-illo__portrait, .pl-turn__oval { overflow: visible; }
.pl-wp__pet img, .pl-illo__portrait img, .pl-turn__oval img { border-radius: 50%; }
.pl .pl-changephoto { bottom: -18px; z-index: 5; }

/* cart drawer: "Add one more piece, save 10%" as a soft tappable card */
.pl-cart__nudge { display: block; }
.pl-cart__nudge::before { display: none; }
.pl .pl-cart__nudge a { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; background: var(--pl-soft); color: var(--pl-ink); font-weight: 600; text-decoration: none; font-size: 1.52rem; line-height: 1.3; }
.pl .pl-cart__nudge a:hover { background: #EFE8E0; }
.pl-cart__tag { flex: none; padding: 5px 11px; border-radius: 99px; background: var(--pl-coral); color: #fff; font-size: 1.28rem; font-weight: 700; letter-spacing: .02em; white-space: nowrap; }
.pl-cart__nudgetext { flex: 1; min-width: 0; }
.pl-cart__nudge svg { flex: none; color: var(--pl-coral-deep); }

/* footer intro is plain, selectable text */
.pl-footer__brand p { user-select: text; -webkit-user-select: text; -webkit-touch-callout: default; }
/* top bar: 1px larger */
.pl .pl-header__bar { font-size: 1.444rem; }
/* "+ Add their name" a little larger */
.pl .pl-illo__name::placeholder { font-size: .92em; }
/* blanket: swatches sit a little closer to the selection card */
.pl-looks__controls { gap: 8px; }
.pl-looks__status.pl-confirm { margin-top: 0; }
/* cart drawer: Edit link */
.pl-line__edit { font-size: 1.44rem; font-weight: 600; color: var(--pl-coral-deep); text-decoration: underline; text-underline-offset: .2em; padding: 0 2px; }
.pl-line__edit:hover { color: var(--pl-ink); }
.pl-editnote { margin: 0 0 10px; padding: 10px 14px; border-radius: 12px; background: var(--pl-soft); color: var(--pl-ink-2); font-size: 1.472rem; }
/* refund page steps */
.hp-steps--plain { list-style: decimal; }
.hp-steps--plain li { display: list-item; padding-left: 4px; }
.hp-steps--plain li > strong { display: block; color: var(--pl-ink); }
.hp-steps--plain li > span { display: block; color: var(--pl-ink-2); }

/* chat fallback notice */
.pl-chatfail { position: fixed; left: 12px; right: 12px; bottom: 90px; z-index: 2147483000; max-width: 420px; margin: 0 auto; padding: 16px 44px 16px 18px; border-radius: 16px; background: #fff; color: var(--pl-ink); box-shadow: 0 12px 40px rgb(52 46 42 / .3); display: grid; gap: 10px; font-size: 1.52rem; }
.pl-chatfail p { margin: 0; }
.pl-chatfail__info { font-size: 1.152rem; color: var(--pl-ink-2); }
.pl-chatfail__x { position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--pl-soft); font-size: 2.2rem; line-height: 1; cursor: pointer; }

/* blanket page: product title 2px smaller */
[data-pl-product="everyday-love-blanket"] .pl-product__title { font-size: clamp(3.16rem, 2.36rem + 2.2vw, 4.92rem); }

/* top bar: two messages. Side by side on desktop; they take turns on phones */
.pl .pl-header__bar a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 989px) {
  .pl .pl-header__bar { display: grid; justify-items: center; }
  .pl .pl-header__bar span { grid-area: 1 / 1; opacity: 0; animation: pl-bar-b 8s infinite; }
  .pl .pl-header__bar span:first-child { animation-name: pl-bar-a; }
  .pl .pl-header__bar span:not(:first-child) { display: block; }
  .pl .pl-header__bar span + span::before { content: none; }
}
@keyframes pl-bar-a { 0%, 42% { opacity: 1; } 50%, 92% { opacity: 0; } 100% { opacity: 1; } }
@keyframes pl-bar-b { 0%, 42% { opacity: 0; } 50%, 92% { opacity: 1; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .pl .pl-header__bar span { animation: none; opacity: 1; }
  .pl .pl-header__bar span:not(:first-child) { display: none; }
}

/* Better Together: tighter top and bottom; the sizes section gets room under it */
.pl-set2 { padding-top: clamp(28px, 4vw, 48px); padding-bottom: clamp(28px, 4vw, 48px); }
.pl-size { margin-bottom: clamp(40px, 5vw, 72px); }

/* blanket: 22 designs, so the buy-box swatches are smaller (7 across) and sit closer */
[data-pl-product="everyday-love-blanket"] .pl-swatches { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
[data-pl-product="everyday-love-blanket"] .pl-swatch__tile { border-radius: 10px; }

/* blanket "Which one feels like them?": all 21 designs as a 7-across grid, 3 rows, no side scrolling */
[data-pl-product="everyday-love-blanket"] .pl-looks__rail,
.pl-looks__rail { grid-auto-flow: row; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-auto-columns: auto; gap: 14px 10px; overflow: visible; padding: 6px var(--pl-gutter) 8px; -webkit-mask-image: none; mask-image: none; }
.pl-looks__rail li { min-width: 0; }
.pl-looks__rail .pl-look { width: 100%; font-size: 1.1rem; overflow-wrap: anywhere; }
@media (max-width: 749px) {
  .pl-looks__rail { gap: 12px 8px; }
  .pl-looks__rail .pl-look { font-size: 0; gap: 0; }
  .pl-looks__rail .pl-look__tile { border-radius: 9px; }
}
@media (min-width: 990px) {
  .pl-looks__rail { grid-template-columns: repeat(7, minmax(0, 1fr)); padding-inline: 0; gap: 16px 10px; }
}

/* design picker: swatches span exactly the width of the card beneath (no inner side padding) */
[data-pl-product="everyday-love-blanket"] .pl-looks__rail, .pl-looks__rail { padding-inline: 0; margin-inline: var(--pl-gutter); }
@media (min-width: 990px) {
  [data-pl-product="everyday-love-blanket"] .pl-looks__rail, .pl-looks__rail { padding-inline: 0; margin-inline: 0; gap: 18px 12px; }
}

/* pillow: 21 designs, same swatch size and spacing as the blanket (7 across) */
[data-pl-product="everyday-love-pillow"] .pl-swatches { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
[data-pl-product="everyday-love-pillow"] .pl-swatch__tile { border-radius: 10px; }
[data-pl-product="everyday-love-pillow"] .pl-swatch__tile, [data-pl-product="everyday-love-pillow"] .pl-look__tile { aspect-ratio: 1; }

/* portrait: 21 designs, same swatch size and spacing as the blanket and pillow (7 across) */
[data-pl-product="everyday-love-portrait"] .pl-swatches { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
[data-pl-product="everyday-love-portrait"] .pl-swatch__tile { border-radius: 10px; }

/* name fonts: Classic (Nexa), Signature (Brittany), Playful (Playpen Sans) */
.pl-fontpick__legend { margin: 16px 0 0; font-size: 1.44rem; font-weight: 650; }
.pl-fontpick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 8px; }
.pl-fontpick__opt { position: relative; display: block; cursor: pointer; }
.pl-fontpick__opt input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.pl-fontpick__box { display: grid; gap: 4px; justify-items: center; align-content: center; height: 60px; min-height: 0; padding: 0 6px; box-sizing: border-box; border: 1.5px solid var(--pl-line-strong, #d8cfc4); border-radius: 12px; background: #fff; text-align: center; }
.pl-fontpick__opt input:checked + .pl-fontpick__box { border-color: var(--pl-ink, #342E2A); box-shadow: 0 0 0 1px var(--pl-ink, #342E2A); }
.pl-fontpick__opt input:focus-visible + .pl-fontpick__box { outline: 2px solid var(--pl-ink, #342E2A); outline-offset: 2px; }
.pl-fontpick__sample { max-width: 100%; overflow: visible; white-space: nowrap; line-height: 1; padding-block: 0; color: var(--pl-ink, #342E2A); }
.pl-fontpick__sample--classic { font-family: 'PL Nexa', var(--pl-sans); font-weight: 400; font-size: 1.8rem; }
.pl-fontpick__sample--signature { font-family: 'PL Brittany', cursive; font-weight: 400; font-size: 2.3rem; transform: translateY(-3px); }
.pl-fontpick__sample--playful { font-family: 'PL Playpen', var(--pl-sans); font-weight: 400; font-size: 1.7rem; }
.pl-fontpick__label { font-size: 1.2rem; color: var(--pl-ink-2, #6b625a); }
html[data-pl-font="classic"] .pl .pl-illo__name, html[data-pl-font="classic"] .pl .pl-framed__name, html[data-pl-font="classic"] .pl [data-pl-wp-name] { font-family: 'PL Nexa', var(--pl-sans); font-weight: 400; }
html[data-pl-font="signature"] .pl .pl-illo__name, html[data-pl-font="signature"] .pl .pl-framed__name, html[data-pl-font="signature"] .pl [data-pl-wp-name] { font-family: 'PL Brittany', cursive; font-weight: 400; letter-spacing: 0; text-transform: none; font-size: 1.5em; }
html[data-pl-font="playful"] .pl .pl-illo__name, html[data-pl-font="playful"] .pl .pl-framed__name, html[data-pl-font="playful"] .pl [data-pl-wp-name] { font-family: 'PL Playpen', var(--pl-sans); font-weight: 400; letter-spacing: .04em; text-transform: uppercase; }

/* looks: font pills under the preview; swatch names hidden (the chosen one shows in the preview corner) */
.pl-looks__fonts { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 8px; margin: 2px var(--pl-gutter) 0; }
@media (min-width: 990px) { .pl-looks__fonts { margin-inline: 0; } }
.pl-looks__fontlabel { font-size: 1.36rem; font-weight: 650; margin-right: 4px; }
.pl-looks__fonts .pl-fontpick__opt { flex: 0 1 auto; }
.pl-looks__fonts .pl-fontpick__box { height: 44px; padding: 0 16px; border-radius: 999px; }
.pl-looks__fonts .pl-fontpick__sample { font-size: 1.5rem; transform: none; }
.pl-looks__fonts .pl-fontpick__sample--signature { font-size: 1.6rem; transform: translateY(-1px); }
.pl-looks .pl-looks__rail .pl-look { font-size: 0; gap: 0; }
.pl-looks .pl-looks__rail .pl-look > span:last-child { font-size: 0; }

.pl-looks__namein { margin: 4px var(--pl-gutter) 0; width: calc(100% - 2 * var(--pl-gutter)); }
@media (min-width: 990px) { .pl-looks__namein { margin-inline: 0; width: 100%; } }
.pl-looks__controls { gap: 12px; }
.pl-looks__fonts { margin-top: 0; }

.pl-looks__fieldlabel { display: block; margin: 4px var(--pl-gutter) -6px; font-size: 1.44rem; font-weight: 650; }
.pl-looks__fieldlabel .pl-field__opt { font-weight: 400; }
@media (min-width: 990px) { .pl-looks__fieldlabel { margin-inline: 0; } }
.pl-looks__fieldlabel + .pl-looks__namein { margin-top: 0; }

/* the name on the blanket preview: larger, per font */
.pl-looks .pl-looks__print { --nm: clamp(2.4rem, 5.2vw, 3.8rem); }
html[data-pl-font] .pl-looks .pl-illo__name { font-size: var(--nm); }
html[data-pl-font="signature"] .pl-looks .pl-illo__name { font-size: calc(var(--nm) * 1.3); }
html[data-pl-font] .pl-looks .pl-illo__name::placeholder { font-size: .6em; }

/* buy box: "Select Font" and the three options on one line */
.pl-fontrow { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
.pl-fontrow .pl-fontpick__legend { margin: 0; white-space: nowrap; flex: none; }
.pl-fontrow .pl-fontpick { flex: 1 1 0; min-width: 0; display: flex; gap: 8px; margin-top: 0; }
.pl-fontrow .pl-fontpick__opt { flex: 1 1 0; min-width: 0; }
.pl-fontrow .pl-fontpick__box { height: 44px; padding: 0 6px; border-radius: 999px; }
.pl-fontrow .pl-fontpick__sample { font-size: 1.45rem; transform: none; }
.pl-fontrow .pl-fontpick__sample--signature { font-size: 1.7rem; transform: translateY(-1px); }
html[data-pl-font="classic"] .pl-looks .pl-illo__name { font-size: calc(var(--nm) * .85); letter-spacing: .08em; }
html[data-pl-font="playful"] .pl-looks .pl-illo__name { font-size: calc(var(--nm) * .935); letter-spacing: .03em; }

/* font options: same rounded rectangle and height as the text fields */
.pl-fontrow .pl-fontpick__box, .pl-looks__fonts .pl-fontpick__box { border-radius: var(--pl-r); height: 54px; }

/* font options: smaller, sized to their words */
.pl-fontrow { flex-wrap: wrap; row-gap: 8px; }
.pl-fontrow .pl-fontpick { flex: 0 1 auto; gap: 8px; }
.pl-fontrow .pl-fontpick__opt, .pl-looks__fonts .pl-fontpick__opt { flex: 0 0 auto; }
.pl-fontrow .pl-fontpick__box, .pl-looks__fonts .pl-fontpick__box { height: 40px; padding: 0 16px; border-radius: 10px; }
.pl-fontrow .pl-fontpick__sample, .pl-looks__fonts .pl-fontpick__sample { font-size: 1.5rem; }
.pl-fontrow .pl-fontpick__sample--signature, .pl-looks__fonts .pl-fontpick__sample--signature { font-size: 1.9rem; transform: translateY(-1px); }

/* font options: a little larger, with room for the script's ascenders and descenders */
.pl-fontrow .pl-fontpick__box, .pl-looks__fonts .pl-fontpick__box { height: 50px; padding: 0 18px; overflow: visible; }
.pl-fontrow .pl-fontpick__sample, .pl-looks__fonts .pl-fontpick__sample { font-size: 1.7rem; line-height: 1.5; padding: 0; }
.pl-fontrow .pl-fontpick__sample--classic, .pl-looks__fonts .pl-fontpick__sample--classic { transform: translateY(1px); }
.pl-fontrow .pl-fontpick__sample--signature, .pl-looks__fonts .pl-fontpick__sample--signature { font-size: 2.1rem; line-height: 1.5; transform: translateY(1px); }

/* labels in the name and font controls share the field-label size */
.pl-fontpick__legend, .pl-looks__fieldlabel, .pl-looks__fontlabel { font-size: 1.6rem; font-weight: 700; }
.pl-looks__fieldlabel .pl-field__opt { font-weight: 400; }

/* font options v2: label above, three equal fields like the inputs; each word optically centred */
.pl-fontrow { display: grid; gap: 8px; margin-top: 14px; }
.pl-fontrow .pl-fontpick__legend { margin: 0; }
.pl-fontrow .pl-fontpick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; }
.pl-looks__fonts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; align-items: stretch; justify-content: stretch; margin: 2px var(--pl-gutter) 0; }
@media (min-width: 990px) { .pl-looks__fonts { margin-inline: 0; } }
.pl-looks__fonts .pl-looks__fontlabel { grid-column: 1 / -1; margin: 0; }
.pl-fontrow .pl-fontpick__opt, .pl-looks__fonts .pl-fontpick__opt { width: 100%; }
.pl-fontrow .pl-fontpick__box, .pl-looks__fonts .pl-fontpick__box { height: 50px; padding: 0 8px; border-radius: var(--pl-r); display: flex; align-items: center; justify-content: center; }
.pl-fontrow .pl-fontpick__sample, .pl-looks__fonts .pl-fontpick__sample { line-height: 1; padding: 0; }
.pl-fontrow .pl-fontpick__sample--classic, .pl-looks__fonts .pl-fontpick__sample--classic { font-size: 1.7rem; transform: translateY(.14em); }
.pl-fontrow .pl-fontpick__sample--playful, .pl-looks__fonts .pl-fontpick__sample--playful { font-size: 1.7rem; transform: translateY(-.14em); }
.pl-fontrow .pl-fontpick__sample--signature, .pl-looks__fonts .pl-fontpick__sample--signature { font-size: 2.1rem; transform: translateY(-.2em); }

/* looks: tighter spacing between swatch rows and down to the name field */
.pl-looks .pl-looks__rail { row-gap: 10px; padding-bottom: 0; }
.pl-looks .pl-looks__controls { gap: 8px; }
.pl-looks__fieldlabel { margin-top: 6px; }

/* looks: less space between the intro line and the swatches */
.pl-looks .pl-looks__rail { padding-top: 0; }
@media (min-width: 990px) { .pl-looks .pl-looks__controls { margin-top: -12px; } }

/* the lead photo is the live preview: their design, their photo (Charlie's until they add one) and their name */
.pl-gallery__slide.is-lead { position: relative; }
.pl-lead__stage { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; box-shadow: none; container-type: inline-size; }
.pl-gallery__slide.is-lead:not([data-pl-live]) .pl-lead__stage { display: none; }
.pl-gallery__slide.is-lead[data-pl-live] > img[data-pl-lead-img] { display: none; }
.pl-lead__stage .pl-illo__name { cursor: text; overflow: visible; text-overflow: clip; white-space: nowrap; border-bottom-color: transparent; }
html[data-pl-font="classic"] .pl-lead__stage .pl-illo__name { font-size: 4.6cqw; letter-spacing: .06em; }
html[data-pl-font="signature"] .pl-lead__stage .pl-illo__name { font-size: 6.4cqw; letter-spacing: 0; }
html[data-pl-font="playful"] .pl-lead__stage .pl-illo__name { font-size: 4.73cqw; letter-spacing: .04em; }


/* the name on the preview below uses exactly the same sizes as the top photo */
.pl-looks__stage { container-type: inline-size; }
html[data-pl-font="classic"] .pl-looks .pl-looks__stage .pl-illo__name { font-size: 4.6cqw; letter-spacing: .06em; }
html[data-pl-font="signature"] .pl-looks .pl-looks__stage .pl-illo__name { font-size: 6.4cqw; letter-spacing: 0; }
html[data-pl-font="playful"] .pl-looks .pl-looks__stage .pl-illo__name { font-size: 4.73cqw; letter-spacing: .04em; }

/* before a photo is added: the original mockup (name removed) carries the name live, in the chosen font */
.pl-gallery__name { position: absolute; left: 50%; top: 21.5%; transform: translate(-50%, -50%); z-index: 2; max-width: 62%; white-space: nowrap; pointer-events: none; line-height: 1; }
.pl-gallery__slide.is-lead { container-type: inline-size; }
.pl-gallery__slide.is-lead[data-pl-live] .pl-gallery__name { display: none; }
html[data-pl-font="classic"] .pl-gallery__name { font-family: 'PL Nexa', var(--pl-sans); font-weight: 400; font-size: 5.5cqw; letter-spacing: .06em; text-transform: uppercase; }
html[data-pl-font="signature"] .pl-gallery__name { font-family: 'PL Brittany', cursive; font-weight: 400; font-size: 7.7cqw; letter-spacing: 0; text-transform: none; }
html[data-pl-font="playful"] .pl-gallery__name { font-family: 'PL Playpen', var(--pl-sans); font-weight: 400; font-size: 5.7cqw; letter-spacing: .04em; text-transform: uppercase; }

/* product intro line: use the full width of the buy box instead of a narrow 32ch column */
.pl-product__desc { max-width: none; text-wrap: pretty; }


/* the empty name in the live preview invites a name; the oval invites a photo */
.pl-lead__stage .pl-lead__name[data-empty]::before { content: '+ Add their name'; opacity: .75; font-size: .6em; letter-spacing: .08em; text-transform: none; font-family: var(--pl-sans); font-weight: 500; border-bottom: 1.5px dashed currentColor; padding-bottom: 2px; }
.pl-lead__stage .pl-illo__portrait { pointer-events: auto; }

#pl-buy [data-pl-form] { scroll-margin-top: 96px; }

/* script lettering overhangs its line box; give the name room so nothing is clipped at the edges (seen on phones) */
.pl-gallery__name, .pl-lead__stage .pl-lead__name { padding: .32em .4em; overflow: visible; }
html[data-pl-font="signature"] .pl-gallery__name, html[data-pl-font="signature"] .pl-lead__stage .pl-illo__name { padding: .5em .5em; line-height: 1.2; }

/* sticky add-to-cart bar on phones: smaller text so the name and options fit */
@media (max-width: 989px) {
  .pl-sticky__text { font-size: 1.2rem; line-height: 1.3; }
  .pl-sticky__name { font-size: 1.28rem; }
  .pl-sticky .pl-btn { min-height: 46px; padding: 0 14px; font-size: 1.4rem; }
  .pl-sticky__thumb { width: 40px; height: 40px; }
}

/* top bar on phones: the two messages take turns (as before), set 1px larger; with reduced motion they stack so both stay visible */
@media (max-width: 989px) {
  .pl .pl-header__bar { font-size: 1.3rem; }
}
@media (max-width: 989px) and (prefers-reduced-motion: reduce) {
  .pl .pl-header__bar { display: flex; flex-direction: column; align-items: center; gap: 2px; }
  .pl .pl-header__bar span, .pl .pl-header__bar span:not(:first-child) { opacity: 1; display: block; animation: none; grid-area: auto; }
}

/* pillow: the top photo is Charlie's pillow until a photo is added; then it is the live preview (front, and turn it over for the back) */
.pl-gallery__slide.is-lead { position: relative; }
.pl-lead-turn { position: absolute; inset: 0; }
.pl-lead-turn .pl-flip { width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; }
.pl-gallery__slide.is-lead:not([data-pl-live]) .pl-lead-turn { display: none; }
.pl-gallery__slide.is-lead[data-pl-live] > img[data-pl-front] { display: none; }


/* "Make it a set": more room above the section and before its content */
#pl-set.pl-set2 { margin-top: clamp(32px, 5vw, 72px); padding-top: clamp(48px, 6vw, 88px); }

/* preview label: two lines so it is clear this is not the finished product */
.pl-looks__chip { display: grid; gap: 1px; border-radius: 14px; padding: 6px 12px; line-height: 1.2; }
.pl-looks__chip[hidden] { display: none; }
.pl-looks__chip b { font-weight: 700; font-size: 1.248rem; letter-spacing: .02em; }
.pl-looks__chip small { font-weight: 500; font-size: 1.1rem; color: var(--pl-ink-2); letter-spacing: .01em; }

/* estimated delivery sits under the Add to cart button */
[data-pl-atc] ~ .pl-eta, [data-pl-atc] + *:not(.pl-assure):not(ul) { margin-top: 12px; }

/* preview label, quieter: a small frosted note rather than a bold pill */
.pl-looks__chip { top: 10px; left: 10px; padding: 5px 10px 6px; border-radius: 10px; background: rgb(252 250 247 / .5); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .35); gap: 0; }
.pl-looks__chip b { font-size: 1.08rem; font-weight: 600; letter-spacing: .04em; color: rgb(52 46 42 / .72); }
.pl-looks__chip small { font-size: .98rem; font-weight: 400; letter-spacing: .02em; color: rgb(52 46 42 / .55); }

/* estimated delivery under Add to cart: tighter above and below */
#pl-buy [data-pl-atc] + .shopify-app-block { margin-top: -12px; margin-bottom: -10px; }

/* estimated delivery styled as the first bullet of the list under Add to cart (overrides the app's card styling) */
#pl-buy [data-pl-atc] + .shopify-app-block { margin: 14px 0 6px; }
#pl-buy .essential-estimated-delivery-widget { margin: 0 !important; gap: 0 !important; }
#pl-buy .essential-estimated-delivery-card { position: relative; background: transparent !important; padding: 0 0 0 18px !important; border-radius: 0 !important; gap: 0 !important; }
#pl-buy .essential-estimated-delivery-card::before { content: ""; position: absolute; left: 2px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--pl-coral); }
#pl-buy .essential-estimated-delivery-card icon-display-minimal, #pl-buy .essential-estimated-delivery-icon { display: none !important; }
#pl-buy delivery-preview-description-minimal { font-size: 1.52rem !important; line-height: inherit; color: var(--pl-ink-2) !important; }
#pl-buy delivery-preview-description-minimal b, #pl-buy delivery-preview-description-minimal strong { color: var(--pl-ink); font-weight: 650; }
#pl-buy [data-pl-atc] + .shopify-app-block { margin: -2px 0 -8px; }
#pl-buy .essential-estimated-delivery-card::before { top: .5em; }

/* sticky bar on phones: text 2px larger than the last pass */
@media (max-width: 989px) {
  .pl-sticky__text { font-size: 1.4rem; }
  .pl-sticky__name { font-size: 1.48rem; }
}

/* delivery line: a small truck in place of the dot */
#pl-buy .essential-estimated-delivery-card::before {
  top: .3em; left: 0; width: 15px; height: 15px; border-radius: 0; background: var(--pl-coral);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5h11v9.5H2z'/%3E%3Cpath d='M13 9.5h4.2l3.3 3.2V16H13z'/%3E%3Ccircle cx='7' cy='17.5' r='2'/%3E%3Ccircle cx='17' cy='17.5' r='2'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5h11v9.5H2z'/%3E%3Cpath d='M13 9.5h4.2l3.3 3.2V16H13z'/%3E%3Ccircle cx='7' cy='17.5' r='2'/%3E%3Ccircle cx='17' cy='17.5' r='2'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* sticky bar on phones: another 2px */
@media (max-width: 989px) {
  .pl-sticky__text { font-size: 1.6rem; }
  .pl-sticky__name { font-size: 1.68rem; }
}

/* footer: the email sign-up sits right under the brand, above the link columns */
@media (min-width: 990px) {
  .pl-footer > .pl-footer__brand { grid-column: 1; grid-row: 1; }
  .pl-footer > .pl-news { grid-column: 1; grid-row: 2; align-self: start; }
  .pl-footer > .pl-footer__cols { grid-column: 2; grid-row: 1 / span 2; }
  .pl-footer > .pl-footer__legal { grid-column: 1 / -1; grid-row: 3; }
}

/* preview label v3: no box; quiet type that sits on the backdrop */
.pl-looks__chip { top: 14px; left: 16px; padding: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; border-radius: 0; gap: 3px; max-width: 60%; }
.pl-looks__chip b { font-family: var(--pl-sans); font-size: 1rem; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; color: rgb(52 46 42 / .62); }
.pl-looks__chip small { font-family: var(--pl-serif); font-style: italic; font-weight: 400; font-size: 1.28rem; letter-spacing: 0; color: rgb(52 46 42 / .55); }

/* preview label v4: a quiet one-line caption at the bottom of the preview, off the artwork */
.pl-looks__chip { top: auto; bottom: 12px; left: 50%; transform: translateX(-50%); display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; column-gap: 8px; row-gap: 0; width: max-content; max-width: calc(100% - 28px); text-align: center; }
.pl-looks__chip b::after { content: "\00b7"; margin-left: 8px; letter-spacing: 0; }
.pl-lead-turn .pl-flip__turn { bottom: 11%; }

/* previews: the note lives in the buy box now, so the on-image label is hidden and the pillow's turn button is back in place */
.pl-looks__chip { display: none !important; }
.pl-lead-turn .pl-flip__turn { bottom: 5%; }
.pl-preview-note { margin: 10px 0 0; font-size: 1.36rem; color: var(--pl-ink-2); }

/* preview label v5: back on the image, at the top, one quiet line (no box); the buy-box note is hidden */
.pl-looks__chip { display: flex !important; flex-wrap: nowrap; top: 14px; bottom: auto; left: 16px; transform: none; width: auto; max-width: calc(100% - 110px); text-align: left; justify-content: flex-start; align-items: baseline; column-gap: 7px; white-space: nowrap; }
.pl-looks__chip[hidden] { display: none !important; }
.pl-looks__chip b { font-size: .94rem; letter-spacing: .12em; }
.pl-looks__chip small { font-size: 1.2rem; }
.pl-preview-note { display: none; }

/* preview label v6: just "Preview only" top-left; "Selected design" + name top-right */
.pl-looks__chip b::after { content: none; }
.pl-looks__chip { font-size: 1.1rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgb(52 46 42 / .6); max-width: calc(100% - 200px); }
.pl-looks__design { font-weight: 400; letter-spacing: .02em; }
.pl-looks__design .pl-looks__dlabel { color: rgb(52 46 42 / .55); font-weight: 400; margin-right: 4px; }
.pl-looks__design b { font-weight: 650; color: var(--pl-ink); }

/* "Turn it over": a small, quiet text control instead of a button */
.pl .pl-flip__turn { min-height: 30px; padding: 0 12px; gap: 6px; font-size: 1.2rem; font-weight: 500; color: rgb(52 46 42 / .7); background: rgb(252 250 247 / .5); box-shadow: inset 0 0 0 1px rgb(52 46 42 / .12); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.pl .pl-flip__turn:hover { background: rgb(252 250 247 / .85); color: var(--pl-ink); }
.pl .pl-flip__turn svg { width: 13px; height: 13px; opacity: .8; }

/* more air between Add to cart and the delivery line */
#pl-buy [data-pl-atc] + .shopify-app-block { margin: 6px 0 -8px; }
/* "Turn it over": plain text link, no pill */
.pl .pl-flip__turn { min-height: 32px; padding: 0 10px; background: none; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; color: rgb(52 46 42 / .58); font-size: 1.2rem; font-weight: 500; }
.pl .pl-flip__turn:hover { background: none; color: var(--pl-ink); text-decoration: underline; text-underline-offset: .2em; }
.pl .pl-flip__turn svg { opacity: .55; }
.pl .pl-flip .pl-flip__turn { min-height: 32px; padding: 0 10px; background: none !important; box-shadow: none !important; -webkit-backdrop-filter: none; backdrop-filter: none; color: rgb(52 46 42 / .58); font-size: 1.2rem; font-weight: 500; }
.pl .pl-flip .pl-flip__turn:hover { background: none !important; color: var(--pl-ink); text-decoration: underline; text-underline-offset: .2em; }
.pl .pl-flip .pl-flip__turn svg { width: 13px; height: 13px; opacity: .55; }

/* "Turn it over": a light, small chip, between the first button and the plain text */
.pl .pl-flip .pl-flip__turn { min-height: 36px; padding: 0 14px; background: rgb(252 250 247 / .62) !important; box-shadow: inset 0 0 0 1px rgb(52 46 42 / .16) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: rgb(52 46 42 / .78); font-size: 1.28rem; font-weight: 500; text-decoration: none; }
.pl .pl-flip .pl-flip__turn:hover { background: rgb(252 250 247 / .92) !important; color: var(--pl-ink); text-decoration: none; }
.pl .pl-flip .pl-flip__turn svg { width: 14px; height: 14px; opacity: .8; }

/* "Photo added" stays on one line */
.pl-upload__ok { white-space: nowrap; flex: 1 1 auto; min-width: 0; }
.pl-upload__done .pl-btn, .pl-upload__done button, .pl-upload__done label.pl-btn { flex: none; white-space: nowrap; }
@media (max-width: 400px) { .pl-upload__thumb { width: 60px; height: 60px; } .pl-upload__done { gap: 10px; } }
.pl-upload__change { flex: none; white-space: nowrap; }

/* selected design name: a touch quieter */
.pl-looks__design b { font-weight: 500; color: rgb(52 46 42 / .78); }
.pl-looks__design .pl-looks__dlabel { color: rgb(52 46 42 / .5); }

/* "Preview only": 2px larger */
.pl-looks__chip { font-size: 1.3rem; }

/* uploaded photo in the oval: no white ring; the edge fades softly into the fabric */
.pl .pl-pillow__portrait.has-photo, .pl .pl-turn__oval.has-photo { border-color: transparent; }
.pl .pl-illo__portrait.has-photo { box-shadow: none; }
.pl .pl-pillow__portrait.has-photo > img, .pl .pl-turn__oval.has-photo > img, .pl .pl-illo__portrait.has-photo > img.pl-illo__photo, .pl .pl-lead__stage .pl-illo__photo {
  -webkit-mask-image: radial-gradient(ellipse closest-side, #000 92%, transparent 100%); mask-image: radial-gradient(ellipse closest-side, #000 92%, transparent 100%);
}
/* "Change photo" sits just below the oval so it never covers the photo */
.pl .pl-changephoto { bottom: -34px; }
.pl .pl-changephoto { bottom: -46px; }

/* top labels on one line: same height, same centre line */
.pl-looks__chip, .pl-looks__design { top: 14px !important; height: 20px; display: flex !important; align-items: center; line-height: 1; }
.pl-looks__chip { font-size: 1.2rem; }

/* delivery truck: a little larger and centred on the text line; list text shares one left edge */
#pl-buy .pl-assure li, #pl-buy .essential-estimated-delivery-card { padding-left: 24px !important; }
#pl-buy .essential-estimated-delivery-card::before { top: 50%; transform: translateY(-50%); left: 0; width: 18px; height: 18px; }
#pl-buy .pl-assure li::before { top: .62em; }

/* pillow preview: "Change photo" takes the place of "Turn it over" (shown once a photo is added) */
.pl-lead-turn .pl-changephoto { display: none !important; }
.pl .pl-flip .pl-flip__change { position: absolute; left: 50%; bottom: 5%; transform: translateX(-50%); z-index: 3; display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 0 14px; border: 0; border-radius: 99px; cursor: pointer; white-space: nowrap; font: 500 1.28rem/1 var(--pl-sans); color: rgb(52 46 42 / .78); background: rgb(252 250 247 / .62); box-shadow: inset 0 0 0 1px rgb(52 46 42 / .16); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.pl .pl-flip .pl-flip__change[hidden] { display: none; }
.pl .pl-flip .pl-flip__change:hover { background: rgb(252 250 247 / .92); color: var(--pl-ink); }
.pl .pl-flip .pl-flip__change:focus-visible { outline: 2px solid var(--pl-coral); outline-offset: 3px; }
.pl .pl-flip .pl-flip__change svg { width: 14px; height: 14px; color: var(--pl-coral); }

/* uploaded photo oval: crisp edge (no feathering) with only a thin, soft ring */
.pl .pl-pillow__portrait.has-photo > img, .pl .pl-turn__oval.has-photo > img, .pl .pl-illo__portrait.has-photo > img.pl-illo__photo, .pl .pl-lead__stage .pl-illo__photo { -webkit-mask-image: none; mask-image: none; }
.pl .pl-pillow__portrait.has-photo, .pl .pl-turn__oval.has-photo { border-color: rgb(255 255 255 / .4); }
.pl .pl-illo__portrait.has-photo { box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .4); }

/* pillow "Change photo": larger on desktop */
@media (min-width: 990px) {
  .pl .pl-flip .pl-flip__change { min-height: 46px; padding: 0 22px; gap: 9px; font-size: 1.56rem; }
  .pl .pl-flip .pl-flip__change svg { width: 18px; height: 18px; }
}

/* pillow preview: the pillow fills more of the frame (less empty space around it) */
.pl-lead-turn .pl-flip__card { transform: scale(1.2) !important; transform-origin: 50% 50%; }
.pl .pl-flip .pl-flip__change { bottom: 3.5%; }

/* "Sale price" shows with a crossed-out regular price, so the discount reads as real */
.pl-product__price { flex-wrap: wrap; }
.pl-product__salelabel { display: none; align-self: center; padding: 3px 9px; border-radius: 6px; background: rgb(177 89 71 / .11); color: var(--pl-coral); font-size: 1.14rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; line-height: 1.3; }
.pl-product__price:has([data-pl-was]:not([hidden])) .pl-product__salelabel { display: inline-block; }
.pl-product__price:has([data-pl-was]:not([hidden])) .pl-product__now { color: var(--pl-ink); }

/* blanket preview: "Change photo" below the blanket once a photo is added (same chip as the pillow's) */
.pl-lead__change { position: absolute; left: 50%; bottom: 6px; transform: translateX(-50%); z-index: 4; display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 0 14px; border: 0; border-radius: 99px; cursor: pointer; white-space: nowrap; font: 500 1.28rem/1 var(--pl-sans); color: rgb(52 46 42 / .78); background: rgb(252 250 247 / .62); box-shadow: inset 0 0 0 1px rgb(52 46 42 / .16); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.pl-lead__change[hidden] { display: none; }
.pl-lead__change:hover { background: rgb(252 250 247 / .92); color: var(--pl-ink); }
.pl-lead__change:focus-visible { outline: 2px solid var(--pl-coral); outline-offset: 3px; }
.pl-lead__change svg { width: 14px; height: 14px; color: var(--pl-coral); }
@media (min-width: 990px) { .pl-lead__change { min-height: 40px; padding: 0 18px; font-size: 1.44rem; } .pl-lead__change svg { width: 16px; height: 16px; } }

/* portrait: the top photo is Charlie's portrait until a photo is added; then it is the live framed preview */
.pl-gallery__slide.is-lead[data-pl-gal] { position: relative; }
.pl-lead-world { position: absolute; inset: 0; z-index: 2; }
.pl-lead-world .pl-world__stage { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; box-shadow: none; }
.pl-gallery__slide.is-lead:not([data-pl-live]) .pl-lead-world { display: none; }
.pl-gallery__slide.is-lead[data-pl-live] > .pl-gal { visibility: hidden; }
.pl-lead-world .pl-changephoto { display: none !important; }
.pl-lead-world .pl-lead__change { bottom: 8px; }
.pl-lead__stage, .pl-lead-world .pl-world__stage { background: radial-gradient(120% 90% at 20% 10%, #F6F1EA, #E8DFD3 70%); }
.pl-lead__stage .pl-looks__blank, .pl-lead__stage .pl-looks__print { transform: scale(1.04) translateY(-3.5%); }
.pl-lead-world .pl-lead__change { bottom: 22px; }
.pl .pl-flip .pl-flip__change { bottom: 7%; }
.pl-lead-turn .pl-flip, .pl-lead-turn .pl-flip:has(.pl-pillow.is-photo) { box-shadow: none !important; border: 0 !important; outline: 0; }
.pl-lead-turn .pl-pillow, .pl-lead-turn .pl-pillow__face { border: 0 !important; box-shadow: none !important; outline: 0; }
@media (max-width: 989px) {
  .pl-lead__stage .pl-looks__blank, .pl-lead__stage .pl-looks__print { transform: scale(.985) translateY(-1%); }
  .pl-lead-world .pl-lead__change { bottom: 14px; }
}
@media (min-width: 990px) {
  .pl-lead__stage .pl-looks__blank, .pl-lead__stage .pl-looks__print { transform: scale(1.04) translateY(2%); }
  .pl-lead__stage .pl-lead__change { top: 85.5%; bottom: auto; }
}
.pl .pl-cart__applied { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; background: var(--pl-soft); color: var(--pl-ink); font-weight: 600; font-size: 1.52rem; line-height: 1.3; }
@media (max-width: 989px) { .pl .pl-flip .pl-flip__change { bottom: 3%; } }
@media (max-width: 989px) { .pl-lead-world .pl-lead__change { bottom: 24px; } }
.pl-product__salelabel { order: 5; }
.pl-product__price:has([data-pl-was]:not([hidden])) .pl-product__salelabel { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; border-radius: 50%; background: rgb(177 89 71 / .12); font-size: 0; line-height: 0; letter-spacing: 0; }
.pl-product__salelabel::before { content: ""; width: 17px; height: 17px; background: var(--pl-coral); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12.2V4a1 1 0 0 1 1-1h8.2a1 1 0 0 1 .7.3l8 8a1 1 0 0 1 0 1.4l-7.2 7.2a1 1 0 0 1-1.4 0l-8-8a1 1 0 0 1-.3-.7Z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.3'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12.2V4a1 1 0 0 1 1-1h8.2a1 1 0 0 1 .7.3l8 8a1 1 0 0 1 0 1.4l-7.2 7.2a1 1 0 0 1-1.4 0l-8-8a1 1 0 0 1-.3-.7Z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.3'/%3E%3C/svg%3E") center / contain no-repeat; }
.pl-product__price .pl-sr { order: 0; }
.pl-product__price .pl-product__now { order: 1; }
.pl-product__price .pl-product__salelabel { order: 2; }
.pl-product__price .pl-product__was { order: 3; }
.pl-product__price .pl-product__salelabel { order: 0; }
.pl-product__price .pl-product__now { order: 1; }
.pl-product__price .pl-product__was { order: 2; }
.pl-product__salelabel::before { transform: scaleX(-1); }
/* phones with a large system text size: keep the font picker text inside its boxes */
.pl-fontrow .pl-fontpick__box, .pl-looks__fonts .pl-fontpick__box { overflow-x: clip; overflow-y: visible; container-type: inline-size; }
.pl-fontrow .pl-fontpick__sample--classic, .pl-fontrow .pl-fontpick__sample--playful { font-size: min(1.7rem, 17cqw); }
.pl-fontrow .pl-fontpick__sample--signature { font-size: min(2.1rem, 21cqw); }
/* the "Original photo" tag must fit the shrunken keepsake photo even with a large system text size */
.pl-transform__photo { container-type: inline-size; }
.pl-transform__tag { font-size: min(1.28rem, calc((33cqw - 20px) / 7.7)); padding: 3px 10px; }
