/*
  Quiet-luxury editorial restyle: Shop, Product detail, Cart / checkout.
  Loaded after editorial.css and the legacy shop / product-detail / figma sheets.
  Presentation only: no ids, data hooks or routes are defined here.
*/
body:not(.admin-figma-portal) :where(.sh-page, .pd-page, .ct-page) { --bq-gutter: var(--ed-gutter); }

/* ================= SHOP HERO: asymmetric split ================= */
body:not(.admin-figma-portal) .sh-page .sh-hero {
  position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  align-items: stretch; min-height: 0; height: clamp(160px, 15vw, 190px); padding: 0; overflow: hidden;
  background: var(--ed-ivory-2);
}
.sh-page .sh-hero::before { display: none; }
.sh-page .sh-hero__content {
  position: relative; z-index: 1; max-width: none; align-self: center;
  padding: 20px clamp(24px, 5vw, 80px) 20px var(--ed-gutter);
}
body:not(.admin-figma-portal) .sh-page .sh-hero__title {
  margin: 0 0 10px; font: 500 clamp(2rem, 3.6vw, 2.9rem)/1 var(--ed-display); letter-spacing: -.015em;
  white-space: normal; color: var(--ed-ink);
}
.sh-page .sh-hero__title em { font-style: italic; font-weight: 400; color: var(--ed-oxblood); }
body:not(.admin-figma-portal) .sh-page .sh-hero__sub {
  margin: 0; color: var(--ed-ink-soft); font: 500 .75rem/1.6 var(--ed-sans); letter-spacing: .2em; text-transform: uppercase;
}
/* CSS-only "photo" panel: blush gradient, warm glow, dots and soft arcs */
.sh-page .sh-hero::after {
  content: ""; grid-column: 2; grid-row: 1; position: relative;
  background:
    radial-gradient(60% 55% at 30% 28%, rgba(255, 226, 200, .75), transparent 70%),
    radial-gradient(50% 50% at 80% 85%, rgba(155, 61, 86, .35), transparent 70%),
    linear-gradient(155deg, var(--ed-blush) 0%, var(--ed-blush-2) 55%, #c99a97 100%);
}
.sh-page .sh-hero__content::after {
  content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 100%; width: 100%;
  background:
    var(--ed-dots) 0 0 / 22px 22px,
    radial-gradient(ellipse 70% 38% at 40% 100%, transparent 62%, rgba(252, 249, 245, .55) 63%, transparent 64.5%),
    radial-gradient(ellipse 90% 52% at 30% 105%, transparent 64%, rgba(252, 249, 245, .4) 65%, transparent 66%);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%); mask-image: linear-gradient(90deg, transparent, #000 30%);
  pointer-events: none;
}
.sh-page .sh-hero { isolation: isolate; }
.sh-page .sh-hero__content::before { content: none; }

/* ================= TOOLBAR ================= */
body:not(.admin-figma-portal) .bq-toolbar {
  top: var(--ed-nav-h); background: rgba(252, 249, 245, .95); border-bottom: 1px solid var(--ed-rule);
}
.bq-toolbar__inner { width: min(var(--ed-max), 100%); padding: 16px var(--ed-gutter); }
body:not(.admin-figma-portal) .bq-chip {
  height: 40px; padding: 0 20px; border: 1px solid var(--ed-rule); background: transparent; color: var(--ed-ink-soft);
  font: 500 .75rem/1 var(--ed-sans); letter-spacing: .06em; text-transform: none;
}
body:not(.admin-figma-portal) .bq-chip span { background: var(--ed-blush); color: var(--ed-oxblood); font-size: .6875rem; }
body:not(.admin-figma-portal) .bq-chip:hover { border-color: var(--ed-oxblood); color: var(--ed-oxblood); }
body:not(.admin-figma-portal) .bq-chip.is-active { background: var(--ed-oxblood); border-color: var(--ed-oxblood); color: var(--ed-on-dark); }
body:not(.admin-figma-portal) .bq-chip.is-active span { background: rgba(246, 236, 230, .2); color: var(--ed-on-dark); }
body:not(.admin-figma-portal) .bq-toolbar .bq-search input[type="search"],
body:not(.admin-figma-portal) .bq-toolbar .bq-sort select {
  height: 40px; border: 1px solid var(--ed-rule); border-radius: 999px; background: var(--ed-ivory); color: var(--ed-ink); font: 400 .8125rem var(--ed-sans);
}
.bq-sort select { padding-left: 18px; }
.bq-search svg { stroke: var(--ed-taupe); }
body:not(.admin-figma-portal) .bq-search input:focus, body:not(.admin-figma-portal) .bq-sort select:focus {
  border-color: var(--ed-oxblood); box-shadow: 0 0 0 4px rgba(155, 61, 86, .12);
}

/* ================= SHOP SECTIONS + GRID ================= */
body:not(.admin-figma-portal) .bq-section { padding: clamp(48px, 6vw, 88px) 0 8px; }
body:not(.admin-figma-portal) .bq-section--class_pass { background: var(--ed-ivory-2); border-bottom: 0; padding-bottom: clamp(48px, 6vw, 88px); }
.bq-section__inner { width: min(var(--ed-max), 100%); padding: 0 var(--ed-gutter); }
.bq-section__head { align-items: flex-end; margin-bottom: clamp(24px, 3vw, 40px); padding-bottom: 20px; border-bottom: 1px solid var(--ed-rule); }
body:not(.admin-figma-portal) .bq-section__head h2 { font: 500 clamp(2rem, 3.4vw, 3rem)/1.02 var(--ed-display); letter-spacing: -.01em; color: var(--ed-ink); }
body:not(.admin-figma-portal) .bq-section__head p { color: var(--ed-ink-soft); font-size: .9375rem; }
body:not(.admin-figma-portal) .bq-section__count { color: var(--ed-taupe); font: 500 .6875rem var(--ed-sans); letter-spacing: .18em; }
body:not(.admin-figma-portal) .bq-grid,
body:not(.admin-figma-portal) .bq-grid--passes { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(28px, 3vw, 44px) clamp(16px, 2vw, 28px); }

body:not(.admin-figma-portal) .bq-card { border: 0; background: transparent; box-shadow: none; transform: none; gap: 0; }
body:not(.admin-figma-portal) .bq-card:hover { transform: none; box-shadow: none; }
body:not(.admin-figma-portal) .bq-card__media,
body:not(.admin-figma-portal) .bq-grid--passes .bq-card__media {
  aspect-ratio: 4 / 5; border-radius: var(--ed-radius); background: var(--ed-blush); box-shadow: var(--ed-shadow-s);
}
/* Both supplier catalogues are predominantly portrait: AMG is mostly 3:4 and
   Sonata is close to 4:5. A 4:5 frame avoids the square-card crop. */
body:not(.admin-figma-portal) .bq-card__media img {
  width: 100%; height: 100%; object-fit: cover; transform: none;
}
body:not(.admin-figma-portal) .bq-card:hover .bq-card__media img { transform: none; }
.bq-card__media::after { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(155, 61, 86, .08); }
body:not(.admin-figma-portal) .bq-card__badge {
  top: 14px; left: 14px; padding: 6px 11px; border-radius: 999px; background: rgba(252, 249, 245, .94); color: var(--ed-oxblood);
  font: 500 .625rem/1 var(--ed-sans); letter-spacing: .14em;
}
body:not(.admin-figma-portal) .bq-card__badge--warm { background: #f6e3c8; color: #6e4a0e; }
body:not(.admin-figma-portal) .bq-card__badge--muted { background: rgba(43, 15, 26, .78); color: var(--ed-on-dark); }
body:not(.admin-figma-portal) .bq-card__body { padding: 18px 2px 0; }
body:not(.admin-figma-portal) .bq-card__cat { margin: 0 0 6px; color: var(--ed-oxblood); font: 500 .625rem/1.3 var(--ed-sans); letter-spacing: .18em; }
body:not(.admin-figma-portal) .bq-card__name { font: 500 clamp(1.3rem, 1.7vw, 1.55rem)/1.12 var(--ed-display); letter-spacing: -.005em; }
body:not(.admin-figma-portal) .bq-card__name a { color: var(--ed-ink); }
body:not(.admin-figma-portal) .bq-card__name a:hover { color: var(--ed-oxblood); }
body:not(.admin-figma-portal) .bq-card__price { margin: 8px 0 16px; color: var(--ed-ink-soft); font: 500 .875rem var(--ed-sans); }
body:not(.admin-figma-portal) .bq-card__unit { color: var(--ed-taupe); font-size: .75rem; font-weight: 400; }
body:not(.admin-figma-portal) .bq-card__btn {
  height: 42px; border: 1px solid var(--ed-oxblood); border-radius: 999px; color: var(--ed-oxblood);
  font: 500 .6875rem/1 var(--ed-sans); letter-spacing: .14em;
}
body:not(.admin-figma-portal) .bq-card__btn:hover, body:not(.admin-figma-portal) .bq-card__btn.is-added { background: var(--ed-oxblood); border-color: var(--ed-oxblood); color: var(--ed-on-dark); }
body:not(.admin-figma-portal) .bq-card__btn:disabled { border-color: var(--ed-rule); color: var(--ed-taupe); }
.gallery-nav { border-radius: 50%; }

/* help strip -> plum card */
body:not(.admin-figma-portal) .bq-help {
  width: min(var(--ed-max), calc(100% - 2 * var(--ed-gutter))); margin: clamp(56px, 7vw, 96px) auto clamp(64px, 8vw, 112px);
  padding: clamp(28px, 4vw, 48px); border: 0; border-radius: 24px; background: var(--ed-plum); color: var(--ed-on-dark);
  background-image: var(--ed-dots-light); background-size: 22px 22px;
}
body:not(.admin-figma-portal) .bq-help__eyebrow { color: var(--ed-on-dark); font: 500 clamp(1.6rem, 2.6vw, 2.2rem)/1.1 var(--ed-display); }
body:not(.admin-figma-portal) .bq-help__body { color: var(--ed-on-dark-soft); }
body:not(.admin-figma-portal) .bq-help .bq-btn--solid { background: var(--ed-ivory); border-color: var(--ed-ivory); color: var(--ed-oxblood); box-shadow: none; }
body:not(.admin-figma-portal) .bq-help .bq-btn--line { color: var(--ed-on-dark); border-color: rgba(246, 236, 230, .5); }
body:not(.admin-figma-portal) .bq-help .bq-btn--line:hover { background: rgba(246, 236, 230, .1); color: #fff; }
body:not(.admin-figma-portal) .bq-btn { min-height: 44px; height: auto; }
.bq-empty { color: var(--ed-ink-soft); }

/* ================= PRODUCT DETAIL ================= */
body.product-detail-page .pd-page { width: min(var(--ed-max), 100%); padding: 40px var(--ed-gutter) clamp(64px, 8vw, 112px); }
body:not(.admin-figma-portal) .pd-breadcrumb { color: var(--ed-taupe); font: 500 .6875rem var(--ed-sans); letter-spacing: .16em; }
body:not(.admin-figma-portal) .pd-breadcrumb a:hover { color: var(--ed-oxblood); }
body:not(.admin-figma-portal) .pd-breadcrumb span:last-child { color: var(--ed-ink-soft); }
body:not(.admin-figma-portal) .pd-product { grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr); gap: clamp(36px, 6vw, 96px); }
body:not(.admin-figma-portal) .pd-gallery__main { border: 0; border-radius: 24px; background: var(--ed-blush); box-shadow: var(--ed-shadow-m); }
.pd-gallery__stock { border-radius: 999px; background: rgba(252, 249, 245, .94); color: var(--ed-oxblood); }
.pd-gallery__count { border-radius: 999px; background: rgba(43, 15, 26, .72); }
.pd-gallery__thumb { border-radius: 14px; border: 1px solid var(--ed-rule); background: var(--ed-blush); }
.pd-gallery__thumb.active { border: 2px solid var(--ed-oxblood); }
.pd-purchase { top: calc(var(--ed-nav-h) + 24px); }
body:not(.admin-figma-portal) .pd-purchase h1 { font: 500 clamp(2.4rem, 4.2vw, 3.8rem)/1 var(--ed-display); letter-spacing: -.015em; color: var(--ed-ink); }
body:not(.admin-figma-portal) .pd-price-row { border-bottom: 1px solid var(--ed-rule); }
body:not(.admin-figma-portal) .pd-price { font: 500 1.9rem/1 var(--ed-display); color: var(--ed-oxblood); letter-spacing: 0; }
.pd-stock { font-family: var(--ed-sans); }
body:not(.admin-figma-portal) .pd-summary { color: var(--ed-ink-soft); font-size: .9375rem; }
body:not(.admin-figma-portal) .pd-option__label, body:not(.admin-figma-portal) .pd-option label { color: var(--ed-oxblood); font: 500 .6875rem/1.3 var(--ed-sans); letter-spacing: .16em; }
.pd-option__head button { color: var(--ed-oxblood); }
body:not(.admin-figma-portal) .pd-option-chip { border: 1px solid var(--ed-rule); border-radius: 14px; background: var(--ed-ivory); color: var(--ed-ink); }
body:not(.admin-figma-portal) button.pd-option-chip:hover { border-color: var(--ed-oxblood); background: var(--ed-ivory-2); }
body:not(.admin-figma-portal) button.pd-option-chip.is-selected { border-color: var(--ed-oxblood); background: var(--ed-blush); box-shadow: inset 0 0 0 1px var(--ed-oxblood); }
body:not(.admin-figma-portal) .pd-option-chip > small { color: var(--ed-taupe); }
.pd-option-chip.is-sold-out > small { color: var(--ed-oxblood); }
body:not(.admin-figma-portal) .pd-fit-links button { color: var(--ed-ink-soft); }
.pd-fit-links button span, .pd-text-link, .pd-trust a { color: var(--ed-oxblood); text-decoration-color: var(--ed-rule); }
.pd-fit-links button:hover, .pd-fit-links button:hover span, .pd-text-link:hover { color: var(--ed-oxblood-2); }
body:not(.admin-figma-portal) .pd-digital-note { border-left: 0; border-radius: 14px; background: var(--ed-blush); color: var(--ed-ink-soft); }
.pd-quantity__controls { border: 1px solid var(--ed-rule); border-radius: 999px; overflow: hidden; background: var(--ed-ivory); }
.pd-quantity__controls button { background: var(--ed-ivory); color: var(--ed-oxblood); }
.pd-quantity__controls button:hover { background: var(--ed-blush); }
.pd-quantity__controls input { background: var(--ed-ivory); color: var(--ed-ink); border-color: var(--ed-rule); }
body:not(.admin-figma-portal) .pd-add-to-cart {
  border-radius: 999px; border: 1px solid var(--ed-oxblood); background: var(--ed-oxblood); color: var(--ed-on-dark);
  font: 500 .75rem/1 var(--ed-sans); letter-spacing: .14em; box-shadow: 0 10px 26px -10px rgba(155, 61, 86, .6); transition: background .25s, transform .25s, box-shadow .25s;
}
body:not(.admin-figma-portal) .pd-add-to-cart:hover:not(:disabled) { background: var(--ed-oxblood-2); border-color: var(--ed-oxblood-2); transform: translateY(-1px); }
body:not(.admin-figma-portal) .pd-add-to-cart:disabled { opacity: .5; box-shadow: none; }
body:not(.admin-figma-portal) .pd-trust { border-block: 1px solid var(--ed-rule); }
.pd-trust strong { color: var(--ed-ink); font-family: var(--ed-sans); }
.pd-trust span { color: var(--ed-ink-soft); }
body:not(.admin-figma-portal) .pd-information details { border-bottom: 1px solid var(--ed-rule); }
body:not(.admin-figma-portal) .pd-information summary { color: var(--ed-ink); font: 500 1.35rem var(--ed-display); }
.pd-information summary span { color: var(--ed-oxblood); font-family: var(--ed-sans); }
.pd-information details > div { color: var(--ed-ink-soft); }
body:not(.admin-figma-portal) .pd-section-heading h2 { font: 500 clamp(2rem, 3.4vw, 3rem)/1.02 var(--ed-display); letter-spacing: -.01em; }
body:not(.admin-figma-portal) .pd-related { margin-top: clamp(64px, 8vw, 112px); padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--ed-rule); }
.pd-section-heading > a { color: var(--ed-oxblood); font: 500 .75rem var(--ed-sans); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid var(--ed-rule); }
.pd-dialog { background: rgba(26, 10, 22, .55); }
.pd-dialog__panel { border: 0; border-radius: 24px; background: var(--ed-ivory); box-shadow: var(--ed-shadow-m); }
body:not(.admin-figma-portal) .pd-dialog h2 { font-family: var(--ed-display); font-weight: 500; color: var(--ed-ink); }
.pd-dialog__close { color: var(--ed-ink-soft); border-radius: 50%; }
.pd-size-table-wrap { border-radius: 14px; border-color: var(--ed-rule); }
.pd-size-table th { color: var(--ed-oxblood); }
.pd-enquiry-fields input, .pd-enquiry-fields textarea { border-radius: 12px; background: var(--ed-ivory-2); color: var(--ed-taupe); }
.pd-primary-link { border-radius: 999px; padding: 15px 24px; background: var(--ed-oxblood); color: var(--ed-on-dark); font-family: var(--ed-sans); letter-spacing: .14em; text-decoration: none; }
.pd-primary-link:hover { background: var(--ed-oxblood-2); }

/* ================= CART / CHECKOUT ================= */
body:not(.admin-figma-portal) .ct-page { background: var(--ed-ivory); }
body:not(.admin-figma-portal) .ct-hero {
  position: relative; overflow: hidden; padding: clamp(40px, 6vw, 80px) var(--ed-gutter) clamp(28px, 4vw, 48px);
  background: var(--ed-ivory-2); border-bottom: 1px solid var(--ed-rule);
}
.ct-hero::after { content: ""; position: absolute; width: 46vmax; height: 46vmax; right: -14vmax; top: -26vmax; border-radius: 50%; background: radial-gradient(closest-side, var(--ed-glow), transparent); pointer-events: none; }
.ct-hero__content { position: relative; z-index: 1; width: min(var(--ed-max), 100%); margin: 0 auto; }
body:not(.admin-figma-portal) .ct-hero__title { margin: 0; font: 500 clamp(2.6rem, 5.4vw, 4.6rem)/1 var(--ed-display); letter-spacing: -.015em; color: var(--ed-ink); }
.ct-hero__title em { font-style: italic; font-weight: 400; color: var(--ed-oxblood); }

body:not(.admin-figma-portal) .ct-stepbar {
  top: var(--ed-nav-h); padding: 16px var(--ed-gutter); background: rgba(252, 249, 245, .95); border-bottom: 1px solid var(--ed-rule);
  overflow-x: auto; justify-content: flex-start; scrollbar-width: none;
}
.ct-stepbar::-webkit-scrollbar { display: none; }
.ct-stepbar { justify-content: center; }
@media (max-width: 960px) { body:not(.admin-figma-portal) .ct-stepbar { justify-content: flex-start; } }
.ct-step__circle { border: 1px solid var(--ed-rule); color: var(--ed-taupe); font: 500 .6875rem var(--ed-sans); }
body:not(.admin-figma-portal) .ct-step--active .ct-step__circle { background: var(--ed-oxblood); border-color: var(--ed-oxblood); color: var(--ed-on-dark); }
body:not(.admin-figma-portal) .ct-step--done .ct-step__circle { background: var(--ed-taupe); border-color: var(--ed-taupe); color: #fff; }
.ct-step__label { color: #7a6670; font: 500 .6875rem var(--ed-sans); letter-spacing: .14em; }
body:not(.admin-figma-portal) .ct-step--active .ct-step__label { color: var(--ed-oxblood); font-weight: 600; }
body:not(.admin-figma-portal) .ct-step--done .ct-step__label { color: var(--ed-taupe); }
.ct-step__line { background: var(--ed-rule); }

body:not(.admin-figma-portal) .ct-body { max-width: var(--ed-max); padding: clamp(32px, 5vw, 64px) var(--ed-gutter) clamp(64px, 8vw, 112px); }
body:not(.admin-figma-portal) .ct-empty__title { font: 500 clamp(2rem, 3.4vw, 2.8rem)/1.05 var(--ed-display); color: var(--ed-ink); }
.ct-empty__body { color: var(--ed-ink-soft); }
.ct-empty__icon { color: var(--ed-oxblood); opacity: .5; }

.ct-review { grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(28px, 4vw, 56px); }
body:not(.admin-figma-portal) .ct-items { border: 1px solid var(--ed-rule); border-radius: 24px; background: var(--ed-ivory); box-shadow: var(--ed-shadow-m); overflow: hidden; }
.ct-items__header { background: var(--ed-ivory-2); border-bottom: 1px solid var(--ed-rule); }
.ct-col-label { color: var(--ed-taupe); font: 500 .625rem var(--ed-sans); letter-spacing: .18em; }
.ct-item { border-bottom: 1px solid var(--ed-rule); }
.ct-item:hover { background: rgba(247, 239, 233, .5); }
.ct-item__img { border-radius: 12px; background: var(--ed-blush); }
body:not(.admin-figma-portal) .ct-item__name { margin: 0; font: 500 1.3rem/1.15 var(--ed-display); color: var(--ed-ink); }
.ct-item__variant { color: var(--ed-ink-soft); font-size: .8125rem; }
.ct-qty-btn { color: var(--ed-oxblood); }
.ct-item__qty { border-radius: 999px; }
.ct-qty-btn:hover { background: var(--ed-blush); color: var(--ed-oxblood); }
.ct-item__price { font: 500 .9375rem var(--ed-sans); color: var(--ed-ink); }
.ct-item__remove { color: var(--ed-taupe); }
.ct-item__remove:hover { color: var(--ed-oxblood); }

/* order summary: dark plum card */
body:not(.admin-figma-portal) .ct-summary {
  top: calc(var(--ed-nav-h) + 76px); border: 0; border-radius: 24px; padding: clamp(24px, 3vw, 36px);
  background: var(--ed-plum) var(--ed-dots-light) 0 0 / 22px 22px; color: var(--ed-on-dark); box-shadow: var(--ed-shadow-m);
}
body:not(.admin-figma-portal) .ct-summary__title { margin: 0 0 22px; padding-bottom: 20px; border-bottom: 1px solid var(--ed-rule-dark); font: 500 1.9rem/1 var(--ed-display); color: var(--ed-on-dark); }
.ct-summary__row { color: var(--ed-on-dark-soft); font: 400 .875rem var(--ed-sans); }
body:not(.admin-figma-portal) .ct-summary__row--total { border-top: 1px solid var(--ed-rule-dark); color: var(--ed-on-dark); font: 500 1.6rem/1 var(--ed-display); }
body:not(.admin-figma-portal) .ct-page .ct-summary .sel-label { color: #e8b4c0; font: 500 .6875rem var(--ed-sans); letter-spacing: .2em; }
.ct-summary .ct-delivery-choice { border-color: var(--ed-rule-dark); }
.ct-summary .ct-delivery-choice label { color: var(--ed-on-dark); }
.ct-summary .ct-delivery-choice input { accent-color: #e8b4c0; width: 18px; height: 18px; }
.ct-summary .form-error { color: #ffc9c9; }
body:not(.admin-figma-portal) .ct-summary .ct-btn-primary { background: var(--ed-ivory); border-color: var(--ed-ivory); color: var(--ed-oxblood); box-shadow: none; }
body:not(.admin-figma-portal) .ct-summary .ct-btn-primary:hover:not(:disabled) { background: #fff; border-color: #fff; color: var(--ed-oxblood-2); }
.ct-summary :where(button, input, a):focus-visible { outline-color: #f2c3cd; box-shadow: 0 0 0 5px rgba(26, 10, 22, .6); }

/* buttons */
body:not(.admin-figma-portal) .ct-btn-primary, body:not(.admin-figma-portal) .ct-btn-ghost {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 28px; border-radius: 999px;
  font: 500 .75rem/1 var(--ed-sans); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; cursor: pointer;
  transition: background .25s, border-color .25s, color .25s, transform .25s;
}
body:not(.admin-figma-portal) .ct-btn-primary { background: var(--ed-oxblood); border: 1px solid var(--ed-oxblood); color: var(--ed-on-dark); box-shadow: 0 10px 26px -10px rgba(155, 61, 86, .6); }
body:not(.admin-figma-portal) .ct-btn-primary:hover:not(:disabled) { background: var(--ed-oxblood-2); border-color: var(--ed-oxblood-2); transform: translateY(-1px); }
body:not(.admin-figma-portal) .ct-btn-primary:disabled { background: #b9a2a6; border-color: #b9a2a6; color: #fff; box-shadow: none; }
body:not(.admin-figma-portal) .ct-btn-ghost { background: transparent; border: 1px solid var(--ed-oxblood); color: var(--ed-oxblood); }
body:not(.admin-figma-portal) .ct-btn-ghost:hover { background: var(--ed-blush); border-color: var(--ed-oxblood); color: var(--ed-oxblood-2); }

/* forms inside elevated ivory cards */
body:not(.admin-figma-portal) :where(.ct-delivery-wrap, .ct-upload-wrap, .ct-payment, .ct-confirm) {
  padding: clamp(24px, 4vw, 52px); border: 1px solid var(--ed-rule); border-radius: 24px; background: var(--ed-ivory); box-shadow: var(--ed-shadow-m);
}
.ct-delivery-wrap, .ct-upload-wrap { max-width: 720px; }
.ct-payment { gap: clamp(32px, 5vw, 72px); }
body:not(.admin-figma-portal) .ct-section-title, body:not(.admin-figma-portal) .ct-payment__title, body:not(.admin-figma-portal) .ct-confirm__title {
  margin: 0; font: 500 clamp(2.1rem, 3.8vw, 3.2rem)/1.02 var(--ed-display); letter-spacing: -.01em; color: var(--ed-ink);
}
.ct-section-title em, .ct-payment__title em, .ct-confirm__title em { font-style: italic; font-weight: 400; color: var(--ed-oxblood); }
.ct-section-sub, .ct-payment__note, .ct-confirm__body { color: var(--ed-ink-soft); }
.ct-payment__note strong { font-weight: 600; }
body:not(.admin-figma-portal) .ct-page .sel-label { color: var(--ed-oxblood); font: 500 .6875rem/1.4 var(--ed-sans); letter-spacing: .22em; text-transform: uppercase; }
body:not(.admin-figma-portal) .ct-page .enrol-form__label, body:not(.admin-figma-portal) .ct-page .lg-label { color: var(--ed-oxblood); font: 500 .6875rem/1.3 var(--ed-sans); letter-spacing: .14em; text-transform: uppercase; }
body:not(.admin-figma-portal) .ct-page :where(.lg-input, .enrol-input) {
  width: 100%; min-height: 52px; padding: 14px 18px; border: 1px solid rgba(155, 61, 86, .28); border-radius: var(--ed-radius-s);
  background: var(--ed-ivory); color: var(--ed-ink); font: 400 .9375rem/1.4 var(--ed-sans);
}
body:not(.admin-figma-portal) .ct-page :where(.lg-input, .enrol-input):focus { outline: none; border-color: var(--ed-oxblood); box-shadow: 0 0 0 4px rgba(155, 61, 86, .12); }
.ct-page .meta { color: var(--ed-ink-soft); font-size: .8125rem; }
.ct-detail-rows { border: 1px solid var(--ed-rule); border-radius: 16px; overflow: hidden; }
.ct-detail-row { border-bottom: 1px solid var(--ed-rule); }
.ct-detail-row--amount { background: var(--ed-blush); }
.ct-detail-row__key { color: var(--ed-taupe); font-family: var(--ed-sans); letter-spacing: .14em; }
.ct-qr-wrap img, #qr-image { border: 1px solid var(--ed-rule) !important; border-radius: 16px; background: #fff; padding: 10px; }
.ct-qr__label { color: var(--ed-taupe); }
.ct-dropzone { border: 1px dashed rgba(155, 61, 86, .4); border-radius: 18px; background: var(--ed-ivory-2); }
.ct-dropzone:hover, .ct-dropzone--over { border-color: var(--ed-oxblood); background: var(--ed-blush); }
.ct-dropzone--filled { border-style: solid; border-color: var(--ed-oxblood); background: var(--ed-blush); }
.ct-dropzone__main { color: var(--ed-ink); }
.ct-dropzone__hint { color: var(--ed-ink-soft); }
.ct-dropzone__icon { color: var(--ed-oxblood); }
.ct-confirm__icon { color: var(--ed-oxblood); }
.ct-confirm__status { border-radius: 999px; }
.ct-page :where(.form-error) { color: #8a2433; }
.ct-page :where(.ct-dropzone):focus-within { outline: 2px solid var(--ed-oxblood); outline-offset: 3px; }

/* ================= RESPONSIVE ================= */
@media (max-width: 1100px) {
  body:not(.admin-figma-portal) .bq-grid, body:not(.admin-figma-portal) .bq-grid--passes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ct-review { grid-template-columns: minmax(0, 1fr) 340px; }
}
@media (max-width: 900px) {
  body:not(.admin-figma-portal) .ct-review { grid-template-columns: 1fr; }
  body:not(.admin-figma-portal) .ct-summary { position: static; }
  body:not(.admin-figma-portal) .ct-payment { grid-template-columns: 1fr; justify-items: start; }
}
@media (max-width: 860px) {
  body:not(.admin-figma-portal) .sh-page .sh-hero { grid-template-columns: 1fr; height: auto; min-height: 0; }
  .sh-page .sh-hero::after { grid-column: 1; grid-row: 2; min-height: 0; height: 36px; }
  .sh-page .sh-hero__content { padding: 22px var(--ed-gutter) 18px; }
  body:not(.admin-figma-portal) .sh-page .sh-hero__title { font-size: 2rem; margin-bottom: 8px; }
  .sh-page .sh-hero__content::after { display: none; }
  .bq-toolbar__inner { flex-direction: column; align-items: stretch; }
  body:not(.admin-figma-portal) .bq-toolbar { top: var(--ed-nav-h); }
  body:not(.admin-figma-portal) .bq-grid--passes .bq-card { flex-direction: column; }
  body:not(.admin-figma-portal) .bq-grid--passes .bq-card__media { flex: none; min-height: 0; aspect-ratio: 1 / 1.02; }
  body:not(.admin-figma-portal) .pd-product { grid-template-columns: 1fr; }
  .pd-purchase { position: static; }
  body:not(.admin-figma-portal) .bq-help { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 520px) {
  body:not(.admin-figma-portal) .bq-grid, body:not(.admin-figma-portal) .bq-grid--passes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
  body:not(.admin-figma-portal) .bq-card__body { padding: 14px 0 0; }
  body:not(.admin-figma-portal) .bq-card__name { font-size: 1.15rem; }
  body:not(.admin-figma-portal) .bq-card__btn { height: 40px; letter-spacing: .08em; font-size: .625rem; }
  body:not(.admin-figma-portal) .bq-card__media, body:not(.admin-figma-portal) .bq-grid--passes .bq-card__media { border-radius: 16px; }
  body.product-detail-page .pd-page { padding-top: 24px; }
  .ct-upload-actions { flex-direction: column-reverse; }
  .ct-upload-actions > * { width: 100%; }
  body:not(.admin-figma-portal) .ct-hero { padding-top: 32px; }
}

/* Phone shop: keep filters compact and make every product a readable, tap-sized row. */
@media (max-width: 600px) {
  body:not(.admin-figma-portal) .bq-toolbar__inner { padding-block: 10px; gap: 10px; }
  body:not(.admin-figma-portal) .bq-chips { flex-wrap: nowrap; padding-bottom: 1px; }
  body:not(.admin-figma-portal) .bq-chip { flex: 0 0 auto; height: 36px; padding-inline: 12px; font-size: .6875rem; }
  body:not(.admin-figma-portal) .bq-toolbar__tools { display: grid; grid-template-columns: minmax(0, 1fr) 132px; gap: 8px; }
  body:not(.admin-figma-portal) .bq-sort, body:not(.admin-figma-portal) .bq-sort select { width: 100%; }
  body:not(.admin-figma-portal) .bq-sort select { min-width: 0; padding-left: 10px; font-size: .8125rem; }
  body:not(.admin-figma-portal) .bq-section { padding-top: 28px; }
  body:not(.admin-figma-portal) .bq-section__head { align-items: flex-end; margin-bottom: 16px; text-align: left; }
  body:not(.admin-figma-portal) .bq-section__head > div,
  body:not(.admin-figma-portal) .bq-section__head h2,
  body:not(.admin-figma-portal) .bq-section__head p { text-align: left; }
  body:not(.admin-figma-portal) .bq-section__head h2 { font-size: 1.85rem; }
  body:not(.admin-figma-portal) .bq-grid, body:not(.admin-figma-portal) .bq-grid--passes { grid-template-columns: 1fr; gap: 14px; }
  body:not(.admin-figma-portal) .bq-card, body:not(.admin-figma-portal) .bq-grid--passes .bq-card { flex-direction: row; overflow: hidden; border-radius: 16px; }
  body:not(.admin-figma-portal) .bq-card__media, body:not(.admin-figma-portal) .bq-grid--passes .bq-card__media { flex: 0 0 42%; min-height: 158px; aspect-ratio: auto; border-radius: 0; }
  body:not(.admin-figma-portal) .bq-card__body { padding: 14px; }
  body:not(.admin-figma-portal) .bq-card__cat { margin-bottom: 5px; }
  body:not(.admin-figma-portal) .bq-card__name { font-size: 1.15rem; }
  body:not(.admin-figma-portal) .bq-card__price { margin: 7px 0 12px; }
  body:not(.admin-figma-portal) .bq-card__btn { height: 36px; }
}

@media (prefers-reduced-motion: reduce) {
  .bq-card__media img, .bq-chip, .bq-card__btn, .pd-add-to-cart, .ct-btn-primary, .ct-btn-ghost, .ct-step__circle { transition: none !important; }
  .bq-card:hover .bq-card__media img { transform: none; }
  body:not(.admin-figma-portal) .pd-add-to-cart:hover, body:not(.admin-figma-portal) .ct-btn-primary:hover { transform: none; }
}

/* Compact first section so the first product row shows on the first screen */
body:not(.admin-figma-portal) .sh-page .bq-section:first-child { padding-top: clamp(24px, 3vw, 36px); }
body:not(.admin-figma-portal) .sh-page .bq-section:first-child .bq-section__head { margin-bottom: 20px; padding-bottom: 14px; }
body:not(.admin-figma-portal) .sh-page .bq-section:first-child .bq-section__head h2 { font-size: clamp(1.7rem, 2.6vw, 2.3rem); }
.ct-summary .ct-summary__note { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--ed-rule-dark); color: var(--ed-on-dark-soft); font: 400 .8125rem/1.65 var(--ed-sans); letter-spacing: .005em; }
.ct-summary .ct-summary__note a { color: var(--ed-on-dark); font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; white-space: nowrap; }
.ct-summary .ct-summary__note a:hover { color: #fff; text-decoration-thickness: 2px; }
.ct-summary .ct-summary__note a:focus-visible { outline: 2px solid #e8b4c0; outline-offset: 3px; border-radius: 2px; }
