/* V2-05. Route-local composition; saved owner theme and catalogue remain authoritative. */
.boutique-shell .shop-page.page-frame,
.boutique-shell .product-page.page-frame {
  padding-top: 30px;
  padding-bottom: 64px;
}
.boutique-shell .shop-page > .eyebrow { margin: 0 0 8px; font-size: 12px; }
.boutique-shell .shop-page .catalogue-heading { gap: 12px 24px; padding-bottom: 16px; }
.boutique-shell .shop-page .page-title { font-size: clamp(32px, 3.6vw, 48px); line-height: 1.12; }
.boutique-shell .shop-page .catalogue-count { flex-shrink: 0; font-size: 14px; }
.boutique-shell .shop-page .catalogue-intro {
  grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
  gap: 20px 40px;
  padding: 16px 0;
}
.boutique-shell .shop-page .catalogue-intro > p { max-width: 44ch; font: inherit; font-size: 15px; line-height: 1.55; }
.boutique-shell .shop-page .b-custom-invite { padding: 0 0 0 18px; border-left: 2px solid var(--b-line); }
.boutique-shell .shop-page .b-custom-invite span:first-child { font-size: 12px; }
.boutique-shell .shop-page .b-custom-invite strong { font-size: 17px; line-height: 1.4; }
.boutique-shell .shop-page .b-custom-invite small { font-size: 12px; line-height: 1.5; }
.boutique-shell .shop-page .catalogue-filters {
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto;
  gap: 12px;
  padding: 14px 18px;
  background: var(--b-surface);
  border: 1px solid var(--b-line);
  max-width: none;
  margin: 0;
}
.boutique-shell .shop-page .catalogue-field { display: grid; gap: 6px; }
.boutique-shell .shop-page .catalogue-field label { font-size: 13px; line-height: 1.4; }
.boutique-shell .shop-page .catalogue-field input,
.boutique-shell .shop-page .catalogue-field select { width: 100%; margin: 0; min-height: 48px; font-size: 16px; }
.boutique-shell .shop-page .catalogue-filters .button { grid-column: auto; margin: 0; font-size: 14px; color: var(--b-on-primary); }
.boutique-shell .shop-page .catalogue-filter { margin: 12px 0 0; font-size: 14px; }
.boutique-shell .shop-page .catalogue-results:not(:empty) { padding-top: 24px; }
.boutique-shell .shop-page .catalogue-results .product-card p { padding: 0; background: transparent; border: 0; }
.boutique-shell .shop-page .product-card-copy { padding-top: 14px; }
.boutique-shell .shop-page .product-category { margin: 0 0 6px; font-size: 12px; letter-spacing: .055em; }
.boutique-shell .shop-page .product-card h3 { margin: 0 0 10px; font-size: 24px; line-height: 1.2; }
.boutique-shell .shop-page .product-card .price { margin: 0; font-size: 17px; font-weight: 600; }
.boutique-shell .shop-page .product-card .availability { margin: 8px 0 14px; font-size: 13px; }
.boutique-shell .shop-page .product-card .button { min-height: 48px; font-size: 14px; }
.boutique-shell .shop-page .catalogue-page-controls { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px 20px; }
.boutique-shell .shop-page .catalogue-pagination .button { margin: 0; font-size: 14px; }
.boutique-shell .shop-page .catalogue-pagination span { font-size: 14px; }
.boutique-shell .shop-page .catalogue-no-script { font-size: 14px; color: var(--b-muted-strong); }
.boutique-shell .product-page.detail-layout { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 24px 48px; }
.boutique-shell .product-page .detail-back { margin: 0; font-size: 14px; }
.boutique-shell .product-page .product-media { padding: 8px; background: var(--b-surface); }
.boutique-shell .product-page .product-media > .product-image { min-height: 0; max-height: 560px; aspect-ratio: 1; object-fit: contain; }
.boutique-shell .product-page > .product-purchase { padding: 8px 0 0; }
.boutique-shell .product-page .product-purchase .b-kicker { margin: 0 0 12px; font-size: 12px; letter-spacing: .06em; color: var(--b-muted-strong); }
.boutique-shell .product-page .product-purchase h1 { margin: 0 0 18px; font-size: clamp(32px, 3.6vw, 48px); }
.boutique-shell .product-page .product-purchase .price { margin: 0 0 10px; font-size: 24px; }
.boutique-shell .product-page .product-purchase .availability { margin: 0 0 20px; font-size: 14px; }
.boutique-shell .product-page .product-purchase > .b-primary { width: 100%; margin: 0; font-size: 16px; color: var(--b-on-primary); }
.boutique-shell .product-page .product-order-note { margin: 14px 0 24px; font-size: 14px; line-height: 1.6; color: var(--b-muted-strong); }
.boutique-shell .product-page .product-description { margin: 0; padding-top: 24px; border-top: 1px solid var(--b-line); }
.boutique-shell .product-page .product-description h2 { margin: 0 0 12px; font-size: 25px; line-height: 1.25; }
.boutique-shell .product-page .product-description p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.boutique-shell .product-page .b-product-custom { min-height: 44px; margin-top: 18px; font-size: 15px; }
@media (max-width: 820px) {
  .boutique-shell .shop-page .catalogue-intro { gap: 20px; }
  .boutique-shell .shop-page .catalogue-filters { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; }
  .boutique-shell .product-page.detail-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 24px; }
}
@media (max-width: 600px) {
  .boutique-shell .shop-page.page-frame,
  .boutique-shell .product-page.page-frame { padding-top: 22px; padding-bottom: 48px; }
  .boutique-shell .shop-page .catalogue-heading { flex-direction: row; flex-wrap: wrap; align-items: baseline; }
  .boutique-shell .shop-page .catalogue-intro { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 14px 0; }
  .boutique-shell .shop-page .catalogue-intro > p { font-size: 14px; }
  .boutique-shell .shop-page .b-custom-invite { padding-left: 12px; }
  .boutique-shell .shop-page .catalogue-filters { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 10px; padding: 12px; }
  .boutique-shell .shop-page .catalogue-filters .button { grid-column: 1 / -1; min-height: 44px; }
  .boutique-shell .shop-page .catalogue-results:not(:empty) { padding-top: 20px; }
  .boutique-shell .product-page.detail-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .boutique-shell .product-page .product-media > .product-image { max-height: 260px; aspect-ratio: 4 / 3; }
  .boutique-shell .product-page .product-thumb { width: 48px; height: 48px; }
  .boutique-shell .product-page .product-purchase h1 { margin-bottom: 14px; font-size: 32px; }
  .boutique-shell .product-page .product-purchase .b-kicker { margin-bottom: 8px; }
  .boutique-shell .product-page .product-purchase .availability { margin-bottom: 16px; }
}
