/* =========================================================
   Fiche produit Accio

   Ordre des sections :
   1. Zone haute WooCommerce
   2. Formulaire de variations
   3. Contenu editorial Accio
   4. Reassurance produit et panier
   5. Galerie produit WooCommerce
   6. Produits similaires et suggestions
   7. Onglets, accordéons et informations complémentaires

   Sommaire détaillé :
   1. Zone haute : titre, prix, extrait, meta, stock et lien panier
   2. Variations : selects natifs, swatches, reset et ajout panier
   3. Contenu Accio : blocs éditoriaux, variantes et responsive
   4. Réassurance : repère conservé pour la cascade produit/panier
   5. Galerie : cadre, vignettes, contrôles, sticky et mobile
   6. Suggestions : related products, upsells et cartes WooCommerce
   7. Onglets : tabs, accordéons et informations complémentaires

   Note : les overrides mobiles de reassurance places dans la
   section galerie doivent rester apres la base reassurance.
   ========================================================= */

/* =========================================================
   1. Zone haute WooCommerce
   Titre, prix, extrait, meta, stock et lien panier.
   ========================================================= */

/* Titre produit */
.single-product .product_title {
  margin-bottom: 0.55rem;
  color: #161616;
  font-weight: 900;
  line-height: 0.98;
  letter-spacing: 0.06em;
}

/* Prix */
.single-product .summary .price {
  display: inline-block;
  margin: 0 0 1rem;
  padding: 0.38rem 0.6rem 0.34rem;
  background: #161616;
  color: #ffffff;
  border: 5px double #ffffff;
  box-shadow: 4px 4px 0 0 #161616;
  font-weight: 900;
  line-height: 1;
}

.single-product .summary .price .amount {
  color: inherit;
}

.single-product .summary .price del {
  opacity: 0.75;
}

.single-product .summary .price ins {
  text-decoration: none;
  color: inherit;
}

/* Extrait court */
.single-product .woocommerce-product-details__short-description {
  margin: 1rem 0 1.4rem;
  padding: 1rem 1rem 0.95rem;
  background: #ffffff;
  border: 2px solid #161616;
  box-shadow: 6px 6px 0 0 #161616;
  color: #161616;
}

/* Paragraphes dans l'extrait */
.single-product
  .woocommerce-product-details__short-description
  > *:first-child {
  margin-top: 0;
}

.single-product .woocommerce-product-details__short-description > *:last-child {
  margin-bottom: 0;
}

/* Meta produit */
.single-product .product_meta {
  margin-top: 1.2rem;
  padding-top: 0.9rem;
  border-top: 2px solid #161616;
  color: #161616;
  font-size: 0.88rem;
}

.single-product .product_meta > span {
  display: block;
  margin-top: 0.25rem;
}

.single-product .product_meta a {
  color: #161616;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.12em;
}

/* Si WooCommerce affiche le stock */
.single-product .stock {
  display: inline-block;
  margin: 0 0 1rem;
  padding: 0.3rem 0.55rem 0.28rem;
  border: 2px solid #161616;
  background: #ffffff;
  color: #161616;
  font-size: 0.72rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.entry-summary .ct-cart-actions .added_to_cart {
  border: 1px solid black;
}

/* Mobile */
@media (max-width: 768px) {
  .single-product .summary .price {
    box-shadow: 3px 3px 0 0 #161616;
  }

  .single-product .woocommerce-product-details__short-description {
    box-shadow: 4px 4px 0 0 #161616;
  }
}

/* =========================================================
   2. Formulaire de variations
   Selects natifs masques, swatches et bouton d'ajout au panier.
   ========================================================= */
.single-product .variations_form {
  --accio-ink: var(--accio-color-ink, #161616);
  --accio-paper: #ffffff;
  --accio-accent: var(--accio-color-accent, #a84729);
  --accio-muted: #8a8179;
  --accio-border-muted: #b7aea6;
  --accio-soft: #f7f3ef;
  --accio-field-font: var(--accio-font-base);
}

.single-product .variations {
  margin-bottom: 0;
}

.single-product .variations tbody,
.single-product .variations tr,
.single-product .variations td,
.single-product .variations th {
  display: block;
  width: 100%;
}

.single-product .variations tr + tr {
  margin-top: 1.05rem;
}

.single-product .variations th.label {
  margin-bottom: 0.5rem;
  padding: 0;
}

.single-product .variations td.value {
  position: relative;
  padding: 0;
}

.single-product .variations label {
  display: inline-block;
  margin-bottom: 0;
  font-size: 0.78rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--accio-ink);
}

.single-product .variations select {
  width: 100%;
  min-height: 56px;
  padding: 0 0.95rem;
  border: 2px solid var(--accio-ink);
  border-radius: 0;
  background: #ffffff;
  color: var(--accio-ink);
  box-shadow: 4px 4px 0 0 var(--accio-ink);
  font-family: var(--accio-field-font);
  font-weight: 600;
}

.single-product .variations select.accio-variation-select {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  white-space: nowrap;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
}

.single-product .accio-variation-swatches {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.5rem;
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.single-product .accio-variation-swatch {
  flex: 0 0 auto;
  min-width: 0;
  min-height: 42px;
  padding: 0.62rem 0.95rem;
  border: 2px solid var(--accio-ink);
  background: #ffffff;
  color: var(--accio-ink);
  font-size: 0.8rem;
  line-height: 1.2;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  box-shadow: none;
  transition:
    transform 0.18s ease,
    background-color 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease,
    opacity 0.18s ease;
}

.single-product .accio-variation-swatch:hover:not(:disabled),
.single-product .accio-variation-swatch:focus-visible {
  transform: translateY(-1px);
  border-color: var(--accio-ink);
  background: var(--accio-ink);
  color: #ffffff;
  box-shadow: inset 0 -4px 0 0 var(--accio-accent);
  outline: none;
}

.single-product .accio-variation-swatch.is-active {
  background: var(--accio-ink);
  color: #ffffff;
  border-color: var(--accio-ink);
  box-shadow: inset 0 -4px 0 0 var(--accio-accent);
}

.single-product .accio-variation-swatch.is-disabled,
.single-product .accio-variation-swatch:disabled,
.single-product .accio-variation-swatch[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 1;
  border-color: var(--accio-border-muted);
  background: var(--accio-soft);
  color: #6f6760;
  box-shadow: none;
  transform: none;
  pointer-events: none;
}

.single-product .accio-variation-swatch.is-active:disabled,
.single-product .accio-variation-swatch.is-active[aria-disabled="true"] {
  border-color: var(--accio-ink);
  background: var(--accio-ink);
  color: #ffffff;
  box-shadow: inset 0 -4px 0 0 var(--accio-accent);
}

.single-product .accio-variation-status {
  margin: 0.75rem 0 0;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--accio-muted);
}

.single-product .accio-variation-status.has-selection {
  color: var(--accio-accent);
}

.single-product .accio-variation-reset-row {
  display: none;
  max-width: 640px;
  margin-top: 1rem;
}

.single-product .accio-variation-reset-row.has-selection {
  display: flex;
  justify-content: flex-end;
}

.single-product .accio-variation-reset-row .reset_variations {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin-top: 0;
  padding: 0 0.85rem;
  border: 2px solid var(--accio-accent);
  background: #ffffff;
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--accio-accent);
  text-decoration: none;
}

.single-product .accio-variation-reset-row .reset_variations:hover,
.single-product .accio-variation-reset-row .reset_variations:focus-visible {
  background: var(--accio-accent);
  color: #ffffff;
  outline: none;
}

.single-product .single_variation_wrap {
  margin-top: 1.25rem;
}

.single-product .single_add_to_cart_button {
  border: 3px double #161616;
  border-radius: 0;
  background: #161616;
  color: #ffffff;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.single-product .single_add_to_cart_button:hover:not(:disabled):not(.disabled) {
  background: #a84729;
  color: #ffffff;
}

.single-product .single_add_to_cart_button:disabled,
.single-product .single_add_to_cart_button.disabled,
.single-product .single_add_to_cart_button.wc-variation-selection-needed {
  background: #b8b8b8;
  border-color: #161616;
  color: #ffffff;
  opacity: 1;
}

@media (max-width: 767px) {
  .single-product .accio-variation-reset-row {
    max-width: none;
  }

  .single-product .accio-variation-swatches {
    display: flex;
    gap: 0.5rem;
  }

  .single-product .accio-variation-swatch {
    flex: 1 1 calc(50% - 0.55rem);
    min-width: 0;
    min-height: 42px;
    padding: 0.62rem 0.75rem;
    font-size: 0.76rem;
  }
}

/* =========================================================
   3. Contenu editorial Accio
   Blocs Gutenberg réutilisables pour produits et créatures.
   ========================================================= */

/* ---------------------------------------------------------
   1. CONTENEUR GENERAL
   --------------------------------------------------------- */

.accio-fiche {
  --af-noir: var(--accio-color-ink, #161616);
  --af-blanc: var(--accio-color-white, #ffffff);
  --af-rouille: var(--accio-color-accent, #a84729);
  --af-texte: var(--accio-color-ink, #161616);

  --af-espace: 1.6rem;

  --af-ombre-forte: 8px 8px 0 0 var(--af-noir);
  --af-ombre-moyenne: 6px 6px 0 0 var(--af-noir);
  --af-ombre-legere: 4px 4px 0 0 var(--af-noir);

  color: var(--af-texte);
  line-height: 1.65;
}

.accio-fiche,
.accio-fiche * {
  box-sizing: border-box;
}

.accio-fiche > * + * {
  margin-top: 1.7rem;
}

.accio-fiche p {
  margin: 0 0 1em;
}

.accio-fiche p:last-child {
  margin-bottom: 0;
}

.accio-fiche img {
  display: block;
  max-width: 100%;
  height: auto;
}

.accio-fiche strong {
  font-weight: 800;
}

/* ---------------------------------------------------------
   2. HERO COMMUN
   --------------------------------------------------------- */

.accio-fiche-hero {
  position: relative;
  background: var(--af-noir);
  color: var(--af-blanc);
  border: 5px double var(--af-blanc);
  box-shadow:
    0 0 0 6px var(--af-blanc),
    8px 8px 0 0 var(--af-noir);
  overflow: visible;
}

.accio-fiche-hero__contenu {
  position: relative;
  padding: 1.7rem 1.1rem 1.2rem;
}

.accio-fiche-hero__cartouche {
  display: inline-block;
  margin-bottom: 0.9rem;
  padding: 0.45rem 0.7rem 0.4rem;
  background: var(--af-blanc);
  color: var(--af-noir);
  border: 7px double var(--af-noir);
  box-shadow: 4px 4px 0 0 var(--af-noir);
  font-size: 0.74rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.accio-fiche-hero__famille {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 0.85rem;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.92;
}

.accio-fiche-hero__titre {
  margin: 0;
  color: var(--af-blanc);
  font-size: clamp(1.9rem, 4.5vw, 3.6rem);
  line-height: 0.98;
  font-weight: 900;
  letter-spacing: -0.03em;
  text-wrap: balance;
}

.accio-fiche-hero__accroche {
  margin-top: 1rem;
  max-width: 64ch;
  color: rgba(255, 255, 255, 0.95);
  font-size: 1rem;
}

.accio-fiche-hero__ligne {
  width: 60px;
  height: 3px;
  margin-top: 1.2rem;
  background: var(--af-blanc);
}

/* ---------------------------------------------------------
   3. INTRO EDITORIALE COMMUNE
   --------------------------------------------------------- */

.accio-fiche-intro {
  position: relative;
  background: var(--af-blanc);
  border: 2px solid var(--af-noir);
  box-shadow:
    0 0 0 6px var(--af-blanc),
    8px 8px 0 0 var(--af-noir);
  overflow: visible;
}

.accio-fiche-intro__bande {
  height: 22px;
  background: var(--af-noir);
}

.accio-fiche-intro__contenu {
  position: relative;
  padding: 1.2rem 1rem 1rem;
}

.accio-fiche-intro__cartouche {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  padding: 0.4rem 0.7rem 0.35rem;
  background: var(--af-blanc);
  color: var(--af-noir);
  border: 2px solid var(--af-noir);
  box-shadow:
    0 0 0 2px var(--af-blanc),
    0 0 0 4px var(--af-noir);
  font-size: 0.72rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.accio-fiche-intro__texte {
  margin: 0;
  text-align: center;
}

/* ---------------------------------------------------------
   4. CARTES D'INFOS / POINTS CLES / IDENTITE
   --------------------------------------------------------- */

.accio-fiche-cartes,
.accio-fiche-grille-2,
.accio-fiche-grille-3 {
  display: grid;
  gap: 1rem;
}

.accio-fiche-cartes,
.accio-fiche-grille-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.accio-fiche-grille-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.accio-fiche-carte {
  background: var(--af-noir);
  border: 8px double var(--af-blanc);
  box-shadow: var(--af-ombre-legere);
  padding: 0.9rem 0.95rem;
}

.accio-fiche-carte__etiquette {
  display: inline-block;
  margin-bottom: 0.5rem;
  padding: 0.35rem 0.55rem 0.3rem;
  background: var(--af-blanc);
  color: var(--af-noir);
  border: 5px double var(--af-noir);
  font-size: 0.7rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.accio-fiche-carte__texte {
  color: var(--af-blanc);
  margin: 0;
}

/* ---------------------------------------------------------
   5. BLOCS DE CONTENU
   --------------------------------------------------------- */

.accio-fiche-bloc {
  background: var(--af-blanc);
  border: 2px solid var(--af-noir);
  box-shadow: var(--af-ombre-moyenne);
  padding: 1rem 1rem 0.95rem;
}

.accio-fiche-bloc__titre {
  margin: 0 0 0.8rem;
  font-size: 1.15rem;
  line-height: 1.1;
  font-weight: 900;
}

.accio-fiche-bloc__titre--ligne {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.accio-fiche-bloc__titre--ligne::after {
  content: "";
  flex: 1 1 auto;
  height: 2px;
  background: var(--af-noir);
}

.accio-fiche-bloc__contenu > *:first-child {
  margin-top: 0;
}

.accio-fiche-bloc__contenu > *:last-child {
  margin-bottom: 0;
}

/* ---------------------------------------------------------
   6. LISTES
   --------------------------------------------------------- */

.accio-fiche-liste,
.accio-fiche ul.accio-fiche-liste {
  list-style: none;
  padding-left: 0;
  margin-left: 0;
}

.accio-fiche-liste li {
  position: relative;
  padding-left: 1rem;
}

.accio-fiche-liste li + li {
  margin-top: 0.45rem;
}

.accio-fiche-liste li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 7px;
  height: 7px;
  background: var(--af-rouille);
  border: 1px solid var(--af-noir);
  transform: translateY(-50%);
}

/* ---------------------------------------------------------
   7. ENCADRES
   --------------------------------------------------------- */

.accio-fiche-encadre {
  background: var(--af-blanc);
  border: 2px solid var(--af-noir);
  box-shadow: var(--af-ombre-moyenne);
  padding: 1rem;
}

.accio-fiche-encadre__titre {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.accio-fiche-encadre--info,
.accio-fiche-encadre--note {
  background: var(--af-blanc);
  color: var(--af-noir);
  border: 15px double var(--af-noir);
}

.accio-fiche-encadre--attention {
  background: var(--af-blanc);
  color: var(--af-noir);
  border: 2px double var(--af-noir);
}

.accio-fiche-encadre--attention .accio-fiche-encadre__titre {
  color: var(--af-noir);
}

/* ---------------------------------------------------------
   8. TABLEAU COMMUN
   --------------------------------------------------------- */

.accio-fiche-tableau-wrap {
  overflow: visible;
}

.accio-fiche-tableau {
  width: 100%;
  border-collapse: collapse;
  background: var(--af-blanc);
  border: 2px solid var(--af-noir);
  box-shadow: var(--af-ombre-moyenne);
}

.accio-fiche-tableau th,
.accio-fiche-tableau td {
  padding: 0.8rem 0.85rem;
  border: 1px solid var(--af-noir);
  text-align: left;
  vertical-align: top;
}

.accio-fiche-tableau th {
  background: var(--af-noir);
  color: var(--af-blanc);
  font-weight: 800;
}

/* ---------------------------------------------------------
   9. GALERIE
   --------------------------------------------------------- */

.accio-fiche-galerie {
  background: var(--af-blanc);
  border: 2px solid var(--af-noir);
  box-shadow: var(--af-ombre-forte);
  overflow: hidden;
}

.accio-fiche-galerie__image img {
  width: 100%;
  display: block;
}

.accio-fiche-galerie__legende {
  padding: 1rem;
  border-top: 2px solid var(--af-noir);
}

.accio-fiche-galerie__titre {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 900;
}

.accio-fiche-galerie__texte {
  margin-top: 0.6rem;
}

/* ---------------------------------------------------------
   10. FAQ
   --------------------------------------------------------- */

.accio-fiche-faq {
  display: grid;
  gap: 1rem;
}

.accio-fiche-faq__item {
  background: var(--af-blanc);
  border: 2px solid var(--af-noir);
  box-shadow: var(--af-ombre-moyenne);
  overflow: hidden;
}

.accio-fiche-faq__question {
  position: relative;
  list-style: none;
  cursor: pointer;
  padding: 1rem 3.2rem 1rem 1rem;
  font-weight: 800;
  line-height: 1.35;
}

.accio-fiche-faq__question::-webkit-details-marker {
  display: none;
}

.accio-fiche-faq__question::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 10px;
  background: var(--af-noir);
}

.accio-fiche-faq__question::after {
  content: "";
  position: absolute;
  right: 1rem;
  top: 50%;
  width: 1.25rem;
  height: 1.25rem;
  transform: translateY(-50%);
  background: currentColor;
  color: var(--af-noir);
  -webkit-mask-image: var(--accio-slot-accordion_open, url("../img/icons/bibliotheque/accio-phidippus/ajouter-signe.svg"));
  mask-image: var(--accio-slot-accordion_open, url("../img/icons/bibliotheque/accio-phidippus/ajouter-signe.svg"));
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.accio-fiche-faq__item[open] .accio-fiche-faq__question {
  background: var(--af-noir);
  color: var(--af-blanc);
  border-bottom: 2px solid var(--af-noir);
}

.accio-fiche-faq__item[open] .accio-fiche-faq__question::before {
  display: none;
}

.accio-fiche-faq__item[open] .accio-fiche-faq__question::after {
  color: var(--af-blanc);
  -webkit-mask-image: var(--accio-slot-accordion_close, url("../img/icons/bibliotheque/accio-phidippus/retirer-signe-moins.svg"));
  mask-image: var(--accio-slot-accordion_close, url("../img/icons/bibliotheque/accio-phidippus/retirer-signe-moins.svg"));
}

.accio-fiche-faq__reponse {
  padding: 1rem 1rem 1.1rem;
}

/* ---------------------------------------------------------
   11. UTILITAIRES
   --------------------------------------------------------- */

.accio-fiche-separation {
  width: 64px;
  height: 3px;
  background: var(--af-noir);
  margin: 0.5rem 0 0;
}

.accio-fiche-centre {
  text-align: center;
}

.accio-fiche-texte-fin {
  font-size: 0.92rem;
}

/* ---------------------------------------------------------
   12. VARIANTES LEGERES
   --------------------------------------------------------- */

.accio-fiche--creature .accio-fiche-hero {
  box-shadow:
    0 0 0 6px var(--af-blanc),
    10px 10px 0 0 var(--af-noir);
}

.accio-fiche--creature .accio-fiche-intro {
  box-shadow:
    0 0 0 6px var(--af-blanc),
    8px 8px 0 0 var(--af-rouille);
}

.accio-fiche--produit .accio-fiche-hero__titre {
  letter-spacing: -0.02em;
}

.accio-fiche--creature .accio-fiche-hero__titre {
  line-height: 0.96;
}

.accio-fiche--terrarium {
  --af-rouille: var(--accio-color-leaf, #607a3c);
}

.accio-fiche--kit {
  --af-rouille: #5f5a9b;
}

.accio-fiche--composer-entretenir,
.accio-fiche--outil-accèssoire,
.accio-fiche--outil-accessoire {
  --af-rouille: #536878;
}

.accio-fiche--substrat-decor {
  --af-rouille: #7b5d3a;
}

.accio-fiche--essence-botanique {
  --af-rouille: #3f7a50;
}

.accio-fiche--souche-vivante {
  --af-rouille: #8a5b2f;
}

.accio-fiche--curiosite,
.accio-fiche--curiosité {
  --af-rouille: #8c3f62;
}

.accio-fiche--chauffage-mesure {
  --af-rouille: var(--accio-color-accent, #a84729);
}

.accio-fiche--terrarium .accio-fiche-intro,
.accio-fiche--kit .accio-fiche-intro,
.accio-fiche--composer-entretenir .accio-fiche-intro,
.accio-fiche--outil-accèssoire .accio-fiche-intro,
.accio-fiche--outil-accessoire .accio-fiche-intro,
.accio-fiche--substrat-decor .accio-fiche-intro,
.accio-fiche--essence-botanique .accio-fiche-intro,
.accio-fiche--souche-vivante .accio-fiche-intro,
.accio-fiche--curiosite .accio-fiche-intro,
.accio-fiche--curiosité .accio-fiche-intro,
.accio-fiche--chauffage-mesure .accio-fiche-intro {
  box-shadow:
    0 0 0 6px var(--af-blanc),
    8px 8px 0 0 var(--af-rouille);
}

.accio-fiche--terrarium .accio-fiche-theme--profil .accio-fiche-theme__entete,
.accio-fiche--kit .accio-fiche-theme--profil .accio-fiche-theme__entete,
.accio-fiche--composer-entretenir .accio-fiche-theme--profil .accio-fiche-theme__entete,
.accio-fiche--outil-accèssoire .accio-fiche-theme--profil .accio-fiche-theme__entete,
.accio-fiche--outil-accessoire .accio-fiche-theme--profil .accio-fiche-theme__entete,
.accio-fiche--substrat-decor .accio-fiche-theme--profil .accio-fiche-theme__entete,
.accio-fiche--essence-botanique .accio-fiche-theme--profil .accio-fiche-theme__entete,
.accio-fiche--souche-vivante .accio-fiche-theme--profil .accio-fiche-theme__entete,
.accio-fiche--curiosite .accio-fiche-theme--profil .accio-fiche-theme__entete,
.accio-fiche--curiosité .accio-fiche-theme--profil .accio-fiche-theme__entete,
.accio-fiche--chauffage-mesure .accio-fiche-theme--profil .accio-fiche-theme__entete {
  box-shadow: inset 0 -4px 0 0 var(--af-rouille);
}

/* ---------------------------------------------------------
   13. RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {
  .accio-fiche-grille-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .accio-fiche-cartes,
  .accio-fiche-grille-2,
  .accio-fiche-grille-3 {
    grid-template-columns: 1fr;
  }

  .accio-fiche-hero {
    box-shadow:
      0 0 0 5px var(--af-blanc),
      6px 6px 0 0 var(--af-noir);
  }

  .accio-fiche--creature .accio-fiche-hero {
    box-shadow:
      0 0 0 5px var(--af-blanc),
      7px 7px 0 0 var(--af-noir);
  }

  .accio-fiche-intro {
    box-shadow:
      0 0 0 5px var(--af-blanc),
      6px 6px 0 0 var(--af-noir);
  }

  .accio-fiche-bloc,
  .accio-fiche-encadre,
  .accio-fiche-faq__item,
  .accio-fiche-galerie {
    box-shadow: 4px 4px 0 0 var(--af-noir);
  }

  .accio-fiche-hero__contenu {
    padding: 1.45rem 0.95rem 1rem;
  }

  .accio-fiche-hero__titre {
    line-height: 1.01;
  }

  /* TABLEAU MOBILE :
     - mêmes cartes pour produit et créature
     - on masque les intitules generiques
     - la 1re cellule devient noire / texte blanc
  */

  .accio-fiche-tableau,
  .accio-fiche-tableau thead,
  .accio-fiche-tableau tbody,
  .accio-fiche-tableau tr,
  .accio-fiche-tableau th,
  .accio-fiche-tableau td {
    display: block;
    width: 100%;
  }

  .accio-fiche-tableau {
    min-width: 0;
    border: none;
    box-shadow: none;
    background: transparent;
  }

  .accio-fiche-tableau thead {
    display: none;
  }

  .accio-fiche-tableau tbody {
    display: grid;
    gap: 0.9rem;
  }

  .accio-fiche-tableau tr {
    background: var(--af-blanc);
    border: 2px solid var(--af-noir);
    box-shadow: 4px 4px 0 0 var(--af-noir);
    overflow: hidden;
  }

  .accio-fiche-tableau td {
    border: none;
    padding: 0.72rem 0.9rem;
  }

  .accio-fiche-tableau td::before {
    display: none;
    content: none;
  }

  .accio-fiche-tableau td:first-child {
    background: var(--af-noir);
    color: var(--af-blanc);
    font-weight: 900;
    border-bottom: 1px solid var(--af-noir);
  }

  .accio-fiche-tableau td:last-child {
    background: var(--af-blanc);
    color: var(--af-noir);
  }
}

/* ---------------------------------------------------------
   14. BLOCS THEMATIQUES SPECIALISES CREATURES
   --------------------------------------------------------- */

.accio-fiche-theme {
  position: relative;
  background: var(--af-blanc);
  border: 2px solid var(--af-noir);
  box-shadow: var(--af-ombre-moyenne);
  overflow: hidden;
}

.accio-fiche-theme__entete {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.9rem 1rem 0.85rem;
  background: var(--af-noir);
  color: var(--af-blanc);
  border-bottom: 2px solid var(--af-noir);
}

.accio-fiche-theme__titre {
  margin: 0;
  color: var(--af-blanc);
  font-size: 1rem;
  line-height: 1.1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-bottom: 2px solid var(--af-blanc);
}

.accio-fiche-theme__cartouche {
  flex: 0 0 auto;
  display: inline-block;
  padding: 0.32rem 0.5rem 0.28rem;
  background: var(--af-blanc);
  color: var(--af-noir);
  border: 3px double var(--af-noir);
  font-size: 0.68rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.accio-fiche-theme__contenu {
  padding: 1rem;
}

.accio-fiche-theme__contenu > *:first-child {
  margin-top: 0;
}

.accio-fiche-theme__contenu > *:last-child {
  margin-bottom: 0;
}

/* Variantes thematiques */

.accio-fiche-theme--dimorphisme .accio-fiche-theme__entete {
  background: var(--af-noir);
  color: var(--af-blanc);
}

.accio-fiche-theme--alimentation .accio-fiche-theme__entete {
  background: var(--af-rouille);
  color: var(--af-blanc);
}

.accio-fiche-theme--habitat .accio-fiche-theme__entete {
  background: var(--af-noir);
  color: var(--af-blanc);
  box-shadow: inset 0 -4px 0 0 var(--af-rouille);
}

.accio-fiche-theme--croissance .accio-fiche-theme__entete {
  background: var(--af-blanc);
  color: var(--af-noir);
  border-bottom: 2px solid var(--af-noir);
}

.accio-fiche-theme--croissance .accio-fiche-theme__cartouche {
  background: var(--af-noir);
  color: var(--af-blanc);
  border-color: var(--af-noir);
}

.accio-fiche-theme--vigilance {
  border: 3px double var(--af-noir);
}

.accio-fiche-theme--vigilance .accio-fiche-theme__entete {
  background: var(--af-blanc);
  color: var(--af-noir);
}

.accio-fiche-theme--vigilance .accio-fiche-theme__cartouche {
  background: var(--af-noir);
  color: var(--af-blanc);
  border-color: var(--af-noir);
}

.accio-fiche-theme--manipulation .accio-fiche-theme__entete {
  background: var(--af-noir);
  color: var(--af-blanc);
}

.accio-fiche-theme--profil .accio-fiche-theme__entete {
  background: var(--af-blanc);
  color: var(--af-noir);
  border-bottom: 2px solid var(--af-noir);
}

.accio-fiche-theme--profil .accio-fiche-theme__titre {
  color: var(--af-noir);
  border-bottom: 2px solid var(--af-noir);
}

.accio-fiche-theme--profil .accio-fiche-theme__cartouche {
  background: var(--af-noir);
  color: var(--af-blanc);
  border-color: var(--af-noir);
}

.accio-fiche-theme--croissance .accio-fiche-theme__titre,
.accio-fiche-theme--vigilance .accio-fiche-theme__titre {
  color: var(--af-noir);
  border-bottom: 2px solid var(--af-noir);
}

/* ---------------------------------------------------------
   15. COMPARATIF 2 COLONNES
   Ideal pour dimorphisme sexuel
   --------------------------------------------------------- */

.accio-fiche-comparatif-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.accio-fiche-comparatif__colonne {
  background: var(--af-blanc);
  border: 2px solid var(--af-noir);
  padding: 0.9rem;
}

.accio-fiche-comparatif__titre {
  margin: 0 0 0.7rem;
  font-size: 0.9rem;
  line-height: 1.1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.accio-fiche-comparatif__colonne > *:first-child {
  margin-top: 0;
}

.accio-fiche-comparatif__colonne > *:last-child {
  margin-bottom: 0;
}

/* ---------------------------------------------------------
   16. ALIMENTATION PAR STADES
   --------------------------------------------------------- */

.accio-fiche-regime {
  display: grid;
  gap: 0.8rem;
}

.accio-fiche-regime__ligne {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 0.8rem;
  align-items: start;
  padding: 0.75rem 0;
  border-top: 1px solid var(--af-noir);
}

.accio-fiche-regime__ligne:first-child {
  border-top: none;
  padding-top: 0;
}

.accio-fiche-regime__ligne:last-child {
  padding-bottom: 0;
}

.accio-fiche-regime__stade {
  font-weight: 900;
  text-transform: uppercase;
  font-size: 0.8rem;
  line-height: 1.1;
  letter-spacing: 0.05em;
}

.accio-fiche-regime__detail {
  margin: 0;
}

/* ---------------------------------------------------------
   17. HABITAT SYNTHETIQUE
   --------------------------------------------------------- */

.accio-fiche-habitat {
  display: grid;
  gap: 0.8rem;
}

.accio-fiche-habitat__item {
  padding: 0.8rem 0.9rem;
  border: 2px solid var(--af-noir);
  background: var(--af-blanc);
}

.accio-fiche-habitat__etiquette {
  display: inline-block;
  margin-bottom: 0.45rem;
  font-size: 0.72rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.3rem 0.45rem;
  background: var(--af-noir);
  color: var(--af-blanc);
}

.accio-fiche-habitat__item > *:last-child {
  margin-bottom: 0;
}

/* ---------------------------------------------------------
   18. PETITE GRILLE DE REPERES
   utile pour profil d'espèce / vigilance / maintien
   --------------------------------------------------------- */

.accio-fiche-reperes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.accio-fiche-repere {
  border: 2px solid var(--af-noir);
  background: var(--af-blanc);
  color: var(--af-noir);
  padding: 0.8rem 0.9rem;
}

.accio-fiche-repere__cle {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.72rem;
  line-height: 1.1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.accio-fiche-repere__valeur {
  margin: 0;
}

/* ---------------------------------------------------------
   19. BLOCS METIER POUR FICHES PRODUITS
   Reperes plus precis que les cartes generiques.
   --------------------------------------------------------- */

.accio-fiche-a-confirmer {
  display: inline;
  padding: 0.08rem 0.28rem;
  background: #fff3c4;
  color: var(--af-noir);
  border: 1px solid var(--af-noir);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  font-weight: 800;
}

.accio-fiche-identite,
.accio-fiche-parametres,
.accio-fiche-compatibilite,
.accio-fiche-inclus,
.accio-fiche-etapes,
.accio-fiche-protocole {
  display: grid;
  gap: 0.8rem;
}

.accio-fiche-identite {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.accio-fiche-identite__item {
  min-height: 100%;
  padding: 0.85rem 0.9rem;
  background: var(--af-blanc);
  border: 2px solid var(--af-noir);
  box-shadow: var(--af-ombre-legere);
}

.accio-fiche-identite__label,
.accio-fiche-parametre__cle,
.accio-fiche-compatibilite__label,
.accio-fiche-inclus__label,
.accio-fiche-etape__numero,
.accio-fiche-protocole__moment {
  display: inline-block;
  margin-bottom: 0.42rem;
  padding: 0.28rem 0.45rem 0.24rem;
  background: var(--af-noir);
  color: var(--af-blanc);
  font-size: 0.7rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.accio-fiche-identite__valeur,
.accio-fiche-parametre__valeur,
.accio-fiche-compatibilite__texte,
.accio-fiche-inclus__texte,
.accio-fiche-etape__texte,
.accio-fiche-protocole__texte {
  margin: 0;
}

.accio-fiche-parametres {
  border: 2px solid var(--af-noir);
  background:
    linear-gradient(90deg, rgba(22, 22, 22, 0.06) 1px, transparent 1px),
    linear-gradient(0deg, rgba(22, 22, 22, 0.05) 1px, transparent 1px),
    var(--af-blanc);
  background-size: 18px 18px;
  box-shadow: var(--af-ombre-moyenne);
  padding: 0.9rem;
}

.accio-fiche-parametre {
  display: grid;
  grid-template-columns: minmax(130px, 0.35fr) 1fr;
  gap: 0.75rem;
  align-items: start;
  padding: 0.75rem;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid var(--af-noir);
}

.accio-fiche-parametre__cle {
  margin-bottom: 0;
  justify-self: start;
}

.accio-fiche-parametre--alerte {
  border-width: 2px;
  box-shadow: inset 6px 0 0 var(--af-rouille);
}

.accio-fiche-compatibilite {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.accio-fiche-compatibilite__item {
  padding: 0.85rem 0.9rem;
  border: 2px solid var(--af-noir);
  background: var(--af-blanc);
}

.accio-fiche-compatibilite__item--ok {
  box-shadow: inset 0 5px 0 var(--af-noir);
}

.accio-fiche-compatibilite__item--limite {
  box-shadow: inset 0 5px 0 var(--af-rouille);
}

.accio-fiche-inclus {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.accio-fiche-inclus__item {
  padding: 0.8rem 0.9rem;
  border: 2px solid var(--af-noir);
  background: var(--af-noir);
  color: var(--af-blanc);
}

.accio-fiche-inclus__label {
  background: var(--af-blanc);
  color: var(--af-noir);
  border: 3px double var(--af-noir);
}

.accio-fiche-etapes {
  counter-reset: accio-etape;
}

.accio-fiche-etape,
.accio-fiche-protocole__item {
  position: relative;
  padding: 0.85rem 0.95rem;
  background: var(--af-blanc);
  border: 2px solid var(--af-noir);
}

.accio-fiche-etape {
  display: grid;
  grid-template-columns: 2.8rem minmax(0, 1fr);
  gap: 0.9rem;
  align-items: center;
}

.accio-fiche-etape__numero {
  grid-column: 1;
  grid-row: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  min-width: 2.15rem;
  height: 2.15rem;
  padding: 0;
  margin-bottom: 0;
  background: var(--af-blanc);
  color: var(--af-noir);
  border: 2px solid var(--af-noir);
  box-shadow: 3px 3px 0 0 var(--af-noir);
  text-align: center;
}

.accio-fiche-etape__texte {
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  min-width: 0;
  max-width: none;
}

.accio-fiche-protocole__item {
  box-shadow: inset 5px 0 0 var(--af-noir);
}

.accio-fiche-protocole__moment {
  background: var(--af-rouille);
}

.accio-fiche-note-vivante {
  padding: 1rem;
  border: 3px double var(--af-noir);
  background: var(--af-blanc);
  box-shadow: var(--af-ombre-legere);
}

.accio-fiche-note-vivante__titre {
  margin: 0 0 0.55rem;
  font-size: 0.95rem;
  line-height: 1.1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* ---------------------------------------------------------
   20. RESPONSIVE DES NOUVEAUX BLOCS
   --------------------------------------------------------- */

@media (max-width: 680px) {
  .accio-fiche-theme,
  .accio-fiche-comparatif__colonne,
  .accio-fiche-habitat__item,
  .accio-fiche-repere,
  .accio-fiche-identite__item,
  .accio-fiche-note-vivante {
    box-shadow: 4px 4px 0 0 var(--af-noir);
  }

  .accio-fiche-theme__entete {
    flex-direction: column;
    align-items: flex-start;
  }

  .accio-fiche-comparatif-2,
  .accio-fiche-reperes,
  .accio-fiche-identite,
  .accio-fiche-compatibilite,
  .accio-fiche-inclus {
    grid-template-columns: 1fr;
  }

  .accio-fiche-regime__ligne,
  .accio-fiche-parametre,
  .accio-fiche-etape {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .accio-fiche-etape__numero,
  .accio-fiche-etape__texte {
    grid-column: 1;
    grid-row: auto;
  }
}

/* =========================================================
   4. Réassurance produit et panier
   Repère conservé : les styles principaux sont isolés hors de ce bloc.
   ========================================================= */

/* =========================================================
   5. Galerie produit WooCommerce
   Cadre, image principale, vignettes et overrides mobiles.
   ========================================================= */

/* Cadre general */
.single-product .woocommerce-product-gallery {
  background: #ffffff;
  border: 2px solid #161616;
  box-shadow: 8px 8px 0 0 #161616;
  padding: 12px;
}

/* Image principale */
.single-product .woocommerce-product-gallery .flex-viewport {
  border: 2px solid #161616;
  background: #ffffff;
  overflow: hidden;
}

.single-product .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
  height: auto;
}

/* Vignettes */
.single-product .flex-control-thumbs {
  display: flex;
  gap: 10px;
  margin-top: 12px;
  padding-top: 0;
}

.single-product .flex-control-thumbs li {
  border: none;
}

.single-product .flex-control-thumbs li img {
  display: block;
  width: 100%;
  border: 2px solid #161616;
  box-shadow: 4px 4px 0 0 #161616;
  background: #ffffff;
  opacity: 1;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
}

.single-product .flex-control-thumbs li img:hover {
  transform: translate(-1px, -1px);
  box-shadow: 5px 5px 0 0 #161616;
}

/* Vignette active */
.single-product .flex-control-thumbs .flex-active,
.single-product .flex-control-thumbs li img.flex-active {
  border-color: #a84729;
  box-shadow: 4px 4px 0 0 #a84729;
}

/* Badge zoom / declencheurs divers si presents */
.single-product .woocommerce-product-gallery .zoomImg {
  background: #ffffff;
}

.single-product .woocommerce-product-gallery__trigger,
.single-product .ct-lightbox-trigger {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.8rem;
  height: 2.8rem;
  border: 2px solid #161616;
  border-radius: 999px;
  background: #ffffff;
  color: #161616;
  box-shadow: 3px 3px 0 0 #161616;
  font-size: 0 !important;
  line-height: 1;
  text-indent: 0;
  background-image: none !important;
}

.single-product .woocommerce-product-gallery__trigger::before,
.single-product .ct-lightbox-trigger::before {
  content: "";
  position: static !important;
  inset: auto !important;
  display: block;
  flex: 0 0 auto;
  width: 1.5rem;
  height: 1.5rem;
  margin: 0 !important;
  transform: none !important;
  background: currentColor;
  font-family: inherit !important;
  line-height: 1 !important;
  -webkit-mask-image: var(--accio-slot-gallery_expand, url("../img/icons/bibliotheque/accio-phidippus/recadrage-agrandir.svg"));
  mask-image: var(--accio-slot-gallery_expand, url("../img/icons/bibliotheque/accio-phidippus/recadrage-agrandir.svg"));
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.single-product .woocommerce-product-gallery__trigger::after,
.single-product .ct-lightbox-trigger::after {
  content: none !important;
  display: none !important;
}

.single-product .woocommerce-product-gallery__trigger > span,
.single-product .ct-lightbox-trigger > span {
  display: none !important;
}

.single-product .woocommerce-product-gallery .flex-direction-nav {
  margin: 0;
  padding: 0;
  list-style: none;
}

.single-product .woocommerce-product-gallery .flex-direction-nav a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.8rem;
  height: 2.8rem;
  border: 2px solid #161616;
  border-radius: 999px;
  background: #ffffff !important;
  color: #161616 !important;
  box-shadow: 3px 3px 0 0 #161616;
  font-size: 0 !important;
  line-height: 1;
  text-indent: 0 !important;
  opacity: 1;
}

.single-product .woocommerce-product-gallery .flex-direction-nav a::before {
  content: "" !important;
  display: block;
  width: 1.4rem;
  height: 1.4rem;
  margin: 0;
  background: currentColor;
  font-family: inherit !important;
  -webkit-mask-image: var(--accio-slot-gallery_previous, url("../img/icons/bibliotheque/accio-phidippus/ni-chevron-left-circle-2.svg"));
  mask-image: var(--accio-slot-gallery_previous, url("../img/icons/bibliotheque/accio-phidippus/ni-chevron-left-circle-2.svg"));
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.single-product .woocommerce-product-gallery .flex-direction-nav .flex-next::before,
.single-product .woocommerce-product-gallery .flex-direction-nav a[aria-label*="Next"]::before,
.single-product .woocommerce-product-gallery .flex-direction-nav a[aria-label*="Suivant"]::before {
  -webkit-mask-image: var(--accio-slot-gallery_next, url("../img/icons/bibliotheque/accio-phidippus/ni-chevron-right-circle-2.svg"));
  mask-image: var(--accio-slot-gallery_next, url("../img/icons/bibliotheque/accio-phidippus/ni-chevron-right-circle-2.svg"));
}

/* Galerie sticky fluide : l'encart reste dans la hauteur de l'ecran. */
@media (min-width: 768px) {
  .single-product .woocommerce-product-gallery {
    --accio-gallery-sticky-offset: calc(
      50px +
      var(--admin-bar, 0px) +
      var(--theme-frame-size, 0px) +
      var(--header-sticky-offset, 0px) +
      var(
        --header-sticky-height-animated,
        calc(var(--header-sticky-height, 0px) * (var(--sticky-shrink, 100) / 100))
      )
    );
    --accio-gallery-viewport: calc(100vh - var(--accio-gallery-sticky-offset) - 18px);
    --accio-gallery-viewport: calc(100svh - var(--accio-gallery-sticky-offset) - 18px);
    --accio-gallery-thumbs-size: clamp(48px, 7svh, 78px);
    --accio-gallery-thumbs-gap: clamp(5px, 0.9svh, 10px);
    --accio-gallery-main-max: calc(
      var(--accio-gallery-viewport) -
      var(--accio-gallery-thumbs-size) -
      var(--accio-gallery-thumbs-gap) -
      34px
    );
    box-sizing: border-box;
    max-height: var(--accio-gallery-viewport);
    overflow: visible;
  }

  .single-product .woocommerce-product-gallery .ct-product-gallery-container,
  .single-product .woocommerce-product-gallery .flexy-container {
    max-height: var(--accio-gallery-viewport);
    overflow: visible;
  }

  .single-product .woocommerce-product-gallery .flexy {
    max-height: max(220px, var(--accio-gallery-main-max));
    overflow: hidden;
  }

  .single-product .woocommerce-product-gallery .flexy-view {
    max-height: max(220px, var(--accio-gallery-main-max));
    overflow: hidden;
  }

  .single-product .woocommerce-product-gallery .flexy-items,
  .single-product .woocommerce-product-gallery .flexy-items > *,
  .single-product .woocommerce-product-gallery .flexy-items > * > *,
  .single-product .woocommerce-product-gallery .ct-media-container {
    max-height: max(220px, var(--accio-gallery-main-max));
  }

  .single-product .woocommerce-product-gallery .flex-viewport {
    min-height: 0;
    height: auto !important;
    max-height: max(220px, var(--accio-gallery-main-max));
    overflow: hidden;
  }

  .single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
  .single-product .woocommerce-product-gallery .woocommerce-product-gallery__image,
  .single-product .woocommerce-product-gallery .woocommerce-product-gallery__image a {
    height: 100%;
    min-height: 0;
  }

  .single-product .woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
    max-height: max(220px, var(--accio-gallery-main-max));
    object-fit: contain;
  }

  .single-product .woocommerce-product-gallery .ct-media-container img {
    width: 100%;
    height: auto;
    max-height: max(220px, var(--accio-gallery-main-max));
    object-fit: contain;
  }

  .single-product .flex-control-thumbs {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: var(--accio-gallery-thumbs-gap);
    align-items: stretch;
    width: 100%;
    height: calc(var(--accio-gallery-thumbs-size) + 6px);
    margin-top: 0;
    padding: 0 3px 3px 0;
    max-height: none;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: thin;
  }

  .single-product .flex-control-thumbs li {
    flex: 0 0 var(--accio-gallery-thumbs-size) !important;
    width: auto !important;
    min-width: 0;
    max-width: var(--accio-gallery-thumbs-size);
    padding: 0 !important;
  }

  .single-product .flex-control-thumbs li img {
    box-sizing: border-box;
    width: 100%;
    height: var(--accio-gallery-thumbs-size);
    object-fit: cover;
  }

  .single-product .flex-control-thumbs li img:hover {
    transform: none;
  }

  .single-product .woocommerce-product-gallery .flexy-pills {
    min-width: 0;
    overflow: hidden;
    margin-top: var(--accio-gallery-thumbs-gap);
  }

  .single-product .woocommerce-product-gallery .flexy-pills ol {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: var(--accio-gallery-thumbs-gap);
    height: calc(var(--accio-gallery-thumbs-size) + 6px);
    margin: 0 !important;
    padding: 0 3px 3px 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: thin;
    --pills-wrap: nowrap;
    --thumbs-width: var(--accio-gallery-thumbs-size);
  }

  .single-product .woocommerce-product-gallery .flexy-pills li {
    flex: 0 0 var(--accio-gallery-thumbs-size) !important;
    width: var(--accio-gallery-thumbs-size) !important;
    padding: 0 !important;
  }

  .single-product .woocommerce-product-gallery .flexy-pills .ct-media-container,
  .single-product .woocommerce-product-gallery .flexy-pills img {
    width: 100%;
    height: var(--accio-gallery-thumbs-size);
    object-fit: cover;
  }
}

/* Mobile */
@media (max-width: 768px) {
  .single-product .woocommerce-product-gallery {
    padding: 8px;
    box-shadow: 5px 5px 0 0 #161616;
  }

  .single-product .flex-control-thumbs {
    gap: 8px;
    margin-top: 10px;
  }

  .single-product .flex-control-thumbs li img {
    box-shadow: 3px 3px 0 0 #161616;
  }

  .single-product .flex-control-thumbs .flex-active,
  .single-product .flex-control-thumbs li img.flex-active {
    box-shadow: 3px 3px 0 0 #a84729;
  }
}

/* =========================================================
   6. Produits similaires et suggestions
   Cartes WooCommerce alignees avec l'identite Accio.
   ========================================================= */

.single-product :is(.related.products, .up-sells.products, .upsells.products) {
  --accio-related-ink: var(--accio-color-ink, #161616);
  --accio-related-white: var(--accio-color-white, #ffffff);
  --accio-related-paper: var(--accio-color-paper, #fffdf8);
  --accio-related-accent: var(--accio-color-accent, #a84729);
  --accio-related-muted: var(--accio-color-muted, #6f685f);
  --accio-related-shadow: 5px 5px 0 0 var(--accio-related-ink);
  --accio-related-shadow-small: 3px 3px 0 0 var(--accio-related-ink);

  margin-top: clamp(3rem, 7vw, 5rem);
  padding-top: clamp(1.15rem, 3vw, 1.7rem);
  border-top: 5px double var(--accio-related-ink);
  color: var(--accio-related-ink);
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) > h2,
.single-product :is(.related.products, .up-sells.products, .upsells.products) > .ct-module-title {
  display: inline-block;
  width: auto;
  margin: 0 0 clamp(1.15rem, 3vw, 1.65rem);
  padding: 0.38rem 0.72rem 0.32rem;
  background: var(--accio-related-white);
  color: var(--accio-related-ink);
  border: 5px double var(--accio-related-ink);
  box-shadow: var(--accio-related-shadow-small);
  font-family: var(--accio-font-heading-1);
  font-size: clamp(1rem, 1.4vw, 1.25rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) :is([data-products], ul.products) {
  width: 100%;
  max-width: 100%;
  gap: clamp(1rem, 2.4vw, 1.45rem) !important;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) :is([data-products], ul.products) > .product {
  align-items: flex-start;
  min-width: 0;
  max-width: 100%;
  padding: clamp(0.78rem, 1.5vw, 1rem);
  background: var(--accio-related-white);
  border: 2px solid var(--accio-related-ink);
  border-radius: 0;
  box-shadow: var(--accio-related-shadow);
  color: var(--accio-related-ink);
  text-align: left;
  transition:
    transform 0.16s ease,
    box-shadow 0.16s ease;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) :is([data-products], ul.products) > .product:hover {
  transform: translate(-1px, -1px);
  box-shadow: 5px 5px 0 0 var(--accio-related-accent);
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .product figure {
  width: 100%;
  margin: 0 0 0.95rem;
  background: var(--accio-related-paper);
  border: 1px solid var(--accio-related-ink);
  overflow: hidden;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .product img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .woocommerce-loop-product__title,
.single-product :is(.related.products, .up-sells.products, .upsells.products) .woocommerce-loop-category__title {
  margin: 0.2rem 0 0.45rem;
  color: var(--accio-related-ink);
  font-family: var(--accio-font-heading-1);
  font-size: clamp(1rem, 1.2vw, 1.16rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  text-wrap: balance;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .woocommerce-loop-product__title a,
.single-product :is(.related.products, .up-sells.products, .upsells.products) .woocommerce-loop-category__title a {
  color: inherit;
  text-decoration: none;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .price {
  display: inline-flex !important;
  align-items: center;
  justify-content: flex-start !important;
  width: auto !important;
  max-width: max-content;
  margin: 0.05rem 0 0.7rem;
  padding: 0.32rem 0.56rem 0.27rem;
  background: var(--accio-related-ink);
  color: var(--accio-related-white);
  border: 3px double var(--accio-related-white);
  font-family: var(--accio-font-base);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .price :is(.amount, bdi),
.single-product :is(.related.products, .up-sells.products, .upsells.products) .price ins {
  color: inherit;
  text-decoration: none;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .price del {
  opacity: 0.65;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .entry-meta {
  margin: -0.12rem 0 0.9rem;
  color: var(--accio-related-ink);
  font-family: var(--accio-font-heading-3);
  font-size: 0.84rem;
  line-height: 1.1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .entry-meta a {
  color: inherit;
  text-decoration: none;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .ct-woo-card-actions {
  width: auto;
  margin-top: auto;
  margin-inline: 0;
  border: 0;
  align-items: flex-start;
  align-self: flex-start;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .ct-woo-card-actions > * {
  flex: initial;
  min-height: initial;
  padding: 0;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .ct-woo-card-actions .price::after {
  display: none;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .button,
.single-product :is(.related.products, .up-sells.products, .upsells.products) .added_to_cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 39px;
  margin-top: auto;
  padding: 0.52rem 0.78rem 0.47rem;
  border: 2px solid var(--accio-related-white);
  border-radius: 0;
  outline: 1px solid var(--accio-related-white);
  outline-offset: -6px;
  background: var(--accio-related-accent);
  color: var(--accio-related-white);
  box-shadow:
    inset 0 0 0 1px var(--accio-related-ink),
    3px 3px 0 0 var(--accio-related-ink);
  font-family: var(--accio-font-button);
  font-size: clamp(0.8rem, 0.9vw, 0.92rem);
  line-height: 1.15;
  letter-spacing: 0.01em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) .button:hover,
.single-product :is(.related.products, .up-sells.products, .upsells.products) .button:focus-visible,
.single-product :is(.related.products, .up-sells.products, .upsells.products) .added_to_cart:hover,
.single-product :is(.related.products, .up-sells.products, .upsells.products) .added_to_cart:focus-visible {
  background: var(--accio-related-ink);
  color: var(--accio-related-white);
  outline-color: var(--accio-related-white);
  box-shadow:
    inset 0 0 0 1px var(--accio-related-accent),
    3px 3px 0 0 var(--accio-related-accent);
}

.single-product :is(.related.products, .up-sells.products, .upsells.products) :is(.onsale, .out-of-stock-badge, [class*="ct-woo-badge-"]) {
  border: 2px solid var(--accio-related-ink);
  border-radius: 0;
  background: var(--accio-related-accent);
  color: var(--accio-related-white);
  box-shadow: 2px 2px 0 0 var(--accio-related-ink);
  font-family: var(--accio-font-heading-3);
  font-size: 0.82rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

@media (max-width: 999.98px) {
  .single-product :is(.related.products, .up-sells.products, .upsells.products) {
    margin-top: 3rem;
    padding-top: 1.1rem;
  }

  .single-product :is(.related.products, .up-sells.products, .upsells.products) :is([data-products], ul.products) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: clamp(0.8rem, 2.8vw, 1.05rem) !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
  }

  .single-product :is(.related.products, .up-sells.products, .upsells.products) :is([data-products], ul.products) > .product {
    width: 100% !important;
    margin-inline: 0 !important;
    box-shadow: var(--accio-related-shadow-small);
  }

  .single-product :is(.related.products, .up-sells.products, .upsells.products) :is([data-products], ul.products) > .product:hover {
    transform: none;
    box-shadow: 3px 3px 0 0 var(--accio-related-accent);
  }

  .single-product :is(.related.products, .up-sells.products, .upsells.products) .woocommerce-loop-product__title,
  .single-product :is(.related.products, .up-sells.products, .upsells.products) .woocommerce-loop-category__title {
    font-size: clamp(0.88rem, 3.8vw, 1.08rem);
    overflow-wrap: anywhere;
  }

  .single-product :is(.related.products, .up-sells.products, .upsells.products) .button,
  .single-product :is(.related.products, .up-sells.products, .upsells.products) .added_to_cart {
    width: 100%;
    padding-inline: 0.5rem;
    white-space: normal;
  }
}

/* =========================================================
   7. Onglets, accordéons et informations complémentaires
   Structure WooCommerce/Blocksy et presentation alternative.
   ========================================================= */

.single-product .woocommerce-tabs {
  margin-top: 3rem;
}

.single-product .woocommerce-tabs .wc-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 1.2rem;
  padding: 0;
  border: 0;
}

.single-product .woocommerce-tabs .wc-tabs::before,
.single-product .woocommerce-tabs .wc-tabs::after {
  display: none;
}

.single-product .woocommerce-tabs .wc-tabs li {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.single-product .woocommerce-tabs .wc-tabs li::before,
.single-product .woocommerce-tabs .wc-tabs li::after {
  content: none !important;
  display: none !important;
}

.single-product .woocommerce-tabs .wc-tabs li a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.7rem 0.95rem 0.65rem;
  background: #ffffff;
  color: #161616;
  border: 2px solid #161616;
  box-shadow: 4px 4px 0 0 #161616;
  font-size: 0.72rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
}

.single-product .woocommerce-tabs .wc-tabs li a::after {
  content: "";
  display: inline-block;
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  background: currentColor;
  -webkit-mask-image: var(--accio-slot-accordion_open, url("../img/icons/bibliotheque/accio-phidippus/ajouter-signe.svg"));
  mask-image: var(--accio-slot-accordion_open, url("../img/icons/bibliotheque/accio-phidippus/ajouter-signe.svg"));
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.single-product .woocommerce-tabs .wc-tabs li.active a,
.single-product .woocommerce-tabs .wc-tabs li a:hover {
  background: #161616;
  color: #ffffff;
}

.single-product .woocommerce-tabs .wc-tabs li.active a::after {
  -webkit-mask-image: var(--accio-slot-accordion_close, url("../img/icons/bibliotheque/accio-phidippus/retirer-signe-moins.svg"));
  mask-image: var(--accio-slot-accordion_close, url("../img/icons/bibliotheque/accio-phidippus/retirer-signe-moins.svg"));
}

/* Mobile */
@media (max-width: 768px) {
  .single-product .woocommerce-tabs .wc-tabs {
    gap: 8px;
  }

  .single-product .woocommerce-tabs .wc-tabs li a {
    box-shadow: 3px 3px 0 0 #161616;
  }
}

/* Accordions produit Blocksy/WooCommerce */

/* Bloc global des sections */
.single-product .woocommerce-tabs .panel,
.single-product .woocommerce-tabs .entry-content {
  background: #ffffff;
  color: #161616;
}

/* En-tetes d'accordeon : ciblage large pour couvrir Blocksy */
.single-product .woocommerce-tabs summary,
.single-product .woocommerce-tabs button,
.single-product .woocommerce-tabs [role="tab"],
.single-product .woocommerce-tabs .ct-accordion-button,
.single-product .woocommerce-tabs .ct-accordion-heading {
  position: relative;
  display: block;
  width: 100%;
  padding: 0.8rem 3rem 0.8rem 0.95rem;
  background: #ffffff;
  color: #161616;
  border: 2px solid #161616;
  box-shadow: 4px 4px 0 0 #161616;
  font-size: 0.72rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
}

.single-product .woocommerce-tabs summary::-webkit-details-marker {
  display: none;
}

.single-product .woocommerce-tabs :is(summary, button, [role="tab"], .ct-accordion-button, .ct-accordion-heading)::before,
.single-product .woocommerce-tabs :is(summary, button, [role="tab"], .ct-accordion-button, .ct-accordion-heading) .ct-accordion-icon,
.single-product .woocommerce-tabs :is(summary, button, [role="tab"], .ct-accordion-button, .ct-accordion-heading) .ct-icon,
.single-product .woocommerce-tabs :is(summary, button, [role="tab"], .ct-accordion-button, .ct-accordion-heading) > svg:not(.accio-svg-icon),
.single-product .woocommerce-tabs :is(summary, button, [role="tab"], .ct-accordion-button, .ct-accordion-heading) > span:empty {
  content: none !important;
  display: none !important;
}

.single-product .woocommerce-tabs summary::after,
.single-product .woocommerce-tabs button::after,
.single-product .woocommerce-tabs [role="tab"]::after,
.single-product .woocommerce-tabs .ct-accordion-button::after,
.single-product .woocommerce-tabs .ct-accordion-heading::after {
  content: "";
  position: absolute;
  right: 0.95rem;
  top: 50%;
  width: 1.05rem;
  height: 1.05rem;
  transform: translateY(-50%);
  background: currentColor;
  -webkit-mask-image: var(--accio-slot-accordion_open, url("../img/icons/bibliotheque/accio-phidippus/ajouter-signe.svg"));
  mask-image: var(--accio-slot-accordion_open, url("../img/icons/bibliotheque/accio-phidippus/ajouter-signe.svg"));
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

/* Etat ouvert / actif */
.single-product .woocommerce-tabs details[open] > summary,
.single-product .woocommerce-tabs .active > button,
.single-product .woocommerce-tabs [aria-expanded="true"],
.single-product .woocommerce-tabs .ct-accordion-item.active .ct-accordion-button {
  background: #161616;
  color: #ffffff;
}

.single-product .woocommerce-tabs details[open] > summary::after,
.single-product .woocommerce-tabs .active > button::after,
.single-product .woocommerce-tabs [aria-expanded="true"]::after,
.single-product .woocommerce-tabs .ct-accordion-item.active .ct-accordion-button::after {
  -webkit-mask-image: var(--accio-slot-accordion_close, url("../img/icons/bibliotheque/accio-phidippus/retirer-signe-moins.svg"));
  mask-image: var(--accio-slot-accordion_close, url("../img/icons/bibliotheque/accio-phidippus/retirer-signe-moins.svg"));
}

/* Contenu de chaque panneau */
.single-product .woocommerce-tabs .panel,
.single-product .woocommerce-tabs details > *:not(summary),
.single-product .woocommerce-tabs .ct-accordion-content {
  padding: 1.1rem 1rem 1rem;
  background: #ffffff;
  border: 2px solid #161616;
  box-shadow: 6px 6px 0 0 #161616;
}

.single-product .woocommerce-tabs .panel {
  margin: 0;
}

.single-product .woocommerce-tabs details > *:not(summary),
.single-product .woocommerce-tabs .ct-accordion-content {
  margin-top: 0.9rem;
}

/* Titres internes WooCommerce */
.single-product .woocommerce-tabs .panel h2,
.single-product .woocommerce-tabs .panel h3,
.single-product .woocommerce-tabs .panel h2:first-child,
.single-product .woocommerce-tabs .panel h3:first-child,
.single-product .woocommerce-tabs .ct-accordion-content h2:first-child,
.single-product .woocommerce-tabs .ct-accordion-content h3:first-child {
  color: #161616;
  margin-top: 0;
}

/* Avis WooCommerce */
.single-product #reviews,
.single-product .woocommerce-Reviews {
  color: #161616;
}

.single-product .woocommerce-Reviews-title {
  display: inline-block;
  width: auto;
  margin: 0 0 1rem;
  padding: 0.34rem 0.62rem 0.3rem;
  background: #161616;
  color: #ffffff;
  border: 3px double #ffffff;
  box-shadow: 3px 3px 0 0 #161616;
  font-size: 0.78rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.single-product #comments {
  margin: 0;
}

.single-product .woocommerce-noreviews,
.single-product .woocommerce-verification-required {
  margin: 0 0 1rem;
  padding: 0.95rem 1rem;
  background: #ffffff;
  color: #161616;
  border: 2px solid #161616;
  box-shadow: 4px 4px 0 0 #161616;
  font-size: 0.94rem;
  line-height: 1.5;
  text-align: center;
}

.single-product .commentlist {
  display: grid;
  gap: 1rem;
  margin: 0 0 1.1rem;
  padding: 0;
  list-style: none;
}

.single-product .comment_container {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 0.85rem;
  align-items: start;
  padding: 0.95rem;
  background: #ffffff;
  border: 2px solid #161616;
  box-shadow: 4px 4px 0 0 #161616;
}

.single-product .comment_container img.avatar {
  width: 56px;
  height: 56px;
  border: 2px solid #161616;
  background: #ffffff;
  object-fit: cover;
}

.single-product .comment-text {
  min-width: 0;
}

.single-product .comment-text .meta {
  margin: 0 0 0.45rem;
  color: #161616;
  font-size: 0.82rem;
  line-height: 1.25;
}

.single-product .woocommerce-review__author {
  font-weight: 900;
}

.single-product .woocommerce-review__published-date,
.single-product .woocommerce-review__verified {
  opacity: 0.72;
}

.single-product .star-rating {
  margin-bottom: 0.45rem;
  color: #a84729;
}

.single-product p.stars {
  margin: 0.35rem 0 0.7rem;
}

.single-product p.stars a {
  color: #a84729;
}

.single-product #review_form_wrapper {
  margin-top: 1rem;
  padding: 1rem;
  background: #ffffff;
  border: 2px solid #161616;
  box-shadow: 4px 4px 0 0 #161616;
}

.single-product #review_form {
  color: #161616;
}

.single-product #review_form textarea {
  width: 100%;
  min-height: 132px;
  padding: 0.8rem 0.85rem;
  background: #ffffff;
  color: #161616;
  border: 2px solid #161616;
  border-radius: 0;
  box-shadow: none;
}

.single-product #review_form textarea:focus {
  outline: 2px solid #a84729;
  outline-offset: 2px;
}

.single-product #review_form .form-submit {
  margin-bottom: 0;
}

.single-product #review_form .form-submit .submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0.56rem 0.9rem 0.5rem;
  background: #161616;
  color: #ffffff;
  border: 2px solid #161616;
  border-radius: 0;
  box-shadow: 3px 3px 0 0 #a84729;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.single-product #review_form .form-submit .submit:hover,
.single-product #review_form .form-submit .submit:focus-visible {
  background: #a84729;
  color: #ffffff;
}

/* Tableau des attributs */
.single-product table.shop_attributes {
  width: 100%;
  border-collapse: collapse;
  border: 2px solid #161616;
}

.single-product table.shop_attributes th,
.single-product table.shop_attributes td {
  padding: 0.8rem 0.85rem;
  border: 1px solid #161616;
  text-align: left;
  vertical-align: top;
}

.single-product table.shop_attributes th {
  background: #161616;
  color: #ffffff;
  font-weight: 800;
}

/* Présentation alternative des informations complémentaires */
.single-product .accio-additional-info {
  color: #161616;
}

.single-product .accio-additional-info__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.single-product .accio-additional-info__card {
  background: #ffffff;
  border: 2px solid #161616;
  box-shadow: 6px 6px 0 0 #161616;
  padding: 1rem 1rem 0.95rem;
}

.single-product .accio-additional-info__card--included {
  border-top: 8px solid #161616;
}

.single-product .accio-additional-info__card--excluded {
  border-top: 8px solid #a84729;
}

.single-product .accio-additional-info__card--other {
  margin-top: 1rem;
}

.single-product .accio-additional-info__eyebrow {
  display: inline-block;
  margin-bottom: 0.65rem;
  padding: 0.32rem 0.52rem 0.28rem;
  background: #161616;
  color: #ffffff;
  font-size: 0.68rem;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.single-product .accio-additional-info__title {
  margin: 0 0 0.85rem;
  color: #161616;
  font-size: 1.05rem;
  line-height: 1.08;
  font-weight: 900;
}

.single-product .accio-additional-info__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.single-product .accio-additional-info__item {
  position: relative;
  padding-left: 1.1rem;
}

.single-product .accio-additional-info__item + .accio-additional-info__item {
  margin-top: 0.55rem;
}

.single-product .accio-additional-info__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 7px;
  height: 7px;
  background: #161616;
  transform: translateY(-50%);
}

.single-product .accio-additional-info__card--excluded .accio-additional-info__item::before {
  background: #a84729;
}

.single-product .accio-additional-info__empty {
  margin: 0;
  color: #161616;
  opacity: 0.8;
}

.single-product .accio-additional-info__facts {
  display: grid;
  gap: 0.7rem;
}

.single-product .accio-additional-info__fact {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 0.8rem;
  align-items: flex-start;
  padding-top: 0.7rem;
  border-top: 1px solid #161616;
}

.single-product .accio-additional-info__fact:first-child {
  padding-top: 0;
  border-top: 0;
}

.single-product .accio-additional-info__fact-label {
  font-size: 0.72rem;
  line-height: 1.1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.single-product .accio-additional-info__fact-value {
  min-width: 0;
}

@media (max-width: 768px) {
  .single-product .woocommerce-tabs summary,
  .single-product .woocommerce-tabs button,
  .single-product .woocommerce-tabs [role="tab"],
  .single-product .woocommerce-tabs .ct-accordion-button,
  .single-product .woocommerce-tabs .ct-accordion-heading {
    box-shadow: 3px 3px 0 0 #161616;
  }

  .single-product .woocommerce-tabs .panel,
  .single-product .woocommerce-tabs details > *:not(summary),
  .single-product .woocommerce-tabs .ct-accordion-content {
    padding: 1rem 0.95rem;
    box-shadow: 4px 4px 0 0 #161616;
  }

  .single-product .accio-additional-info__grid {
    grid-template-columns: 1fr;
  }

  .single-product .accio-additional-info__card {
    box-shadow: 4px 4px 0 0 #161616;
  }

  .single-product .woocommerce-noreviews,
  .single-product .woocommerce-verification-required,
  .single-product .comment_container,
  .single-product #review_form_wrapper {
    box-shadow: 3px 3px 0 0 #161616;
  }

  .single-product .comment_container {
    grid-template-columns: 1fr;
  }

  .single-product .comment_container img.avatar {
    width: 48px;
    height: 48px;
  }

  .single-product #review_form .form-submit .submit {
    width: 100%;
  }

  .single-product .accio-additional-info__fact {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }
}
