body[data-page="products"],
body[data-page="product"] {
  background: #fffdf9;
  color: #18232d;
}

body[data-page="product"] {
  --product-editorial-font: "Noto Serif", Georgia, serif;
  font-family: var(--catalog-ui-font);
}

html[lang^="ja"] body[data-page="product"] { --product-editorial-font: "Klee One", "Yu Mincho", serif; }
html[lang^="ko"] body[data-page="product"] { --product-editorial-font: "Gowun Dodum", "Malgun Gothic", sans-serif; }
html[lang^="zh"] body[data-page="product"] {
  --catalog-ui-font: "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --product-editorial-font: "Noto Serif SC", "Songti SC", "SimSun", serif;
}

body[data-page="product"] button,
body[data-page="product"] input,
body[data-page="product"] select,
body[data-page="product"] textarea,
body[data-page="product"] .product-page,
body[data-page="product"] .product-config-modal {
  font-family: var(--catalog-ui-font);
}

body[data-page="products"] {
  --catalog-ui-font: "Quicksand", "Segoe UI", sans-serif;
  --catalog-footer-script-font: "Oooh Baby", "Segoe Print", cursive;
  --scrollbar-thumb: #A7CCDF;
  --scrollbar-thumb-hover: #A7CCDF;
  --scrollbar-track: #e8f5fb;
  font-family: var(--catalog-ui-font);
}

body[data-page="products"] .page-scrollbar-thumb {
  box-shadow: inset 0 0 0 1px rgba(31, 112, 158, .12), 0 2px 7px rgba(34, 126, 178, .2);
}

body[data-page="products"] .page-scrollbar-thumb::after,
body[data-page="products"] .shared-scrollbar-hover::after {
  background: linear-gradient(
    180deg,
    transparent 8%,
    rgba(167, 204, 223, .98) 26%,
    rgba(246, 200, 82, .96) 43%,
    rgba(236, 99, 134, .96) 58%,
    rgba(128, 105, 215, .95) 74%,
    transparent 92%
  );
}

body[data-page="products"] .shared-scrollbar-hover {
  background: var(--scrollbar-thumb);
  box-shadow: inset 0 0 0 1px rgba(31, 112, 158, .12), 0 3px 10px rgba(34, 126, 178, .22);
}

html[lang^="ja"] body[data-page="products"] { --catalog-ui-font: "Zen Maru Gothic", "Yu Gothic", sans-serif; }
html[lang^="ko"] body[data-page="products"] { --catalog-ui-font: "Gowun Dodum", "Malgun Gothic", sans-serif; }
html[lang^="ja"] body[data-page="products"] { --catalog-footer-script-font: "Klee One", "Yu Mincho", cursive; }
html[lang^="ko"] body[data-page="products"] { --catalog-footer-script-font: "Nanum Pen Script", "Malgun Gothic", cursive; }

body[data-page="products"] button,
body[data-page="products"] input,
body[data-page="products"] select,
body[data-page="products"] textarea,
body[data-page="products"] .site-header,
body[data-page="products"] .site-footer,
body[data-page="products"] .catalog-page,
body[data-page="products"] .catalog-filter-row > p,
body[data-page="products"] .catalog-filter,
body[data-page="products"] .catalog-heading h2,
body[data-page="products"] .catalog-card-copy strong,
body[data-page="products"] .catalog-card-copy small {
  font-family: var(--catalog-ui-font);
}

body[data-page="products"].site-footer-page > main { margin-bottom: 0; }
body[data-page="products"] .catalog-workshop-ad { margin-bottom: 18px; }

.catalog-page,
.product-page {
  width: min(100%, 1540px);
  margin-inline: auto;
  font-family: var(--catalog-ui-font);
}

.catalog-hero {
  --catalog-hero-script-font: "Oooh Baby", "Segoe Print", cursive;
  position: relative;
  container-type: inline-size;
  height: min(266px, 18.1vw);
  overflow: hidden;
  isolation: isolate;
  background: #fff url("assets/catalog/hero-watercolor-room.png") center center / 100% auto no-repeat;
}
.catalog-hero[data-hero-language="ja"] { --catalog-hero-script-font: "Klee One", "Yu Mincho", cursive; }
.catalog-hero[data-hero-language="ko"] { --catalog-hero-script-font: "Nanum Pen Script", "Malgun Gothic", cursive; }

.catalog-hero-copy {
  position: absolute;
  z-index: 2;
  top: 29.5%;
  left: 4%;
  width: 38%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5cqw;
  text-align: center;
}

.catalog-kicker,
.catalog-section-kicker {
  margin: 0 0 12px;
  color: #738b90;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .24em;
}
.catalog-hero h1,
.product-spotlight h1,
.product-detail-section h2,
.product-review-heading h2 {
  margin: 0;
  font-weight: 500;
  letter-spacing: .025em;
}
.catalog-hero h1 { font-family: var(--catalog-ui-font); }
.product-spotlight h1,
.product-detail-section h2,
.product-review-heading h2 { font-family: var(--product-editorial-font); }
.catalog-hero h1 { width: 100%; color: #111823; font-family: var(--catalog-hero-script-font); font-size: 3.5cqw; font-weight: 400; line-height: 1.02; letter-spacing: .015em; }
.catalog-hero-title-emphasis { position: relative; z-index: 0; display: inline-block; color: #286477; font-size: 1.09em; line-height: .96; transform: rotate(-2deg); }
.catalog-hero-title-emphasis::before { position: absolute; z-index: -1; right: -.09em; bottom: .06em; left: -.09em; height: .36em; border-radius: 52% 42% 49% 45%; background: linear-gradient(90deg, rgba(180, 223, 227, .72), rgba(206, 228, 215, .54) 62%, rgba(225, 197, 175, .4)); transform: rotate(-2deg); content: ""; }
.catalog-hero-title-emphasis::after { position: absolute; right: .02em; bottom: -.06em; left: .04em; border-bottom: 1.5px solid rgba(53, 115, 132, .65); border-radius: 50%; transform: rotate(-3deg); content: ""; }
.catalog-hero-rule { display: block; width: 37px; height: 2px; border-radius: 50%; background: #b89960; transform: rotate(-4deg); }
.catalog-hero-description { width: 100%; margin: 0; color: #3b4650; font-family: var(--catalog-hero-script-font); font-size: 1.5cqw; font-weight: 400; line-height: 1.3; letter-spacing: .01em; white-space: pre-line; }
.catalog-hero-description .hero-description-phrase { display: inline-block; max-width: 100%; white-space: nowrap; }
/* Match the desktop background image's size and centered crop. */
.catalog-hero-text-layer { position: absolute; z-index: 2; top: 50%; left: 0; width: 100%; aspect-ratio: 2132 / 738; transform: translateY(-50%); pointer-events: none; }
.catalog-hero-script-zone,
.catalog-hero-note-zone { position: absolute; display: grid; place-items: center; overflow: hidden; }
.catalog-hero-script-zone { top: 21%; left: 45.1%; width: 11.5%; height: 37%; clip-path: polygon(13% 0, 67% 0, 90% 8%, 100% 22%, 100% 43%, 84% 57%, 65% 67%, 53% 80%, 39% 100%, 8% 100%, 0 90%, 0 36%); }
.catalog-hero-note-zone { top: 21%; left: 90.5%; width: 9.5%; height: 40%; clip-path: polygon(30% 0, 72% 0, 100% 9%, 100% 54%, 88% 75%, 51% 100%, 22% 96%, 0 77%, 0 29%, 12% 9%); }
.catalog-hero-script,
.catalog-hero-note { box-sizing: border-box; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; margin: 0; padding-bottom: 12%; color: #343331; font-family: var(--catalog-hero-script-font); font-style: normal; overflow-wrap: anywhere; }
.catalog-hero-script { width: 88%; height: 70%; font-size: 2.15cqw; line-height: 1.02; letter-spacing: .015em; }
.catalog-hero-note { width: 96%; height: 74%; font-size: 1.35cqw; line-height: 1.03; }
.hero-hand-line { display: block; max-width: 100%; white-space: nowrap; text-align: left; }
.catalog-hero-script .hero-hand-line:first-child { align-self: flex-start; margin-left: 15%; transform: rotate(-8deg); }
.catalog-hero-script .hero-hand-line:nth-child(2) { align-self: flex-end; margin-right: 2%; transform: rotate(-8deg); }
.catalog-hero-note .hero-hand-line:first-child { align-self: flex-start; margin-left: 12%; transform: rotate(-7deg); }
.catalog-hero-note .hero-hand-line:nth-child(2) { align-self: flex-end; margin-right: 3%; transform: translateX(3%) rotate(-5deg); }
.catalog-hero-note .hero-hand-line:nth-child(3) { align-self: flex-end; margin-right: 7%; transform: translateX(5%) rotate(-8deg); }
.catalog-hero-script::after { display: block; flex: 0 0 auto; align-self: center; width: 68%; height: .12em; margin-top: .12em; border-top: 1.2px solid rgba(64, 64, 67, .58); border-radius: 50% 50% 0 0; transform: rotate(-17deg); content: ""; }
.catalog-hero-note-zone::after { position: absolute; left: 16%; top: 67%; width: 68%; height: 8%; border-top: 1.2px solid rgba(64, 64, 67, .58); border-radius: 50% 50% 0 0; transform: rotate(-17deg); content: ""; }
.catalog-hero-note-zone::after { left: 25%; top: 72%; width: 60%; height: 6%; transform: rotate(-12deg); }
.catalog-hero[data-hero-language="ko"] .catalog-hero-script { font-size: 2.3cqw; }
.catalog-hero[data-hero-language="ko"] .catalog-hero-note { font-size: 1.55cqw; }

@media (min-width: 1051px) {
  .catalog-hero[data-hero-language="ja"] h1 { font-size: 2.6cqw; }
}
@media (max-width: 1050px) {
  .catalog-hero h1 { font-size: calc(21.23px + 1.48cqw); }
  .catalog-hero[data-hero-language="ja"] h1 { font-size: calc(22.55px + .45cqw); }
  .catalog-hero-description { font-size: calc(13.87px + .18cqw); }
}
.catalog-content { padding: 24px clamp(22px, 3.2vw, 52px) 22px; }
.catalog-collection-heading { display: block; margin: 2px 0 24px; color: #707786; text-align: left; }
.catalog-collection-heading::before,
.catalog-collection-heading::after { display: none; content: none; }
.catalog-collection-heading h2 { position: relative; margin: 0; font: 600 clamp(1.35rem, 2vw, 1.9rem)/1.3 var(--catalog-ui-font); letter-spacing: .015em; }
.catalog-collection-heading h2::after { display: block; width: 38px; height: 2px; margin: 8px 0 0; border-radius: 999px; background: #aeb4bb; content: ""; }
.catalog-filter-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.catalog-filter-row > p { flex: 0 0 auto; color: #74808a; font-family: var(--catalog-ui-font); font-size: .78rem; letter-spacing: .08em; }
.catalog-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.catalog-filter { min-height: 34px; padding: 5px 17px; border: 1px solid #e1e5e6; border-radius: 100px; background: #fff; color: #343b43; box-shadow: 0 3px 10px rgba(42, 51, 55, .05); font: 600 .75rem var(--catalog-ui-font); cursor: pointer; transition: background .2s, color .2s, transform .2s; }
.catalog-filter:hover { transform: translateY(-2px); }
.catalog-filter.is-active { border-color: #5e8d9d; background: #5e8d9d; color: #fff; }
.catalog-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 28px 0 18px; }
.catalog-heading h2 { margin: 0; font: 500 clamp(1.5rem, 2vw, 2.15rem) var(--catalog-ui-font); }
.catalog-heading .catalog-section-kicker { margin-bottom: 5px; }
.catalog-heading > span { color: #74808a; font-size: .77rem; }
.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.catalog-card { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 14px; background: #f8f5ef; color: #101a20; text-decoration: none; box-shadow: 0 7px 20px rgba(38, 49, 56, .07); transition: transform .22s, box-shadow .22s; }
.catalog-card:hover { transform: translateY(-5px); box-shadow: 0 15px 28px rgba(38, 49, 56, .12); }
.catalog-card:focus-visible { outline: 3px solid #3e849b; outline-offset: 3px; }
.catalog-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.catalog-card:hover img { transform: scale(1.035); }
.catalog-card-wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,255,255,.34) 0, rgba(255,255,255,.16) 34%, transparent 43%); pointer-events: none; }
.catalog-card-copy { position: absolute; top: 12%; bottom: calc(13% + clamp(34px, 3vw, 46px)); left: 7%; display: flex; flex-direction: column; gap: 6px; width: 29%; max-width: none; min-height: 0; }
.catalog-card-copy strong { flex: 0 0 auto; overflow: visible; font: 600 clamp(.92rem, 1.2vw, 1.22rem) var(--catalog-ui-font); line-height: 1.28; text-shadow: 0 1px 3px #fff; white-space: normal; }
.catalog-card-copy small { display: -webkit-box; flex: 1 1 auto; min-height: 0; max-width: none; overflow: hidden; font: 500 clamp(.62rem, .72vw, .75rem)/1.58 var(--catalog-ui-font); color: #36434a; text-shadow: 0 1px 3px #fff; -webkit-box-orient: vertical; -webkit-line-clamp: var(--catalog-description-lines, 3); }
.catalog-card-copy strong::after { display: block; width: 25px; height: 2px; margin-top: 7px; background: var(--card-accent); content: ""; }
.catalog-card-arrow { position: absolute; left: 7%; bottom: 9%; display: grid; place-items: center; width: clamp(34px, 3vw, 46px); height: clamp(34px, 3vw, 46px); border-radius: 50%; background: white; box-shadow: 0 3px 14px #232d3030; font-size: 1.2rem; }
.catalog-state { grid-column: 1 / -1; padding: 65px 20px; border: 1px solid #eae4dc; border-radius: 12px; background: #fff; color: #52606a; text-align: center; }
.catalog-state button { border: 0; background: transparent; color: #3d788e; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }

.catalog-workshop-ad { position: relative; aspect-ratio: 1983 / 793; margin: 8px clamp(22px, 3.2vw, 52px) 48px; overflow: hidden; border: 1px solid rgba(118, 146, 153, .18); border-radius: 18px; background: #f4f1e9; box-shadow: 0 14px 34px rgba(48, 78, 87, .1); isolation: isolate; }
.catalog-workshop-ad::after { position: absolute; z-index: 1; inset: 10px; border: 1px solid rgba(255, 255, 255, .62); border-radius: 11px; box-shadow: inset 0 0 24px rgba(255, 255, 255, .2); pointer-events: none; content: ""; }
.catalog-workshop-ad img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.catalog-dark-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 41px; padding: 0 20px; border-radius: 100px; background: #25343c; color: white; font-size: .8rem; font-weight: 700; text-decoration: none; }
.catalog-dark-link:hover { background: #4b7583; color: white; }

.product-page { padding: 20px clamp(20px, 4vw, 62px) 48px; }
.product-edge-back {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 0;
  display: flex;
  width: clamp(46px, 3.7vw, 54px);
  min-height: clamp(136px, 22vh, 164px);
  padding: 18px 7px 16px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 11px;
  overflow: visible;
  border: 1px solid rgba(127, 158, 147, .66);
  border-radius: 0;
  background:
    radial-gradient(ellipse at 18% 20%, rgba(169, 207, 223, .2), transparent 45%),
    radial-gradient(ellipse at 80% 82%, rgba(246, 229, 197, .28), transparent 48%),
    linear-gradient(176deg, rgba(255, 254, 251, .97), rgba(250, 247, 238, .94));
  box-shadow: 0 7px 19px rgba(82, 108, 99, .14), inset 0 0 0 2px rgba(255, 255, 255, .62);
  color: #5f746b;
  font-family: var(--catalog-ui-font);
  text-decoration: none;
  transform: translate(-22%, -50%) rotate(-.35deg);
  transition: border-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.product-edge-back::before {
  position: absolute;
  inset: 3px 2px;
  border: 1px solid rgba(188, 148, 77, .42);
  border-radius: 0;
  pointer-events: none;
  transform: rotate(.75deg);
  content: "";
}
.product-edge-back::after {
  position: absolute;
  inset: -2px 2px 2px -2px;
  border-top: 1px solid rgba(127, 158, 147, .32);
  border-right: 1px solid rgba(188, 148, 77, .3);
  border-bottom: 1px solid rgba(127, 158, 147, .27);
  border-left: 1px solid rgba(188, 148, 77, .34);
  pointer-events: none;
  transform: rotate(-.65deg);
  content: "";
}
.product-edge-back > * { position: relative; z-index: 1; }
.product-edge-back-arrow { width: 22px; height: 34px; fill: none; stroke: currentColor; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; transform: rotate(-2deg); }
.product-edge-back-line { width: 24px; height: 1px; border-radius: 0; background: rgba(188, 148, 77, .72); transform: rotate(1.5deg); }
.product-edge-back-label { font-size: clamp(.61rem, .68vw, .72rem); font-weight: 600; letter-spacing: .015em; line-height: 1.2; text-align: center; }
.product-edge-back:hover,
.product-edge-back:focus-visible {
  border-color: rgba(90, 126, 112, .82);
  color: #3f5d52;
  box-shadow: 0 9px 22px rgba(82, 108, 99, .2), inset 0 0 0 2px rgba(255, 255, 255, .72);
  transform: translate(calc(-22% - 4px), -50%) rotate(-.7deg);
}
.product-edge-back:focus-visible { outline: 2px solid #7f9e93; outline-offset: 4px; }
.product-breadcrumb { display: flex; gap: 10px; margin: 0 0 22px; color: #71808a; font-size: .75rem; }
.product-breadcrumb a { color: #496f7e; text-decoration: none; }
.product-spotlight { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(25px, 5vw, 84px); align-items: center; }
.product-spotlight-image-shell { position: relative; min-width: 0; }
.product-spotlight-image { aspect-ratio: 1.14; overflow: hidden; border-radius: 16px; background: #f5f1e9; box-shadow: 0 12px 35px #33333314; }
.product-spotlight-image img { width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.product-spotlight-copy { max-width: 520px; }
.product-spotlight h1 { font-size: clamp(2rem, 3.9vw, 4rem); }
.product-rating-line { display: flex; align-items: center; gap: 10px; margin: 13px 0 18px; color: #78838a; font-size: .78rem; }
.product-stars { color: #d9a759; font-size: 1rem; letter-spacing: .05em; white-space: nowrap; }
.product-stars span { color: #d9dddc; }
.product-description { margin: 0 0 22px; color: #4f5b63; line-height: 1.9; }
.product-price {
  --product-price-value-height: 1.6rem;
  display: grid;
  grid-template-rows: auto var(--product-price-value-height);
  gap: 4px;
  padding: 18px 0 20px;
  border-top: 1px solid #e6e4df;
}
.product-price-pending {
  display: block;
  width: auto;
  height: var(--product-price-value-height);
  object-fit: contain;
}
.product-price-pending[hidden] { display: none; }
.product-price small, .product-price span { color: #6e7a80; font-size: .75rem; }
.product-price strong { color: #304d5a; font-size: 1.6rem; line-height: var(--product-price-value-height); font-variant-numeric: tabular-nums; }
.product-page [data-animated-price] { display: inline-block; font-variant-numeric: tabular-nums; transition: transform .18s ease, color .18s ease; }
.product-page [data-animated-price].is-counting-up { color: #2f8f5b; transform: translateY(-1px); }
.product-page [data-animated-price].is-counting-down { color: #c2653f; transform: translateY(1px); }
@media (prefers-reduced-motion: reduce) {
  .product-page [data-animated-price] { transition: none; }
  .product-page [data-animated-price].is-counting-up,
  .product-page [data-animated-price].is-counting-down { color: inherit; transform: none; }
}
.product-configurator {
  position: relative;
  isolation: isolate;
  display: grid;
  gap: 12px;
  margin: 0 0 4px;
  padding: 16px;
  overflow: hidden;
  border: 1px solid rgba(169, 207, 223, .72);
  border-radius: 18px;
  background: rgba(255, 254, 251, .98);
  box-shadow: 0 13px 30px rgba(41, 71, 100, .09);
}
.product-config-art {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
.product-config-art::before,
.product-config-art::after { position: absolute; inset: 0; background-repeat: no-repeat; content: ""; }
.product-config-art::before { opacity: .18; }
.product-config-art::after { background-image: url("assets/catalog/product-config-leaves.png"); opacity: .72; }
.product-config-art--top { top: -12px; right: -8px; width: 185px; height: 125px; }
.product-config-art--top::before { background-image: url("assets/catalog/page-loader-watercolor-bottom-right.webp"); background-position: right top; background-size: 185px auto; transform: scaleY(-1); }
.product-config-art--top::after { inset: 8px 10px auto auto; width: 43px; height: 94px; background-position: center; background-size: contain; }
.product-config-art--bottom { bottom: -18px; left: -12px; width: 165px; height: 116px; }
.product-config-art--bottom::before { background-image: url("assets/catalog/page-loader-watercolor-top-left.webp"); background-position: left bottom; background-size: 155px auto; transform: scaleY(-1); }
.product-config-art--bottom::after { inset: auto auto 5px 14px; width: 38px; height: 86px; background-position: center; background-size: contain; transform: scaleX(-1); }
.product-config-heading,
.product-config-fields { position: relative; z-index: 1; }
.product-config-heading { display: grid; gap: 6px; padding: 1px 5px 12px; border-bottom: 1px solid rgba(169, 207, 223, .5); }
.product-config-heading strong { display: grid; justify-items: start; gap: 7px; color: #164777; font: 600 1.25rem/1.25 "Noto Serif", serif; letter-spacing: .01em; }
.product-config-heading strong::after { width: 36px; height: 3px; border-radius: 99px; background: #f2bfc3; content: ""; }
.product-config-heading small { max-width: 410px; color: #698aa6; font-size: .72rem; line-height: 1.5; }
.product-config-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.product-config-field {
  --product-config-accent: #72bfe2;
  position: relative;
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 10px;
  overflow: hidden;
  border: 1px solid rgba(141, 161, 180, .25);
  border-radius: 15px;
  background-color: rgba(255, 255, 255, .9);
  box-shadow: 0 7px 17px rgba(41, 71, 100, .065);
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.product-config-field::before { position: absolute; z-index: 0; inset: 0; background-repeat: no-repeat; opacity: .14; pointer-events: none; content: ""; }
.product-config-field:nth-child(3n + 1) { --product-config-accent: #72bfe2; }
.product-config-field:nth-child(3n + 1)::before { background-image: url("assets/catalog/page-loader-watercolor-top-left.webp"); background-position: 42% -26px; background-size: 150px auto; }
.product-config-field:nth-child(3n + 2) { --product-config-accent: #dfa3ad; }
.product-config-field:nth-child(3n + 2)::before { background-image: url("assets/catalog/page-loader-watercolor-bottom-right.webp"); background-position: right -42px bottom -48px; background-size: 155px auto; }
.product-config-field:nth-child(3n) { --product-config-accent: #72aaae; }
.product-config-field:nth-child(3n)::before { background-image: url("assets/catalog/page-loader-watercolor-bottom-right.webp"); background-position: right -35px bottom -54px; background-size: 180px auto; }
.product-config-field > * { position: relative; z-index: 1; }
.product-config-field:last-child:nth-child(odd) { grid-column: 1 / -1; }
.product-config-field:hover { border-color: rgba(167, 204, 223, .95); box-shadow: 0 9px 22px rgba(41, 71, 100, .1); }
.product-config-field.is-current,
.product-config-field:focus-within { border-color: var(--product-config-accent); box-shadow: 0 0 0 1px var(--product-config-accent), 0 9px 23px rgba(71, 159, 194, .15); }
.product-config-field.is-selected { border-color: rgba(111, 154, 166, .44); background-color: rgba(250, 253, 253, .94); }
.product-config-label { display: grid; grid-template-columns: 28px minmax(0, 1fr) 24px; align-items: center; gap: 9px; min-width: 0; }
.product-config-step { display: inline-grid; width: 28px; height: 28px; place-items: center; border: 1px solid color-mix(in srgb, var(--product-config-accent) 72%, white); border-radius: 50%; color: #164777; background: color-mix(in srgb, var(--product-config-accent) 18%, white); font: 700 .72rem/1 var(--catalog-ui-font); }
.product-config-name { overflow: hidden; color: #173d6e; font-size: .79rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.product-config-status { position: relative; width: 23px; height: 23px; border: 1px solid rgba(126, 157, 190, .58); border-radius: 50%; background: rgba(255, 255, 255, .72); }
.product-config-status::after { position: absolute; top: 6px; left: 6px; width: 8px; height: 5px; border-bottom: 1.7px solid #fff; border-left: 1.7px solid #fff; opacity: 0; transform: rotate(-45deg); content: ""; }
.product-config-field.is-selected .product-config-status { border-color: var(--product-config-accent); background: var(--product-config-accent); }
.product-config-field.is-selected .product-config-status::after { opacity: 1; }
.product-config-trigger {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px;
  gap: 9px;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 5px 10px;
  border: 1px solid rgba(126, 157, 190, .6);
  border-radius: 11px;
  color: #294764;
  background: rgba(255, 255, 255, .86);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), 0 3px 8px rgba(41, 71, 100, .04);
  font: 500 .76rem var(--catalog-ui-font);
  text-align: left;
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.product-config-trigger.has-choice-art { grid-template-columns: 36px minmax(0, 1fr) 24px; padding-left: 5px; }
.product-config-trigger:hover { border-color: #8ebfd7; background: rgba(255, 255, 255, .96); box-shadow: 0 7px 16px rgba(41, 71, 100, .09); transform: translateY(-1px); }
.product-config-trigger:focus-visible { border-color: var(--product-config-accent); outline: 0; box-shadow: 0 0 0 3px rgba(167, 204, 223, .24); }
.product-config-trigger-art,
.product-config-modal-choice-art {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #6087a2;
  background: rgba(232, 245, 250, .9);
}
.product-config-trigger-art { width: 36px; height: 36px; border: 1px solid rgba(167, 204, 223, .62); border-radius: 9px; }
.product-config-trigger-art img { position: relative; z-index: 2; display: block; width: 100%; height: 100%; object-fit: contain; background: rgba(255, 255, 255, .82); }
.product-config-modal-choice-art img { position: absolute; z-index: 2; inset: 7px; display: block; width: calc(100% - 14px); height: calc(100% - 14px); object-fit: contain; background: rgba(255, 255, 255, .82); }
.product-config-art-placeholder { position: absolute; inset: 2px; display: block; background: url("assets/catalog/product-config-choice-placeholder.png") center / contain no-repeat; }
.product-config-trigger-copy { display: flex; min-width: 0; gap: 8px; align-items: baseline; justify-content: space-between; }
.product-config-trigger-copy strong { overflow: hidden; font-size: .76rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.product-config-trigger-copy small { flex: 0 0 auto; color: #6f9aa6; font-size: .67rem; font-weight: 700; white-space: nowrap; }
.product-config-chevron { justify-self: center; width: 8px; height: 8px; border-right: 1.7px solid #55789a; border-bottom: 1.7px solid #55789a; pointer-events: none; transform: translateY(-2px) rotate(45deg); transition: transform .2s ease; }
.product-config-trigger:hover .product-config-chevron { transform: translateY(1px) rotate(45deg); }

body.is-product-config-modal-open { overflow: hidden; }
.product-config-modal-backdrop {
  position: fixed;
  z-index: 260;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(23, 43, 69, .34);
}
.product-config-modal-backdrop[hidden] { display: none !important; }
.product-config-modal {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  width: min(690px, 100%);
  max-height: min(82vh, calc(100dvh - 44px));
  overflow: hidden;
  border: 1px solid rgba(167, 204, 223, .88);
  border-radius: 22px;
  background: rgba(255, 254, 251, .985);
  box-shadow: 0 26px 68px rgba(23, 43, 69, .22);
  font-family: var(--catalog-ui-font);
}
.product-config-modal-art { position: absolute; z-index: 0; width: 190px; height: 145px; background-repeat: no-repeat; pointer-events: none; }
.product-config-modal-art--top { top: -34px; right: -22px; background: url("assets/catalog/page-loader-watercolor-bottom-right.webp") right top / 190px auto no-repeat; opacity: .2; transform: scaleY(-1); }
.product-config-modal-art--bottom { bottom: -45px; left: -34px; background: url("assets/catalog/page-loader-watercolor-top-left.webp") left bottom / 175px auto no-repeat; opacity: .18; transform: scaleY(-1); }
.product-config-modal-head {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  display: flex;
  gap: 18px;
  align-items: flex-start;
  justify-content: space-between;
  margin: 0 22px;
  padding: 21px 2px 17px;
  border-bottom: 1px solid rgba(167, 204, 223, .55);
}
.product-config-modal-head > div { display: grid; gap: 4px; min-width: 0; }
.product-config-modal-eyebrow { margin: 0; color: #6f9aa6; font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.product-config-modal-head h2 { margin: 0; color: #164777; font: 600 clamp(1.35rem, 3vw, 1.8rem)/1.2 var(--catalog-ui-font); }
.product-config-modal-head h2::after { display: block; width: 38px; height: 3px; margin-top: 7px; border-radius: 99px; background: #f2bfc3; content: ""; }
.product-config-modal-head p:last-child { margin: 2px 0 0; color: #698aa6; font-size: .74rem; line-height: 1.5; }
.product-config-modal-close { position: relative; top: auto; right: auto; flex: 0 0 auto; }
.product-config-modal-grid {
  position: relative;
  z-index: 1;
  min-height: 0;
  padding: 17px 22px 22px;
  overflow-y: auto;
  overscroll-behavior: contain;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(145px, 1fr));
  align-items: start;
  gap: 12px;
}
.product-config-modal-choice {
  position: relative;
  display: grid;
  grid-auto-rows: auto;
  align-self: start;
  gap: 8px;
  height: fit-content;
  min-width: 0;
  padding: 9px;
  border: 1px solid rgba(141, 161, 180, .34);
  border-radius: 15px;
  color: #294764;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 8px 18px rgba(41, 71, 100, .06);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.product-config-modal-choice:hover { border-color: #a7ccdf; box-shadow: 0 11px 24px rgba(41, 71, 100, .11); transform: translateY(-2px); }
.product-config-modal-choice:focus-visible { border-color: #72bfe2; outline: 0; box-shadow: 0 0 0 3px rgba(167, 204, 223, .25); }
.product-config-modal-choice.is-selected { border-color: #72bfe2; background: rgba(246, 252, 254, .96); box-shadow: 0 0 0 1px #72bfe2, 0 10px 23px rgba(71, 159, 194, .13); }
.product-config-modal-choice-art { width: 100%; aspect-ratio: 4 / 3; padding: 7px; border: 1px solid rgba(167, 204, 223, .46); border-radius: 11px; }
.product-config-modal-choice-copy { display: grid; min-width: 0; gap: 3px; text-align: center; }
.product-config-modal-choice-copy strong { overflow: hidden; font-size: .78rem; font-weight: 700; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.product-config-modal-choice-copy small { overflow: hidden; color: #7a8792; font-size: .67rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.product-config-modal-choice-price { color: #6f9aa6; font-size: .71rem; font-weight: 700; text-align: center; }
.product-config-modal-choice.is-sold-out,
.product-config-modal-choice.is-sold-out:hover { border-color: rgba(147,64,74,.18); background: #fffdfc; box-shadow: none; transform: none; cursor: default; }
.product-config-modal-choice.is-sold-out .product-config-modal-choice-art img { opacity: .48; filter: saturate(.45); }
.product-config-modal-choice.is-sold-out .product-config-modal-choice-copy,
.product-config-modal-choice.is-sold-out .product-config-modal-choice-price { color: #77808a; }
.product-stock-badge { position: relative; isolation: isolate; display: flex; justify-content: center; align-items: center; gap: 5px; padding: 7px 3px; color: rgb(147,64,74); font: inherit; font-size: .66rem; font-weight: 600; line-height: 1.45; text-align: center; }
.product-stock-badge::before { content: ""; position: absolute; z-index: -1; inset: 0 -2px; background: #f2bfc3; opacity: .46; mask: url("assets/ui/toast-icons/toast-brush-error.png") center / 100% 100% no-repeat; pointer-events: none; animation: product-stock-paint .35s ease-out both; }
@keyframes product-stock-paint { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }
@media (prefers-reduced-motion: reduce) { .product-stock-badge::before { animation: none; } }
.product-stock-badge svg { width: 15px; height: 15px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.product-order-link { min-width: 210px; border: 0; font-family: var(--catalog-ui-font); cursor: pointer; }
.product-order-link[aria-disabled="true"] { color: #8b969a; background: #e7ebeb; box-shadow: none; cursor: not-allowed; }
.product-order-link[aria-disabled="true"]:hover { color: #8b969a; background: #e7ebeb; }
.product-order-note { color: #7a8588; font-size: .72rem; }
.product-detail-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin-top: 64px;
  padding: clamp(28px, 4vw, 54px);
  border: 1px solid rgba(167, 204, 223, .62);
  border-radius: 26px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .97), rgba(255, 253, 249, .94) 54%, rgba(253, 248, 244, .93));
  box-shadow: 0 18px 48px rgba(41, 71, 100, .08);
}
.product-detail-section::before,
.product-detail-section::after {
  position: absolute;
  z-index: -1;
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
  content: "";
}
.product-detail-section::before {
  top: -76px;
  right: -64px;
  width: clamp(210px, 26vw, 390px);
  aspect-ratio: 706 / 547;
  background-image: url("assets/catalog/page-loader-watercolor-bottom-right.webp");
  opacity: .16;
  transform: rotate(-8deg);
}
.product-detail-section::after {
  bottom: -112px;
  left: -92px;
  width: clamp(205px, 24vw, 350px);
  aspect-ratio: 568 / 722;
  background-image: url("assets/catalog/page-loader-watercolor-top-left.webp");
  opacity: .12;
  transform: rotate(12deg);
}
.product-detail-section > .catalog-section-kicker,
.product-detail-section > h2,
.product-detail-info-grid { position: relative; z-index: 1; }
.product-detail-art {
  position: absolute;
  z-index: 0;
  display: block;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
}
.product-detail-art--title {
  top: 48px;
  left: clamp(8px, 2.8vw, 36px);
  width: clamp(235px, 31vw, 390px);
  aspect-ratio: 759 / 379;
  background-image: url("assets/find/pagination-watercolor-previous.png");
  opacity: .2;
  transform: rotate(-4deg);
}
.product-detail-art--rose {
  top: 14px;
  right: clamp(18px, 4vw, 58px);
  width: clamp(150px, 18vw, 245px);
  aspect-ratio: 759 / 379;
  background-image: url("assets/find/pagination-watercolor-next.png");
  opacity: .14;
  transform: rotate(8deg);
}
.product-detail-art--splash {
  top: 45%;
  right: clamp(-132px, -8vw, -72px);
  width: clamp(220px, 24vw, 330px);
  aspect-ratio: 756 / 630;
  background-image: url("assets/find/gallery-gap-splash.webp");
  opacity: .1;
  transform: rotate(-15deg);
}
.product-detail-section > .catalog-section-kicker {
  z-index: 2;
  margin-bottom: 10px;
  color: #6f8e9a;
  letter-spacing: .28em;
}
.product-detail-section h2, .product-review-heading h2 { font-size: clamp(1.5rem, 2vw, 2.25rem); }
.product-detail-section > h2 {
  z-index: 2;
  display: inline-grid;
  gap: 10px;
  color: #294764;
  font-family: var(--product-editorial-font);
  font-weight: 600;
  letter-spacing: .01em;
}
.product-detail-section > h2::before {
  position: absolute;
  top: 7px;
  right: -33px;
  width: 7px;
  height: 8px;
  border-radius: 58% 42% 54% 46%;
  background: rgba(111, 154, 166, .48);
  box-shadow:
    14px -7px 0 -1px rgba(242, 191, 195, .54),
    22px 9px 0 -2px rgba(247, 215, 187, .72),
    6px 19px 0 -2px rgba(167, 204, 223, .7);
  transform: rotate(18deg);
  pointer-events: none;
  content: "";
}
.product-detail-section > h2::after {
  width: 58px;
  height: 4px;
  border-radius: 70% 40% 65% 45%;
  background: linear-gradient(90deg, #f2bfc3 0 48%, #f7d7bb 48% 75%, #a9cfdf 75%);
  transform: rotate(-2deg);
  content: "";
}
.product-detail-info-grid {
  display: grid;
  counter-reset: product-info-card;
  gap: clamp(14px, 1.6vw, 22px);
  margin-top: 30px;
}
.product-detail-info-grid .product-info-row {
  display: grid;
  grid-template-columns: repeat(var(--info-cols, 1), minmax(0, 1fr));
  gap: clamp(14px, 1.6vw, 22px);
}
.product-detail-info-grid .product-info-card {
  --product-info-accent: #a7ccdf;
  --product-info-wash: rgba(167, 204, 223, .16);
  counter-increment: product-info-card;
  position: relative;
  display: flex;
  min-width: 0;
  overflow: hidden;
  padding: clamp(18px, 2.2vw, 28px);
  border: 1px solid color-mix(in srgb, var(--product-info-accent) 58%, #e5e7e8);
  border-radius: 20px;
  background:
    radial-gradient(circle at 100% 0, var(--product-info-wash), transparent 34%),
    rgba(255, 255, 255, .92);
  box-shadow: 0 10px 28px rgba(41, 71, 100, .07);
  transition: border-color .24s ease, box-shadow .24s ease, transform .24s ease;
}
.product-detail-info-grid .product-info-card::before,
.product-detail-info-grid .product-info-card::after {
  position: absolute;
  pointer-events: none;
  content: "";
}
.product-detail-info-grid .product-info-card::before {
  z-index: 0;
  top: 21px;
  right: 24px;
  display: none;
  width: 7px;
  height: 8px;
  border-radius: 64% 36% 51% 49%;
  color: color-mix(in srgb, var(--product-info-accent) 72%, #6f9aa6);
  background: currentColor;
  box-shadow:
    15px 8px 0 -1px currentColor,
    -9px 15px 0 -2px currentColor,
    8px 26px 0 -2px currentColor;
  opacity: .42;
  transform: rotate(-14deg);
}
.product-detail-info-grid .product-info-card::after {
  z-index: 0;
  display: none;
  width: 190px;
  aspect-ratio: 759 / 379;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: .075;
}
.product-detail-info-grid .product-info-row:nth-child(2) .product-info-card:nth-child(2)::before,
.product-detail-info-grid .product-info-row:nth-child(3) .product-info-card:first-child::before { display: block; }
.product-detail-info-grid .product-info-row:first-child .product-info-card::after {
  right: -70px;
  bottom: 12%;
  display: block;
  background-image: url("assets/find/pagination-watercolor-next.png");
  transform: rotate(-12deg);
}
.product-detail-info-grid .product-info-row:nth-child(2) .product-info-card:nth-child(3)::after {
  right: -58px;
  bottom: -24px;
  display: block;
  background-image: url("assets/find/pagination-watercolor-previous.png");
  transform: rotate(10deg);
}
.product-detail-info-grid .product-info-row:last-child .product-info-card::after {
  top: -48px;
  left: 42%;
  display: block;
  width: 230px;
  background-image: url("assets/find/pagination-watercolor-previous.png");
  opacity: .06;
  transform: rotate(-5deg);
}
.product-detail-info-grid .product-info-row:nth-child(3n + 1) .product-info-card:nth-child(2n) {
  --product-info-accent: #f2bfc3;
  --product-info-wash: rgba(242, 191, 195, .17);
}
.product-detail-info-grid .product-info-row:nth-child(3n + 2) .product-info-card:nth-child(2n + 1) {
  --product-info-accent: #f7d7bb;
  --product-info-wash: rgba(247, 215, 187, .19);
}
.product-detail-info-grid .product-info-row:nth-child(3n + 2) .product-info-card:nth-child(2n) {
  --product-info-accent: #bdd9d1;
  --product-info-wash: rgba(189, 217, 209, .18);
}
.product-detail-info-grid .product-info-row:nth-child(3n) .product-info-card {
  --product-info-accent: #c9c1e5;
  --product-info-wash: rgba(201, 193, 229, .16);
}
@media (hover: hover) {
  .product-detail-info-grid .product-info-card:hover {
    border-color: color-mix(in srgb, var(--product-info-accent) 82%, #a8b4b8);
    box-shadow: 0 16px 34px rgba(41, 71, 100, .11);
    transform: translateY(-3px);
  }
}
.product-detail-info-grid .product-info-body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 12px; width: 100%; min-width: 0; }
.product-detail-info-grid .product-info-body[data-info-place="tren"] { flex-direction: column-reverse; }
.product-detail-info-grid .product-info-body[data-info-place="trai"] { flex-direction: row-reverse; align-items: flex-start; gap: clamp(18px, 2vw, 30px); }
.product-detail-info-grid .product-info-body[data-info-place="phai"] { flex-direction: row; align-items: flex-start; gap: clamp(18px, 2vw, 30px); }
.product-detail-info-grid .product-info-text { flex: 1 1 0; min-width: 0; }
.product-detail-info-grid .product-info-card h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
  color: #294764;
  font: 700 clamp(.98rem, 1.2vw, 1.12rem)/1.4 var(--catalog-ui-font);
}
.product-detail-info-grid .product-info-card h3::before {
  display: inline-grid;
  flex: 0 0 31px;
  width: 31px;
  height: 31px;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--product-info-accent) 70%, white);
  border-radius: 50%;
  color: #496f7e;
  background: color-mix(in srgb, var(--product-info-accent) 18%, white);
  font: 700 .64rem/1 var(--catalog-ui-font);
  letter-spacing: .04em;
  content: counter(product-info-card, decimal-leading-zero);
}
.product-detail-info-grid .product-info-card p { margin: 0; color: #596a76; font-size: .85rem; line-height: 1.78; }
.product-detail-info-grid .product-info-card p + p { margin-top: 7px; }
.product-detail-info-grid .product-info-images {
  display: flex;
  flex-wrap: wrap;
  justify-content: var(--info-img-align, flex-start);
  gap: 10px;
  width: 100%;
  margin-top: 4px;
}
.product-detail-info-grid .product-info-body[data-info-place="tren"] .product-info-images { margin-top: 0; margin-bottom: 4px; }
.product-detail-info-grid .product-info-images img {
  display: block;
  width: var(--info-img-width, 100%);
  max-width: var(--info-img-max, 180px);
  height: auto;
  padding: 5px;
  border: 1px solid rgba(167, 204, 223, .34);
  border-radius: 16px;
  background: rgba(255, 253, 249, .82);
  box-shadow: 0 8px 22px rgba(41, 71, 100, .07);
  object-fit: contain;
}
.product-detail-info-grid .product-info-body[data-info-place="tren"] .product-info-images img,
.product-detail-info-grid .product-info-body[data-info-place="duoi"] .product-info-images img {
  width: var(--info-img-width, 100%);
  max-width: var(--info-img-max, none);
}
.product-detail-info-grid .product-info-body[data-info-place="trai"] .product-info-images,
.product-detail-info-grid .product-info-body[data-info-place="phai"] .product-info-images { flex: 0 0 var(--info-img-width, 40%); width: auto; margin-top: 0; }
.product-detail-info-grid .product-info-body[data-info-place="trai"] .product-info-images img,
.product-detail-info-grid .product-info-body[data-info-place="phai"] .product-info-images img { width: 100%; max-width: none; }
.product-detail-info-grid .product-info-row[data-info-count="3"] .product-info-images img { aspect-ratio: 4 / 3; object-fit: contain; }
.product-info-empty { margin: 0; padding: 22px; border: 1px dashed rgba(167, 204, 223, .76); border-radius: 16px; color: #667985; background: rgba(255, 255, 255, .78); font-size: .84rem; text-align: center; }
.product-review-section { margin-top: 64px; padding: 32px clamp(22px, 4vw, 52px); border-radius: 16px; background: #f8f6f2; }
.product-review-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.product-review-write { padding: 0; border: 0; color: #456f7f; background: transparent; font: inherit; font-size: .78rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.product-review-summary { display: flex; align-items: center; gap: 13px; min-height: 70px; margin-top: 17px; color: #647178; font-size: .8rem; }
.product-review-summary > strong { color: #233b44; font-size: 2rem; }
.product-review-summary > strong small { color: #9ba5a7; font-size: .9rem; }
.product-review-empty { display: block; padding: 20px; border-radius: 9px; background: white; }
.product-reviews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.product-review-card { min-height: 170px; padding: 20px; border: 1px solid #e9e4dc; border-radius: 10px; background: white; }
.product-review-card-head { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 7px; font-size: .82rem; }
.product-review-card-head time { color: #98a0a3; font-size: .72rem; }
.product-review-card p { color: #48565d; font-size: .8rem; line-height: 1.75; white-space: pre-wrap; }
.product-review-card > small { color: #728087; font-size: .69rem; }
.product-back { margin-top: 33px; }
.product-back a { color: #496f7e; font-size: .82rem; font-weight: 700; text-decoration: none; }

@media (max-width: 1180px) {
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-card-copy strong { font-size: 1.05rem; }
}
@media (min-width: 1051px) and (max-width: 1400px) {
  .catalog-hero-note-zone { left: 91.3%; width: 8.7%; }
}
@media (max-width: 950px) {
  .catalog-hero { height: auto; aspect-ratio: 1; background-image: url("assets/catalog/hero-watercolor-room-mobile.png"); background-size: cover; background-position: center top; }
  .catalog-hero-text-layer { top: 0; left: 0; width: 100%; height: 100%; aspect-ratio: 1; transform: none; }
  .catalog-hero-copy { top: 13%; left: 10%; width: 80%; gap: clamp(6px, .8cqw, 9px); }
  .catalog-hero h1 { font-size: clamp(24px, calc(19px + 1.8cqw), 40px); }
  .catalog-hero[data-hero-language="ja"] h1 { font-size: clamp(22px, calc(19px + 1cqw), 30px); }
  .catalog-hero-description { font-size: clamp(14px, calc(12.5px + .55cqw), 18px); }
  .catalog-hero-description br { display: none; }
  .catalog-hero-script-zone { top: 53%; left: 1%; width: 30%; height: 20%; clip-path: none; }
  .catalog-hero-script { width: 100%; height: 100%; padding: 0; font-size: clamp(16px, 3cqw, 29px); }
  .catalog-hero[data-hero-language="ko"] .catalog-hero-script { font-size: clamp(16px, 3cqw, 29px); }
  .catalog-hero-script .hero-hand-line:first-child { margin-left: 5%; }
  .catalog-hero-script .hero-hand-line:nth-child(2) { align-self: flex-start; max-width: 80%; margin: 0 0 0 2%; white-space: normal; }
  .catalog-hero-note-zone { display: none; }
  .catalog-filter-row { display: block; }
  .catalog-filter-row > p { display: none; }
  .catalog-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 7px; }
  .catalog-filter { flex: 0 0 auto; }
  .catalog-workshop-ad { aspect-ratio: 1.75; }
  .product-spotlight { grid-template-columns: 1fr; }
  .product-spotlight-copy { max-width: none; }
  .product-edge-back {
    width: 44px;
    min-height: 124px;
    padding: 14px 5px 13px;
    gap: 8px;
    transform: translate(-12%, -50%);
  }
  .product-edge-back:hover,
  .product-edge-back:focus-visible { transform: translate(calc(-12% - 3px), -50%) rotate(-.45deg); }
  .product-edge-back-arrow { width: 19px; height: 29px; stroke-width: 3; }
  .product-edge-back-line { width: 19px; }
  .product-edge-back-label { font-size: .58rem; }
  .product-detail-info-grid .product-info-row[data-info-count="3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-detail-info-grid .product-info-row[data-info-count="3"] .product-info-card:last-child { grid-column: 1 / -1; }
  .product-reviews { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  body[data-page="products"] .top-nav,
  body[data-page="product"] .top-nav { justify-content: flex-start; gap: 2px; }
  body[data-page="products"] .top-nav .nav-link,
  body[data-page="product"] .top-nav .nav-link { flex: 0 0 auto; padding-inline: 8px; }
  .catalog-hero-description { line-height: 1.3; }
  .catalog-content { padding-inline: 13px; }
  .catalog-collection-heading { margin-bottom: 18px; }
  .catalog-collection-heading h2 { font-size: clamp(1.12rem, 5.2vw, 1.38rem); }
  .catalog-heading { margin-top: 20px; }
  .catalog-heading h2 { font-size: 1.45rem; }
  .catalog-grid { grid-template-columns: 1fr; gap: 12px; }
  .catalog-card-copy { top: 11%; left: 7%; width: 29%; gap: 4px; }
  .catalog-card-copy strong { font-size: clamp(.82rem, 4vw, 1.08rem); }
  .catalog-card-copy small { display: block; font-size: clamp(.57rem, 2.65vw, .72rem); line-height: 1.45; }
  .catalog-card-copy strong::after { width: 19px; margin-top: 4px; }
  .catalog-card-arrow { left: 7%; bottom: 8%; width: clamp(31px, 10vw, 39px); height: clamp(31px, 10vw, 39px); }
  .catalog-workshop-ad { aspect-ratio: 1.42; margin: 8px 13px 34px; border-radius: 15px; }
  .catalog-workshop-ad::after { inset: 7px; border-radius: 9px; }
  .product-page { padding-inline: 13px; }
  .product-spotlight-image { aspect-ratio: 1.15; }
  .product-spotlight-copy { padding-inline: 6px; }
  .product-config-fields { grid-template-columns: 1fr; }
  .product-config-field:last-child:nth-child(odd) { grid-column: auto; }
  .product-configurator { gap: 14px; padding: 17px 15px; border-radius: 15px; }
  .product-config-heading { padding-inline: 4px; }
  .product-config-heading strong { font-size: 1.22rem; }
  .product-config-heading small { max-width: 255px; font-size: .72rem; }
  .product-config-art--top { width: 155px; height: 115px; }
  .product-config-art--bottom { width: 145px; height: 110px; }
  .product-config-field { padding: 11px; }
  .product-config-modal-backdrop { padding: 10px; }
  .product-config-modal { max-height: calc(100dvh - 20px); border-radius: 17px; }
  .product-config-modal-head { gap: 12px; margin-inline: 14px; padding: 16px 1px 13px; }
  .product-config-modal-head h2 { font-size: 1.35rem; }
  .product-config-modal-head p:last-child { max-width: 260px; font-size: .7rem; }
  .product-config-modal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; padding: 13px 14px 16px; }
  .product-config-modal-choice { gap: 6px; padding: 7px; border-radius: 12px; }
  .product-config-modal-choice-copy strong { font-size: .72rem; }
  .product-detail-section { margin-top: 39px; padding: 22px 16px; border-radius: 19px; }
  .product-detail-section::before { top: -38px; right: -58px; width: 205px; opacity: .13; }
  .product-detail-section::after { bottom: -88px; left: -72px; width: 185px; opacity: .09; }
  .product-detail-art--title { top: 43px; left: -8px; width: 260px; opacity: .18; }
  .product-detail-art--rose { top: 8px; right: -40px; width: 165px; opacity: .1; }
  .product-detail-art--splash { right: -105px; width: 220px; opacity: .075; }
  .product-detail-section > .catalog-section-kicker { letter-spacing: .2em; }
  .product-detail-section > h2 { font-size: 1.55rem; }
  .product-detail-section > h2::before { top: 4px; right: -26px; transform: scale(.82) rotate(18deg); }
  .product-detail-info-grid { gap: 13px; margin-top: 23px; }
  .product-detail-info-grid .product-info-row { gap: 13px; }
  .product-detail-info-grid .product-info-card { padding: 16px; border-radius: 16px; }
  .product-detail-info-grid .product-info-card::after { width: 145px; opacity: .055; }
  .product-detail-info-grid .product-info-card::before { right: 17px; opacity: .34; transform: scale(.8) rotate(-14deg); }
  .product-detail-info-grid .product-info-card h3 { gap: 8px; margin-bottom: 8px; font-size: .95rem; }
  .product-detail-info-grid .product-info-card h3::before { flex-basis: 28px; width: 28px; height: 28px; }
  .product-detail-info-grid .product-info-images img { padding: 3px; border-radius: 12px; }
  .product-review-section { padding: 24px 14px; margin-top: 44px; }
  .product-review-heading { align-items: start; }
  .product-review-write { white-space: nowrap; }
  .product-review-summary { flex-wrap: wrap; gap: 7px; }
  .product-reviews { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .product-detail-info-grid .product-info-row,
  .product-detail-info-grid .product-info-row[data-info-count="3"] { grid-template-columns: 1fr; }
  .product-detail-info-grid .product-info-row[data-info-count="3"] .product-info-card:last-child { grid-column: auto; }
  .product-detail-info-grid .product-info-body[data-info-place="trai"] { flex-direction: column-reverse; align-items: stretch; }
  .product-detail-info-grid .product-info-body[data-info-place="phai"] { flex-direction: column; align-items: stretch; }
  .product-detail-info-grid .product-info-body[data-info-place="trai"] .product-info-images,
  .product-detail-info-grid .product-info-body[data-info-place="phai"] .product-info-images { flex: 0 0 auto; width: 100%; margin-top: 10px; }
  .product-detail-info-grid .product-info-body[data-info-place="trai"] .product-info-images img,
  .product-detail-info-grid .product-info-body[data-info-place="phai"] .product-info-images img,
  .product-detail-info-grid .product-info-body[data-info-place="tren"] .product-info-images img,
  .product-detail-info-grid .product-info-body[data-info-place="duoi"] .product-info-images img { width: 100%; max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  .product-edge-back { transition: none; }
  .product-detail-info-grid .product-info-card { transition: none; }
}
