/* Panier groupé de la caisse. Couleurs : jetons de sirius-design-tokens.css uniquement. */
.cart-panel { display:flex; flex-direction:column; min-height:0; max-height:inherit; border:3px solid var(--sirius-gold); border-radius:var(--sirius-radius-lg); background:var(--sirius-cart-bg); color:var(--sirius-text); }
.cart-panel-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border-bottom:1px solid var(--sirius-gold-line); }
.cart-panel-head h3 { margin:0; font:700 clamp(20px,2.4vw,26px)/1.15 var(--sirius-font-display); }
.cart-clear { min-height:var(--sirius-cart-touch); padding:0 16px; border:1px solid var(--sirius-gold-line); border-radius:var(--sirius-radius-md); background:var(--sirius-cart-group); color:var(--sirius-danger-text); font-weight:600; }
.cart-panel-body { flex:1 1 auto; min-height:0; display:grid; align-content:start; gap:12px; padding:12px; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.cart-panel-body::-webkit-scrollbar { display:none; }
.cart-panel-body .empty { margin:8px; color:var(--sirius-text-muted); }
.cart-group { display:grid; gap:8px; padding:10px; border:1px solid var(--sirius-gold-line); border-radius:var(--sirius-radius-md); background:var(--sirius-cart-group); }
.cart-group > header { display:flex; align-items:center; gap:10px; min-width:0; }
.cart-group > header strong { flex:1 1 auto; min-width:0; overflow:hidden; color:var(--sirius-gold); font-size:18px; text-overflow:ellipsis; white-space:nowrap; }
.cart-group-subtotal { font-weight:700; font-variant-numeric:tabular-nums; }
.cart-group-remove { min-width:var(--sirius-cart-touch); min-height:var(--sirius-cart-touch); padding:0; border:1px solid var(--sirius-gold-line); border-radius:var(--sirius-radius-md); background:var(--sirius-cart-row); color:var(--sirius-danger-text); font-size:20px; }
.cart-group-note { margin:0; color:var(--sirius-text-muted); font-size:13px; }
.cart-photo { display:grid; flex:none; place-items:center; width:32px; height:32px; overflow:hidden; border-radius:var(--sirius-radius-sm); background:var(--sirius-product-media); }
.cart-photo img { width:100%; height:100%; object-fit:cover; }
.cart-photo small { color:var(--sirius-text-muted); font-size:9px; }
.cart-row { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(54px,auto); grid-template-areas:"label stepper amount"; align-items:center; gap:8px; padding:6px 8px; border:1px solid var(--sirius-gold-line); border-radius:var(--sirius-radius-md); background:var(--sirius-cart-row); }
.cart-row-label { grid-area:label; min-width:3.4rem; overflow-wrap:break-word; font-size:17px; font-weight:600; }
.cart-row-amount { grid-area:amount; text-align:right; font-weight:700; font-variant-numeric:tabular-nums; }
.cart-row[data-kind=offered] { border-color:var(--sirius-offered); }
.cart-row[data-kind=offered] .cart-row-label, .cart-row[data-kind=offered] input { color:var(--sirius-offered); }
.cart-panel .quantity-stepper { grid-area:stepper; display:flex; align-items:center; gap:2px; padding:0; border:0; }
.cart-panel .quantity-stepper button { width:56px; min-width:56px; height:var(--sirius-cart-touch); min-height:var(--sirius-cart-touch); padding:0; border:1px solid var(--sirius-gold-line); border-radius:var(--sirius-radius-md); background:var(--sirius-cart-bg); color:var(--sirius-text); font-size:26px; line-height:1; }
.cart-panel .quantity-stepper input[data-basket-input] { width:1.9em; min-width:0; height:var(--sirius-cart-touch); min-height:var(--sirius-cart-touch); padding:0; border:0; background:transparent; color:inherit; font:700 24px/1 var(--sirius-font-body); text-align:center; -moz-appearance:textfield; appearance:textfield; }
.cart-panel .quantity-stepper input[data-basket-input]::-webkit-outer-spin-button, .cart-panel .quantity-stepper input[data-basket-input]::-webkit-inner-spin-button { margin:0; -webkit-appearance:none; }
.cart-offer-add { min-height:var(--sirius-cart-touch); border:1px dashed var(--sirius-offered); border-radius:var(--sirius-radius-md); background:transparent; color:var(--sirius-offered); font-weight:600; }
.cart-panel-foot { flex:none; display:grid; gap:12px; padding:12px 16px 16px; border-top:1px solid var(--sirius-gold-line); background:var(--sirius-cart-foot); }
.cart-total { display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:nowrap; }
.cart-total > span { font-size:18px; white-space:nowrap; }
.cart-total strong { display:flex; align-items:baseline; gap:6px; white-space:nowrap; color:var(--sirius-gold); font:700 clamp(34px,5vw,48px)/1 var(--sirius-font-display); }
.cart-total strong small { font:600 clamp(14px,2vw,18px)/1 var(--sirius-font-body); }
/* Cartes produits : cadre or fin, boutons de format avec prix, . */
.event-till .event-sale-card, .event-till .event-product-card, .checkout-catalog .sale-card { border:1px solid var(--sirius-gold-frame); }
.event-till [data-event-add], .checkout-catalog [data-add] { border:1px solid var(--sirius-gold-line); }
/* Panier toujours visible : colonne sticky à droite (paysage), bandeau ancré en bas sous les produits (portrait). */
.event-till [data-event-cart].cart-host, .checkout-cart.cart-host { padding:0; border:0; background:transparent; }
@media (max-width:700px) {
    .cart-panel-head { padding:10px 12px; }
    .cart-row { grid-template-columns:minmax(0,1fr) auto minmax(52px,auto); gap:6px; padding:6px 8px; }
    .cart-panel .quantity-stepper button { width:var(--sirius-cart-touch); min-width:var(--sirius-cart-touch); }
    .cart-panel .quantity-stepper input[data-basket-input] { width:1.9em; font-size:22px; }
}
.cart-panel button { margin:0; }
.cart-undo { min-height:var(--sirius-cart-touch); border:1px solid var(--sirius-gold-line); border-radius:var(--sirius-radius-md); background:var(--sirius-cart-row); color:var(--sirius-text); font-weight:600; }
/* Écran de vente de l'événement : cartes bière (photo, formats avec prix) et tuiles d'articles. */
.event-beer-tile { gap:10px; padding:0 0 12px; }
.event-beer-tile > .event-beer-logo, .event-photo-placeholder { width:100%; height:96px; object-fit:cover; border-radius:var(--sirius-radius-md) var(--sirius-radius-md) 0 0; background:var(--sirius-product-media); }
.event-photo-placeholder { display:grid; place-items:center; color:var(--sirius-text-muted); font-size:12px; }
.event-beer-tile > header { display:flex; align-items:baseline; justify-content:space-between; gap:8px; padding:0 12px; }
.event-beer-tile > header h3 { font-size:18px; }
.event-beer-tile > header span { color:var(--sirius-text-muted); font-size:13px; white-space:nowrap; }
.event-beer-tile > small, .event-format-buttons { margin-inline:12px; }
.event-format-buttons { display:grid; grid-template-columns:repeat(auto-fit,minmax(64px,1fr)); gap:8px; }
.event-format-buttons button { display:grid; place-items:center; gap:2px; min-height:60px; margin:0; }
.event-format-buttons strong { color:var(--sirius-gold); }
.event-till .event-other-tile { padding:0; border:0; background:none; box-shadow:none; }
.event-other-button { border:1px solid var(--sirius-gold-frame); }
.event-other-button { display:flex; align-items:center; gap:10px; width:100%; min-height:60px; margin:0; text-align:left; }
.event-other-button .event-beer-logo, .event-other-button .event-photo-placeholder { width:40px; height:40px; flex:none; border-radius:var(--sirius-radius-sm); object-fit:cover; font-size:9px; }
.event-other-name { flex:1 1 auto; min-width:0; overflow-wrap:anywhere; font-weight:600; }
.event-other-name small { display:block; color:var(--sirius-text-muted); font-weight:400; }
.event-other-button strong { color:var(--sirius-gold); }
/* Écran panier mobile : plein écran, « ← Produits » en haut. */
@media (max-width:700px) {
    .mobile-cart-sheet { width:100%; max-width:none; height:100dvh; max-height:100dvh; margin:0; padding:12px 12px calc(12px + env(safe-area-inset-bottom)); border-radius:0; }
    .mobile-cart-sheet .mobile-cart-close { width:fit-content; min-height:var(--sirius-cart-touch); margin-bottom:10px; padding:0 18px; border:1px solid var(--sirius-gold-frame); border-radius:var(--sirius-radius-md); color:var(--sirius-gold); font-weight:700; }
    .mobile-cart-sheet .cart-host { max-height:none; height:calc(100dvh - 90px); }
    .mobile-cart-sheet .cart-panel { height:100%; max-height:none; }
}
.mobile-cart-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.mobile-cart-top .mobile-cart-close { margin:0; }
.mobile-cart-context { margin:0; color:var(--sirius-text-muted); font-size:13px; text-align:right; }
/* Caisse d'événement : l'écran tient dans la hauteur de la fenêtre (le panier et ses boutons restent visibles). */
.event-till [data-event-header] { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.till-title small { display:block; color:var(--sirius-text-muted); font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.till-title h3 { margin:0; color:var(--sirius-gold); font:700 clamp(22px,3vw,30px)/1.1 var(--sirius-font-display); }
.till-actions { display:flex; align-items:end; gap:10px; flex-wrap:wrap; }
.till-actions label { display:grid; gap:2px; font-size:12px; color:var(--sirius-text-muted); }
.till-actions select { min-height:var(--sirius-cart-touch); }
.till-actions button { min-height:var(--sirius-cart-touch); margin:0; }
.event-till > [data-stock-alerts] p { margin:0 0 6px; padding:8px 12px; }
/* Écrans de vente (vente directe, précommande, commande pro) : même panier que la caisse d'événement. */
.checkout-cart.cart-host { display:block; padding:0; border:0; background:none; box-shadow:none; }
.checkout-cart .cart-panel-body > .client-picker, .checkout-cart .cart-panel-body > fieldset, .checkout-cart .cart-panel-body > .condition-chip, .checkout-cart .cart-panel-body > .discount-panel { margin:0; }
.cart-groups { display:grid; gap:12px; }
.cart-row-extra { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.cart-row-extra small { color:var(--sirius-text-muted); }
.cart-row-extra button { min-height:var(--sirius-cart-touch); }
.cart-currency { margin-left:6px; font:600 clamp(14px,2vw,18px)/1 var(--sirius-font-body); }
.cart-panel-foot .order-total { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 12px; margin:0; }
.cart-panel-foot .order-total > span:first-child { font-size:18px; white-space:nowrap; }
.cart-panel-foot .order-total > strong { color:var(--sirius-gold); font:700 clamp(34px,5vw,48px)/1 var(--sirius-font-display); }
.cart-panel-foot .order-total > small { flex-basis:100%; text-align:right; }
.cart-panel-foot .error:empty { display:none; }
.cart-panel-foot .quick-checkout-actions, .cart-panel-foot .checkout-submit { margin:0; }
@media (max-width:700px) {
    .checkout-shell { height:auto; }
    .checkout-cart.cart-host { position:static; max-height:none; }
}
/* Boutons de paiement : trois boutons sans texte, même cadre or 2 px, fond sombre. */
.pay-button { display:grid; place-items:center; align-content:center; gap:5px; min-height:60px; padding:6px 8px; border:2px solid var(--sirius-pay-frame); border-radius:var(--sirius-radius-md); background:var(--sirius-pay-bg); color:var(--sirius-text); }
.pay-button[data-pay-method=twint] { background:var(--sirius-pay-black); }
.pay-button:disabled { opacity:.45; }
.pay-button img { display:block; height:auto; max-width:100%; }
.pay-cash-logo { width:68px; }
.pay-twint-logo { width:96px; }
.pay-card-brands { display:flex; align-items:center; gap:8px; }
.pay-mastercard { width:30px; }
.pay-maestro { width:48px; }
.pay-visa { display:inline-flex; align-items:center; padding:2px 8px; border-radius:var(--sirius-radius-sm); background:var(--sirius-pay-white); }
.pay-visa img { width:40px; }
.cart-panel [data-event-payment], .quick-checkout-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0; }
.cart-panel [data-event-payment] > :not(.pay-button), .quick-checkout-actions > :not(.pay-button) { grid-column:1 / -1; }
.cart-panel [data-event-payment] .pay-button, .quick-checkout-actions .pay-button { width:100%; margin:0; }
.cart-panel [data-pay][aria-pressed=true] { outline:2px solid var(--sirius-focus); outline-offset:2px; }
@media (max-width:700px) { .pay-card-brands { gap:5px; } .pay-twint-logo { width:80px; } .pay-cash-logo { width:56px; } }
/* Libellé long : il prend sa propre ligne, puis − quantité + et le montant dessous (jamais deux groupes de ± sur une ligne). */
/* Commande à 0.00 CHF (que des offerts) : rien à encaisser, jamais « Non payée ». */
.payment-gift { color:var(--sirius-offered); font-weight:600; }

/* ===== Mise en page des écrans de vente (iPad, PC) : UNE seule zone qui défile, la page. =====
   Le panier s'allonge vers le bas, sans défilement interne ; « Total à encaisser » et les paiements restent collés en bas de l'écran.
   La molette fait défiler la page où que soit la souris. Sur mobile, le panier plein écran défile de lui-même (feuille « ← Produits »). */
.mobile-cart-sheet .cart-panel { overflow:hidden; }
@media (min-width:701px) {
    .event-till, .checkout-shell { height:auto; min-height:calc(100dvh - 16px - var(--env-banner-height,0px)); }
    .event-till [data-event-cart].cart-host, .checkout-cart.cart-host { position:static; align-self:stretch; height:auto; max-height:none; min-height:0; }
    .event-till .cart-panel, .checkout-cart .cart-panel { height:100%; max-height:none; overflow:visible; }
    .event-till .cart-panel-body, .checkout-cart .cart-panel-body { flex:1 0 auto; overflow:visible; overscroll-behavior:auto; }
    .event-till .cart-panel-foot, .checkout-cart .cart-panel-foot { position:sticky; bottom:0; z-index:3; margin-top:auto; border-radius:0 0 calc(var(--sirius-radius-lg) - 3px) calc(var(--sirius-radius-lg) - 3px); box-shadow:0 -10px 18px -12px rgba(0,0,0,.65); }
    .event-till [data-event-products], .checkout-catalog { overflow:visible; max-height:none; min-height:0; }
    /* Le cadre « .panel » rogne (overflow:hidden) : « clip » rogne aussi, mais sans bloquer le « sticky » du total. */
    .panel:has(.event-till), .panel:has(.checkout-shell) { overflow:hidden; overflow:clip; }
}
/* Paysage, portrait et PC : produits à gauche sur toute la largeur de leur zone, panier en colonne haute à droite (total et paiements en bas de la colonne). */
@media (min-width:701px) {
    .event-till { grid-template-columns:minmax(0,1fr) minmax(360px,420px); grid-template-rows:auto auto auto 1fr; align-items:stretch; }
    .event-till > [data-event-header], .event-till > [data-stock-alerts], .event-till > [data-sale-error], .event-till [data-event-products] { grid-column:1; }
    .event-till > [data-event-header] { grid-row:1; } .event-till > [data-stock-alerts] { grid-row:2; } .event-till > [data-sale-error] { grid-row:3; }
    .event-till [data-event-products] { grid-row:4; align-self:start; }
    .event-till [data-event-cart].cart-host { grid-row:1 / span 4; grid-column:2; }
    .checkout-shell { grid-template-columns:minmax(0,1fr) minmax(360px,420px); grid-template-rows:auto; align-items:stretch; }
}
/* Caisse d'événement : bières (3 par ligne, 4 sur grand écran), puis « Autres articles » en bloc pleine largeur, cartes de même taille. */
.event-till [data-event-products] { display:block; padding:2px; }
.event-beer-grid, .event-other-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:1fr; gap:12px; align-items:stretch; }
.event-others { margin-top:16px; }
.event-others > h4 { margin:0 0 8px; color:var(--sirius-gold); font-size:16px; }
@media (min-width:1400px) and (orientation:landscape) { .event-beer-grid, .event-other-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.event-till .event-beer-tile { height:100%; min-width:0; }
.event-beer-tile > .event-beer-logo, .event-photo-placeholder { object-fit:contain; background:var(--sirius-product-media); }
.event-beer-tile > .event-beer-logo { padding:6px; box-sizing:border-box; }
/* Rangée « offert » : un bouton aujourd'hui ; la place d'un second (« 🎟 Bon », lot 4) est prête (deux colonnes égales). */
.till-modes { display:flex; gap:8px; flex-wrap:wrap; } .till-modes:empty { display:none; }
/* Après un appui : bref « +1 », le bouton redevient aussitôt normal (aucun état allumé ou grisé qui reste). */
.event-till [data-event-add] { position:relative; }
.event-till [data-event-add]:not(:disabled), .event-till [data-event-add]:not(:disabled):focus, .event-till [data-event-add]:not(:disabled):active { opacity:1; }
.event-till [data-event-add].added::after { content:"+1"; position:absolute; top:4px; right:6px; padding:1px 7px; border-radius:999px; background:var(--sirius-gold); color:#111; font:800 12px/1.4 var(--sirius-font-body); animation:added-pop .6s ease-out forwards; pointer-events:none; }
@keyframes added-pop { 0% { transform:scale(.6); opacity:0; } 25% { transform:scale(1.1); opacity:1; } 100% { transform:translateY(-6px); opacity:0; } }
.event-till .event-other-tile .event-other-button { height:100%; }
.event-till .event-other-button:disabled { opacity:.45; }
/* Mobile : cartes compactes (2 bières par ligne), photo plus petite, place en bas pour la barre « n articles · total ». */
@media (max-width:700px) {
    .event-till, .checkout-shell { padding-bottom:9rem; }
    .event-beer-grid, .event-other-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .event-beer-tile > .event-beer-logo, .event-photo-placeholder { height:56px; }
    .event-beer-tile > header { flex-direction:column; align-items:flex-start; gap:0; padding:0 8px; }
    .event-beer-tile > header h3 { font-size:16px; }
    .event-beer-tile > small, .event-format-buttons { margin-inline:8px; }
    .event-format-buttons { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
    .event-format-buttons button { min-height:52px; }
    .event-other-button .event-beer-logo, .event-other-button .event-photo-placeholder { width:32px; height:32px; }
    .event-other-button { padding:6px 8px; gap:8px; min-height:52px; }
    .event-other-name { font-size:14px; }
}
/* Vente directe : 3 produits par ligne (4 sur grand écran), cartes alignées. L'iPhone (≤ 700 px) reste tel qu'il est : 2 par ligne. */
@media (min-width:701px) {
    .checkout-catalog #sale-products { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
    .checkout-catalog .sale-card { grid-template-rows:150px 1fr 64px; height:100%; }
    /* Carte textile : toutes les tailles (bouton + prix + stock) visibles, la carte grandit au besoin. */
    .checkout-catalog .textile-sale-card { grid-template-rows:150px auto auto; }
    .checkout-catalog .textile-sale-card .textile-sizes { align-self:start; padding:8px 10px 12px; gap:8px; overflow:visible; }
    .checkout-catalog .textile-sale-card .textile-sizes small { display:block; white-space:normal; font-size:12px; line-height:1.25; }
    .checkout-catalog .sale-card-copy strong { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; min-height:2.5em; line-height:1.25; }
    .checkout-catalog .sale-card-footer { min-height:64px; align-items:center; align-self:end; }
    .checkout-catalog .sale-card-footer button, .checkout-catalog .sale-card-footer .quantity-stepper { min-height:44px; }
    .checkout-catalog .sale-card-footer .quantity-stepper { display:flex; align-items:center; }
    .checkout-catalog .sale-card-footer { padding:0 8px 10px; gap:4px; flex-wrap:nowrap; }
    .checkout-catalog .sale-card-footer > b { flex:0 0 auto; white-space:nowrap; font-size:14px; }
    .checkout-catalog .sale-card.unavailable .sale-card-footer > b { flex:0 1 auto; min-width:0; white-space:normal; font-size:13px; }
    .checkout-catalog .sale-card.unavailable .sale-card-footer button { min-width:0; padding-inline:8px; }
    .checkout-catalog .sale-card-footer .quantity-stepper { flex:0 0 auto; gap:0; padding:0; }
    .checkout-catalog .sale-card-footer .quantity-stepper b { min-width:22px; padding:0; text-align:center; }
    .checkout-catalog .sale-card-footer .quantity-stepper button { min-width:40px; min-height:44px; padding-inline:6px; }
}
@media (min-width:1400px) and (orientation:landscape) { .checkout-catalog #sale-products { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.checkout-catalog .sale-card.unavailable { opacity:.45; filter:grayscale(.6); }
.checkout-catalog .textile-sizes .size-unavailable { opacity:.4; filter:grayscale(1); }
.checkout-catalog .textile-sizes .size-unavailable button { text-decoration:line-through; }
/* Montant d'un en-tête de groupe : jamais coupé ; c'est le nom qui est raccourci (…). */
.cart-group > header { flex-wrap:nowrap; }
.cart-group > header .cart-group-subtotal { flex:none; white-space:nowrap; }
.cart-group > header strong { min-width:0; }
/* Cartes bière : contenu pleine largeur de la carte, en-tête sur deux lignes au plus (cartes alignées entre elles). */
.event-till .event-beer-tile { display:flex; flex-direction:column; }
.event-till .event-beer-tile > header, .event-till .event-beer-tile > .event-format-buttons { align-self:stretch; }
.event-till .event-beer-tile > header { min-height:2.8em; align-items:flex-start; }
.event-till .event-format-buttons [data-event-add] { margin:0; }
.event-till .event-other-tile [data-event-add] { margin:0; box-sizing:border-box; }
@media (max-width:700px) {
    .event-format-buttons button { padding:4px 2px; min-width:0; }
    .event-format-buttons button span { font-size:14px; white-space:nowrap; }
    .event-format-buttons button strong { font-size:15px; white-space:nowrap; }
}
@media (max-width:700px) {
    .event-other-button { gap:6px; padding:6px; }
    .event-other-button .event-beer-logo, .event-other-button .event-photo-placeholder { width:28px; height:28px; }
    .event-other-name { font-size:13px; line-height:1.2; }
    .event-other-button strong { font-size:14px; white-space:nowrap; }
}

/* ===== 1b-bis ===== */
/* Titre = sélecteur d'événement ; « ↻ » actualise ; plus rien au-dessus du panier. */
.event-till [data-event-header] { display:block; }
.till-title-row { display:flex; align-items:center; gap:10px; min-width:0; }
.till-title-select { appearance:none; -webkit-appearance:none; min-width:0; max-width:100%; min-height:var(--sirius-cart-touch); margin:0; padding:0 34px 0 0; border:0; border-radius:var(--sirius-radius-sm); background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='M2 2l6 6 6-6' fill='none' stroke='%23d8a058' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 6px center / 16px 10px; color:var(--sirius-gold); font:700 clamp(22px,3vw,30px)/1.1 var(--sirius-font-display); text-overflow:ellipsis; cursor:pointer; box-shadow:none; }
.till-title-select:focus-visible { outline:2px solid var(--sirius-focus); outline-offset:2px; }
.till-title-select option { background:var(--sirius-surface-raised); color:var(--sirius-text); font:600 16px var(--sirius-font-body); }
.till-refresh { flex:none; width:var(--sirius-cart-touch); min-width:var(--sirius-cart-touch); height:var(--sirius-cart-touch); min-height:var(--sirius-cart-touch); margin:0; padding:0; font-size:22px; line-height:1; border-radius:var(--sirius-radius-md); }
.till-state { display:block; margin-top:2px; color:var(--sirius-danger-text); font-weight:600; }
/* « Autres articles » : bloc pleine largeur, tuiles qui s'étirent, vraie photo, nom sur une ligne, stock présenté pareil partout. */
@media (min-width:701px) {
    .event-other-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); grid-auto-rows:auto; }
    .event-other-button { min-height:84px; padding:10px 14px; gap:14px; }
    .event-other-button .event-beer-logo, .event-other-button .event-photo-placeholder { width:56px; height:56px; padding:3px; box-sizing:border-box; border-radius:var(--sirius-radius-md); object-fit:contain; background:var(--sirius-product-media); }
    .event-other-name { font-size:16px; }
    .event-other-button strong { font-size:17px; }
}
.event-other-name { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; overflow-wrap:normal; }
.event-other-name small { display:block; overflow:hidden; text-overflow:ellipsis; }
/* « Vider le panier » : même bouton gris discret partout. */
.cart-clear { display:inline-flex; align-items:center; gap:6px; flex:none; white-space:nowrap; background:transparent; font-weight:600; }
.cart-clear:disabled { opacity:.45; }
/* 1b-ter — Lignes du panier : une seule grille pour toutes (libellé à gauche, « − n + » toujours dans les mêmes colonnes, montant à droite) ; un nom long est raccourci (…). */
.cart-row-label { min-width:0; overflow:visible; white-space:normal; overflow-wrap:break-word; hyphens:none; font-size:16px; line-height:1.2; }
/* « 🗑 Vider le panier » : texte et icône rouges (comme la corbeille des lignes), cadre discret. */
.cart-clear { border-color:rgba(240,175,165,.4); color:var(--sirius-danger-text); font-size:13px; padding-inline:8px; }
.cart-clear:not(:disabled):hover { color:var(--sirius-danger-text); border-color:var(--sirius-danger-text); }
/* Titre du panier sur une seule ligne, à côté de « Vider le panier ». */
.cart-panel-head h3 { flex:1 0 auto; white-space:nowrap; font-size:17px; }
.cart-panel-head { gap:8px; flex-wrap:wrap; }
/* Portrait (iPad Pro 13 : 1032 × 1376) : 2 produits par ligne ; cartes plus étroites, prix sur une ligne, noms raccourcis (…). */
@media (min-width:701px) and (orientation:portrait) {
    .event-till, .checkout-shell { grid-template-columns:minmax(0,1fr) minmax(380px,400px); column-gap:14px; }
    .event-beer-grid, .checkout-catalog #sale-products { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .event-beer-tile > header h3, .checkout-catalog .sale-card-copy strong { overflow:hidden; text-overflow:ellipsis; }
    .event-beer-tile > header h3 { white-space:nowrap; min-width:0; }
}
/* iPad portrait étroit (820 px) : cartes de 170 px ; le prix reste sur une ligne, au-dessus de « Ajouter » ou de « − n + » (même hauteur pour toutes les cartes). */
@media (min-width:701px) and (max-width:900px) and (orientation:portrait) {
    .checkout-catalog .sale-card-footer { flex-direction:column; align-items:stretch; justify-content:flex-end; gap:4px; min-height:96px; }
    .checkout-catalog .sale-card-footer > b { align-self:flex-start; }
    .checkout-catalog .sale-card-footer .quantity-stepper { justify-content:space-between; }
    .checkout-catalog .sale-card { grid-template-rows:150px 1fr 96px; }
    .checkout-catalog .textile-sale-card { grid-template-rows:150px auto auto; }
}

/* ===== 1c ===== */
/* Résumé sous chaque article du panier : payantes · offertes (en vert) · sortie de stock. */
.cart-row-summary { margin:2px 6px 0; color:var(--sirius-text-muted); font-size:13px; line-height:1.35; }
.cart-row-summary .cart-summary-offered { color:var(--sirius-offered); font-weight:600; }
/* Encaissement en espèces : « Montant reçu » prêt à saisir, « À rendre » en grand. */
.cash-dialog { width:min(440px,calc(100vw - 32px)); text-align:center; }
.cash-dialog h2 { margin:0 0 8px; }
.cash-dialog .cash-message { margin:0 0 8px; color:var(--sirius-text-muted); white-space:pre-line; }
.cash-dialog .cash-due { margin:0 0 12px; font-size:18px; }
.cash-dialog .cash-due strong { color:var(--sirius-gold); font-size:26px; }
.cash-dialog .cash-field { display:grid; gap:6px; margin:0 0 12px; font-weight:600; text-align:left; }
.cash-dialog .cash-field input { min-height:60px; padding:0 14px; font-size:30px; font-weight:700; text-align:right; font-variant-numeric:tabular-nums; }
.cash-dialog .cash-change { min-height:56px; margin:0 0 6px; font-size:18px; display:flex; align-items:center; justify-content:center; gap:8px; }
.cash-dialog .cash-change strong { color:var(--sirius-gold); font-size:44px; line-height:1; }
.cash-dialog .cash-change.bad { color:var(--sirius-danger-text); font-weight:600; }
.cash-dialog .cash-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.cash-dialog .cash-actions button { min-height:52px; margin:0; }

/* Sirius membres : panier bordeaux foncé (aucun rouge vif) et bandeau « consommation interne ». Le vert « offert » reste vert. */
.members-toggle, .event-till .members-toggle, .checkout-cart .members-toggle { min-height:var(--sirius-cart-touch); border:1px solid var(--sirius-gold); border-radius:var(--sirius-radius-md); background:transparent; color:var(--sirius-gold); font-weight:700; }
.members-toggle[aria-pressed=true], .event-till .members-toggle[aria-pressed=true], .checkout-cart .members-toggle[aria-pressed=true] { background:rgba(226,178,107,.16); border-color:var(--sirius-gold); color:var(--sirius-gold); }
.members-banner { margin:0; padding:10px 12px; border-radius:var(--sirius-radius-md); background:#4F1A26; color:var(--sirius-text); font-weight:700; text-align:center; }
.cart-panel[data-members] { --sirius-cart-bg:#22141A; --sirius-cart-group:#3A141D; --sirius-cart-row:#4F1A26; --sirius-cart-foot:#3A141D; border-color:#7A2F40; }
.cart-panel[data-members] .cart-panel-head, .cart-panel[data-members] .cart-panel-foot { border-color:#7A2F40; }

/* Bons crowdfunding : ligne et bouton BLEUS (le vert reste réservé aux offerts, le bordeaux au mode Sirius membres). */
.cart-row[data-kind=voucher] { border-color:var(--sirius-voucher,#8DB8FF); }
.cart-row[data-kind=voucher] .cart-row-label, .cart-row[data-kind=voucher] input { color:var(--sirius-voucher,#8DB8FF); }
.cart-voucher-add { display:block; width:100%; margin-top:6px; min-height:var(--sirius-cart-touch); border:1px dashed var(--sirius-voucher,#8DB8FF); border-radius:var(--sirius-radius-md); background:transparent; color:var(--sirius-voucher,#8DB8FF); font-weight:600; }
.cart-row-summary .cart-summary-voucher { color:var(--sirius-voucher,#8DB8FF); font-weight:600; }
.voucher-balance { margin:0; padding:8px 12px; border:1px solid var(--sirius-voucher,#8DB8FF); border-radius:var(--sirius-radius-md); color:var(--sirius-voucher,#8DB8FF); font-weight:600; }

/* Photo de la bière (fiche Bière) et tuiles « À la pression » de la Vente directe : photo + nom + litres, cadre or sur la bière choisie. */
.beer-photo { display:grid; gap:6px; justify-items:start; margin-bottom:8px; }
.beer-photo .event-beer-logo, .beer-photo .event-photo-placeholder { width:100%; max-width:220px; height:110px; object-fit:contain; border-radius:var(--sirius-radius-md); background:var(--sirius-product-media); }
.beer-photo .reference-actions { display:flex; gap:8px; flex-wrap:wrap; }
.beer-photo-change { display:inline-flex; align-items:center; cursor:pointer; }
.pressure-beer-tiles { display:flex; gap:10px; overflow-x:auto; padding:4px 2px 8px; }
.pressure-beer-tile { flex:0 0 auto; width:150px; display:grid; gap:4px; justify-items:center; padding:0 0 8px; border:1px solid var(--sirius-gold-line); border-radius:var(--sirius-radius-md); background:var(--sirius-cart-row); color:var(--sirius-text); text-align:center; cursor:pointer; }
.pressure-beer-tile .event-beer-logo, .pressure-beer-tile .event-photo-placeholder { width:100%; height:84px; object-fit:contain; padding:4px; box-sizing:border-box; border-radius:var(--sirius-radius-md) var(--sirius-radius-md) 0 0; background:var(--sirius-product-media); }
.pressure-beer-tile strong { padding:0 6px; font-size:15px; }
.pressure-beer-tile small { padding:0 6px; color:var(--sirius-text-muted); }
.pressure-beer-tile.selected, .pressure-beer-tile[aria-pressed=true] { border:2px solid var(--sirius-gold); box-shadow:0 0 0 1px var(--sirius-gold); }
