/* ============================================================
   Store Engine — gabarit « Ticket » (v4.7) — moderne, app
   On compose sa commande à gauche, le ticket de caisse se remplit à droite.
   Couleurs, polices et rayons : tokens de la charte (--wcse-*).
   ============================================================ */
.dcp--ticket{background:var(--wcse-bg);--dct-paper:#fff;--dct-r:var(--wcse-radius,14px);--dct-rl:var(--wcse-radius-lg,22px);--dct-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}
.dcp--ticket em,.dcp--ticket i,.dcp--ticket cite{font-style:normal}
.dct-wrap{max-width:1240px;margin:0 auto;padding:0 28px}
.dct-h2{font-family:var(--wcse-font-heading);font-size:clamp(24px,2.6vw,34px);font-weight:800;line-height:1.1;letter-spacing:-.025em;margin:0;color:var(--wcse-text)}
.dct-lead{font-size:16px;line-height:1.6;color:var(--wcse-secondary);margin:12px 0 0}
.dct-sec{padding:72px 0}
.dct-sec-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}

/* boutons du gabarit : blindés contre les styles de bouton du thème */
body .dcp--ticket button.dct-arrow,body .dcp--ticket button.dct-tk-btn,body .dcp--ticket button.dct-mbar-btn{appearance:none;-webkit-appearance:none;background-image:none!important;box-shadow:none!important;text-transform:none!important;letter-spacing:0!important;margin:0!important;min-height:0!important;font-family:inherit!important;cursor:pointer;text-decoration:none!important;line-height:1.2!important}
.dct-tk-btn-in{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:100%}

/* ---------- Haut : fil d'Ariane et pastilles ---------- */
.dct-top{padding:22px 0 64px}
.dct-crumbs{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;margin-bottom:22px}
.dct-bc{font-size:13px;color:var(--wcse-secondary)}
.dct-bc a{color:inherit;text-decoration:none}
.dct-bc a:hover{color:var(--wcse-text)}
.dct-bc span{margin:0 7px;opacity:.5}
.dct-bc b{font-weight:600;color:var(--wcse-text)}
.dct-chips{display:flex;flex-wrap:wrap;gap:8px}
.dct-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--wcse-radius-pill,100px);background:var(--dct-paper);border:1px solid var(--tpl-line);font-size:12.5px;font-weight:700;color:var(--wcse-text)}
.dct-chip svg{width:13px;height:13px;fill:currentColor;stroke:none}
.dct-chip-rt{background:var(--wcse-text);border-color:var(--wcse-text);color:var(--dct-paper)}

.dct-grid{display:grid;grid-template-columns:minmax(0,1fr) 384px;gap:36px;align-items:start}
.dct-main{min-width:0;display:flex;flex-direction:column;gap:22px}

/* ---------- Galerie + présentation ---------- */
.dct-head{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:30px;align-items:start}
.dct-gal-main{position:relative;aspect-ratio:1/1;background:var(--dct-paper);border-radius:var(--dct-rl);padding:28px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.dct-gal-main img{width:100%;height:100%;object-fit:contain;display:block}
.dct-gal-thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
body .dcp--ticket button.dcp-gal-th{width:58px!important;height:58px!important}
.dct-intro{padding-top:6px}
.dct-h1{font-family:var(--wcse-font-heading);font-size:clamp(30px,3.4vw,46px);font-weight:800;line-height:1.02;letter-spacing:-.035em;margin:0;color:var(--wcse-text)}
.dct-accent{font-size:18px;font-weight:500;color:var(--wcse-secondary);margin:10px 0 0}
.dct-points{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--tpl-line)}
.dct-points li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--tpl-line);font-size:15px;line-height:1.45;color:var(--wcse-text)}
.dct-points svg{width:18px;height:18px;flex:none;margin-top:1px;padding:3px;border-radius:50%;background:var(--wcse-primary);color:#fff;stroke-width:3}

/* ---------- Composition de la commande ---------- */
.dct-builder{background:var(--dct-paper);border-radius:var(--dct-rl);padding:24px 26px 26px;border:1px solid var(--tpl-line)}
.dct-builder.is-need{animation:dctNeed .6s}
@keyframes dctNeed{0%,100%{box-shadow:0 0 0 0 transparent}30%{box-shadow:0 0 0 4px color-mix(in srgb,var(--wcse-accent) 45%,transparent)}}
.dct-builder-hd{display:flex;gap:14px;align-items:flex-start;margin-bottom:6px}
.dct-builder-hd div > b{display:block;font-family:var(--wcse-font-heading);font-size:20px;font-weight:800;letter-spacing:-.015em;line-height:1.2;color:var(--wcse-text)}
.dct-builder-hd div > span{display:block;font-size:14px;color:var(--wcse-secondary);margin-top:3px}
.dct-num{flex:none;width:32px;height:32px;border-radius:50%;background:var(--wcse-primary);color:#fff;font-weight:800;font-size:15px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--wcse-font-heading)}
.dct-srcprice{display:none!important}
.dct-builder .wcse-var-title{display:none!important}
.dct-builder .dcp-info-cta-row form.cart.variations_form{gap:0}

/* tuiles de conditionnement */
.dcp--ticket .dct-builder .wcse-var-cards{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;margin-top:18px}
body .dcp--ticket .dct-builder button.wcse-var-card{position:relative;display:grid!important;grid-template-columns:minmax(0,1fr);align-content:start;gap:4px!important;min-height:112px!important;padding:16px 18px 16px!important;border:1.5px solid var(--tpl-line)!important;border-radius:var(--dct-r)!important;background:var(--wcse-bg)!important;text-align:left;transition:border-color .15s,background .15s,transform .15s,box-shadow .15s!important}
body .dcp--ticket .dct-builder button.wcse-var-card:hover{transform:translateY(-2px);border-color:var(--wcse-text)!important;background:var(--dct-paper)!important;box-shadow:0 10px 24px rgba(0,0,0,.06)!important}
body .dcp--ticket .dct-builder button.wcse-var-card.active{border-color:var(--wcse-primary)!important;background:var(--dct-paper)!important;box-shadow:inset 0 0 0 1.5px var(--wcse-primary),0 12px 28px color-mix(in srgb,var(--wcse-primary) 16%,transparent)!important;transform:none}
body .dcp--ticket .dct-builder button.wcse-var-card.active::after{content:""!important;position:absolute;top:14px;right:14px;width:22px;height:22px;border-radius:50%;background:var(--wcse-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center/12px;animation:dctPop .3s cubic-bezier(.3,1.6,.5,1)}
@keyframes dctPop{from{transform:scale(.2)}to{transform:scale(1)}}
.dcp--ticket .dct-builder .wcse-var-card-label{font-size:15.5px!important;font-weight:700;line-height:1.3;color:var(--wcse-text);padding-right:30px}
.dcp--ticket .dct-builder .wcse-var-card-price{margin-top:auto;padding-top:8px;font-family:var(--wcse-font-heading)!important;font-size:22px!important;font-weight:800!important;letter-spacing:-.02em;color:var(--wcse-text)!important;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.dcp--ticket .dct-builder .wcse-var-card-price del{font-size:13px!important;font-weight:500!important;opacity:.55;order:2}
.dcp--ticket .dct-builder .wcse-var-card-price ins{text-decoration:none;order:1}
.dct-per{font-size:12.5px;font-weight:600;color:var(--wcse-secondary)}
.dct-best-tag{position:absolute;top:-10px;left:14px;height:21px;padding:0 9px;border-radius:var(--wcse-radius-pill,100px);background:var(--wcse-accent);color:#fff;font-size:11px;font-weight:800;letter-spacing:.02em;display:inline-flex;align-items:center;white-space:nowrap}
body .dcp--ticket .dct-builder button.wcse-var-card.dct-best{border-color:color-mix(in srgb,var(--wcse-accent) 60%,var(--tpl-line))!important}
body .dcp--ticket .dct-builder button.wcse-var-card.is-reco::before{content:none!important}

/* étape 2 : quantité (le vrai bouton du formulaire est masqué, le ticket le déclenche) */
.dcp--ticket .dct-builder .woocommerce-variation-add-to-cart,.dcp--ticket .dct-builder form.cart:not(.variations_form){display:flex!important;flex-wrap:wrap;align-items:center;gap:12px;padding-top:22px!important}
.dcp--ticket .dct-builder .quantity{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between;gap:14px!important;width:100%!important;padding:16px 0 0!important;border-top:1px dashed var(--tpl-line-strong)!important}
.dcp--ticket .dct-builder .wcse-qty-label{display:flex!important;align-items:center;gap:14px;flex-direction:row!important}
.dcp--ticket .dct-builder .wcse-qty-label::before{content:"2";flex:none;width:32px;height:32px;border-radius:50%;background:var(--wcse-primary);color:#fff;font-weight:800;font-size:15px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--wcse-font-heading)}
.dcp--ticket .dct-builder .wcse-qty-label-text{font-family:var(--wcse-font-heading);font-size:20px!important;font-weight:800!important;letter-spacing:-.015em!important;text-transform:none!important;color:var(--wcse-text)!important}
.dcp--ticket .dct-builder.is-simple .wcse-qty-label{display:none!important}
.dcp--ticket .dct-builder.is-simple .quantity{border-top:0!important;padding-top:4px!important;justify-content:flex-start}
.dcp--ticket .dct-builder .wcse-qty-stepper{height:50px!important;border-radius:var(--wcse-radius-pill,100px)!important;overflow:hidden}
body .dcp--ticket .dct-builder button.single_add_to_cart_button{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;border:0!important;opacity:0!important;flex:none!important}
body .dcp--ticket .dct-builder .wcse-optimize-notice{order:-1;width:100%;margin:0!important;display:block!important;padding:14px 16px!important;border-radius:var(--dct-r)!important;border:1.5px dashed color-mix(in srgb,var(--wcse-accent) 60%,transparent)!important;background:color-mix(in srgb,var(--wcse-accent) 8%,var(--dct-paper))!important}
.dcp--ticket .dct-builder .wcse-optimize-notice-body{font-size:14px;line-height:1.5;gap:2px}
.dcp--ticket .dct-builder .wcse-optimize-notice-body span{display:block}
body .dcp--ticket .dct-builder .wcse-optimize-notice-btn{margin-top:10px!important;padding:8px 14px!important;font-size:13.5px!important;border-radius:var(--wcse-radius-pill,100px)!important;background:var(--wcse-text)!important;color:#fff!important;border:0!important}

/* ---------- Le ticket ---------- */
.dct-side{position:sticky;top:24px;min-width:0}
.dct-ticket{position:relative;background:var(--dct-paper);border-radius:var(--dct-rl) var(--dct-rl) 0 0;padding:22px 22px 14px;margin-bottom:12px;filter:drop-shadow(0 22px 34px rgba(0,0,0,.09));font-size:14px;color:var(--wcse-text)}
.dct-ticket::after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:12px;background:linear-gradient(135deg,var(--dct-paper) 6px,transparent 0) 0 0/12px 12px repeat-x,linear-gradient(-135deg,var(--dct-paper) 6px,transparent 0) 0 0/12px 12px repeat-x}
.dct-tk-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:14px;border-bottom:1.5px solid var(--wcse-text)}
.dct-tk-hd b{display:block;font-family:var(--wcse-font-heading);font-size:18px;font-weight:800;letter-spacing:-.01em}
.dct-tk-hd div span{display:block;font-family:var(--dct-mono);font-size:11.5px;color:var(--wcse-secondary);margin-top:2px}
.dct-tk-no{font-family:var(--dct-mono);font-size:11px;font-weight:600;letter-spacing:.04em;padding:4px 8px;border:1px dashed var(--tpl-line-strong);border-radius:6px;color:var(--wcse-secondary);white-space:nowrap}
.dct-tk-prod{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;align-items:center;padding:14px 0}
.dct-tk-im{width:54px;height:54px;border-radius:10px;background:var(--wcse-bg);padding:5px;display:block}
.dct-tk-im img{width:100%;height:100%;object-fit:contain;display:block}
.dct-tk-prod b{display:block;font-size:14.5px;font-weight:700;line-height:1.3}
.dct-tk-prod span{display:block;font-size:13px;color:var(--wcse-secondary);margin-top:2px;line-height:1.35}
.dct-tk-lines{margin:0;display:grid;gap:9px;padding:4px 0 6px}
.dct-tk-lines div,.dct-leaders div{display:flex;align-items:baseline;gap:8px}
.dct-tk-lines dt,.dct-leaders dt{display:flex;flex:1 1 auto;align-items:baseline;gap:8px;margin:0;color:var(--wcse-secondary);min-width:0}
.dct-tk-lines dt::after,.dct-leaders dt::after{content:"";flex:1;min-width:16px;border-bottom:1.5px dotted var(--tpl-line-strong);transform:translateY(-4px)}
.dct-tk-lines dd,.dct-leaders dd{margin:0;font-weight:700;text-align:right;color:var(--wcse-text)}
.dct-tk-lines dd.dct-ok{color:var(--wcse-primary)}
.dct-tk-cut{position:relative;height:26px;margin:6px -22px;overflow:hidden}
.dct-tk-cut::before{content:"";position:absolute;left:22px;right:22px;top:50%;border-top:2px dashed var(--tpl-line-strong)}
.dct-tk-cut::after{content:"";position:absolute;top:50%;left:-13px;right:-13px;height:26px;transform:translateY(-50%);background:radial-gradient(circle at 13px 50%,var(--wcse-bg) 12px,transparent 12.5px),radial-gradient(circle at calc(100% - 13px) 50%,var(--wcse-bg) 12px,transparent 12.5px)}
.dct-tk-total{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.dct-tk-total > span{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding-bottom:6px}
.dct-tk-total div{text-align:right;display:flex;flex-direction:column;align-items:flex-end}
.dct-tk-total s{font-size:13px;color:var(--wcse-secondary)}
.dct-tk-total b.is-empty{font-size:26px;color:var(--wcse-secondary);font-weight:600}
.dct-tk-total b{font-family:var(--wcse-font-heading);font-size:38px;font-weight:800;letter-spacing:-.04em;line-height:1;display:inline-block;transform-origin:right center}
.is-bump{animation:dctBump .45s cubic-bezier(.3,1.5,.5,1)}
@keyframes dctBump{0%{transform:scale(1)}35%{transform:scale(1.08);color:var(--wcse-accent)}100%{transform:scale(1)}}
.dct-tk-save{margin:8px 0 0;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--wcse-accent) 14%,var(--dct-paper));font-size:13px;text-align:center;color:var(--wcse-text)}
body .dcp--ticket button.dct-tk-btn{display:block;width:100%;height:56px!important;margin-top:16px!important;padding:0 18px!important;border:0!important;border-radius:var(--wcse-radius-pill,100px)!important;background:var(--wcse-primary)!important;color:#fff!important;font-size:16px!important;font-weight:800!important;transition:background .15s,transform .15s!important}
body .dcp--ticket button.dct-tk-btn:hover{background:var(--wcse-accent)!important;transform:translateY(-1px)}
body .dcp--ticket button.dct-tk-btn.is-wait{background:transparent!important;color:var(--wcse-text)!important;box-shadow:inset 0 0 0 1.5px var(--tpl-line-strong)!important}
body .dcp--ticket button.dct-tk-btn.is-wait:hover{box-shadow:inset 0 0 0 1.5px var(--wcse-text)!important}
body .dcp--ticket button.dct-tk-btn svg{width:19px;height:19px}
body .dcp--ticket button.dct-tk-btn.is-wait svg{display:none}
body .dcp--ticket button.is-busy{opacity:.7;pointer-events:none}
.dct-tk-hint{display:flex;gap:8px;align-items:center;justify-content:center;margin:12px 0 0;font-size:13px;color:var(--wcse-secondary)}
.dct-tk-hint svg{width:15px;height:15px;flex:none;color:var(--wcse-accent)}
.dct-tk-hint b{color:var(--wcse-text)}
.dct-tk-ft{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--tpl-line);font-size:12.5px;color:var(--wcse-secondary)}
.dct-tk-ft span{display:inline-flex;align-items:center;gap:6px}
.dct-tk-ft svg{width:13px;height:13px}
.dct-live i{width:8px;height:8px;border-radius:50%;background:#22A06B;position:relative}
.dct-live i::after{content:"";position:absolute;inset:0;border-radius:50%;background:#22A06B;animation:dctLive 1.8s ease-out infinite}
@keyframes dctLive{from{transform:scale(1);opacity:.6}to{transform:scale(2.6);opacity:0}}
.dct-tk-bar{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:14px;color:var(--wcse-text);opacity:.85}
.dct-tk-bar svg{width:70%;height:30px;display:block}
.dct-tk-bar span{font-family:var(--dct-mono);font-size:10px;letter-spacing:.2em;color:var(--wcse-secondary)}
.dct-ticket.is-ready .dct-tk-hd{border-bottom-color:var(--wcse-primary)}

/* ---------- Barre d'achat mobile ---------- */
.dct-mbar{display:none}

/* ---------- Chiffres clés ---------- */
.dct-figs{background:var(--wcse-text);color:#fff}
.dct-figs-g{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.dct-figs-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.dct-figs-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dct-figs-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.dct-figs-1{grid-template-columns:minmax(0,1fr)}
.dct-fig{display:flex;flex-direction:column;gap:6px;padding:34px 26px;border-left:1px dashed rgba(255,255,255,.22);min-width:0}
.dct-fig:first-child{border-left:0;padding-left:0}
.dct-fig-ic{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.dct-fig-ic svg{width:18px;height:18px;color:var(--wcse-accent)}
.dct-fig b{font-family:var(--wcse-font-heading);font-size:clamp(22px,2.2vw,30px);font-weight:800;letter-spacing:-.03em;line-height:1.05;color:#fff!important;overflow-wrap:anywhere}
.dct-fig > span:last-child{font-size:13.5px;color:rgba(255,255,255,.68)!important;line-height:1.35}

/* ---------- Description en carrousel ---------- */
.dct-rail-nav{display:flex;gap:8px}
.dct-rail-nav.is-hidden{display:none}
body .dcp--ticket button.dct-arrow{width:46px;height:46px;padding:0!important;border-radius:50%!important;border:1.5px solid var(--wcse-text)!important;background:transparent!important;color:var(--wcse-text)!important;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s,opacity .15s!important}
body .dcp--ticket button.dct-arrow:hover{background:var(--wcse-text)!important;color:var(--dct-paper)!important}
body .dcp--ticket button.dct-arrow:disabled{opacity:.3;pointer-events:none}
body .dcp--ticket button.dct-arrow svg{width:18px;height:18px}
body .dcp--ticket button.dct-arrow[data-dct-prev] svg{transform:rotate(180deg)}
.dct-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,calc((100% - 40px) / 3));gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.dct-rail::-webkit-scrollbar{display:none}
.dct-card{scroll-snap-align:start;background:var(--dct-paper);border-radius:var(--dct-rl);overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--tpl-line)}
.dct-card-im{aspect-ratio:4/3;overflow:hidden;background:var(--tpl-soft)}
.dct-card-im img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.dct-card:hover .dct-card-im img{transform:scale(1.04)}
.dct-card-tx{padding:20px 22px 24px}
.dct-card-n{display:inline-block;font-family:var(--dct-mono);font-size:11.5px;font-weight:600;letter-spacing:.08em;color:var(--wcse-secondary);margin-bottom:10px}
.dct-card h3{font-family:var(--wcse-font-heading);font-size:20px;font-weight:800;letter-spacing:-.015em;line-height:1.2;margin:0 0 10px;color:var(--wcse-text)}
.dct-card p{font-size:15px;line-height:1.62;color:var(--wcse-secondary);margin:0 0 10px}
.dct-card p:last-child{margin-bottom:0}
.dct-progress{height:3px;border-radius:3px;background:var(--tpl-line);margin-top:22px;overflow:hidden}
.dct-progress i{display:block;height:100%;width:30%;background:var(--wcse-text);border-radius:3px;transition:transform .15s linear}

/* ---------- Durée ---------- */
.dct-dur{background:var(--dct-paper);border-top:1px solid var(--tpl-line);border-bottom:1px solid var(--tpl-line)}
.dct-dur-g{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:center}
.dct-dur-big{background:var(--wcse-primary);color:#fff;border-radius:var(--dct-rl);padding:34px 32px;display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}
.dct-dur-big::after{content:"";position:absolute;right:-60px;bottom:-60px;width:220px;height:220px;border-radius:50%;border:28px solid rgba(255,255,255,.07)}
.dct-dur-k{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.75)!important}
.dct-dur-k svg{width:16px;height:16px}
.dct-dur-big b{font-family:var(--wcse-font-heading);font-size:clamp(44px,5vw,68px);font-weight:800;letter-spacing:-.045em;line-height:1;color:#fff!important}
.dct-dur-big > span:last-child{font-size:15px;color:rgba(255,255,255,.8)!important;max-width:28ch}
.dct-line{list-style:none;margin:24px 0 0;padding:0;position:relative}
.dct-line::before{content:"";position:absolute;left:7px;top:10px;bottom:10px;border-left:2px dashed var(--tpl-line-strong)}
.dct-line li{position:relative;display:flex;align-items:baseline;gap:14px;padding:11px 0 11px 30px;border-bottom:1px solid var(--tpl-line);font-size:15.5px}
.dct-line li:last-child{border-bottom:0}
.dct-line-dot{position:absolute;left:0;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:50%;background:var(--dct-paper);border:3px solid var(--wcse-primary)}
.dct-line li:first-child .dct-line-dot{background:var(--wcse-primary)}
.dct-line-l{flex:1;color:var(--wcse-text)}
.dct-line b{font-weight:800;white-space:nowrap;color:var(--wcse-text)}

/* ---------- Fiche technique + conseils ---------- */
.dct-spec-g{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:28px;align-items:start}
.dct-spec-g.is-one{grid-template-columns:minmax(0,1fr)}
.dct-sheet{background:var(--dct-paper);border-radius:var(--dct-rl);padding:30px 32px 26px;border:1px solid var(--tpl-line)}
.dct-leaders{margin:22px 0 0;display:grid;gap:13px;font-size:15px}
.dct-leaders dd{max-width:55%}
.dct-tips{padding:30px 6px 0}
.dct-tips ol{list-style:none;counter-reset:dcttip;margin:22px 0 0;padding:0;display:grid;gap:18px}
.dct-tips li{counter-increment:dcttip;display:grid;grid-template-columns:40px minmax(0,1fr);gap:2px 14px}
.dct-tips li::before{content:counter(dcttip,decimal-leading-zero);grid-row:1/3;width:40px;height:40px;border-radius:12px;background:var(--wcse-text);color:var(--dct-paper);font-family:var(--dct-mono);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.dct-tips b{font-size:16px;font-weight:700;color:var(--wcse-text)}
.dct-tips span{font-size:14.5px;line-height:1.55;color:var(--wcse-secondary)}

/* ---------- Avis (markup du module reviews) ---------- */
.dcp--ticket .dcp-rvf{background:transparent!important;padding:72px 28px!important}
.dcp--ticket .dcp-rvf-c{max-width:1184px!important}
.dcp--ticket .dcp-rvf-hd-title h2{font-family:var(--wcse-font-heading)!important;font-weight:800!important;letter-spacing:-.025em!important;font-size:clamp(24px,2.6vw,34px)!important}
.dcp--ticket .dcp-rvf-nav{display:none!important}
.dcp--ticket .dcp-rvf-carousel{overflow:visible!important;padding:0!important;margin:0!important}
.dcp--ticket .dcp-rvf-track{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important;transform:none!important;max-width:none!important}
.dcp--ticket .dcp-rvf-track .dcp-rvf-card{flex:none!important;width:auto!important;min-width:0!important;border-radius:var(--dct-rl)!important;box-shadow:none!important;border:1px solid var(--tpl-line)!important;background:var(--dct-paper)!important}
.dcp--ticket .dcp-rvf-track .dcp-rvf-card:nth-child(n+7){display:none!important}
.dcp--ticket .dcp-rvf-track .dcp-rvf-card:nth-child(-n+6){display:flex!important;flex-direction:column}

/* ---------- Questions ---------- */
.dct-faq{padding-top:8px}
.dct-faq-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:26px;align-items:start}
.dct-q{background:var(--dct-paper);border-radius:var(--dct-r);border:1px solid var(--tpl-line);transition:border-color .15s}
.dct-q[open]{border-color:var(--wcse-text)}
.dct-q summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;font-size:16px;font-weight:700;line-height:1.35;color:var(--wcse-text)}
.dct-q summary::-webkit-details-marker{display:none}
.dct-q summary i{flex:none;width:28px;height:28px;border-radius:50%;background:var(--wcse-bg);position:relative;transition:background .2s,transform .25s}
.dct-q summary i::before,.dct-q summary i::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:2px;background:var(--wcse-text);transform:translate(-50%,-50%)}
.dct-q summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.dct-q[open] summary i{background:var(--wcse-text);transform:rotate(45deg)}
.dct-q[open] summary i::before,.dct-q[open] summary i::after{background:var(--dct-paper)}
.dct-q p{margin:0;padding:0 20px 20px;font-size:15px;line-height:1.65;color:var(--wcse-secondary)}

/* ---------- Souvent ajouté avec ---------- */
.dct-cross{padding-top:8px}
.dct-cross-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px}
.dct-pc{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center;padding:12px;background:var(--dct-paper);border-radius:var(--dct-rl);border:1px solid var(--tpl-line);text-decoration:none!important;color:var(--wcse-text)!important;transition:border-color .15s,transform .15s}
.dct-pc:hover{border-color:var(--wcse-text);transform:translateY(-2px)}
.dct-pc-im{width:96px;height:96px;border-radius:var(--dct-r);background:var(--wcse-bg);padding:8px;display:block}
.dct-pc-im img{width:100%;height:100%;object-fit:contain;display:block}
.dct-pc-tx{display:flex;flex-direction:column;gap:3px;min-width:0;padding-right:4px}
.dct-pc-cat{font-size:12px;font-weight:600;color:var(--wcse-secondary)}
.dct-pc-tx b{font-size:15px;font-weight:700;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dct-pc-ft{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px}
.dct-pc-pr{font-weight:800;font-size:16px}
.dct-pc-go{width:32px;height:32px;border-radius:50%;background:var(--wcse-text);color:var(--dct-paper);display:inline-flex;align-items:center;justify-content:center;transition:background .15s}
.dct-pc-go svg{width:15px;height:15px}
.dct-pc:hover .dct-pc-go{background:var(--wcse-accent)}

@media (prefers-reduced-motion:reduce){.dcp--ticket *{animation:none!important;transition:none!important}}

/* ---------- Tablette ---------- */
@media (max-width:1100px){
  .dct-grid{grid-template-columns:minmax(0,1fr) 340px;gap:24px}
  .dct-head{grid-template-columns:1fr;gap:20px}
  .dct-gal-main{aspect-ratio:4/3}
}
@media (max-width:1024px){
  .dct-wrap{padding:0 20px}
  .dct-grid{grid-template-columns:1fr}
  .dct-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .dct-gal-main{aspect-ratio:1/1}
  .dct-side{position:static;max-width:520px;width:100%;margin:0 auto}
  .dct-figs-g,.dct-figs-4,.dct-figs-5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dct-fig:nth-child(3n+1){border-left:0;padding-left:0}
  .dct-fig:nth-child(n+4){border-top:1px dashed rgba(255,255,255,.22)}
  .dct-rail{grid-auto-columns:minmax(280px,calc((100% - 20px) / 2))}
  .dct-dur-g,.dct-spec-g{grid-template-columns:1fr;gap:28px}
  .dct-tips{padding:0}
  .dcp--ticket .dcp-rvf-track{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dcp--ticket .dcp-rvf-track .dcp-rvf-card:nth-child(n+5){display:none!important}
  .dct-cross-g{grid-template-columns:repeat(2,minmax(0,1fr))}

  .dct-mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:9990;align-items:center;gap:12px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--dct-paper);box-shadow:0 -10px 30px rgba(0,0,0,.12);transform:translateY(110%);transition:transform .3s cubic-bezier(.2,.8,.2,1);font-family:var(--wcse-font-body);color:var(--wcse-text)}
  .dct-mbar.is-on{transform:none}
  .dct-mbar-tx{flex:1;min-width:0;display:flex;flex-direction:column}
  .dct-mbar-tx span{font-size:12.5px;color:var(--wcse-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dct-mbar-tx b{font-family:var(--wcse-font-heading);font-size:22px;font-weight:800;letter-spacing:-.03em;line-height:1.1;display:inline-block;transform-origin:left center}
  body .dcp--ticket button.dct-mbar-btn{flex:none;height:50px!important;padding:0 26px!important;border:0!important;border-radius:var(--wcse-radius-pill,100px)!important;background:var(--wcse-primary)!important;color:#fff!important;font-size:15.5px!important;font-weight:800!important}
  body .dcp--ticket button.dct-mbar-btn.is-wait{background:var(--wcse-text)!important}
  body.dct-bar-on .dcp-toast{bottom:88px}
}
/* ---------- Mobile ---------- */
@media (max-width:640px){
  .dct-wrap{padding:0 14px}
  .dct-top{padding:14px 0 44px}
  .dct-crumbs{margin-bottom:14px}
  .dct-bc{font-size:12px}
  .dct-head{grid-template-columns:1fr;gap:16px}
  .dct-gal-main{aspect-ratio:4/3;padding:18px}
  .dct-accent{font-size:16px}
  .dct-points li{font-size:14.5px;padding:10px 0}
  .dct-builder{padding:18px 16px 20px}
  .dct-builder-hd div > b,.dcp--ticket .dct-builder .wcse-qty-label-text{font-size:18px!important}
  .dcp--ticket .dct-builder .wcse-var-cards{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  body .dcp--ticket .dct-builder button.wcse-var-card{min-height:0!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center;column-gap:12px!important;padding:16px!important}
  .dcp--ticket .dct-builder .wcse-var-card-label{grid-column:1;padding-right:0}
  .dcp--ticket .dct-builder .wcse-var-card-price{grid-column:2;grid-row:1/3;margin:0;padding:0 26px 0 0;font-size:19px!important;flex-direction:column;align-items:flex-end;gap:0}
  .dct-per{grid-column:1}
  body .dcp--ticket .dct-builder button.wcse-var-card.active::after{top:50%;right:12px;margin-top:-11px}
  .dcp--ticket .dct-builder .quantity{flex-wrap:wrap}
  .dct-ticket{padding:18px 16px 12px}
  .dct-tk-cut{margin:6px -16px}
  .dct-tk-cut::before{left:16px;right:16px}
  .dct-tk-total b{font-size:32px}
  .dct-sec{padding:48px 0}
  .dct-figs-g,.dct-figs-3,.dct-figs-4,.dct-figs-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dct-fig,.dct-fig:nth-child(3n+1){padding:22px 14px;border-left:1px dashed rgba(255,255,255,.22);border-top:0}
  .dct-fig:nth-child(odd){border-left:0;padding-left:0}
  .dct-fig:nth-child(n+3){border-top:1px dashed rgba(255,255,255,.22)}
  .dct-rail{grid-auto-columns:84%}
  .dct-sec-hd .dct-rail-nav{display:none}
  .dct-dur-big{padding:26px 22px}
  .dct-sheet{padding:22px 18px 18px}
  .dct-leaders{font-size:14px}
  .dcp--ticket .dcp-rvf{padding:48px 14px!important}
  .dcp--ticket .dcp-rvf-track{grid-template-columns:minmax(0,1fr)!important}
  .dcp--ticket .dcp-rvf-track .dcp-rvf-card:nth-child(n+4){display:none!important}
  .dct-faq-g,.dct-cross-g{grid-template-columns:1fr}
  .dct-pc{grid-template-columns:80px minmax(0,1fr)}
  .dct-pc-im{width:80px;height:80px}
}
