/* Product presentation only. Photography and commerce stay in their original components. */
.editorial-products {
  --ed-ink: #292d2a;
  --ed-muted: #5b605c;
  --ed-mint: #95cfbf;
  --ed-paper: #faf9f6;
  --ed-gold: #927a43;
  --ed-line: #dcdcd2;
  --ed-ease: cubic-bezier(.22,1,.36,1);
}
.editorial-products .editorial-grid {
  display: grid; grid-template-columns: repeat(3,minmax(0,1fr));
  align-items: stretch; gap: 56px 30px;
}
.editorial-products .editorial-product {
  min-width: 0; padding: 0; margin: 0; border: 0; border-radius: 0;
  background: transparent; box-shadow: none; overflow: visible;
  color: var(--ed-ink); text-align: left; transform: none;
}
.editorial-products .editorial-product[data-editorial-position] { padding-top: 0; }
.editorial-products .editorial-grid:not(.store-grid)[data-editorial-count="1"] { grid-template-columns: 1fr; max-width: 540px; margin-inline: auto; }
.editorial-products .editorial-grid:not(.store-grid)[data-editorial-count="2"] { grid-template-columns: 1fr 1fr; max-width: 980px; margin-inline: auto; }
.editorial-products .editorial-stage {
  position: relative; isolation: isolate; display: block;
  width: 100%; height: auto; min-height: 0; max-height: none;
  aspect-ratio: 4/5; padding: 0; margin: 0; overflow: hidden;
  border: 0; border-radius: 2px; cursor: inherit;
  background: radial-gradient(ellipse at 20% 10%,#fffaf0 0,transparent 62%),linear-gradient(135deg,#ecebdf,#e2eee6 85%);
  box-shadow: inset 0 0 0 1px rgb(41 45 42 / .035);
  transition: box-shadow .6s ease, transform .65s var(--ed-ease);
}
.editorial-products button.editorial-stage, .editorial-products a.editorial-stage { cursor: pointer; }
.editorial-products .editorial-product[data-editorial-position="1"] .editorial-stage {
  background: radial-gradient(ellipse at 20% 20%,#fffdf6,transparent 70%),linear-gradient(130deg,#f2eee4,#e5e4d6);
}
.editorial-products .editorial-product[data-editorial-position="2"] .editorial-stage {
  background: radial-gradient(ellipse at 25% 10%,#fcfcf6,transparent 65%),linear-gradient(135deg,#e6f0e9,#cde7db);
}
.editorial-products .editorial-stage::before {
  content: ''; position: absolute; z-index: -1; pointer-events: none;
  width: 82%; height: 78%; left: -25%; top: 20%;
  border-radius: 48% 52% 64% 36% / 52% 70% 30% 48%;
  background: linear-gradient(140deg,rgb(149 207 191 / .34),rgb(255 255 255 / .1));
  box-shadow: 20px 20px 65px rgb(123 125 99 / .035);
  transform: rotate(-15deg); filter: blur(5px); transition: opacity .6s ease;
}
.editorial-products .editorial-stage::after {
  content: ''; position: absolute; z-index: -1; pointer-events: none;
  inset: -20px -15% 0 0; background: url('assets/editorial-botanical-shadow.svg') top right / 75% 100% no-repeat;
  opacity: .085; filter: blur(4px); transition: opacity .65s ease;
}
.editorial-products .editorial-stage > img {
  position: absolute; inset: auto; top: 48%; left: 6%;
  width: 88%; height: auto; max-height: 80%; max-width: 88%;
  object-fit: contain; object-position: center; border-radius: 1px;
  mix-blend-mode: normal; filter: none;
  /* Shadows belong to the photographic print, never a fabricated product cutout. */
  box-shadow: 0 18px 28px -18px rgb(44 49 37 / .32);
  transform: translateY(-50%);
  transition: transform .85s var(--ed-ease), opacity .45s ease;
}
.editorial-products .editorial-fashion .editorial-stage { background: linear-gradient(135deg,#f1ece3,#e6ece3); }
.editorial-products .editorial-fashion .editorial-stage::before { left: 35%; top: -25%; width: 105%; height: 120%; background: rgb(149 207 191 / .16); }
.editorial-products .editorial-fashion .editorial-stage::after { opacity: .07; }
.editorial-products .editorial-caption {
  position: absolute; left: 6%; right: 6%; bottom: 19px; pointer-events: none;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  font: 500 8px/1.4 var(--font-sans,sans-serif); text-transform: uppercase;
  letter-spacing: .17em; color: #545b52;
}
.editorial-products .editorial-number { font: italic 20px/1 var(--font-serif,serif); letter-spacing: 0; }
.editorial-products .editorial-quick {
  display: flex; align-items: center; justify-content: center;
  position: absolute; z-index: 2; bottom: 53px; left: 50%;
  transform: translate(-50%,6px); opacity: 0; pointer-events: none;
  padding: 12px 19px; width: max-content; min-height: 44px;
  background: rgb(250 249 246 / .96); color: var(--ed-ink);
  border: 1px solid rgb(146 122 67 / .28); border-radius: 1px;
  font: 500 11px/1.4 var(--font-sans,sans-serif); letter-spacing: .02em;
  box-shadow: 0 7px 28px rgb(41 45 42 / .09);
  transition: opacity .35s ease, transform .5s var(--ed-ease);
}
.editorial-products .store-product-info,
.editorial-products .collection-card-info { padding: 19px 0 0; background: transparent; }
.editorial-products .store-product-category,
.editorial-products .collection-card-info .editorial-pretitle {
  color: var(--ed-muted); font-size: 9px; letter-spacing: .085em; line-height: 1.6;
}
.editorial-products .store-product h3 { font-size: clamp(23px,2.1vw,31px); line-height: 1.13; min-height: 2.26em; margin: 8px 0 13px; font-weight: 400; }
.editorial-products .store-price { font-size: 13px; margin: 0 0 15px; }
.editorial-products .store-action {
  width: 100%; min-height: 46px; justify-content: space-between; padding: 12px 0;
  border: 0; border-top: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line);
  border-radius: 0; background: transparent; color: var(--ed-ink); font-size: 12px;
  transition: background-color .35s ease,padding .45s var(--ed-ease),border-color .35s ease;
}
.editorial-products .editorial-product-note { display: none; }
.editorial-products .store-catalog-heading { margin-bottom: 26px; }
.editorial-products .store-catalog-heading h1 { font-size: clamp(32px,3.1vw,44px); }
.editorial-products .store-grid[data-editorial-count="2"] { grid-template-columns: 1fr 1fr; max-width: 980px; margin-inline: auto; gap: 56px; }
.editorial-products .store-grid[data-editorial-count="2"] .editorial-product:nth-child(n) { padding-top: 0; }
.editorial-products .store-grid[data-editorial-count="1"] { display: block; }
.editorial-products .store-grid[data-editorial-count="1"] .editorial-product:not([hidden]) {
  display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.85fr);
  align-items: center; gap: clamp(28px,7vw,100px); max-width: 1040px; margin-inline: auto;
}
.editorial-products .store-grid[data-editorial-count="1"] .store-product-info { display: block; padding: 0; }
.editorial-products .store-grid[data-editorial-count="1"] .store-product h3 { font-size: clamp(36px,4vw,58px); min-height: 0; margin-block: 14px 22px; }
.editorial-products .store-grid[data-editorial-count="1"] .editorial-product-note { display: block; font-size: 14px; line-height: 1.8; color: var(--ed-muted); margin-bottom: 28px; }
.editorial-products .store-grid[data-editorial-count="1"] .store-price { font-size: 17px; margin-bottom: 25px; }
/* Product details use the same paper and original full image. */
.editorial-products .store-detail-photo { background: linear-gradient(145deg,#e4eee6,#f4f0e6); padding: 24px; }
.editorial-products .store-detail-photo img { box-shadow: 0 20px 30px -20px rgb(41 45 42 / .28); }
.editorial-products .store-product-dialog .store-action { justify-content: center; padding-inline: 15px; }
/* Existing fashion chooser and edition gallery. */
.editorial-products.closet-page .product-gallery-side { background: linear-gradient(135deg,#f5f0e6,#e2eee5); }
.editorial-products.closet-page .main-image-viewport { width: 100%; max-width: 480px; margin-inline: auto; height: auto; aspect-ratio: 4/5; overflow: hidden; }
.editorial-products.closet-page .main-product-img { mix-blend-mode: normal; object-fit: contain; border-radius: 1px; }
.editorial-products .closet-zoom img { mix-blend-mode: normal; }
.editorial-products.closet-page .collection-edition-card { background: transparent; border: 0; box-shadow: none; transform: none; }
.editorial-products.closet-page .collection-card-info { display: flex; flex: 1; flex-direction: column; }
.editorial-products.closet-page .collection-card-city { font-size: clamp(29px,2.8vw,39px); margin-block: 8px 12px; }
.editorial-products.closet-page .collection-card-title { font: inherit; color: inherit; border: 0; padding: 0; margin: 0; background: none; text-align: left; cursor: pointer; }
.editorial-products.closet-page .collection-card-title:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.editorial-products.closet-page .product-garment-spec { display: block; }
.editorial-products.closet-page .garment-types-label { display: block; font: 500 9px/1.5 var(--font-sans,sans-serif); letter-spacing: .12em; text-transform: uppercase; color: #75643e; margin: 16px 0 8px; }
.editorial-products.closet-page .garment-types-list { display: grid; gap: 7px; padding: 0 0 0 14px; margin: 0; font: 500 11px/1.6 var(--font-sans,sans-serif); color: #292d2a; list-style: disc; text-transform: none; letter-spacing: 0; }
.editorial-products.closet-page .color-swatch-box { width: 40px; height: 40px; }
@media (max-width:600px) { .editorial-products.closet-page .color-swatch-box { width: 44px; height: 44px; } }
.editorial-products.closet-page .color-selection-notice .notice-text { color: #292d2a; }
.editorial-products.closet-page .collection-card-price { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid var(--ed-line); padding-top: 15px; margin-top: auto; }
.editorial-products.closet-page .collection-card-info > p { padding-bottom: 20px; }
.editorial-products.closet-page .collection-card-price > span { font-size: 13px; color: var(--ed-ink); }
.editorial-products.closet-page .collection-card-btn { min-height: 44px; padding: 10px 15px; border: 1px solid var(--ed-line); background: transparent; color: var(--ed-ink); font-size: 10px; border-radius: 0; }
.editorial-products.closet-page .collection-card-back-hover { opacity: 0; }
.editorial-products.closet-page .size-pill-btn.active,
.editorial-products.closet-page .btn-add-to-bag { color: var(--ed-ink); }
/* Earlier category URLs and article recommendations retain all their original copy and links. */
.editorial-products .editorial-product.product-card { display: flex; flex-direction: column; }
.editorial-products .editorial-product.product-card > p { flex: 1; }
.editorial-products .editorial-product.product-card h4,
.editorial-products .editorial-product.mama-product-card h4 { font: 400 clamp(25px,2.2vw,33px)/1.15 var(--font-serif,serif); margin: 20px 0 12px; color: var(--ed-ink); }
.editorial-products .editorial-product.product-card > p,
.editorial-products .editorial-product.mama-product-card > p { font-size: 13px; line-height: 1.7; color: var(--ed-muted); margin-bottom: 20px; }
.editorial-products .editorial-product .product-meta,
.editorial-products .editorial-product .mama-price-wrap { border-top: 1px solid var(--ed-line); padding-top: 16px; margin-top: 16px; }
.editorial-products .editorial-product .product-meta .btn-cart-add { display: inline-flex; gap: 8px; align-items: center; justify-content: center; width: auto; min-width: 44px; min-height: 44px; padding: 10px 12px; border-radius: 0; background: #e7f2ec; color: var(--ed-ink); font-size: 11px; }
.editorial-products .editorial-product .price,
.editorial-products .editorial-product .mama-price { font-size: 16px; color: var(--ed-ink); }
.editorial-products .editorial-product.mama-product-card .course-badge { margin-top: 18px; }
.editorial-products .editorial-content-product {
  padding: 38px 28px !important; border-radius: 0 !important; border: 0 !important;
  background: linear-gradient(145deg,#f4eee4,#e4eee6) !important;
  min-height: 420px; display: flex; flex-direction: column; justify-content: center;
}
.editorial-products .editorial-content-product button { align-self: flex-start; }
@media (hover:hover) and (pointer:fine) {
  .editorial-products .editorial-product:hover .editorial-stage { transform: translateY(-4px); border: 0; box-shadow: 0 24px 36px -30px rgb(41 45 42 / .4); }
  .editorial-products .editorial-product:hover .editorial-stage > img { transform: translateY(calc(-50% - 3px)) scale(1.03); }
  .editorial-products .editorial-product:hover .editorial-stage::after { opacity: .055; }
  .editorial-products .editorial-product:hover .editorial-stage::before { opacity: .6; }
  .editorial-products .editorial-product:hover .editorial-quick { opacity: 1; transform: translate(-50%,0); }
  .editorial-products .editorial-product:hover .store-action { background: #e7f2ec; border-color: #b7cfc2; padding-inline: 14px; }
  .editorial-products .editorial-product .store-action:hover,
  .editorial-products.closet-page .collection-card-btn:hover { background: var(--ed-mint); color: var(--ed-ink); border-color: var(--ed-mint); box-shadow: none; }
  .editorial-products.closet-page .collection-edition-card:hover .collection-card-back-hover { opacity: 1; }
}
.editorial-products .editorial-product:focus-within .editorial-quick { opacity: 1; transform: translate(-50%,0); }
.editorial-products .editorial-product :focus-visible { outline: 2px solid #75643e; outline-offset: 5px; }
.editorial-products .editorial-product:has(:focus-visible) .editorial-stage { border: 0; box-shadow: inset 0 0 0 2px #927a43; }
.editorial-products .editorial-product:focus-within .store-action { padding-inline: 14px; background: #e7f2ec; }
.editorial-products .editorial-product[hidden] { display: none !important; }
/* A compositor-only drift of the decorative shadow, never the product or reading order. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine) {
    .editorial-products .editorial-stage::after { animation: editorial-shadow-drift linear both; animation-timeline: view(); animation-range: entry 0% exit 100%; }
    @keyframes editorial-shadow-drift { from { transform: translateY(-5px); } to { transform: translateY(5px); } }
  }
}
@media (max-width:960px) {
  .editorial-products .editorial-grid { grid-template-columns: 1fr 1fr; gap: 44px 22px; }
  .editorial-products .editorial-product[data-editorial-position] { padding-top: 0; }
  .editorial-products .store-grid[data-editorial-count="2"] { gap: 26px; }
}
@media (max-width:580px) {
  .editorial-products .editorial-grid,
  .editorial-products .store-grid[data-editorial-count="2"],
  .editorial-products .editorial-grid:not(.store-grid)[data-editorial-count="2"] { grid-template-columns: 1fr; gap: 36px; }
  .editorial-products .store-grid[data-editorial-count] .editorial-product:not([hidden]),
  .editorial-products .editorial-product[data-editorial-position] { display: block; padding-top: 0; }
  .editorial-products .editorial-stage { aspect-ratio: 4/5; }
  .editorial-products .store-grid[data-editorial-count] .store-product-info { padding: 18px 0 0; }
  .editorial-products .store-grid[data-editorial-count] .store-product h3 { font-size: 32px; min-height: 0; margin: 8px 0 12px; }
  .editorial-products .store-catalog-heading h1 { font-size: 32px; }
  .editorial-products .store-catalog-heading { margin-bottom: 22px; }
  .editorial-products .store-product-category { font-size: 10px; }
  .editorial-products .store-grid[data-editorial-count] .store-price { font-size: 14px; margin-bottom: 16px; }
  .editorial-products .store-action { font-size: 12px; min-height: 48px; }
  .editorial-products .editorial-quick { opacity: 1; transform: translate(-50%,0); min-height: 44px; }
  .editorial-products .editorial-caption { font-size: 8px; }
  .editorial-products .store-grid[data-editorial-count="1"] .editorial-product-note { font-size: 13px; margin-bottom: 20px; }
  .editorial-products .store-detail-photo { padding: 20px; }
  .editorial-products.closet-page .collection-card-info { padding-top: 20px; }
  .editorial-products.closet-page .collection-card-btn { min-width: 115px; }
  .editorial-products.closet-page .main-image-viewport { height: auto; aspect-ratio: 4/5; }
  .editorial-products .editorial-content-product { min-height: 340px; }
}
@media (hover:none), (pointer:coarse) {
  .editorial-products .editorial-quick { opacity: 1; transform: translate(-50%,0); }
}
@media (prefers-reduced-motion:reduce) {
  .editorial-products .editorial-product, .editorial-products .editorial-product *,
  .editorial-products .editorial-stage::before,.editorial-products .editorial-stage::after { animation: none !important; transition: none !important; }
  .editorial-products .editorial-product .editorial-stage { transform: none !important; }
  .editorial-products .editorial-product .editorial-stage > img { transform: translateY(-50%) !important; }
  .editorial-products.closet-page .main-product-img { transform: none !important; }
}
