/* =================== Tunnel de commande (Panier → Livraison & Paiement → Confirmation) =================== */
.co-page { --co-bg: #0c0c0f; --co-card: #121216; --co-line: rgba(255, 255, 255, .08); --co-red: #e5322d; --co-txt: #ece6d6; --co-mut: #8f8a80; position: relative; z-index: 1; padding-bottom: 0; color: var(--co-txt); }
.co-page .container { width: var(--wrap); }

/* ---- bandeau ---- */
.co-banner { position: relative; height: 72px; overflow: hidden; background: linear-gradient(90deg, #0c0c0f 0%, #2a0c0c 45%, #5a1212 70%, #0c0c0f 100%); border-bottom: 1px solid rgba(229, 50, 45, .25); }
.co-banner::before { content: ''; position: absolute; inset: 0; background: url('/static/img/ub-onepiece.webp') right 12% top 18% / 520px auto no-repeat; -webkit-mask: linear-gradient(90deg, transparent 52%, #000 78%, #000 92%, transparent); mask: linear-gradient(90deg, transparent 52%, #000 78%, #000 92%, transparent); opacity: .9; }
.co-banner::after { content: ''; position: absolute; inset: 0; background: radial-gradient(rgba(0, 0, 0, .35) 1px, transparent 1.3px) 0 0 / 4px 4px, repeating-linear-gradient(115deg, transparent 0 40px, rgba(229, 50, 45, .06) 40px 42px); }
.co-banner-in { position: relative; z-index: 1; height: 100%; display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.co-banner-tag { margin-right: clamp(120px, 12vw, 200px); font-family: var(--f-script); font-size: 15px; line-height: 1.15; text-align: right; color: #fff; transform: rotate(-4deg); text-shadow: 0 2px 8px #000; }
.co-banner-jp { position: absolute; right: 0; top: 50%; transform: translateY(-50%); writing-mode: vertical-rl; font-family: var(--f-jp); font-weight: 900; font-size: 13px; letter-spacing: .2em; color: #fff; text-shadow: 0 0 10px #000; }

/* ---- étapes ---- */
.co-steps { list-style: none; margin: 0; padding: 26px 0 22px; display: flex; align-items: center; justify-content: center; gap: 14px; border-bottom: 1px solid var(--co-line); }
.co-step { flex: none; }
.co-step, .co-step > a { display: flex; align-items: center; gap: 12px; color: var(--co-mut); }
.co-step-ico { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .28); font-size: 17px; color: #d5cfc2; transition: .3s; }
.co-step-lbl { font-size: 14.5px; font-weight: 600; white-space: nowrap; }
.co-step.is-current .co-step-ico { border-color: var(--co-red); color: var(--co-red); box-shadow: 0 0 0 5px rgba(229, 50, 45, .12), 0 0 24px rgba(229, 50, 45, .35); }
.co-step.is-current .co-step-lbl { color: var(--co-red); }
.co-step.is-done .co-step-ico { border-color: var(--co-red); color: var(--co-red); }
.co-step.is-done .co-step-lbl { color: var(--co-red); }
.co-step > a:hover .co-step-lbl { text-decoration: underline; text-underline-offset: 3px; }
.co-step-arrow { flex: 1 1 60px; max-width: 120px; display: flex; align-items: center; }
.co-step-arrow i { position: relative; flex: 1; height: 2px; background: rgba(255, 255, 255, .25); }
.co-step-arrow i::after { content: ''; position: absolute; right: -1px; top: 50%; width: 9px; height: 9px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: translateY(-50%) rotate(45deg); color: rgba(255, 255, 255, .35); }
.co-step-arrow.is-on i { background: var(--co-red); } .co-step-arrow.is-on i::after { color: var(--co-red); }

/* ---- grille ---- */
.co-grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 26px; align-items: start; padding: 26px 0 36px; }
.co-main { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.co-side { position: sticky; top: 120px; display: flex; flex-direction: column; gap: 14px; }
.co-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.co-title { margin: 0; font-family: var(--f-body, 'Rubik'), sans-serif; font-weight: 700; font-size: clamp(26px, 2.4vw, 34px); color: #fff; letter-spacing: -.01em; }
.co-sub { margin: 4px 0 0; color: var(--co-mut); font-size: 14px; }
.co-back { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; color: #d5cfc2; white-space: nowrap; }
.co-back:hover { color: var(--co-red); }
.co-card { background: var(--co-card); border: 1px solid var(--co-line); border-radius: 12px; }

/* ---- boutons ---- */
.co-btn-red.co-btn-red, .co-btn-ghost { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 20px; border-radius: 8px; background: var(--co-red); color: #fff; font-weight: 700; font-size: 14px; border: 0; transition: filter .2s, transform .15s; cursor: pointer; white-space: nowrap; }
.co-btn-red.co-btn-red:hover { filter: brightness(1.1); }
.co-btn-red.co-btn-red:active { transform: translateY(1px); }
.co-btn-red:disabled, .co-btn-red.disabled { opacity: .45; pointer-events: none; }
.co-btn-ghost { background: transparent; border: 1px solid var(--co-line); color: #ece6d6; }
.co-btn-ghost:hover { border-color: var(--co-red); color: var(--co-red); }
.co-btn-lg.co-btn-lg { width: 100%; padding: 16px 20px; font-size: 15.5px; box-shadow: 0 14px 30px -12px rgba(229, 50, 45, .7); }
.co-btn-sm.co-btn-sm { padding: 9px 14px; font-size: 12.5px; border-radius: 7px; }

/* ---- livraison offerte ---- */
.co-free { padding: 12px 16px; border: 1px dashed rgba(229, 50, 45, .35); border-radius: 10px; background: rgba(229, 50, 45, .05); font-size: 13.5px; color: #d5cfc2; }
.co-free strong { color: #fff; }
.co-free .bar { height: 5px; margin-top: 9px; border-radius: 9px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.co-free .bar i { display: block; height: 100%; background: linear-gradient(90deg, #ff7a52, var(--co-red)); border-radius: 9px; transition: width .4s; }
.co-free:empty { display: none; }

/* ---- lignes panier ---- */
.co-lines { display: flex; flex-direction: column; border: 1px solid var(--co-line); border-radius: 12px; background: var(--co-card); overflow: hidden; }
.co-line { display: grid; grid-template-columns: 96px minmax(0, 1fr) 110px 130px 110px 40px; align-items: center; gap: 18px; padding: 16px 18px; border-top: 1px solid var(--co-line); animation: coIn .35s ease both; }
.co-line:first-child { border-top: 0; }
@keyframes coIn { from { opacity: 0; transform: translateY(6px); } }
.co-line-img { width: 96px; height: 96px; border-radius: 8px; overflow: hidden; background: #1b1b20; }
.co-line-img img { width: 100%; height: 100%; object-fit: cover; }
.co-line-info h3 { margin: 0 0 4px; font-size: 15px; font-weight: 600; line-height: 1.35; }
.co-line-info h3 a { color: #fff; } .co-line-info h3 a:hover { color: var(--co-red); }
.co-line-cat { display: block; font-size: 12.5px; color: var(--co-mut); margin-bottom: 8px; }
.co-stock { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: #3ccf6e; }
.co-stock i { font-size: 7px; }
.co-stock.low { color: #f2a33a; }
.co-line-price, .co-line-total { font-size: 15px; font-weight: 600; color: #fff; text-align: right; white-space: nowrap; }
.co-line-total { font-weight: 700; }
.co-qty { display: inline-flex; align-items: center; justify-self: center; height: 40px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 8px; overflow: hidden; }
.co-qty button { width: 36px; height: 100%; display: grid; place-items: center; color: #ece6d6; font-size: 16px; transition: background .2s; }
.co-qty button:hover { background: rgba(255, 255, 255, .07); }
.co-qty button:disabled { opacity: .3; pointer-events: none; }
.co-qty span { min-width: 34px; text-align: center; font-weight: 600; }
.co-rm { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 8px; color: #b9b2a5; font-size: 16px; transition: .2s; }
.co-rm:hover { color: var(--co-red); background: rgba(229, 50, 45, .1); }
.co-empty { padding: 50px 20px; text-align: center; }
.co-empty i { font-size: 42px; color: var(--co-red); }
.co-empty h3 { margin: 14px 0 6px; font-size: 20px; color: #fff; }
.co-empty p { margin: 0 0 18px; color: var(--co-mut); }

/* ---- code promo ---- */
.co-promo { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: 16px 12px; padding: 18px 20px; background: var(--co-card); border: 1px solid var(--co-line); border-radius: 12px; }
.co-promo-ico { font-size: 26px; color: #d5cfc2; transform: rotate(-20deg); }
.co-promo-txt b { display: block; font-size: 15px; color: #fff; }
.co-promo-txt span { font-size: 12.5px; color: var(--co-mut); }
.co-promo input, .co-f input, .co-f select, .co-f textarea { width: 100%; height: 46px; padding: 0 14px; background: #0b0b0e; border: 1px solid rgba(255, 255, 255, .12); border-radius: 8px; color: #fff; font: inherit; font-size: 14px; outline: 0; transition: border-color .2s, box-shadow .2s; }
.co-promo input { margin-left: 20px; width: auto; min-width: 0; }
.co-promo > input { justify-self: stretch; }
.co-promo input:focus, .co-f input:focus, .co-f select:focus, .co-f textarea:focus { border-color: var(--co-red); box-shadow: 0 0 0 3px rgba(229, 50, 45, .15); }
.co-promo input::placeholder, .co-f ::placeholder { color: #6a655d; }
.co-promo-msg { grid-column: 1 / -1; margin: 0; font-size: 13px; font-weight: 600; color: #3ccf6e; }
.co-promo-msg.is-err { color: #ff6b66; }
.co-promo.is-applied input { border-color: #3ccf6e; }

/* ---- résumé ---- */
.co-summary { padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.co-summary h2 { margin: 0 0 4px; font-size: 18px; font-weight: 700; color: #fff; }
.co-summary-h { display: flex; align-items: center; justify-content: space-between; }
.co-edit { font-size: 13px; color: #d5cfc2; display: inline-flex; gap: 6px; align-items: center; }
.co-edit:hover { color: var(--co-red); }
.co-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-size: 14px; color: #d5cfc2; }
.co-row strong { color: #fff; font-size: 15px; white-space: nowrap; }
.co-row small { display: block; font-size: 12px; color: var(--co-mut); }
.co-row.muted span:last-child { color: var(--co-mut); font-size: 13px; }
.co-row-disc strong, .co-row-disc em { color: #3ccf6e; font-style: normal; }
.co-row-disc em { font-size: 12px; font-weight: 700; padding: 1px 6px; border-radius: 4px; background: rgba(60, 207, 110, .12); margin-left: 4px; }
.co-total { display: flex; align-items: flex-start; justify-content: space-between; padding: 16px 0 6px; margin-top: 4px; border-top: 1px solid var(--co-line); }
.co-total > span { font-size: 20px; font-weight: 700; color: #fff; }
.co-total div { text-align: right; }
.co-total strong { display: block; font-family: var(--f-impact); font-weight: 400; font-size: 34px; line-height: 1; color: var(--co-red); letter-spacing: .01em; }
.co-total small { font-size: 12px; color: var(--co-mut); }
.co-reassure { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.co-reassure li { display: flex; align-items: center; gap: 14px; }
.co-reassure li > i { flex: none; width: 30px; font-size: 21px; color: #d5cfc2; text-align: center; }
.co-reassure b { display: block; font-size: 13.5px; color: #fff; }
.co-reassure span { font-size: 12px; color: var(--co-mut); }

/* ---- recommandations ---- */
.co-recos { padding: 6px 0 26px; }
.co-recos-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.co-recos-head h2 { margin: 0; font-size: 20px; font-weight: 700; color: #fff; }
.co-recos-head a { font-size: 13px; color: var(--co-red); font-weight: 600; }
.co-recos-row { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 14px) / 4); gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.co-recos-row::-webkit-scrollbar { display: none; }
.co-reco { position: relative; scroll-snap-align: start; display: flex; flex-direction: column; gap: 8px; padding: 14px; background: var(--co-card); border: 1px solid var(--co-line); border-radius: 12px; transition: border-color .25s, transform .25s; }
.co-reco:hover { border-color: rgba(229, 50, 45, .45); transform: translateY(-3px); }
.co-reco.is-hidden { display: none; }
.co-reco-wish.co-reco-wish { position: absolute; z-index: 1; top: 12px; right: 12px; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: rgba(0, 0, 0, .45); color: #fff; }
.co-reco-wish.is-on { color: var(--co-red); } .co-reco-wish.is-on i::before { content: '\f004'; font-weight: 900; }
.co-reco-img { display: block; aspect-ratio: 4 / 3; border-radius: 8px; overflow: hidden; background: #1b1b20; }
.co-reco-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.co-reco:hover .co-reco-img img { transform: scale(1.05); }
.co-reco-name { font-size: 13.5px; font-weight: 600; color: #fff; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.7em; }
.co-reco-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; }
.co-reco-foot strong { font-size: 15px; color: #fff; white-space: nowrap; }

/* ---- bannière Itachi ---- */
.co-promo-banner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 30px; min-height: 190px; margin: 6px 0 34px; padding: 26px clamp(24px, 4vw, 60px) 26px 40%; border-radius: 14px; overflow: hidden; background: #2a0606 url('/static/img/co-itachi.webp') left center / cover no-repeat; border: 1px solid rgba(229, 50, 45, .3); color: #fff; }
.co-promo-banner::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 25%, rgba(30, 4, 4, .55) 45%, rgba(20, 3, 3, .3) 100%); }
.co-promo-banner > * { position: relative; }
.co-pb-kicker { font-size: 11px; font-weight: 800; letter-spacing: .24em; text-transform: uppercase; color: #ff7a72; }
.co-promo-banner h3 { margin: 4px 0 6px; font-family: var(--f-impact); font-weight: 400; font-size: clamp(38px, 4vw, 60px); line-height: .95; text-transform: uppercase; font-style: italic; }
.co-promo-banner h3 em { color: var(--co-red); text-shadow: 0 0 24px rgba(229, 50, 45, .6); }
.co-promo-banner p { margin: 0 0 14px; font-size: 14px; color: #f0d9d6; }
.co-pb-quote { max-width: 260px; margin: 0; font-family: var(--f-script); font-size: 22px; line-height: 1.25; color: #f6e7e4; text-align: center; transform: rotate(-4deg); }
.co-pb-jp { writing-mode: vertical-rl; font-family: var(--f-jp); font-weight: 900; font-size: 22px; letter-spacing: .12em; color: #fff; text-shadow: 0 0 14px rgba(0, 0, 0, .8); }
.co-promo-banner:hover .co-btn-red { filter: brightness(1.12); }

/* ---- trust bar ---- */
.co-trust { border-top: 1px solid var(--co-line); border-bottom: 1px solid var(--co-line); background: #0f0f12; }
.co-trust-in { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; padding: 20px 0; }
.co-trust-in > div { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: center; }
.co-trust-in i { grid-row: span 2; font-size: 24px; color: #d5cfc2; }
.co-trust-in b { font-size: 13px; color: #fff; }
.co-trust-in span { font-size: 12px; color: var(--co-mut); }

/* ================= Étape 2 ================= */
.co-block { margin: 0; padding: 20px 22px 22px; min-width: 0; min-inline-size: 0; }
.co-grid > * { min-width: 0; }
.co-tel input { min-width: 0; }
.co-block-h { float: left; width: 100%; display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; padding: 0; margin: 0 0 18px; font-size: 18px; font-weight: 700; color: #fff; }
.co-block-h small { flex-basis: 100%; padding-left: 44px; margin-top: -2px; font-size: 13px; font-weight: 400; color: var(--co-mut); }
.co-block > :not(legend) { clear: both; }
.co-num { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--co-red); color: #fff; font-size: 15px; font-weight: 700; }
.co-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.co-f { display: flex; flex-direction: column; gap: 7px; font-size: 13.5px; font-weight: 600; color: #e9e3d6; min-width: 0; }
.co-f-l { display: block; }
.co-f i { font-style: normal; color: var(--co-red); }
.co-f small { font-weight: 400; color: var(--co-mut); }
.co-f.wide { grid-column: 1 / -1; }
.co-f textarea { height: auto; min-height: 64px; padding: 12px 14px; resize: vertical; }
.co-f select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #aaa 50%), linear-gradient(135deg, #aaa 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 36px; }
.co-f .invalid, .co-f.invalid input { border-color: #ff4d47 !important; box-shadow: 0 0 0 3px rgba(255, 77, 71, .15); }
.co-tel { display: flex; gap: 8px; }
.co-tel-cc { flex: none; display: flex; align-items: center; padding: 0 12px; height: 46px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 8px; background: #0b0b0e; font-weight: 600; font-size: 13.5px; }
.co-f[hidden] { display: none; }

.co-opts { display: grid; gap: 12px; }
.co-opts-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.co-opt { position: relative; cursor: pointer; min-width: 0; }
.co-opt input { position: absolute; opacity: 0; pointer-events: none; }
.co-opt-box { position: relative; display: flex; flex-direction: column; gap: 3px; height: 100%; padding: 16px 14px 14px 16px; border: 1.5px solid rgba(255, 255, 255, .12); border-radius: 10px; background: #0f0f12; transition: border-color .2s, background .2s, transform .2s; }
.co-opt-box::before { content: ''; position: absolute; top: 14px; right: 14px; width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .35); transition: .2s; }
.co-opt:hover .co-opt-box { border-color: rgba(255, 255, 255, .28); }
.co-opt input:checked + .co-opt-box { border-color: var(--co-red); background: linear-gradient(180deg, rgba(229, 50, 45, .12), rgba(229, 50, 45, .03)); box-shadow: 0 0 0 3px rgba(229, 50, 45, .12); }
.co-opt input:checked + .co-opt-box::before { border-color: var(--co-red); background: radial-gradient(circle, var(--co-red) 45%, transparent 50%); }
.co-opt input:focus-visible + .co-opt-box { outline: 2px solid var(--co-red); outline-offset: 2px; }
.co-opt input:disabled + .co-opt-box { opacity: .4; cursor: not-allowed; }
.co-opt-ico { font-size: 24px; color: #e9e3d6; margin-bottom: 8px; }
.co-opt input:checked + .co-opt-box .co-opt-ico { color: var(--co-red); }
.co-opt-box b { font-size: 14px; color: #fff; padding-right: 22px; }
.co-opt-box small { font-size: 12px; line-height: 1.4; color: var(--co-mut); }
.co-opt-price { margin-top: auto; padding-top: 10px; font-size: 18px; color: #fff; }
.co-opt-tag { position: absolute; top: -10px; right: 36px; padding: 3px 8px; border-radius: 4px; background: var(--co-red); color: #fff; font-style: normal; font-size: 10.5px; font-weight: 700; letter-spacing: .02em; }
.co-hint { margin: 12px 0 0; font-size: 12.5px; color: #f2a33a; }

/* logos paiement */
.pl { display: inline-flex; align-items: center; gap: 6px; height: 34px; margin-bottom: 10px; }
.pl-cib b { display: grid; place-items: center; height: 30px; padding: 0 10px; border-radius: 5px; background: linear-gradient(135deg, #1f6fd1, #0b3f8a); color: #fff; font-size: 14px; font-weight: 900; letter-spacing: .06em; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .2); }
.pl-ccp { color: #ffcf2e; font-size: 20px; } .pl-ccp b { font-size: 18px; font-weight: 900; color: #ffcf2e; letter-spacing: .04em; }
.pl-bm { color: #2c7be5; font-size: 22px; } .pl-bm b { font-size: 16px; font-weight: 800; color: #fff; } .pl-bm em { color: #ffcf2e; font-style: normal; }
.pl-cash { color: #3ccf6e; font-size: 28px; }
.co-cards { display: flex; gap: 8px; margin-top: 8px; font-size: 26px; color: #fff; }
.co-cards .fa-cc-mastercard { color: #f79e1b; }
.co-pay-info { margin-top: 14px; padding: 12px 14px; border-radius: 8px; background: rgba(255, 255, 255, .03); border-left: 3px solid var(--co-red); font-size: 13px; color: #d5cfc2; }
.co-pay-info:empty { display: none; }
.co-reassure-row { flex-direction: row; justify-content: space-between; gap: 18px; padding: 14px 4px 4px; }

.co-mini { display: flex; flex-direction: column; gap: 12px; max-height: 300px; overflow-y: auto; padding-bottom: 12px; border-bottom: 1px solid var(--co-line); }
.co-mini-item { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; font-size: 13px; }
.co-mini-item img { width: 56px; height: 56px; border-radius: 6px; object-fit: cover; }
.co-mini-n { font-weight: 600; color: #fff; line-height: 1.35; }
.co-mini-q { color: var(--co-mut); }
.co-mini-item strong { color: #fff; white-space: nowrap; }
.co-done .co-mini-item { grid-template-columns: auto minmax(0, 1fr) auto; }
.co-promo-mini { display: flex; flex-direction: column; gap: 8px; padding: 14px; grid-template-columns: none; background: #0f0f12; }
.co-promo-mini > b { font-size: 13.5px; color: #fff; display: flex; gap: 8px; align-items: center; }
.co-promo-in { display: flex; gap: 8px; }
.co-promo-mini input { margin: 0; height: 42px; }
.co-err { margin: 0; padding: 10px 12px; border-radius: 8px; background: rgba(255, 77, 71, .1); color: #ff8a86; font-size: 13px; }
.co-legal { margin: 0; font-size: 11.5px; line-height: 1.5; color: var(--co-mut); }
.co-legal a { color: #d5cfc2; text-decoration: underline; }
.co-help { padding: 18px 20px; }
.co-help-h { display: flex; gap: 14px; align-items: center; margin-bottom: 14px; }
.co-help-h > i { font-size: 26px; color: #d5cfc2; }
.co-help-h b { display: block; font-size: 15px; color: #fff; }
.co-help-h span { font-size: 12.5px; color: var(--co-mut); }
.co-help-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.co-help-row a { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 4px; border-radius: 8px; font-size: 12px; color: #e9e3d6; text-align: center; transition: background .2s; }
.co-help-row a i { font-size: 20px; }
.co-help-row a:hover { background: rgba(255, 255, 255, .05); color: var(--co-red); }
.co-help-row .fa-whatsapp { color: #3ccf6e; }
.co-mini-trust { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 16px 18px; }
.co-mini-trust > div { display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; }
.co-mini-trust i { grid-row: span 2; font-size: 22px; color: #d5cfc2; }
.co-mini-trust b { font-size: 13px; color: #fff; } .co-mini-trust span { font-size: 11.5px; color: var(--co-mut); }

/* ================= Étape 3 ================= */
.co-done { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 26px; align-items: start; padding: 30px 0 44px; }
.co-done-hero { padding: clamp(26px, 4vw, 46px); text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.co-done-ico { display: grid; place-items: center; width: 84px; height: 84px; border-radius: 50%; background: var(--co-red); color: #fff; font-size: 36px; box-shadow: 0 0 0 10px rgba(229, 50, 45, .14), 0 0 50px rgba(229, 50, 45, .5); animation: coPop .6s cubic-bezier(.2, 1.4, .4, 1) both; }
@keyframes coPop { from { transform: scale(.3); opacity: 0; } }
.co-done-jp { font-family: var(--f-jp); color: var(--co-red); letter-spacing: .3em; font-size: 14px; margin-top: 8px; }
.co-done-hero > p { max-width: 560px; margin: 0; color: #d5cfc2; line-height: 1.7; }
.co-ref { color: var(--co-red); font-size: 1.1em; letter-spacing: .04em; }
.co-pay-note { max-width: 560px; margin: 4px 0 0 !important; padding: 12px 14px; border-radius: 8px; background: rgba(255, 255, 255, .04); font-size: 13.5px; text-align: left; }
.co-pay-note i { color: var(--co-red); margin-right: 6px; }
.co-next { list-style: none; margin: 18px 0 8px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; width: 100%; max-width: 620px; }
.co-next li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 12.5px; color: var(--co-mut); }
.co-next li i { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .2); font-size: 15px; background: var(--co-card); position: relative; z-index: 1; }
.co-next li + li::before { content: ''; position: absolute; top: 21px; right: 50%; width: 100%; height: 2px; background: rgba(255, 255, 255, .12); }
.co-next li.is-done { color: #fff; } .co-next li.is-done i { border-color: var(--co-red); background: var(--co-red); color: #fff; }
.co-done-cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 10px; }
.co-addr { display: flex; gap: 12px; padding: 14px; border-radius: 8px; background: #0f0f12; font-size: 13px; color: #d5cfc2; }
.co-addr i { color: var(--co-red); margin-top: 3px; }
.co-addr b { display: block; color: #fff; }

/* ================= Responsive ================= */
@media (max-width: 1280px) {
  .co-line { grid-template-columns: 84px minmax(0, 1fr) auto auto 36px; }
  .co-line-img { width: 84px; height: 84px; }
  .co-line-price { display: none; }
  .co-opts-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .co-grid, .co-done { grid-template-columns: 1fr; }
  .co-side { position: static; }
  .co-recos-row { grid-auto-columns: calc((100% - 2 * 14px) / 3); }
  .co-trust-in { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .co-banner { height: 56px; }
  .co-banner-tag { display: none; }
  .co-steps { gap: 6px; padding: 18px 0; }
  .co-step-ico { width: 38px; height: 38px; font-size: 14px; }
  .co-step-lbl { display: none; }
  .co-step.is-current .co-step-lbl { display: block; font-size: 13px; }
  .co-step-arrow { flex-basis: 24px; }
  .co-head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .co-line { grid-template-columns: 72px minmax(0, 1fr) 32px; grid-template-areas: 'img info rm' 'img qty total'; gap: 8px 12px; padding: 14px; }
  .co-line-img { grid-area: img; width: 72px; height: 72px; align-self: start; }
  .co-line-info { grid-area: info; } .co-qty { grid-area: qty; justify-self: start; height: 36px; } .co-line-total { grid-area: total; grid-column: 3 / 3; justify-self: end; grid-column-start: 2; grid-row: 2; text-align: right; } .co-rm { grid-area: rm; align-self: start; }
  .co-promo { grid-template-columns: auto 1fr; }
  .co-promo input { grid-column: 1 / -1; margin: 0; }
  .co-promo > .co-btn-red { grid-column: 1 / -1; }
  .co-fields { grid-template-columns: minmax(0, 1fr); }
  .co-block { padding: 18px 16px; }
  .co-opts-4 { grid-template-columns: 1fr 1fr; gap: 10px; }
  .co-opt-box { padding: 14px 12px 12px; }
  .co-reassure-row { flex-direction: column; }
  .co-recos-row { grid-auto-columns: 62%; }
  .co-promo-banner { padding: 150px 22px 22px; background-size: auto 100%; background-position: 20% top; flex-direction: column; align-items: flex-start; min-height: 0; }
  .co-promo-banner::before { background: linear-gradient(180deg, transparent 20%, rgba(20, 3, 3, .92) 55%); }
  .co-pb-quote, .co-pb-jp { display: none; }
  .co-trust-in { grid-template-columns: 1fr 1fr; }
  .co-next { grid-template-columns: repeat(2, 1fr); row-gap: 18px; }
  .co-next li:nth-child(3)::before { display: none; }
  .co-total strong { font-size: 30px; }
}
@media (max-width: 420px) { .co-opts-4 { grid-template-columns: 1fr; } }

/* mode clair */
html[data-theme="light"] .co-page { --co-card: #fffaf3; --co-line: rgba(92, 58, 40, .14); --co-txt: #2b1d17; --co-mut: #8a7466; color: var(--co-txt); }
html[data-theme="light"] .co-page :is(.co-title, .co-summary h2, .co-row strong, .co-total > span, .co-line-info h3 a, .co-line-price, .co-line-total, .co-promo-txt b, .co-reassure b, .co-recos-head h2, .co-reco-name, .co-reco-foot strong, .co-trust-in b, .co-block-h, .co-opt-box b, .co-opt-price, .co-mini-n, .co-mini-item strong, .co-help-h b, .co-mini-trust b, .co-addr b, .co-free strong, .co-empty h3) { color: #2b1d17; }
html[data-theme="light"] .co-page :is(.co-promo input, .co-f input, .co-f select, .co-f textarea, .co-tel-cc) { background: #fff; color: #2b1d17; border-color: rgba(92, 58, 40, .2); }
html[data-theme="light"] .co-page :is(.co-opt-box, .co-trust, .co-promo-mini, .co-addr) { background: #f6eee3; }
html[data-theme="light"] .co-page :is(.co-step-ico, .co-qty button, .co-f, .co-reassure li > i, .co-trust-in i, .co-help-row a, .co-opt-ico, .co-row, .co-back, .co-edit) { color: #5a4336; }
