#suggestions .suggestion { display:flex; align-items:center; gap:12px; }
#suggestions .suggestion::after { content:none; }
#suggestions .suggestion img { width:48px; height:48px; flex:none; object-fit:cover; border-radius:8px; background:#f1eee5; }
.suggestion-name { flex:1; min-width:0; }
#suggestions .badge { font-size:12px; white-space:normal; text-align:center; }
#suggestions .available { background:#d9f3df; color:#185a2c; }
#suggestions .limited { background:#ffedcc; color:#854700; }
#suggestions .soon { background:#e0edff; color:#174e94; }
#suggestions .unavailable { background:#ffe2e1; color:#963331; }
.ctr-cart-launch { position:fixed; bottom:20px; right:20px; z-index:900; border:0; border-radius:30px; padding:15px 22px; background:#215b3b; color:white; box-shadow:0 5px 24px #0003; cursor:pointer; font:600 16px system-ui; }
.ctr-cart { width:min(620px,calc(100% - 24px)); max-height:85dvh; overflow:auto; box-sizing:border-box; padding:26px; border:1px solid #d7dfd8; border-radius:20px; color:#243b2c; background:#fffdf7; font:16px/1.5 system-ui; }
.ctr-cart::backdrop { background:#10291e80; }
.ctr-cart-heading { display:flex; gap:12px; align-items:center; justify-content:space-between; }
.ctr-cart h2 { font-size:24px; margin:0; }
.ctr-cart button { cursor:pointer; border:1px solid #b9cabc; border-radius:8px; padding:10px 14px; background:white; color:#215b3b; font:inherit; }
.ctr-cart button:disabled { opacity:.5; cursor:wait; }
.ctr-cart-row { padding:16px 0; border-bottom:1px solid #d7dfd8; display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.ctr-cart-row label { flex:1; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ctr-cart-row input { width:65px; padding:8px; font:inherit; }
.ctr-cart-row p { width:100%; margin:0; color:#963331; }
.ctr-cart-actions { display:flex; gap:12px; flex-wrap:wrap; }
.ctr-cart [data-transfer] { background:#215b3b; color:white; }
.ctr-cart-note { font-size:13px; }
.ctr-cart [data-message] { min-height:24px; }
@media(max-width:540px) {
 #suggestions .suggestion { gap:8px; flex-wrap:wrap; }
 #suggestions .badge { margin-left:56px; }
 .ctr-cart { padding:18px; }
 .ctr-cart-launch { bottom:12px; right:12px; }
}

/* Panier : accès visible, miniatures et proposition discrète. */
.ctr-cart-launch {
    background:#ffd65a; color:#173f29; border:3px solid #215b3b;
    border-radius:18px; padding:18px 25px; font-size:18px; font-weight:800;
    box-shadow:0 6px 26px #173f294d,0 0 0 5px #fff; min-height:60px;
}
.ctr-cart-launch:hover { background:#ffe387; transform:translateY(-2px); }
.ctr-cart-launch:focus-visible { outline:4px solid #174e94; outline-offset:6px; }
.ctr-cart-thumbnail { flex:none; width:56px; height:56px; object-fit:cover; border-radius:10px; background:#e9eee5; }
.ctr-cart-row label { min-width:140px; }
.ctr-cart-suggestion { margin:18px 0 0; padding:12px; border:1px solid #cbdcbd; border-radius:12px; background:#f0f5e9; font-size:14px; }
.ctr-cart-suggestion[hidden] { display:none; }
.ctr-cart-suggestion-title { margin:0 0 8px; font-weight:700; }
.ctr-cart-suggestion > div { display:flex; align-items:center; gap:12px; }
.ctr-cart-suggestion span { flex:1; overflow-wrap:anywhere; }
.ctr-cart-suggestion .ctr-cart-thumbnail { width:44px; height:44px; }
.ctr-cart-opening { padding:12px; border-radius:8px; background:#fff0c4; color:#684c07; font-weight:600; }
.ctr-cart [data-transfer] { width:100%; font-weight:700; }
.ctr-cart [data-transfer]:disabled { cursor:not-allowed; opacity:.65; }
@media(max-width:540px) {
 .ctr-cart-launch { padding:14px 18px; font-size:16px; bottom:max(14px,env(safe-area-inset-bottom)); }
 .ctr-cart-row { gap:8px; }
 .ctr-cart-row > button { margin-left:64px; padding:6px 12px; font-size:14px; }
}

.ctr-cart-warning { margin:16px 0; padding:16px; border:2px solid #c77b14; border-left-width:6px; border-radius:10px; background:#fff0cc; color:#633a05; font-size:15px; }
.ctr-cart-warning strong { display:block; }
.ctr-cart-warning p { margin:8px 0 0; }
.ctr-cart [data-transfer].is-loading { opacity:1; cursor:progress; }
.ctr-cart [data-transfer].is-loading::before { content:''; display:inline-block; width:16px; height:16px; margin-right:10px; vertical-align:middle; border:3px solid #ffffff66; border-top-color:#fff; border-radius:50%; animation:ctr-cart-spin .8s linear infinite; }
@keyframes ctr-cart-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .ctr-cart [data-transfer].is-loading::before { animation:none; } }

.ctr-cart-total { margin-top:18px; padding:18px; background:#edf4e8; border:1px solid #c8dac2; border-radius:12px; }
.ctr-cart-total > div { display:flex; align-items:center; justify-content:space-between; gap:15px; font-weight:700; }
.ctr-cart-total strong { font-size:24px; white-space:nowrap; }
.ctr-cart-total p { margin:6px 0; font-size:14px; }
.ctr-cart-total small { display:block; font-size:12px; color:#4b6550; }

/* Le panier reste au-dessus des actions de réinitialisation et de retour en haut. */
.ctr-cart-launch {
 bottom:var(--ctr-cart-bottom,calc(100px + env(safe-area-inset-bottom)));
 right:max(20px,env(safe-area-inset-right)); z-index:960;
 min-height:74px; padding:21px 30px; font-size:21px;
 max-width:calc(100vw - 40px);
}
@media(max-width:540px) {
 .ctr-cart-launch { min-height:66px; padding:18px 23px; font-size:19px; right:max(14px,env(safe-area-inset-right)); max-width:calc(100vw - 28px); }
}

/* Accès compact au panier sur mobile, avec nom accessible conservé. */
.ctr-cart-launch { display:inline-flex; align-items:center; justify-content:center; gap:10px; }
.ctr-cart-launch-count { min-width:24px; text-align:center; }
@media(max-width:680px) {
 .ctr-cart-launch {
  min-height:48px; min-width:74px; padding:8px 11px; gap:7px;
  font-size:18px; border-width:2px; border-radius:15px;
  box-shadow:0 4px 14px #173f2933,0 0 0 2px #fff;
 }
 .ctr-cart-launch-label { display:none; }
 .ctr-cart-launch-icon { font-size:23px; line-height:1; }
 .ctr-cart-launch-count {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:24px; height:24px; padding:0 5px; border-radius:12px;
  font-size:13px; font-weight:800; background:#215b3b; color:white;
 }
}
/* Découverte compacte, chargée à l'approche du pied de page. */
.ctr-discovery { display:grid; grid-template-columns:88px minmax(0,1fr) auto; align-items:center; gap:18px; margin-top:30px; margin-bottom:16px; padding:17px 20px; border:1px solid #d4dfc9; border-radius:15px; background:#f0f5e8; color:#243c2a; box-sizing:border-box; }
.ctr-discovery > img { width:88px; height:88px; object-fit:cover; border-radius:10px; background:#e0e8d7; }
.ctr-discovery-copy { min-width:0; }
.ctr-discovery-caption { margin:0 0 4px; font:700 10px/1.4 system-ui,sans-serif; letter-spacing:1px; text-transform:uppercase; color:#5c7751; }
.ctr-discovery h2 { margin:0; font-size:19px; line-height:1.3; overflow-wrap:anywhere; }
.ctr-discovery-description { margin:6px 0 0; font-size:14px; line-height:1.5; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.ctr-discovery-add { border:0; border-radius:9px; background:#245c3b; color:white; padding:12px 15px; min-height:44px; font:700 13px/1.4 system-ui,sans-serif; cursor:pointer; }
.ctr-discovery-add:hover { background:#173f29; }
.ctr-discovery-add:focus-visible { outline:3px solid #b98518; outline-offset:4px; }
@media(max-width:680px) {
 .ctr-discovery { grid-template-columns:64px minmax(0,1fr); gap:10px 13px; padding:14px; }
 .ctr-discovery > img { width:64px; height:64px; align-self:start; }
 .ctr-discovery h2 { font-size:17px; }
 .ctr-discovery-description { font-size:13px; }
 .ctr-discovery-add { grid-column:2; justify-self:start; padding:9px 12px; font-size:12px; }
}

.ctr-blog-search { margin:20px 0 12px; }
.ctr-blog-search label { display:block; font-weight:700; margin-bottom:8px; }
.ctr-blog-search>div { display:flex; gap:10px; }
.ctr-blog-search input { flex:1; min-width:0; padding:12px 15px; border:1px solid #c6d5c1; border-radius:10px; background:white; font:inherit; }
.ctr-blog-count { color:#526a55; font-size:14px; margin-bottom:20px; }
.ctr-blog-pagination { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; align-items:center; margin:24px 0; }
.ctr-blog-pagination a { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px 13px; border:1px solid #c9d8c0; border-radius:9px; background:white; color:#245c3b; font-weight:700; text-decoration:none; }
.ctr-blog-pagination a[aria-current="page"] { background:#245c3b; color:white; }
@media(max-width:540px) { .ctr-blog-search>div { flex-direction:column; } .ctr-blog-pagination { gap:5px; } }

/* Validation : action principale, état fermé distinct et attente conservée. */
.ctr-cart [data-transfer] {
 position:relative; min-height:64px; padding:17px 46px 17px 20px;
 border:2px solid #d4b45b; border-radius:15px;
 background:linear-gradient(135deg,#357a49 0%,#174d35 100%);
 color:#fff; font-size:17px; font-weight:800; line-height:1.45;
 box-shadow:0 7px 18px #174d3530,inset 0 1px 0 #ffffff25;
 transition:background .18s ease,box-shadow .18s ease,transform .18s ease;
}
.ctr-cart [data-transfer]:not(:disabled)::after {
 content:'→'; position:absolute; right:18px; top:50%;
 transform:translateY(-50%); font-size:25px; font-weight:700;
}
.ctr-cart [data-transfer]:not(:disabled):hover {
 background:linear-gradient(135deg,#408e55 0%,#215e40 100%);
 box-shadow:0 10px 24px #174d3545,inset 0 1px 0 #ffffff30;
 transform:translateY(-2px);
}
.ctr-cart [data-transfer]:not(:disabled):active { transform:translateY(0); }
.ctr-cart [data-transfer]:focus-visible { outline:3px solid #b58112; outline-offset:4px; }
.ctr-cart [data-transfer]:disabled:not(.is-loading) {
 background:#e6e9e4; border-color:#cfd5ca; color:#6b7568;
 box-shadow:none; opacity:1; cursor:not-allowed; transform:none;
 padding-right:20px;
}
.ctr-cart [data-transfer].is-loading { padding-right:20px; cursor:progress; opacity:1; }
@media(max-width:540px) {
 .ctr-cart [data-transfer] { min-height:60px; font-size:15px; padding-top:15px; padding-bottom:15px; }
}
@media(prefers-reduced-motion:reduce) {
 .ctr-cart [data-transfer] { transition:none; }
 .ctr-cart [data-transfer]:not(:disabled):hover { transform:none; }
}

.site-nav-count {
 display:inline-flex; align-items:center; justify-content:center;
 min-width:22px; min-height:22px; padding:2px 7px; margin-left:5px;
 border-radius:999px; background:#e2edcf; color:#254d2f;
 font:800 12px/1.25 system-ui,sans-serif; vertical-align:middle;
}
.site-nav-count[hidden] { display:none; }
.site-nav-link.is-active .site-nav-count { background:#fff0b9; color:#385226; }

/* Ne pas centrer des liens dans un conteneur plafonné plus étroit qu'eux. */
.site-nav-bar .site-nav {
 width:max-content; min-width:100%; max-width:none;
 box-sizing:border-box; padding-inline:12px;
}
.site-nav-count {
 box-sizing:content-box; width:4ch; flex:0 0 4ch;
 font-variant-numeric:tabular-nums;
}
.site-nav-count[hidden] { display:inline-flex; visibility:hidden; }
@media(min-width:801px) {
 .site-nav-bar .site-nav { gap:4px; }
 .site-nav-bar .site-nav-link { padding-inline:clamp(8px,.8vw,14px); font-size:clamp(.9rem,.95vw,1.02rem); }
}

.ctr-cart-toast { position:fixed; bottom:calc(var(--ctr-cart-bottom, 100px) + 76px); right:20px; z-index:1200; max-width:min(390px,calc(100vw - 40px)); padding:14px 18px; border-radius:16px; background:#205c38; color:#fff; box-shadow:0 5px 24px #0003; font:600 14px/1.5 system-ui,sans-serif; }
.ctr-cart-toast[hidden] { display:none; }
.ctr-cart-launch.is-added { animation:ctr-added-bounce .55s ease-out; }
@keyframes ctr-added-bounce { 0%,100% { transform:scale(1); } 40% { transform:scale(1.12) translateY(-5px); } }
@media(prefers-reduced-motion:reduce) { .ctr-cart-launch.is-added { animation:none; } }

/* Panier : hiérarchie plus lisible et cartes compactes sur mobile. */
.ctr-cart { padding:28px; border:1px solid #d8e2d1; border-radius:24px; box-shadow:0 24px 80px #10291e40; scrollbar-width:thin; scrollbar-color:#a5b99b #fffdf7; }
.ctr-cart::backdrop { background:#10291e99; backdrop-filter:blur(3px); }
.ctr-cart-heading { padding-bottom:16px; border-bottom:1px solid #dce5d5; align-items:flex-start; }
.ctr-cart h2 { font-size:clamp(20px,4vw,26px); letter-spacing:-.5px; line-height:1.25; }
.ctr-cart-summary { margin:6px 0 0; font-size:13px; font-weight:650; color:#52684a; }
.ctr-cart [data-close] { flex:none; display:grid; place-items:center; width:40px; height:40px; padding:0; border-radius:50%; background:#eef3e9; }
.ctr-cart-heading + p { color:#60705b; font-size:12px; line-height:1.6; margin:14px 0 18px; }
.ctr-cart [data-items] { display:grid; gap:10px; }
.ctr-cart-row { padding:12px; border:1px solid #e0e7da; border-radius:14px; background:#fff; gap:12px; }
.ctr-cart-row label { min-width:0; overflow-wrap:anywhere; font-size:14px; font-weight:650; }
.ctr-cart-row input { box-sizing:border-box; flex:0 0 62px; width:62px; min-height:42px; padding:8px; border:1px solid #b7c8ad; border-radius:9px; color:#24482c; background:#f7faf3; text-align:center; font-weight:700; }
.ctr-cart-row > button { padding:8px 10px; font-size:12px; border-color:#e3d7cf; color:#854d35; background:#fffaf7; }
.ctr-cart button:focus-visible,.ctr-cart input:focus-visible { outline:3px solid #b58112; outline-offset:3px; }
.ctr-cart-total { background:linear-gradient(135deg,#eef5e7,#f8fbf3); border-radius:16px; padding:18px 20px; }
.ctr-cart-total strong { font-size:28px; color:#215b3b; }
.ctr-cart-minimum { margin:14px 0; padding:14px 16px; border:1px solid #e8c578; border-left:5px solid #c48b21; border-radius:12px; background:#fff6df; color:#67450c; font-size:14px; line-height:1.5; }
.ctr-cart-minimum[hidden] { display:none; }
.ctr-cart-minimum strong { display:block; font-size:15px; }
.ctr-cart-minimum p { margin:6px 0 0; }
.ctr-cart-warning { font-size:13px; line-height:1.55; }
.ctr-cart [data-message]:empty { display:none; }
.ctr-cart [data-clear] { margin-inline:auto; border-color:transparent; background:transparent; font-size:13px; text-decoration:underline; text-underline-offset:3px; }
.ctr-cart-note { text-align:center; color:#60705b; margin-bottom:0; }
@media(max-width:540px) {
 .ctr-cart { padding:18px 14px; border-radius:20px; max-height:90dvh; }
 .ctr-cart-row { display:grid; grid-template-columns:44px minmax(0,1fr); gap:8px 10px; padding:10px; }
 .ctr-cart-row .ctr-cart-thumbnail { width:44px; height:44px; }
 .ctr-cart-row label { gap:8px; font-size:13px; }
 .ctr-cart-row input { flex-basis:54px; width:54px; }
 .ctr-cart-row > button { grid-column:2; justify-self:start; margin-left:0; }
 .ctr-cart-row p { grid-column:1/-1; font-size:13px; }
 .ctr-cart-total { padding:14px; }
 .ctr-cart-total > div { gap:8px; font-size:14px; }
 .ctr-cart-total strong { font-size:25px; }
}

.ctr-cart-row.is-out-of-stock { background:#f0f1ef; border-color:#d4d8d1; color:#62685f; }
.ctr-cart-row.is-out-of-stock .ctr-cart-thumbnail { filter:grayscale(1); opacity:.55; }
.ctr-cart-row.is-out-of-stock input { background:#e6e8e3; color:#62685f; border-color:#cbd0c7; cursor:not-allowed; }
.ctr-cart-row.is-out-of-stock p { color:#565e50; font-size:13px; font-weight:600; }
.ctr-cart-unavailable { margin:0 0 16px; padding:14px 16px; border:1px solid #c6cec0; border-left:5px solid #758269; border-radius:12px; background:#edf0e9; color:#384431; font-size:14px; line-height:1.55; }
.ctr-cart-unavailable[hidden] { display:none; }
