/* Parcours shop 2026 : première brique visuelle du panier latéral. */
.shop-bag--product > :not([data-shop-action="addCurrentShopItem"]) { display: none !important; }
.shop-bag--product + .shop-item-variant, .article .shop-item-variant { display: none !important; }
.shop-bag--product > [data-shop-action="addCurrentShopItem"] { display: inline-flex; align-items: center; justify-content: center; min-width: 13rem; min-height: 3.25rem; box-sizing: border-box; margin: .75rem 0 1.25rem; padding: .85rem 1.5rem; border: 2px solid #c85a32; border-radius: 4px; background: #c85a32; color: #fff; font-size: .9rem; font-weight: 700; letter-spacing: .02em; text-align: center; text-decoration: none; text-transform: uppercase; transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.shop-bag--product > [data-shop-action="addCurrentShopItem"]:hover, .shop-bag--product > [data-shop-action="addCurrentShopItem"]:focus-visible { border-color: #a94725; background: #a94725; box-shadow: 0 .35rem .8rem rgba(200, 90, 50, .25); color: #fff; opacity: 1; transform: translateY(-1px); }
.shop-bag--product > [data-shop-action="addCurrentShopItem"]:active { transform: translateY(0); }

.shop-aside { visibility: hidden; position: fixed; z-index: 10001; inset: 0; pointer-events: none; }
.shop-aside--open { visibility: visible; pointer-events: auto; }
.shop-aside__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(17, 24, 39, .36); opacity: 0; transition: opacity .25s ease; cursor: pointer; }
.shop-aside--open .shop-aside__backdrop { opacity: 1; }
.shop-aside__panel { position: absolute; top: 0; right: 0; display: flex; flex-direction: column; width: min(390px, 100%); height: 100%; box-sizing: border-box; background: #fff; box-shadow: -8px 0 30px rgba(17, 24, 39, .18); transform: translateX(100%); transition: transform .3s ease; }
.shop-aside--open .shop-aside__panel { transform: translateX(0); }
.shop-aside__header, .shop-aside__footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.5rem; }
.shop-aside__header { border-bottom: 1px solid #e5e7eb; }
.shop-aside__footer { justify-content: space-between; border-top: 1px solid #e5e7eb; }
.shop-aside__total { display: grid; gap: .15rem; color: #6b7280; font-size: .72rem; text-transform: uppercase; }
.shop-aside__total strong { color: #111827; font-size: 1rem; letter-spacing: .01em; text-transform: none; }
.shop-aside__title { display: flex; align-items: center; gap: .35rem; margin: 0; color: #111827; font-size: 1.25rem; text-align: left; }
.shop-aside__count { display: inline-flex; flex: 0 0 1.65rem; align-items: center; justify-content: center; width: 1.65rem; height: 1.65rem; margin-left: 0; padding: 0; box-sizing: border-box; border-radius: 50%; background: #c85a32; color: #fff; font-size: .72rem; font-weight: 700; line-height: 1; text-align: center; animation: shop-aside-count-spin 14s ease-in-out infinite; transform-origin: center; }
.shop-aside__close { padding: 0; border: 0; background: transparent; color: #6b7280; font-size: 1.8rem; line-height: 1; cursor: pointer; }
.shop-aside__body { flex: 1 1 auto; padding: 1.25rem 1.5rem; overflow-y: auto; }
.shop-aside__empty { margin: 0; color: #6b7280; }
.shop-aside__empty[hidden] { display: none; }
.shop-aside__items { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.shop-aside__item { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) auto auto; align-items: center; gap: .65rem; min-width: 0; padding: .8rem .75rem; border: 1px solid #d8e9f2; border-radius: 4px; background: #fff; box-shadow: 0 2px 8px rgba(13, 45, 77, .06); }
.shop-aside__item-preview { display: flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; overflow: hidden; border-radius: 4px; background: #f3f4f6; }
.shop-aside__item-preview img { display: block; width: 100%; height: 100%; object-fit: cover; }
.shop-aside__item-preview--empty::after { content: ''; width: .55rem; height: .55rem; border-radius: 50%; background: #26a0d7; }
.shop-aside__item-name { min-width: 0; color: #c85a32; font-size: .95rem; font-weight: 700; line-height: 1.3; text-align: left; }
.shop-aside__item-family { display: block; margin-bottom: .12rem; color: #9ca3af; font-size: .65rem; font-weight: 500; line-height: 1.2; }
.shop-aside__item-title { display: block; }
.shop-aside__item-details { color: #6b7280; font-size: .75rem; white-space: nowrap; }
.shop-aside__item-price { color: #111827; font-size: .78rem; white-space: nowrap; }
.shop-aside__item-controls { grid-column: 2 / -1; display: flex; align-items: center; gap: .55rem; min-width: 0; }
.shop-aside__item-select { flex: 1 1 auto; width: auto; min-width: 0; min-height: 2.25rem; padding: .45rem 2.25rem .45rem .6rem; border: 1px solid #cbd5e1; border-radius: 4px; background: #fff; color: #1f2937; font: inherit; font-size: .8rem; }
.shop-aside__item-select:focus { border-color: #26a0d7; outline: 2px solid rgba(38, 160, 215, .18); }
.shop-aside__item-select--error, .shop-aside__item-select--error:focus { border-color: #dc2626; outline: 2px solid rgba(220, 38, 38, .16); background: #fff7f7; }
.shop-aside__item-quantity { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.25rem; }
.shop-aside__item-quantity[hidden] { display: none; }
.shop-aside__item-quantity-button { display: inline-flex; align-items: center; justify-content: center; width: 1.45rem; height: 1.45rem; padding: 0; border: 1px solid #cbd5e1; border-radius: 50%; background: #fff; color: #374151; font-size: .95rem; line-height: 1; cursor: pointer; }
.shop-aside__item-quantity-button:hover:not(:disabled), .shop-aside__item-quantity-button:focus-visible { border-color: #c85a32; color: #c85a32; }
.shop-aside__item-quantity-button:disabled { cursor: not-allowed; opacity: .35; }
.shop-aside__item-quantity-value { min-width: 1rem; color: #111827; font-size: .8rem; text-align: center; }
.shop-aside__item-remove { display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; padding: 0; border: 0; background: transparent; color: #b42318; font-size: 1.35rem; line-height: 1; cursor: pointer; }
.shop-aside__item-remove:hover, .shop-aside__item-remove:focus-visible { color: #7f1d1d; }
.shop-aside__button { display: inline-flex; align-items: center; justify-content: center; min-height: 2.7rem; padding: 0 1rem; border: 2px solid #c85a32; border-radius: 4px; background: #c85a32; color: #fff; font-weight: 700; text-decoration: none; }
.shop-aside__button:hover { border-color: #a94725; background: #a94725; color: #fff; }
.shop-aside__choice { position: absolute; z-index: 2; inset: 0; display: grid; place-items: center; padding: 2rem; background: rgba(17, 24, 39, .42); }
.shop-aside__choice[hidden] { display: none; }
.shop-aside__choice-dialog { width: min(22rem, 100%); margin: 1rem; padding: 1.25rem; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; box-shadow: 0 .8rem 2.5rem rgba(17, 24, 39, .2); }
.shop-aside__choice-dialog h3 { margin: 0 0 .5rem; color: #111827; font-size: 1.05rem; }
.shop-aside__choice-dialog p { margin: 0; color: #6b7280; font-size: .82rem; line-height: 1.45; }
.shop-aside__choice-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; margin-top: 1.25rem; }
.shop-aside__choice-button { min-height: 2.25rem; padding: .45rem .7rem; border: 1px solid #cbd5e1; border-radius: 4px; font: inherit; font-size: .75rem; font-weight: 700; cursor: pointer; }
.shop-aside__choice-button--secondary { background: #fff; color: #475569; }
.shop-aside__choice-button--secondary:hover { border-color: #94a3b8; background: #f8fafc; }
.shop-aside__choice-button--primary { border-color: #c85a32; background: #c85a32; color: #fff; }
.shop-aside__choice-button--primary:hover { border-color: #a94725; background: #a94725; }
/* Les anciennes règles globales `button` ne doivent pas recolorer les contrôles du panier. */
.shop-aside__close, .shop-aside__item-quantity-button, .shop-aside__item-remove, .shop-aside__choice-button { width: auto !important; margin: 0 !important; text-transform: none !important; }
.shop-aside__close { display: inline-flex !important; align-items: center; justify-content: center; width: 2.5rem !important; height: 2.5rem; padding: 0 !important; border: 0 !important; background: transparent !important; color: #6b7280 !important; font-size: 1.8rem; }
.shop-aside__item-quantity-button { display: inline-flex !important; align-items: center; justify-content: center; width: 1.45rem !important; height: 1.45rem; min-width: 1.45rem; padding: 0 !important; border: 1px solid #cbd5e1 !important; border-radius: 50%; background: #fff !important; color: #374151 !important; font-size: .95rem; }
.shop-aside__item-remove { display: inline-flex !important; align-items: center; justify-content: center; width: 1.5rem !important; height: 1.5rem; min-width: 1.5rem; padding: 0 !important; border: 0 !important; background: transparent !important; color: #b42318 !important; font-size: 1.35rem; }
.shop-aside__choice-button--secondary { background: #fff !important; color: #475569 !important; }
.shop-aside__choice-button--primary { background: #c85a32 !important; color: #fff !important; }
.shop-state { position: relative; display: inline-flex; align-items: center; gap: .9rem; width: fit-content; max-width: calc(100% - 2rem); margin: 0 0 1rem auto; padding: .8rem 1rem; border: 1px solid #d8e9f2; border-radius: 8px; background: #fff; box-shadow: 0 3px 12px rgba(13, 45, 77, .08); cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.shop-state:hover { border-color: #c85a32; box-shadow: 0 5px 16px rgba(13, 45, 77, .12); transform: translateY(-1px); }
.shop-state-title { color: #111827; font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.shop-state-infos { display: inline-flex; align-items: center; gap: .35rem; color: #374151; font-size: .82rem; }
.shop-state-infos-num { display: inline-flex; flex: 0 0 1.45rem; align-items: center; justify-content: center; width: 1.45rem; height: 1.45rem; padding: 0; box-sizing: border-box; border-radius: 50%; background: #c85a32; color: #fff; font-size: .7rem; font-weight: 700; line-height: 1; text-align: center; }
.shop-state-franco { color: #166534; font-size: .72rem; font-weight: 600; }
.shop-state-franco-limit { color: #6b7280; font-weight: 400; }
.shop-state-actions { display: inline-flex; align-items: center; gap: .45rem; margin-left: auto; white-space: nowrap; }
.shop-state-actions .shop-link { color: #6b7280; font-size: .7rem; }
@media (max-width: 600px) { :root { --shop-mobile-bar-height: 4rem; } body:has(.shop-bag--product) { padding-bottom: calc(var(--shop-mobile-bar-height) * 2); } .shop-state { position: fixed; z-index: 10000; top: auto !important; right: 0; bottom: 0; left: 0; display: flex; align-items: center; width: 100% !important; max-width: none; height: var(--shop-mobile-bar-height); min-height: var(--shop-mobile-bar-height); box-sizing: border-box; margin: 0 !important; padding: .65rem 1rem; flex-wrap: nowrap; gap: .55rem .75rem; border-radius: 0; box-shadow: 0 -3px 12px rgba(13, 45, 77, .12); overflow: hidden; } .shop-state-title { display: none; } .shop-state-infos { flex: 0 0 auto; } .shop-state-franco { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .shop-state-actions { width: auto; margin-left: auto; } .shop-bag--product > [data-shop-action="addCurrentShopItem"] { position: fixed !important; z-index: 10000; right: 0; bottom: var(--shop-mobile-bar-height) !important; left: 0; display: flex; width: 100%; min-width: 0; height: var(--shop-mobile-bar-height); min-height: var(--shop-mobile-bar-height); box-sizing: border-box; margin: 0 !important; padding: .85rem 1rem !important; border-radius: 0; } }
.shop-aside-alert { position: fixed; z-index: 10003; top: 1.25rem; right: calc(min(390px, 100vw) + 1.25rem); width: min(28rem, calc(100vw - min(390px, 100vw) - 3.75rem)); padding: .75rem 1rem; border: 1px solid; border-radius: .65rem; box-shadow: 0 .35rem 1rem rgba(15, 23, 42, .1); font-size: .82rem; font-weight: 400; letter-spacing: .01em; line-height: 1.4; text-wrap: pretty; white-space: pre-line; opacity: 0; transform: translateY(-1.25rem); pointer-events: none; transition: opacity .22s ease, transform .22s ease; cursor: pointer; }
.shop-aside-alert[hidden] { display: none; }
.shop-aside-alert.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.shop-aside-alert.is-leaving { opacity: 0; transform: translateY(-1.25rem); pointer-events: none; }
.shop-aside-alert--success { border-color: #86efac; background: #f0fdf4; color: #166534; }
.shop-aside-alert--error { border-color: #fca5a5; background: #fef2f2; color: #991b1b; }
.shop-aside-alert--error.is-visible { animation: shop-aside-alert-error-pulse 2.4s ease-in-out infinite; }
.shop-aside-alert--info { border-color: #93c5fd; background: #eff6ff; color: #1e40af; }
body.shop-aside-is-open { overflow: hidden; }
.shop-layout { min-width: 100%; min-height: 100%; margin: 0; padding: 0; background: #f6f7f9; color: #111827; font-family: Arial, Helvetica, sans-serif; }
.shop-layout *, .shop-layout *::before, .shop-layout *::after { box-sizing: border-box; }
.shop-layout a { opacity: 1; }
.shop-finalize { max-width: 70rem; margin: 0 auto; padding: 2rem 1rem 4rem; text-align: left; }
.shop-finalize__breadcrumb { display: flex; align-items: center; gap: .45rem; margin-bottom: 1.5rem; color: #9ca3af; font-size: .72rem; }
.shop-finalize__breadcrumb a { color: #6b7280; text-decoration: none; }
.shop-finalize__breadcrumb a:hover { color: #c85a32; text-decoration: underline; }
.shop-finalize__breadcrumb strong { color: #6b7280; font-weight: 600; }
.shop-finalize__title { margin: 0 0 .5rem; color: #111827; font-size: clamp(1.8rem, 4vw, 2.5rem); font-weight: 700; letter-spacing: -.04em; text-transform: none; }
.shop-finalize__intro { margin: 0 0 2rem; color: #6b7280; }
.shop-finalize__layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(18rem, .6fr); gap: 2rem; align-items: start; }
.shop-finalize__form { display: grid; gap: 1.25rem; }
.shop-finalize__fieldset { margin: 0; padding: 1.25rem; border: 1px solid #e5e7eb; border-radius: 4px; background: #fff; }
.shop-finalize__fieldset legend { padding: 0 .5rem; color: #111827; font-size: 1.05rem; font-weight: 700; }
.shop-finalize__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.shop-finalize__field { display: grid; gap: .35rem; color: #374151; font-size: .8rem; font-weight: 700; }
.shop-finalize__field--wide { grid-column: 1 / -1; }
.shop-finalize__field input { width: 100%; box-sizing: border-box; min-height: 2.7rem; padding: .65rem .75rem; border: 1px solid #d1d5db; border-radius: 4px; background: #fff; color: #111827; font: inherit; font-weight: 400; }
.shop-finalize__field input:focus { border-color: #c85a32; outline: 2px solid rgba(200, 90, 50, .18); }
.shop-finalize__field select { width: 100%; box-sizing: border-box; min-height: 2.7rem; padding: .65rem 2.5rem .65rem .75rem; border: 1px solid #d1d5db; border-radius: 4px; background: #fff; color: #111827; font: inherit; font-weight: 400; }
.shop-finalize__field select:focus { border-color: #c85a32; outline: 2px solid rgba(200, 90, 50, .18); }
.shop-finalize__field--country { max-width: none; margin-bottom: .5rem; }
.shop-finalize__field--address-search { max-width: 42rem; }
.shop-finalize__field[hidden] { display: none; }
.shop-finalize__field--address-search input { min-height: 3.2rem; padding: .8rem 1rem; border-color: #cbd5e1; border-radius: 5px; font-size: 1rem; }
.shop-finalize__field-hint { color: #6b7280; font-size: .72rem; font-weight: 400; }
.shop-finalize__address-data { display: none; }
.shop-finalize__manual-toggle { display: flex; align-items: center; width: fit-content; min-height: 2.35rem; margin-left: auto; padding: .45rem .75rem; border: 1px solid #c85a32; border-radius: 4px; background: #fff8f5; color: #c85a32; font: inherit; font-size: .78rem; font-weight: 600; text-align: left; cursor: pointer; }
.shop-finalize__manual-toggle[hidden] { display: none; }
.shop-finalize__manual-toggle:hover, .shop-finalize__manual-toggle[aria-pressed="true"] { background: #c85a32; color: #fff; }
.shop-finalize__manual-address { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: .25rem; padding-top: 1.25rem; border-top: 1px solid #f0f1f3; }
.shop-finalize__manual-address[hidden] { display: none; }
.shop-finalize__manual-address .shop-finalize__field--wide { grid-column: 1 / -1; }
.shop-finalize__manual-confirm { grid-column: 1 / -1; width: fit-content; min-height: 2.6rem; padding: .6rem 1rem; border: 1px solid #c85a32; border-radius: 4px; background: #c85a32; color: #fff; font: inherit; font-size: .82rem; font-weight: 600; cursor: pointer; }
.shop-finalize__manual-confirm:hover { background: #9f3f22; border-color: #9f3f22; }
.shop-finalize__address-confirmation { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .9rem 1rem; border: 1px solid #bbdec8; border-radius: 5px; background: #f0faf3; color: #185c34; }
.shop-finalize__address-confirmation[hidden] { display: none; }
.shop-finalize__address-confirmation strong { display: block; margin-bottom: .2rem; font-size: .82rem; }
.shop-finalize__address-confirmation p { margin: 0; font-size: .82rem; font-weight: 400; }
.shop-finalize__address-confirmation button { flex: 0 0 auto; padding: .35rem 0; border: 0; background: transparent; color: #185c34; font: inherit; font-size: .75rem; text-decoration: underline; cursor: pointer; }
.shop-finalize__address-error { margin: .75rem 0 0; padding: .7rem .8rem; border-left: 3px solid #c0392b; background: #fff2f0; color: #9f2920; font-size: .8rem; }
.shop-finalize__address-error[hidden] { display: none; }
.shop-finalize__field-hint { display: block; margin-top: .25rem; }
.shop-finalize__manual-toggle { margin-top: .45rem; }
.shop-geoloc__results { position: relative; z-index: 5; display: grid; gap: .25rem; max-height: 15rem; margin-top: .35rem; overflow-y: auto; padding: .35rem; border: 1px solid #d1d5db; border-radius: 4px; background: #fff; box-shadow: 0 .5rem 1.5rem rgba(17, 24, 39, .12); }
.shop-geoloc__results[hidden] { display: none; }
.shop-geoloc__result { display: grid; gap: .15rem; width: 100%; padding: .6rem .7rem; border: 0; border-radius: 3px; background: #fff; color: #374151; font: inherit; text-align: left; cursor: pointer; }
.shop-geoloc__result:hover, .shop-geoloc__result:focus-visible { background: #fff4ef; color: #c85a32; outline: 0; }
.shop-geoloc__result strong { font-size: .82rem; font-weight: 600; }
.shop-geoloc__result small { color: #6b7280; font-size: .72rem; font-weight: 400; }
.shop-geoloc__message { padding: .6rem .7rem; color: #6b7280; font-size: .78rem; font-weight: 400; }
.shop-finalize__choice { display: flex; align-items: center; gap: .6rem; color: #374151; font-size: .9rem; }
.shop-finalize__invoice-address { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid #f0f1f3; }
.shop-finalize__invoice-address[hidden] { display: none; }
.shop-finalize__invoice-manual { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding-top: 1rem; border-top: 1px solid #f0f1f3; }
.shop-finalize__invoice-manual[hidden] { display: none; }
.shop-finalize__invoice-manual .shop-finalize__field--wide, .shop-finalize__invoice-manual .shop-finalize__manual-confirm { grid-column: 1 / -1; }
.shop-finalize__invoice-grid > .shop-finalize__manual-toggle, .shop-finalize__invoice-grid > .shop-finalize__address-confirmation, .shop-finalize__invoice-grid > .shop-finalize__address-error { grid-column: 1 / -1; }
.shop-finalize__notice { margin: 0; color: #6b7280; font-size: .85rem; }
.shop-finalize__submit { width: 100%; min-height: 3rem; margin-top: 1.25rem; padding: .75rem 1.25rem; border: 2px solid #c85a32; border-radius: 4px; background: #c85a32; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.shop-payment { min-height: 100vh; display: grid; place-items: center; padding: 2rem 1rem; background: #f4f6f8; color: #172033; }
.shop-payment__card { width: min(100%, 34rem); padding: 2.5rem; border: 1px solid #dbe2e9; border-radius: 12px; background: #fff; box-shadow: 0 1rem 3rem rgba(23, 32, 51, .08); text-align: center; }
.shop-payment__eyebrow { margin: 0 0 .75rem; color: #c85a32; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.shop-payment__card h1 { margin: 0 0 .75rem; }
.shop-payment__card p:not(.shop-payment__eyebrow) { margin: 0; color: #667085; line-height: 1.55; }
.shop-payment__card form { margin-top: 1.5rem; }
.shop-finalize__summary { padding: 1.25rem; border: 1px solid #e5e7eb; border-radius: 4px; background: #fff; }
.shop-finalize__summary-heading { display: flex; align-items: center; gap: .65rem; margin-bottom: 1rem; }
.shop-finalize__summary-logo { display: block; width: 2rem; height: 2rem; object-fit: contain; }
.shop-finalize__summary h2 { margin: 0; color: #111827; font-size: 1.15rem; }
.shop-finalize__summary ul { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.shop-finalize__summary li { display: grid; grid-template-columns: .55rem minmax(0, 1fr) auto; align-items: center; gap: .55rem; padding-bottom: .75rem; border-bottom: 1px solid #f0f1f3; color: #374151; font-size: .9rem; }
.shop-finalize__item { grid-template-columns: .55rem minmax(0, 1fr) !important; grid-template-areas: "bullet product" ". detail" ". actions"; align-items: center; }
.shop-finalize__item > .shop-finalize__bullet { grid-area: bullet; }
.shop-finalize__item > .shop-finalize__product { grid-area: product; }
.shop-finalize__item > .shop-finalize__item-detail { grid-area: detail; }
.shop-finalize__item-detail { white-space: normal !important; }
.shop-finalize__item > .shop-finalize__item-actions { grid-area: actions; justify-self: end; margin-top: .15rem; }
.shop-finalize__item-actions { display: inline-flex; align-items: center; gap: .25rem; white-space: nowrap; }
.shop-finalize__item-actions button { width: 1.5rem; height: 1.5rem; padding: 0; border: 1px solid #d7dde5; border-radius: 50%; background: #fff; color: #172033; line-height: 1; cursor: pointer; }
.shop-finalize__item-actions button:disabled { opacity: .35; cursor: not-allowed; }
.shop-finalize__item-actions strong { min-width: 1.25rem; text-align: center; }
.shop-finalize__item-actions .shop-finalize__item-remove { margin-left: .35rem; border: 0; color: #c85a32; font-size: 1.2rem; }
.shop-finalize__product { display: grid; gap: .15rem; min-width: 0; }
.shop-finalize__product strong { font-weight: 600; }
.shop-finalize__family { color: #9ca3af; font-size: .68rem; font-weight: 500; }
.shop-finalize__summary small { color: #6b7280; white-space: nowrap; }
.shop-finalize__bullet { width: .45rem; height: .45rem; border-radius: 50%; background: #c85a32; }
.shop-finalize__totals { display: grid; gap: .55rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid #e5e7eb; color: #4b5563; font-size: .85rem; }
.shop-finalize__totals > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.shop-finalize__totals strong { color: #111827; font-weight: 600; white-space: nowrap; }
.shop-finalize__totals .shop-finalize__total { margin-top: .35rem; padding-top: .75rem; border-top: 1px solid #e5e7eb; color: #111827; font-size: 1rem; font-weight: 700; }
.shop-finalize__totals .shop-finalize__total strong { color: #c85a32; font-size: 1.15rem; }
.shop-finalize__promo-total strong { color: #166534; }
.shop-finalize__promo { display: grid; gap: .4rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid #f0f1f3; }
.shop-finalize__promo label { color: #4b5563; font-size: .78rem; font-weight: 600; }
.shop-finalize__promo > div { display: flex; gap: .4rem; }
.shop-finalize__promo input { min-width: 0; flex: 1; padding: .6rem .7rem; border: 1px solid #d1d5db; border-radius: 4px; color: #111827; font: inherit; font-size: .8rem; text-transform: uppercase; }
.shop-finalize__promo button { flex: 0 0 auto; padding: .6rem .75rem; border: 1px solid #c85a32; border-radius: 4px; background: #fff8f5; color: #c85a32; font: inherit; font-size: .78rem; font-weight: 600; cursor: pointer; }
.shop-finalize__promo button:hover { background: #c85a32; color: #fff; }
.shop-finalize__promo p { margin: 0; color: #9f2920; font-size: .75rem; }
.shop-checkout-new__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .6fr); gap: 2rem; align-items: start; }
.shop-checkout-new__details { padding: 1.25rem; border: 1px solid #e5e7eb; border-radius: 4px; background: #fff; color: #374151; }
.shop-checkout-new__details h2 { margin: 0 0 .45rem; color: #111827; font-size: 1rem; }
.shop-checkout-new__details h2:not(:first-child) { margin-top: 1.5rem; }
.shop-checkout-new__details p { margin: 0; line-height: 1.55; }
.shop-checkout-new__back { display: inline-block; margin-top: 1.5rem; color: #c85a32; font-size: .82rem; text-decoration: underline; }
.shop-checkout-new__payment-note { margin: .75rem 0 0; color: #6b7280; font-size: .72rem; text-align: center; }
@media (max-width: 700px) { .shop-checkout-new__layout { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .shop-finalize__layout { grid-template-columns: 1fr; } .shop-finalize__grid, .shop-finalize__manual-address { grid-template-columns: 1fr; } .shop-finalize__field--wide, .shop-finalize__manual-address .shop-finalize__field--wide, .shop-finalize__manual-confirm { grid-column: auto; } .shop-finalize__address-confirmation { align-items: flex-start; flex-direction: column; } }

@media (max-width: 600px) { .shop-aside__panel { width: 100%; } .shop-aside-alert { right: 1.25rem; left: 1.25rem; width: auto; max-width: none; } }
@keyframes shop-aside-count-spin { 0%, 78% { transform: rotate(0deg); } 89% { transform: rotate(8deg); } 100% { transform: rotate(0deg); } }
@keyframes shop-aside-alert-error-pulse { 0%, 100% { background-color: #fef2f2; box-shadow: 0 .35rem 1rem rgba(153, 27, 27, .1); } 50% { background-color: #fee2e2; box-shadow: 0 .35rem 1.2rem rgba(153, 27, 27, .2); } }
@media (prefers-reduced-motion: reduce) { .shop-aside__count, .shop-aside-alert--error.is-visible { animation: none; } }
