/* Catalogue de location : s'appuie sur les variables du thème Voltez */
.vzc{margin-top:24px;padding-bottom:40px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Barre d'outils */
.vzc-outils{border-top:1px solid var(--filet);border-bottom:1px solid var(--filet);padding:20px 0;margin-bottom:56px;display:grid;gap:18px}
.vzc-filtres{display:flex;flex-wrap:wrap;gap:8px}
.vzc button{font:400 14px/1 Poppins,sans-serif;color:var(--os);background:none;border:1px solid var(--filet);border-radius:var(--r-btn);padding:11px 16px;cursor:pointer;transition:border-color .15s ease-out,color .15s,background .15s}
.vzc button:hover:not(:disabled){border-color:#5a5f63;color:var(--blanc)}
.vzc button:disabled{opacity:.35;cursor:default}
.vzc .vzc-filtre[aria-pressed=true],.vzc-taxe [aria-pressed=true]{border-color:var(--blanc);color:var(--blanc)}
.vzc-reglages{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center}
.vzc-recherche{flex:1 1 280px}
.vzc-recherche input{width:100%;background:#000;color:var(--blanc);border:1px solid var(--filet);border-radius:var(--r-btn);padding:12px 14px;font:300 15px Poppins,sans-serif}
.vzc-recherche input:focus{outline:none;border-color:var(--blanc)}
.vzc-recherche input::placeholder{color:var(--fer)}
.vzc-duree{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--cendre)}
.vzc-stepper,.vzc-qte{display:inline-flex;align-items:center;border:1px solid var(--filet);border-radius:var(--r-btn)}
.vzc .vzc-stepper button,.vzc .vzc-qte button{border:0;padding:10px 14px;font-size:16px}
.vzc-jours{min-width:68px;text-align:center;color:var(--blanc);font-size:14px}
.vzc-taxe{display:inline-flex;gap:6px}
.vzc .vzc-taxe button{padding:10px 14px}
.vzc-note{margin:0;font-size:13px;color:var(--cendre)}
.vzc-note a{color:var(--os)}

/* Rayons */
.vzc-rayon{margin-bottom:80px;padding:0}
.vzc-rayon > h2{font:500 clamp(30px,3.4vw,46px)/1.05 Biarty,sans-serif;letter-spacing:-.03em;color:var(--blanc);margin:0 0 28px!important}
.vzc-groupe{margin-bottom:44px}
.vzc-groupe > h3{font:400 15px Poppins,sans-serif!important;color:var(--cendre)!important;letter-spacing:0!important;margin:0 0 16px!important;padding-bottom:12px;border-bottom:1px solid var(--filet)}
.vzc-grille{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.vzc-rayon[data-rayon=packs] .vzc-grille{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Article */
.vzc-article{display:flex;flex-direction:column;border:1px solid var(--filet);border-radius:var(--r-carte);overflow:hidden}
.vzc-article[hidden],.vzc-groupe[hidden],.vzc-rayon[hidden]{display:none}
.vzc-visuel{position:relative;aspect-ratio:1/1;background:#fff;display:grid;place-items:center;overflow:hidden}
.vzc-rayon[data-rayon=packs] .vzc-visuel{aspect-ratio:3/1}
.vzc-visuel img{position:absolute;inset:16px;width:calc(100% - 32px)!important;height:calc(100% - 32px)!important;max-width:none;object-fit:contain;mix-blend-mode:multiply;border:0!important;border-radius:0!important}
.vzc-sans-photo{background:radial-gradient(closest-side,rgba(223,4,125,.16),transparent 75%),#000;border-bottom:1px solid var(--filet)}
.vzc-sans-photo span{font:400 clamp(13px,1.2vw,16px)/1.3 Onder,sans-serif;color:var(--os);text-align:center;letter-spacing:.02em}
.vzc-badge{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:8px;background:#000;color:var(--blanc);border-radius:999px;padding:6px 12px;font-size:12px}
.vzc-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--orange)}
.vzc-corps{display:flex;flex-direction:column;gap:10px;padding:18px 18px 20px;flex:1}
.vzc-corps h4{font:400 15px/1.4 Poppins,sans-serif;color:var(--blanc);margin:0}
.vzc-desc{margin:0!important;font-size:13px;line-height:1.55;color:var(--cendre)!important}
.vzc-prix{margin:auto 0 0!important;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;padding-top:6px}
.vzc-des{font-size:13px;color:var(--cendre)}
.vzc-montant{font:500 24px/1 Biarty,sans-serif;letter-spacing:-.02em;color:var(--blanc)}
.vzc-unite{font-size:12px;color:var(--cendre)}
.vzc-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.vzc .vzc-ajouter{width:100%;padding:11px 12px;font-size:13px}
.vzc-qte output{min-width:28px;text-align:center;color:var(--blanc);font-size:14px}
.vzc-ajoute{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--os)}
.vzc-ajoute::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--orange)}

/* Grille des coefficients */
.vzc-coefficients{border-top:1px solid var(--filet);padding-top:24px;margin-bottom:40px}
.vzc-coefficients summary{cursor:pointer;color:var(--blanc);font:400 16px Poppins,sans-serif}
.vzc-coefficients p{font-size:14px;color:var(--cendre)!important;max-width:680px;margin:16px 0}
.vzc-table{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--filet);border-radius:var(--r-btn);overflow:hidden}
.vzc-table span{display:flex;justify-content:space-between;gap:8px;padding:9px 12px;font-size:13px;color:var(--os);border-bottom:1px solid var(--filet);border-right:1px solid var(--filet)}
.vzc-table b{font-weight:300;color:var(--cendre)}

/* Barre de sélection */
.vzc-panier{position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(0,0,0,.86);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--filet)}
.vzc-panier .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;max-width:none!important}
.vzc-panier-resume{margin:0!important;font-size:15px;color:var(--os)}
.vzc-panier-resume b{font-weight:400;color:var(--blanc)}
.vzc-panier-resume span{display:block;font-size:12px;color:var(--cendre)}
.vzc-panier-actions{display:flex;gap:10px;align-items:center}
.vzc .vzc-panier .btn{padding:12px 18px}
body:has(.vzc-panier:not([hidden])) .pied{padding-bottom:110px}
.vzc-vide{border:1px solid var(--filet);border-radius:var(--r-btn);padding:18px 20px;max-width:680px}

/* Sélection rappelée sur la page contact */
.vzd-selection{border:1px solid var(--filet);border-radius:var(--r-carte);padding:22px 24px;margin:0 0 36px}
.vzd-selection-titre{margin:0 0 10px!important;color:var(--blanc)!important;font-weight:400}
.vzd-selection ul{margin:0 0 12px;padding-left:1.1em;font-size:14px}
.vzd-selection-total{margin:0!important;font-size:14px;color:var(--cendre)!important}

@media (max-width:1000px){
  .vzc-grille{grid-template-columns:repeat(3,minmax(0,1fr))}
  .vzc-table{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .vzc-grille,.vzc-rayon[data-rayon=packs] .vzc-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .vzc-corps{padding:14px 12px 14px}
  .vzc-montant{font-size:20px}
  .vzc-filtres{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:0 16px 4px;scrollbar-width:none}
  .vzc-filtres button{flex:none}
  .vzc-panier .wrap{flex-direction:column;align-items:stretch;gap:10px}
  .vzc-panier-actions{justify-content:space-between}
  .vzc-panier-actions .btn{flex:1;justify-content:center}
  .vzc-table{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:420px){
  .vzc-rayon[data-rayon=packs] .vzc-grille{grid-template-columns:1fr}
}

/* ---------- Lien des cartes vers la fiche ---------- */
.vzc-corps h4 a{color:inherit;text-decoration:none}
.vzc-corps h4 a:hover{text-decoration:underline;text-decoration-color:var(--filet);text-underline-offset:4px}
a.vzc-visuel{text-decoration:none}

/* ---------- Fiche produit ---------- */
.vzc-page{padding:120px 0 40px}
.vzc-ariane{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--cendre);margin-bottom:28px}
.vzc-ariane a{color:var(--cendre);text-decoration:none}
.vzc-ariane a:hover{color:var(--blanc)}
.vzc-ariane [aria-current]{color:var(--os)}
.vzc-fiche{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:start;margin:0}
.vzc-fiche-visuel{position:sticky;top:100px;aspect-ratio:1/1;background:#fff;border-radius:var(--r-carte);overflow:hidden;display:grid;place-items:center}
.vzc-fiche-visuel img{position:absolute;inset:7%;width:86%;height:86%;object-fit:contain;mix-blend-mode:multiply}
.vzc-fiche-visuel.vzc-sans-photo{background:radial-gradient(closest-side,rgba(223,4,125,.18),transparent 75%),#000;border:1px solid var(--filet)}
.vzc-fiche-visuel.vzc-sans-photo span{font:400 clamp(18px,2vw,28px)/1.3 Onder,sans-serif;color:var(--os)}
.vzc-fiche-meta{display:flex;gap:18px;margin:0 0 14px;font-size:14px;color:var(--cendre)}
.vzc-fiche-achat h1{font-size:clamp(32px,3.4vw,50px);margin-bottom:18px}
.vzc-fiche-accroche{color:var(--os);font-size:17px;max-width:46ch;margin:0 0 28px}
.vzc-fiche-prix{border-top:1px solid var(--filet);padding-top:24px;margin-bottom:24px}
.vzc-fiche-prix .vzc-prix{padding:0;margin:0}
.vzc-fiche-prix .vzc-montant{font-size:44px}
.vzc-fiche-prix .vzc-unite{font-size:15px}
.vzc-fiche-ttc{margin:6px 0 0;font-size:14px;color:var(--cendre)}
.vzc-fiche-reglages{display:flex;flex-wrap:wrap;gap:18px 24px;margin-bottom:22px}
.vzc-champ-fiche{display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--cendre)}
.vzc-champ-fiche input{background:#000;color:var(--blanc);border:1px solid var(--filet);border-radius:var(--r-btn);padding:10px 12px;font:300 15px Poppins,sans-serif;color-scheme:dark}
.vzc-champ-fiche input:focus{outline:none;border-color:var(--blanc)}
.vzc-qte-val{min-width:40px;text-align:center;color:var(--blanc);font-size:15px}
.vzc-fiche-total{margin:0 0 18px;font-size:15px;color:var(--os)}
.vzc-fiche-total b{font-weight:500;color:var(--blanc)}
.vzc-fiche-total span{color:var(--cendre);font-size:14px}
.vzc-fiche-boutons{display:flex;flex-wrap:wrap;gap:12px}
.vzc .vzc-fiche-ajouter{background:var(--blanc);color:#000;border-color:var(--blanc);padding:14px 22px;font-size:15px}
.vzc .vzc-fiche-ajouter:hover{background:transparent;color:var(--blanc)}
.vzc-fiche-etat{min-height:1.5em;margin:14px 0 0;font-size:14px;color:var(--os)}
.vzc-fiche-etat:not(:empty)::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--orange);margin-right:10px;vertical-align:middle}
.vzc-rassurance{list-style:none;padding:0;margin:28px 0 0;border-top:1px solid var(--filet)}
.vzc-rassurance li{padding:14px 0;border-bottom:1px solid var(--filet);font-size:14px;color:var(--cendre)}
.vzc-rassurance b{font-weight:400;color:var(--os)}
.vzc-fiche-details{display:grid;gap:64px;max-width:820px;margin:96px 0 0}
.vzc-bloc,.vzc-associes{padding:0}
.vzc-bloc h2{font:500 clamp(26px,2.6vw,36px)/1.1 Biarty,sans-serif;letter-spacing:-.03em;color:var(--blanc);margin:0 0 22px}
.vzc-texte{color:var(--os);max-width:68ch}
.vzc-texte p{margin:0 0 1em}
.vzc-specs{margin:0;border-top:1px solid var(--filet)}
.vzc-specs div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:24px;padding:14px 0;border-bottom:1px solid var(--filet);font-size:15px}
.vzc-specs dt{color:var(--cendre)}
.vzc-specs dd{margin:0;color:var(--os)}
.vzc-inclus{margin:0;padding:0;list-style:none;border-top:1px solid var(--filet)}
.vzc-inclus li{padding:12px 0 12px 22px;border-bottom:1px solid var(--filet);position:relative;color:var(--os);font-size:15px}
.vzc-inclus li::before{content:"";position:absolute;left:0;top:22px;width:10px;height:1px;background:var(--orange)}
.vzc-associes{margin:110px 0 40px}
.vzc-associes > h2{font:500 clamp(26px,2.6vw,36px)/1.1 Biarty,sans-serif;letter-spacing:-.03em;color:var(--blanc);margin:0 0 24px}

@media (max-width:900px){
  .vzc-fiche{grid-template-columns:1fr;gap:32px}
  .vzc-fiche-visuel{position:relative;top:0;max-height:70vh}
  .vzc-fiche-details{margin-top:64px}
}
@media (max-width:640px){
  .vzc-page{padding-top:100px}
  .vzc-specs div{grid-template-columns:1fr;gap:2px}
  .vzc-fiche-prix .vzc-montant{font-size:36px}
  .vzc-fiche-boutons > *{flex:1;justify-content:center}
}

/* Quantités en parc */
.vzc-indispo{font-size:13px;color:var(--cendre);padding:11px 0}
.vzc-parc{font-size:13px;color:var(--cendre)}
.vzc button:disabled{opacity:.35;cursor:default}

/* ---------- Animations du catalogue ---------- */
/* Catégorie choisie : le bouton se remplit */
.vzc .vzc-filtre{transition:background .25s ease-out,color .25s ease-out,border-color .25s ease-out,transform .2s ease-out}
.vzc .vzc-filtre[aria-pressed=true]{background:var(--blanc);color:#000;border-color:var(--blanc)}
.vzc .vzc-filtre:active{transform:scale(.96)}
.vzc-taxe [aria-pressed=true]{background:var(--blanc);color:#000!important}

/* Articles qui entrent en cascade après un filtre ou une recherche */
@keyframes vzcEntre{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
.vzc-article.vzc-entre{animation:vzcEntre .55s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0) * 40ms)}

/* Cartes : élévation et zoom de la photo au survol */
.vzc-article{transition:border-color .2s ease-out,transform .3s cubic-bezier(.2,.7,.2,1)}
.vzc-article:hover{border-color:#5a5f63;transform:translateY(-4px)}
.vzc-visuel img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.vzc-article:hover .vzc-visuel img{transform:scale(1.06)}

/* Ajout à la sélection : la carte s'illumine */
@keyframes vzcPulse{0%{box-shadow:0 0 0 0 rgba(235,95,41,.55);border-color:var(--orange)}100%{box-shadow:0 0 0 14px rgba(235,95,41,0);border-color:var(--filet)}}
.vzc-article.vzc-pulse{animation:vzcPulse .7s ease-out}
.vzc-point-vol{position:fixed;z-index:60;width:12px;height:12px;border-radius:50%;background:var(--orange);box-shadow:0 0 18px rgba(235,95,41,.8);pointer-events:none}

/* Prix qui changent : petit défilement vertical */
@keyframes vzcTic{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.vzc-tic{display:inline-block;animation:vzcTic .35s cubic-bezier(.2,.7,.2,1)}
.vzc-fiche-total.vzc-tic{display:block}

/* Barre de sélection : glisse depuis le bas, le résumé rebondit quand il change */
@keyframes vzcPanier{from{transform:translateY(100%)}to{transform:none}}
.vzc-panier:not([hidden]){animation:vzcPanier .5s cubic-bezier(.2,.8,.2,1)}
@keyframes vzcRebond{0%{transform:scale(1)}35%{transform:scale(1.06)}100%{transform:scale(1)}}
.vzc-rebond{animation:vzcRebond .45s cubic-bezier(.3,.7,.3,1);transform-origin:left center}

/* Fiche : bouton validé */
@keyframes vzcValide{0%{box-shadow:0 0 0 0 rgba(235,95,41,.6)}100%{box-shadow:0 0 0 16px rgba(235,95,41,0)}}
.vzc .vzc-valide{animation:vzcValide .7s ease-out}

@media (prefers-reduced-motion:reduce){
  .vzc-article,.vzc-article:hover,.vzc-article:hover .vzc-visuel img{transform:none!important}
  .vzc-entre,.vzc-pulse,.vzc-tic,.vzc-rebond,.vzc-valide,.vzc-panier:not([hidden]){animation:none!important}
}
