/* Approved customer storefront composition. Authoritative behavior remains in storefront.js. */
:root {
  --rp-blue:var(--store-primary);
  --rp-green:var(--store-success);
  --rp-green-soft:var(--store-success-soft);
  --rp-ink:#071a38;
  --rp-copy:#52617c;
  --rp-border:var(--store-border);
  --rp-wash:var(--store-surface-alt);
  --rp-shadow:0 10px 30px rgba(18,43,80,.07);
  --rp-radius:8px;
  --store-primary-strong:color-mix(in srgb,var(--store-primary) 82%,#000);
  --store-primary-soft:color-mix(in srgb,var(--store-primary) 9%,#fff);
  --store-accent-strong:color-mix(in srgb,var(--store-accent) 72%,#000);
  --store-accent-soft:color-mix(in srgb,var(--store-accent) 14%,#fff);
  --store-focus:color-mix(in srgb,var(--store-accent) 58%,#fff);
}

body.customer-storefront { background:var(--store-page-background);color:var(--rp-ink);font-size:15px;line-height:1.5; }
.store-shell { overflow:hidden; }
.store-header {
  min-height:86px;padding:14px max(34px,calc((100vw - 1120px)/2));
  border-color:#dce3ed;background:#fff;box-shadow:none;
}
.store-brand img { max-width:215px;max-height:55px; }
.store-help { min-width:0;gap:24px; }
.store-help a { min-width:0;display:inline-flex;align-items:center;gap:10px;color:var(--store-link);font-size:14px; }
.store-help__utility { min-height:42px;flex:0 1 auto; }
.store-help__copy { display:grid;gap:1px;line-height:1.15; }
.store-help__copy small { color:var(--rp-copy);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase; }
.store-help__copy strong { color:var(--store-link);font-size:13px;font-weight:800;white-space:nowrap; }
.store-icon { width:22px;height:22px;flex:0 0 22px;color:var(--store-accent);vertical-align:middle; }
.basket-button { border:0;border-left:1px solid var(--rp-border);border-radius:0;padding-left:22px; }
main { width:min(1120px,100%);padding:48px 34px 64px; }
.store-screen h1 { color:var(--rp-ink);font-weight:800;letter-spacing:-.045em; }
.store-kicker { color:var(--store-accent-strong); }
.primary-action,.rp-action--primary { min-height:50px;border-radius:6px;background:var(--rp-blue);box-shadow:inset 0 -3px 0 color-mix(in srgb,var(--store-accent) 34%,transparent);font-size:15px; }
.secondary-action,.rp-action--secondary { min-height:48px;border-color:color-mix(in srgb,var(--store-accent) 55%,var(--rp-border));border-radius:6px; }
.customer-storefront :focus-visible { outline:3px solid var(--store-focus);outline-offset:3px; }
.back-button { color:var(--store-link); }

/* One progress language across review, details, and checkout. */
.customer-progress { width:min(620px,calc(100% - 40px));margin:27px auto -4px; }
.customer-progress[hidden] { display:none; }
.customer-progress ol { display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none; }
.customer-progress li { position:relative;display:flex;align-items:center;justify-content:center;gap:8px;color:#6f7c91;font-size:13px;font-weight:750; }
.customer-progress li button { appearance:none;border:0;background:transparent;color:inherit;font:inherit;display:inline-flex;align-items:center;gap:8px;padding:3px 6px;border-radius:999px;cursor:pointer;position:relative;z-index:2; }
.customer-progress li button:hover:not(:disabled),.customer-progress li button:focus-visible { color:var(--store-accent-strong);background:var(--store-accent-soft);outline:2px solid transparent; }
.customer-progress li button:focus-visible { box-shadow:0 0 0 3px var(--store-focus); }
.customer-progress li button:disabled { cursor:not-allowed;opacity:.55; }
.customer-progress li:not(:last-child)::after { content:"";position:absolute;left:72%;right:-28%;top:15px;height:1px;background:#ccd5e1; }
.customer-progress li span { z-index:1;width:29px;height:29px;display:grid;place-items:center;border:2px solid #a0aec0;border-radius:50%;background:#fff;color:#66758b; }
.customer-progress li.is-active { color:var(--store-accent-strong); }
.customer-progress li.is-active span,.customer-progress li.is-complete span { border-color:var(--store-accent);background:var(--store-accent);color:#fff; }

/* 00 — Approved home. */
.customer-storefront .start-screen {
  position:relative;width:min(1060px,100%);margin:auto;padding:54px 0 42px;
  transform:none;text-align:center;
}
.start-screen .store-kicker { display:none; }
.customer-storefront .start-screen.rp-page-intro>h1 { position:relative;z-index:3;max-width:650px;margin-inline:auto;font-size:clamp(3.2rem,6.15vw,4.7rem);line-height:1.03; }
.start-screen h1 span { color:var(--store-accent); }
.start-screen .start-lede { position:relative;z-index:3;max-width:650px;margin-top:23px;color:#5b6881;font-size:1.18rem;line-height:1.55; }
.home-print-visual {
  position:absolute;z-index:0;top:42px;right:-65px;width:430px;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20%,#000 100%);mask-image:linear-gradient(90deg,transparent 0,#000 20%,#000 100%);
}
.home-print-visual img { display:block;width:100%;height:auto;object-fit:contain;object-position:right top; }
.customer-storefront .home-upload-counter { position:relative;z-index:2;width:min(705px,100%);margin:40px auto 0; }
.customer-storefront .home-upload-zone {
  min-height:388px;padding:44px;border:2px dashed var(--store-accent);border-radius:23px;
  background:rgba(255,255,255,.96);box-shadow:0 19px 48px rgba(19,57,128,.08);
}
.customer-storefront .upload-zone-mark { width:78px;height:78px;margin-bottom:18px;border:0;border-radius:0;background:transparent;color:var(--store-accent); }
.customer-storefront .upload-zone-mark svg { width:78px;height:78px; }
.home-upload-zone strong { font-size:1.62rem; }
.upload-zone-instruction { margin-top:9px;font-weight:500; }
.upload-zone-button { min-width:285px;margin-top:23px;padding:14px 27px;border-radius:6px;background:var(--rp-blue);color:#fff;font-size:1.02rem;font-weight:800;box-shadow:0 7px 18px color-mix(in srgb,var(--rp-blue) 20%,transparent); }
.upload-zone-help { margin-top:20px; }
.upload-zone-help::before { content:"▣ ";color:var(--store-accent); }
.home-or { display:flex;align-items:center;gap:17px;margin:26px -48px; }
.home-or::before,.home-or::after { content:"";height:1px;flex:1;background:var(--rp-border); }
.home-or span { width:43px;height:43px;display:grid;place-items:center;border:1px solid var(--rp-border);border-radius:50%;background:#fff;font-size:.78rem;font-weight:800; }
.customer-storefront .home-alternate-paths { width:calc(100% + 150px);display:grid;grid-template-columns:auto 1fr auto;gap:17px;margin:0 0 0 -75px;padding:23px 25px;border:1px solid var(--rp-border);border-radius:8px;background:#fff;box-shadow:var(--rp-shadow);text-align:left; }
.customer-storefront .home-secondary-entries { display:grid;gap:14px; }
.customer-storefront .home-secondary-entries .home-alternate-paths { margin-top:0; }
.home-price-icon { width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:var(--store-entry-accent-soft);color:var(--store-entry-accent-strong);font-size:27px; }
.home-price-symbol { font-weight:760;line-height:1; }
.home-canva-icon img { display:block;width:36px;height:36px; }
.home-price-copy { display:grid;align-content:center;gap:2px; }
.home-price-copy strong { font-size:1.05rem; }
.home-price-copy small { color:var(--rp-copy); }
.home-price-link { align-self:center;padding:13px 21px!important;border:1px solid var(--store-entry-accent-strong)!important;border-radius:5px!important;color:var(--store-entry-accent-strong)!important;text-decoration:none!important;white-space:nowrap; }
.home-price-link:hover,.home-price-link:focus-visible { background:var(--store-entry-accent-soft)!important; }
.home-upload-counter>.custom-path { margin-top:15px; }
.start-screen .start-support { display:none; }

/* Price-first remains a small alternate entry, then converges on the item builder. */
.price-category-intro { width:min(940px,100%);margin:auto;text-align:center; }
.price-category-intro .rp-page-intro__guidance { margin-inline:auto; }
.price-category-choices { grid-template-columns:repeat(4,minmax(0,1fr));margin-top:32px; }
.price-category-choices .rp-choice-tile--category { min-height:150px; }
.price-layout { width:min(980px,100%);margin:auto;grid-template-columns:minmax(0,1fr) 330px;gap:48px; }
.price-form,.price-summary { border:1px solid var(--rp-border);border-radius:var(--rp-radius);background:#fff; }
.price-form { padding:28px; }
.compact-product-selector { max-width:430px;margin:0 0 22px; }
.compact-product-selector[hidden] { display:none!important; }
.compact-product-selector select { width:100%; }
.price-summary { top:22px;padding:27px;border-top:4px solid var(--store-accent);box-shadow:var(--rp-shadow); }

/* 02 — Approved order review. */
.basket-screen { display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:17px 30px;align-items:start; }
.basket-screen[hidden] { display:none; }
.basket-screen>.back-button,.basket-screen>.store-kicker,.basket-screen>h1,.basket-screen>.basket-intro { grid-column:1; }
.basket-screen>.back-button { margin-bottom:0; }
.basket-screen>h1 { font-size:3rem; }
.basket-intro { margin:-10px 0 11px;color:var(--rp-copy); }
.basket-items { grid-column:1;grid-row:5/9;margin:0;border:0;counter-reset:item; }
.basket-item { position:relative;display:grid;grid-template-columns:152px minmax(18rem,1fr) max-content;grid-template-rows:auto auto;gap:14px 19px;align-items:start;margin-bottom:15px;padding:22px;border:1px solid var(--rp-border);border-radius:var(--rp-radius);background:#fff; }
.basket-item::before { content:counter(item);counter-increment:item;position:absolute;top:15px;left:15px;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:var(--store-accent);color:#fff;font-size:.78rem;font-weight:800; }
.basket-item-visual { grid-column:1;grid-row:1/3;width:138px;height:142px;margin-top:15px;border-radius:6px;background:#f5f7fb;overflow:hidden; }
.basket-item-visual.is-multipage { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:3px;overflow:auto; }
.multipage-policy-summary { margin:8px 0;padding:10px 12px;border-left:3px solid var(--store-accent);background:color-mix(in srgb,var(--store-accent) 8%,white);color:var(--rp-ink,#243142);border-radius:6px; }
.multipage-policy-summary.is-error { border-left-color:#b42318;background:#fff1f0;color:#8f1d15; }
.basket-artwork-page { position:relative;min-width:0;min-height:0;display:grid!important;place-items:center;overflow:hidden;border-radius:3px;background:#fff; }
.basket-artwork-page img { width:100%;height:100%;object-fit:contain; }
.basket-artwork-page small { position:absolute;right:2px;bottom:2px;display:grid!important;place-items:center;width:18px;height:18px;border-radius:50%;background:rgba(18,43,80,.82);color:#fff!important;font-size:.66rem!important;font-weight:800; }
.basket-item-visual img { width:100%;height:100%;object-fit:contain; }
.basket-item-body { grid-column:2;grid-row:1;min-width:0;padding-top:7px; }
.basket-item-body h2 { margin:0;font-size:1.16rem; }
.basket-item-summary,.basket-item-specifications { margin:4px 0;color:var(--rp-copy);line-height:1.55;text-transform:none;word-break:normal;overflow-wrap:normal; }
.basket-item-summary { white-space:nowrap; }
.basket-item-filename { display:block;max-width:100%;margin-top:6px;color:#738098;overflow-wrap:anywhere; }
.basket-item-quantity { display:flex;align-items:center;gap:9px;margin:8px 0;color:var(--rp-copy);font-size:13px;font-weight:750; }
.basket-item-quantity input { width:92px;min-height:38px;padding:7px 9px;border:1px solid var(--rp-border);border-radius:5px;background:#fff;color:var(--rp-ink);font:inherit; }
.basket-item-fit { display:inline-flex;width:max-content;max-width:100%;margin-top:12px;padding:8px 10px;border:1px solid #cde5ca;border-radius:5px;background:var(--rp-green-soft);color:var(--rp-green);font-size:.78rem;font-weight:700;white-space:nowrap; }
.basket-item-completion { display:block;margin-top:8px;color:var(--rp-green);font-size:.8rem;font-weight:700; }
.basket-item-side { display:contents; }
.basket-item-price { grid-column:3;grid-row:1;align-self:start;justify-self:end;white-space:nowrap;font-size:1.35rem!important; }
.basket-item-actions { grid-column:2/4;grid-row:2;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px; }
.basket-item-actions button { padding:7px 9px;border:1px solid var(--rp-border);border-radius:4px;background:#fff;color:var(--store-link);font-size:.76rem;font-weight:700;text-decoration:none; }
.basket-item-actions .remove-item-action { color:#a63735; }
.basket-sidebar { grid-column:2;grid-row:5/10;display:grid;gap:14px; }
.basket-summary-card,.basket-help-card,.basket-turnaround { margin:0;padding:20px;border:1px solid var(--rp-border);border-radius:var(--rp-radius);background:#fff; }
.basket-summary-card h2 { margin:0 0 14px;font-size:1.1rem; }
.basket-sidebar-item { display:flex;justify-content:space-between;gap:12px;padding:8px 0;color:var(--rp-copy);font-size:.86rem; }
.basket-sidebar-item strong { color:var(--rp-ink); }
.basket-sidebar .basket-total { display:flex;justify-content:space-between;margin-top:13px;padding:15px 0 0;border-top:1px solid var(--rp-border);font-size:1rem; }
.basket-sidebar .basket-total strong { font-size:1.3rem; }
.basket-turnaround { border-color:color-mix(in srgb,var(--store-information) 22%,var(--rp-border));background:var(--store-information-soft); }
.basket-turnaround strong { color:var(--store-information); }
.basket-help-card { display:grid;gap:4px;background:#f4f8fd; }
.basket-help-card a { color:var(--store-link);font-weight:700; }
.basket-actions { grid-column:1;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:0; }
.basket-actions #continueToCustomer { grid-column:2; }
.basket-actions #addAnotherItem { grid-column:1;grid-row:1; }
.basket-actions #startNewOrder { grid-column:1;grid-row:2;justify-self:start;margin:0; }

/* 03 — Details and fulfillment: one composed page, pickup/shipping only. */
.customer-information-screen { width:min(1240px,100%);max-width:none;margin:auto;display:grid;grid-template-columns:minmax(0,1.75fr) minmax(330px,.75fr);gap:22px 34px;align-items:start; }
.customer-information-screen[hidden] { display:none; }
.customer-information-screen>.back-button,.customer-information-screen>.rp-page-intro { grid-column:1/-1; }
.customer-information-screen>.rp-page-intro h1 { font-size:3rem; }
.customer-information-form,.fulfillment-form { min-width:0;margin:0;padding:29px;border:1px solid var(--rp-border);border-radius:var(--rp-radius);background:#fff; }
.customer-information-form { grid-column:1; }
.customer-information-form .form-help { margin:20px 0 0;color:var(--rp-copy); }
.checkout-account-section{margin-top:26px;padding-top:24px;border-top:1px solid var(--rp-border)}.checkout-account-section h2{margin:0 0 14px;font-size:1.15rem}.checkout-account-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.checkout-account-choices .rp-choice-tile{position:relative}.checkout-account-choices input{position:absolute;opacity:0}.checkout-account-choices .rp-choice-tile__surface{height:100%;display:flex;flex-direction:column;gap:3px;padding:15px;border:1px solid var(--rp-border);border-radius:var(--rp-radius-sm);cursor:pointer}.checkout-account-choices input:checked+.rp-choice-tile__surface{border-color:var(--store-selected);box-shadow:inset 0 0 0 1px var(--store-selected);background:var(--store-selected-soft)}.checkout-account-choices small,.checkout-account-fields>small{color:var(--rp-copy)}.checkout-account-fields,#checkoutAccountTurnstile,.checkout-account-section>.rp-notice{margin-top:16px}.checkout-account-section>.secondary-action{margin-top:14px}.checkout-account-fields[hidden],#checkoutAccountTurnstile[hidden]{display:none!important}
.customer-field-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.customer-information-form .primary-action,.fulfillment-form .primary-action { min-width:270px;margin:22px 0 0 auto;display:flex; }
.customer-storefront .customer-flow-step { grid-column:1;margin-top:0;padding-top:0;border-top:0; }
.customer-flow-step:not([hidden])>.back-button,.customer-flow-step:not([hidden])>.rp-page-intro { display:none; }
.customer-flow-step:not([hidden]) .fulfillment-form::before { content:"How would you like to receive your order?";display:block;margin-bottom:18px;color:var(--rp-ink);font-size:1.22rem;font-weight:800; }
.fulfillment-method-group .choice-row { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.fulfillment-method-group .rp-choice-tile__surface { min-height:86px;display:flex;align-items:center;border-radius:6px;background:#fff; }
.fulfillment-method-group input:checked+.rp-choice-tile__surface { border-color:var(--store-selected);background:var(--store-selected-soft);color:var(--store-accent-strong); }
.fulfillment-detail { margin-top:17px;padding:19px;border:1px solid var(--rp-border);border-radius:6px;background:#fbfdff; }
.fulfillment-detail h2 { margin-top:0; }
.shipping-field-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.details-order-summary { min-width:0;grid-column:2;grid-row:3/6;padding:24px;border:1px solid var(--rp-border);border-top:4px solid var(--store-accent);border-radius:var(--rp-radius);background:#fff; }
.details-summary-heading { display:flex;justify-content:space-between;gap:10px;align-items:center; }
.details-summary-heading h2 { margin:0;font-size:1.15rem; }
.details-summary-heading button { border:0;background:transparent;color:var(--store-link);font-weight:700;cursor:pointer; }
.details-order-summary .order-summary-item { padding:13px 0;border-bottom:1px solid var(--rp-border); }
.details-order-summary dl>div { display:flex;justify-content:space-between;padding-top:15px; }
.details-summary-completion { margin-top:17px;padding:15px;border:1px solid color-mix(in srgb,var(--store-information) 22%,var(--rp-border));border-radius:5px;background:var(--store-information-soft); }
.details-summary-completion span,.details-summary-completion strong { display:block; }
.details-summary-completion span { color:var(--rp-copy);font-size:.78rem; }
.details-summary-completion strong { margin-top:4px;color:var(--store-information); }

/* Checkout review keeps the commercial authority visible without becoming a cart. */
.order-summary-screen { width:min(930px,100%);margin:auto; }
.order-summary-screen>.rp-page-intro h1 { font-size:3rem; }
.order-summary-screen .order-review-section,.order-summary-screen .order-financial-summary { border:1px solid var(--rp-border);border-radius:var(--rp-radius);background:#fff;box-shadow:none; }
.order-review-section { margin:14px 0;padding:20px; }
.order-review-heading { display:flex;justify-content:space-between;align-items:center; }
.order-review-heading h2 { margin:0; }
.order-financial-summary { padding:18px 20px; }
.order-summary-screen>#placeOrder { display:flex;min-width:300px;margin:22px 0 0 auto;background:var(--rp-green);border-color:var(--rp-green); }

/* 04 — Approved payment composition. */
.checkout-page-heading { display:none; }
.order-confirmation-screen { width:min(1120px,100%);margin:auto; }
.order-confirmation-screen.is-payment-required { display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px 32px;align-items:start; }
.order-confirmation-screen.is-payment-required .checkout-page-heading { display:block;grid-column:1/-1; }
.order-confirmation-screen.is-payment-required .confirmation-success-content,.order-confirmation-screen.is-payment-required #turnaroundEstimate,.order-confirmation-screen.is-payment-required #startAfterConfirmation { display:none; }
.order-confirmation-screen.is-payment-required #paymentStep { grid-column:1;grid-row:2;max-width:none;margin:0;padding:25px;border:1px solid var(--rp-border);border-radius:var(--rp-radius);background:#fff; }
.checkout-order-summary { display:none;min-width:0; }
.order-confirmation-screen.is-payment-required .checkout-order-summary { display:block;grid-column:2;grid-row:2;padding:21px;border:1px solid var(--rp-border);border-radius:var(--rp-radius);background:#fff; }
.checkout-order-summary h2 { margin:0 0 15px; }
.checkout-order-summary .order-summary-items { border:0; }
.checkout-order-summary .order-summary-item { padding:12px 0; }
.checkout-order-summary dl { margin-top:16px;padding-top:14px;border-top:1px solid var(--rp-border); }
.checkout-order-summary dl>div { display:flex;justify-content:space-between;padding:6px 0; }
.checkout-summary-total { margin-top:7px;padding-top:12px!important;border-top:1px solid var(--rp-border);font-size:1.12rem;font-weight:800; }
.checkout-summary-completion { margin-top:17px;padding:15px;border:1px solid color-mix(in srgb,var(--store-information) 22%,var(--rp-border));border-radius:5px;background:var(--store-information-soft); }
.checkout-summary-completion span,.checkout-summary-completion strong { display:block; }
.checkout-summary-completion strong { margin-top:4px;color:var(--store-information); }

.live-turnaround.is-unavailable,.details-summary-completion:has(strong:first-child:last-child) { color:var(--rp-copy); }
.live-turnaround.is-unavailable { border-color:var(--rp-border)!important;background:var(--rp-wash)!important; }
.live-turnaround.is-unavailable strong { color:var(--rp-copy)!important; }
.payment-step h2 { font-size:1.55rem; }
.payment-choices { display:grid;gap:12px; }
.payment-choice { min-height:70px!important;text-align:left;border:1px solid var(--rp-border)!important;border-radius:6px!important;background:#fff!important;color:var(--rp-ink)!important; }
.payment-choice.is-selected { border-color:var(--store-selected)!important;box-shadow:inset 0 0 0 1px var(--store-selected); }
.card-payment-panel,.account-payment-panel { margin-top:16px;padding:21px;border:1px solid var(--rp-border);border-radius:6px; }
.stripe-card-field { min-height:54px; }
.card-payment-panel .primary-action { width:100%;background:var(--store-primary);border-color:var(--store-primary); }

/* 05 — Approved confirmation composition. */
.confirmation-success-content { display:grid;grid-template-columns:minmax(0,1.5fr) minmax(275px,.7fr);gap:16px 22px;align-items:start; }
.confirmation-heading { grid-column:1/-1;display:flex;align-items:center;gap:22px; }
.confirmation-heading h1 { font-size:2.7rem; }
.confirmation-check { width:72px;height:72px;display:grid;flex:0 0 auto;place-items:center;border:2px solid var(--rp-green);border-radius:50%;background:var(--rp-green-soft);color:var(--rp-green);font-size:2.7rem; }
.order-confirmation-number { grid-column:1/-1!important;display:flex;justify-content:space-between;align-items:center;margin:0;padding:20px 24px;border:1px solid #cde5ca;border-radius:var(--rp-radius);background:var(--rp-green-soft);font-size:1rem; }
.order-confirmation-number strong { color:var(--rp-ink);font-size:1.55rem; }
.order-confirmation-screen .order-summary-items { border:1px solid var(--rp-border);border-radius:var(--rp-radius);overflow:hidden; }
.order-confirmation-screen .order-summary-item { padding:18px; }
.order-confirmation-number,.confirmation-success-content>.order-summary-items,.confirmation-success-content>.order-financial-summary,.confirmation-success-content>.order-review-section:not(.confirmation-next) { grid-column:1; }
.confirmation-next { grid-column:2;grid-row:3/7;max-width:none;margin:0; }
.next-steps { display:grid;gap:19px;margin:18px 0 0;padding:0;list-style:none; }
.next-steps li { display:grid;grid-template-columns:32px 1fr;gap:12px; }
.next-steps li>span { width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:var(--store-accent-soft);color:var(--store-accent-strong);font-weight:800; }
.next-steps p { margin:3px 0 0;color:var(--rp-copy); }
.order-confirmation-screen:not(.is-payment-required) #paymentStep { display:none; }

/* Shared reassurance and footer. */
.store-benefits { display:grid;grid-template-columns:repeat(4,1fr);padding:22px max(28px,calc((100vw - 1080px)/2));border-top:1px solid var(--rp-border);border-bottom:1px solid var(--rp-border);background:#fff; }
.store-benefits>span { display:grid;grid-template-columns:39px 1fr;grid-template-rows:auto auto;padding:0 21px;border-right:1px solid var(--rp-border); }
.store-benefits>span:last-child { border:0; }
.store-benefits .store-icon { grid-row:1/3;width:27px;height:27px;align-self:center;color:var(--store-accent); }
.store-benefits strong { font-size:.86rem; }
.store-benefits small { color:var(--rp-copy);font-size:.75rem; }
.store-footer { min-height:82px;align-items:center;padding-inline:max(34px,calc((100vw - 1080px)/2));background:#fff; }
.store-footer__more { display:flex;gap:16px; }
.store-footer__more strong { font-size:.77rem; }
.custom-request-screen { width:min(900px,100%);margin:auto; }
.custom-request-screen form { display:grid;gap:22px;margin-top:28px;padding:30px;border:1px solid var(--store-border);border-radius:var(--rp-radius);background:var(--store-surface); }
.custom-request-screen .honeypot { position:absolute;left:-10000px; }
.custom-request-confirmation { margin-top:28px;padding:28px;border:1px solid color-mix(in srgb,var(--store-success) 35%,var(--store-border));border-radius:var(--rp-radius);background:var(--store-success-soft); }

@media (max-width:900px) {
  main { padding-inline:25px; }
  .home-print-visual { right:-145px;width:410px;opacity:.78; }
  .customer-storefront .home-upload-counter { margin-inline:auto; }
  .price-category-choices { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .basket-screen,.customer-information-screen,.order-confirmation-screen.is-payment-required,.confirmation-success-content { grid-template-columns:1fr; }
  .basket-screen>*,.customer-information-screen>*,.order-confirmation-screen.is-payment-required>*,.confirmation-success-content>* { grid-column:1!important;grid-row:auto!important; }
  .basket-sidebar { grid-template-columns:1fr 1fr; }
  .basket-help-card { grid-column:1/-1; }
  .details-order-summary { grid-row:auto; }
  .store-benefits { grid-template-columns:repeat(2,1fr);gap:18px; }
  .store-benefits>span:nth-child(2) { border-right:0; }
}

@media (max-width:650px) {
  .store-header { min-height:70px;display:flex;align-items:center;justify-content:space-between;padding:11px 17px; }
  .store-brand img { max-width:165px;max-height:42px; }
  .store-help { justify-content:flex-end;gap:11px;margin-top:0; }
  .customer-storefront .store-help .store-help__phone .store-help__copy,.store-help a[href^="mailto:"] { display:none; }
  .basket-button { display:none; }
  main { padding:30px 16px 44px; }
  .customer-progress { margin-top:18px; }
  .customer-progress li { font-size:.7rem;gap:4px; }
  .customer-progress li:not(:last-child)::after { left:82%;right:-18%; }
  .customer-storefront .start-screen { min-height:0;padding-top:25px; }
  .customer-storefront .start-screen.rp-page-intro>h1 { font-size:2.55rem; }
  .start-screen .start-lede { font-size:1rem; }
  .home-print-visual { top:224px;right:-118px;width:350px;opacity:.38; }
  .customer-storefront .home-upload-counter { margin:32px 0 0;width:100%; }
  .customer-storefront .home-upload-zone { min-height:310px;padding:31px 18px;background:rgba(255,255,255,.93); }
  .upload-zone-button { min-width:0;width:100%; }
  .customer-storefront .home-alternate-paths { width:100%;grid-template-columns:auto 1fr;margin-left:0;padding:19px; }
  .home-or { margin-inline:0; }
  .home-price-link { grid-column:1/-1;text-align:center; }
  .price-category-choices { grid-template-columns:1fr 1fr; }
  .price-layout { grid-template-columns:1fr; }
  .basket-item { grid-template-columns:98px minmax(0,1fr);grid-template-rows:auto auto auto;padding:17px; }
  .basket-item-visual { grid-column:1;grid-row:1/3;width:90px;height:100px; }
  .basket-item-body { grid-column:2;grid-row:1; }
  .basket-item-price { grid-column:2;grid-row:2;justify-self:start; }
  .basket-item-actions { grid-column:1/-1;grid-row:3;justify-content:flex-end; }
  .basket-sidebar { grid-template-columns:1fr; }
  .basket-help-card { grid-column:auto; }
  .basket-actions { grid-template-columns:1fr; }
  .basket-actions>* { grid-column:1!important;grid-row:auto!important;width:100%; }
  .customer-field-grid,.shipping-field-grid,.fulfillment-method-group .choice-row,.checkout-account-choices { grid-template-columns:1fr; }
  .customer-information-form .primary-action,.fulfillment-form .primary-action,.order-summary-screen>#placeOrder { width:100%;min-width:0; }
  .confirmation-heading { display:grid;align-items:start; }
  .confirmation-heading h1,.customer-information-screen>.rp-page-intro h1,.order-summary-screen>.rp-page-intro h1 { font-size:2.15rem; }
  .order-confirmation-number { display:block; }
  .order-confirmation-number strong { display:block;margin-top:4px; }
  .store-benefits { grid-template-columns:1fr;padding-inline:18px; }
  .store-benefits>span { border:0; }
  .store-footer { display:grid;gap:13px;padding-inline:18px; }
  .store-footer__more { display:flex;flex-wrap:wrap; }
}

@media (max-width:390px) {
  .store-help__phone { font-size:.78rem!important; }
  .customer-progress li { font-size:0; }
  .customer-progress li span { font-size:.75rem; }
  .customer-storefront .start-screen.rp-page-intro>h1 { font-size:2.25rem; }
  .home-print-visual { right:-165px;opacity:.25; }
  .price-category-choices { grid-template-columns:1fr; }
  .basket-item { grid-template-columns:1fr;grid-template-rows:auto auto auto auto; }
  .basket-item-visual { grid-column:1;grid-row:1;width:100%;height:190px; }
  .basket-item-body { grid-column:1;grid-row:2; }
  .basket-item-price { grid-column:1;grid-row:3;justify-self:start; }
  .basket-item-actions { grid-column:1;grid-row:4;justify-content:flex-start; }
}

/* Shared customer account, contact, and estimate shell. */
.store-account-menu { position:relative; }
.store-account-menu > summary { display:flex;align-items:center;gap:8px;min-height:42px;color:var(--store-link);font-size:.82rem;font-weight:800;cursor:pointer;list-style:none; }
.store-account-menu > summary::-webkit-details-marker { display:none; }
.store-account-menu > summary::after { content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px); }
.store-account-menu[open] > summary::after { transform:rotate(225deg) translate(-2px,-1px); }
.store-account-menu > div { position:absolute;z-index:40;top:calc(100% + 8px);right:0;width:min(280px,calc(100vw - 32px));padding:10px;border:1px solid var(--store-border);border-radius:var(--rp-radius);background:#fff;box-shadow:0 14px 40px rgba(18,43,80,.16); }
.store-account-menu > div > strong { display:block;padding:8px 10px 12px;border-bottom:1px solid var(--store-border);color:var(--rp-ink);font-size:.9rem;overflow-wrap:anywhere; }
.store-account-menu > div a { display:flex;align-items:center;min-height:40px;padding:8px 10px;border-radius:8px;color:var(--rp-ink);font-size:.86rem;font-weight:750;text-decoration:none; }
.store-account-menu > div a:hover,.store-account-menu > div a:focus-visible { background:var(--rp-surface);color:var(--store-link); }
.store-help__account,.store-help__contact { white-space:nowrap; }
.customer-page-back { display:inline-flex;margin-bottom:22px;color:var(--store-link);font-size:.86rem;font-weight:800;text-decoration:none; }
.customer-page-back:hover { text-decoration:underline; }
.customer-auth-shell { width:min(1040px,100%);margin:auto; }
.customer-auth-layout { display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.75fr);gap:42px;align-items:center;min-height:520px; }
.customer-auth-intro { max-width:560px; }
.customer-auth-intro h1 { margin:.4rem 0 1rem;font-size:clamp(2.2rem,4.5vw,4rem);line-height:1.02;letter-spacing:-.045em; }
.customer-auth-intro p { color:var(--rp-copy);font-size:1.05rem; }
.customer-auth-intro ul { display:grid;gap:12px;margin:28px 0 0;padding:0;list-style:none; }
.customer-auth-intro li { display:flex;gap:10px;align-items:flex-start;color:var(--rp-copy); }
.customer-auth-intro li::before { content:"\2713";display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border-radius:50%;background:var(--store-success-soft);color:var(--store-success);font-weight:900; }
.customer-login-card { padding:30px;border:1px solid var(--store-border);border-radius:14px;background:#fff;box-shadow:var(--rp-shadow); }
.customer-login-card h2 { margin:0 0 8px;font-size:1.35rem; }
.customer-login-card form { display:grid;gap:17px;margin-top:22px; }
.customer-login-card label { display:grid;gap:7px;font-size:.84rem;font-weight:800; }
.customer-login-card .primary-action { width:100%; }
.customer-login-help { margin:20px 0 0;color:var(--rp-copy);font-size:.86rem;text-align:center; }
.customer-account-shell { width:min(1080px,100%);margin:auto; }
.customer-account-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.42fr);gap:22px;align-items:start; }
.customer-account-card { padding:25px;border:1px solid var(--store-border);border-radius:var(--rp-radius);background:#fff;box-shadow:var(--rp-shadow); }
.customer-account-card--wide { grid-column:1/-1; }
.customer-card-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px; }
.customer-card-heading h2 { margin:0;font-size:1.18rem; }
.customer-card-heading a { color:var(--store-link);font-size:.84rem;font-weight:800; }
.customer-detail-list { display:grid;gap:12px;margin:0; }
.customer-detail-list > div { display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;padding-bottom:12px;border-bottom:1px solid var(--store-border); }
.customer-detail-list > div:last-child { padding-bottom:0;border:0; }
.customer-detail-list dt { color:var(--rp-copy);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em; }
.customer-detail-list dd { margin:0;font-weight:700;overflow-wrap:anywhere; }
.customer-history-list { display:grid;gap:0;margin:0;padding:0;list-style:none; }
.customer-history-list article { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:15px 0;border-top:1px solid var(--store-border); }
.customer-history-list article:first-child { border-top:0; }
.customer-history-list strong,.customer-history-list small,.customer-history-list span { display:block; }
.customer-history-list small,.customer-history-list span { margin-top:3px;color:var(--rp-copy);font-size:.84rem; }
.customer-history-amount { text-align:right;white-space:nowrap; }
.customer-account-secondary-link { margin-top:18px;font-size:.82rem; }
.customer-account-secondary-link a { color:var(--store-link);font-weight:750; }
.customer-order-items { display:grid;gap:22px; }
.customer-order-item { display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr) auto;gap:22px;align-items:start;padding-top:22px;border-top:1px solid var(--store-border); }
.customer-order-item:first-child { padding-top:0;border-top:0; }
.customer-order-thumbnails { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.customer-order-thumbnails img { display:block;width:100%;aspect-ratio:4/3;object-fit:contain;border:1px solid var(--store-border);border-radius:8px;background:var(--store-surface-alt); }
.customer-order-thumbnails img:only-child { grid-column:1/-1;aspect-ratio:3/2; }
.customer-order-artwork-placeholder { min-height:125px;display:grid;place-items:center;padding:16px;border:1px dashed var(--rp-color-border-strong);border-radius:8px;background:var(--store-surface-alt);color:var(--rp-copy);font-size:.78rem;font-weight:750;text-align:center; }
.customer-order-item-copy h3 { margin:0 0 8px;font-size:1.1rem; }
.customer-order-item-copy p { margin:4px 0;color:var(--rp-copy); }
.customer-order-item-copy p strong { color:var(--rp-ink); }
.customer-order-item-copy small { display:block;margin-top:2px;color:var(--rp-copy);font-size:.78rem; }
.customer-order-item-price { white-space:nowrap; }
.customer-order-totals { max-width:620px;margin-left:auto; }
.customer-order-totals dd { text-align:right; }
.customer-order-totals .customer-order-total { padding-top:14px;border-top:2px solid var(--store-border);font-size:1.05rem; }
.customer-account-empty { padding:22px;border:1px dashed var(--rp-color-border-strong);border-radius:10px;background:var(--store-surface-alt);color:var(--rp-copy); }
.customer-account-actions { display:flex;flex-wrap:wrap;gap:10px;margin-top:22px; }
.store-contact-success-actions { display:flex;flex-wrap:wrap;gap:10px; }
.store-contact-attachment { display:grid;gap:7px;margin-top:18px;font-size:.84rem;font-weight:800; }
.store-contact-attachment small { color:var(--rp-copy);font-size:.76rem;font-weight:600; }
.store-contact-attachment input[type="file"] { width:100%;padding:10px;border:1px solid var(--store-border);border-radius:9px;background:var(--store-surface-alt);font:inherit; }
.store-contact-feedback { margin:20px 0 0; }
.estimate-page > .store-shell { min-height:100vh; }

@media (max-width:780px) {
  .customer-storefront .store-header { align-items:center;flex-wrap:wrap; }
  .customer-storefront .store-help { display:flex;align-items:center;gap:12px; }
  .customer-storefront .store-help > a.store-help__account,
  .customer-storefront .store-help > a.store-help__contact { display:inline-flex; }
  .customer-storefront .store-help__phone .store-help__copy { display:none; }
  .customer-auth-layout { grid-template-columns:1fr;gap:25px;min-height:0; }
  .customer-auth-intro { max-width:none; }
  .customer-auth-intro h1 { font-size:2.45rem; }
  .customer-account-grid { grid-template-columns:1fr; }
  .customer-account-card--wide { grid-column:1; }
  .customer-order-item { grid-template-columns:minmax(130px,180px) minmax(0,1fr); }
  .customer-order-item-price { grid-column:2; }
}

@media (max-width:560px) {
  .customer-storefront .store-header { padding-inline:16px; }
  .customer-storefront .store-brand { min-width:0;flex:1 1 150px; }
  .customer-storefront .store-help { flex:1 1 100%;justify-content:space-between;border-top:1px solid var(--store-border);padding-top:9px; }
  .customer-storefront .store-help__phone { display:inline-flex; }
  .customer-storefront .basket-button { display:inline-flex;width:100%;min-height:40px;justify-content:center;order:4;padding:8px 12px;border:1px solid var(--store-border);border-radius:9px; }
  .store-account-menu > div { right:-4px; }
  .customer-login-card,.customer-account-card { padding:21px 18px; }
  .customer-detail-list > div,.customer-history-list article { grid-template-columns:1fr;gap:5px; }
  .customer-history-amount { text-align:left; }
  .customer-order-item { grid-template-columns:1fr;gap:14px; }
  .customer-order-artwork { max-width:280px; }
  .customer-order-item-price { grid-column:1; }
  .customer-order-totals { margin-left:0; }
  .customer-order-totals > div { grid-template-columns:minmax(0,1fr) auto; }
}
