/* Catalog pieces the sample does not have (slice 3b): pager, long brand list, product sections and rich text.
   Built only from the clone's tokens so styles.css stays byte-identical to the sample (plan 6.4). */

.fopts-scroll { max-height: 280px; overflow-y: auto; overscroll-behavior: contain; padding-right: 4px; }

.pager { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin-top: clamp(28px, 4vw, 48px); }
.pager-item { display: inline-flex; align-items: center; gap: 8px; color: var(--soft); }
.pager .chip { justify-content: center; min-width: 40px; padding: 0 14px; }
.pager .chip[aria-current="page"] { background: var(--navy); border-color: var(--navy); color: #fff; }

/* Product packshots sit on white, so they are shown whole instead of cropped like the sample's photos. */
.cat-media.is-pack { background: #fff; }
.cat-media.is-pack img { object-fit: contain; padding: 12%; }

/* styles.css drops .pd-body to `1fr` on phones; without this the tab row's full width stretches the column. */
.pd-body > * { min-width: 0; }
.pd-tabs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin-bottom: 28px; padding-bottom: 2px; }
.pd-tabs::-webkit-scrollbar { display: none; }
.pd-sec { scroll-margin-top: calc(var(--header-h) + 16px); }
.pd-sec + .pd-sec { margin-top: 36px; }

.pd-ingr { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.pd-ingr th, .pd-ingr td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.pd-ingr th { color: var(--soft); font-weight: 500; }
.pd-ingr td { color: var(--navy); }
.pd-ingr td + td, .pd-ingr th + th { text-align: right; white-space: nowrap; }

.rich { color: var(--muted); max-width: 62ch; overflow-wrap: anywhere; }
.rich > * + * { margin-top: 10px; }
.rich ul, .rich ol { padding-left: 1.3em; }
.rich ul { list-style: disc; }
.rich ol { list-style: decimal; }
.rich li + li { margin-top: 4px; }
.rich strong, .rich b { color: var(--navy); font-weight: 600; }
.rich h3, .rich h4 { color: var(--navy); font-size: 17px; margin-top: 18px; }
.rich table { width: 100%; border-collapse: collapse; font-size: 14px; display: block; overflow-x: auto; }
.rich th, .rich td { padding: 8px 10px; border: 1px solid var(--line); text-align: left; vertical-align: top; }

/* Slice 4a: checkout errors and the order tracking page, from the clone's tokens. */
.co-alert { margin: 0; padding: 14px 16px; border-radius: var(--r-ui); background: var(--panel); color: var(--navy); font-size: 14.5px; line-height: 1.45; }
.co-alert.is-err { background: #fbe9ea; color: var(--err); }
.field .err, .co-step .err { margin: 6px 0 0; font-size: 13px; color: var(--err); }
.co-line.is-out { opacity: 0.55; }
.co-line.is-out small { color: var(--err); }
.co-turnstile { min-height: 65px; }
.order-card { margin-top: clamp(28px, 3vw, 40px); display: grid; gap: 18px; max-width: 760px; }
.order-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.order-head h2 { font-size: var(--fs-h3); }
.order-status { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border-radius: var(--r-pill); background: var(--lime-soft); color: var(--forest); font-weight: 600; font-size: 14px; }
.order-status.is-cancelled { background: var(--panel-2); color: var(--muted); }
.order-meta { display: grid; gap: 6px; margin: 0; color: var(--muted); font-size: 14.5px; }
.order-history { display: grid; gap: 6px; margin: 0; padding-left: 18px; color: var(--muted); font-size: 14px; }
.co-alert .link-btn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
