/* ==========================================================================
   AntalyaV — thème Tebex. Chargé après shared.css (Exo) : il le surcharge.
   Pour changer la DA : modifier uniquement le bloc "Jetons de DA".
   ========================================================================== */

/* ---- Jetons de DA -------------------------------------------------------- */
:root {
  --av-header-h: 72px;
  --av-bg: #050905;
  --av-panel: #0a110c;
  --av-panel2: #0d1910;
  --av-line: #1e482c;
  --av-green: #006F32;
  --av-deep: #004621;
  --av-green-soft: #69cf8c;
  --av-text: #f4faf5;
  --av-muted: #afc0b4;
  --av-font-title: "Barlow Condensed", Impact, sans-serif;
  --av-font-body: Inter, Arial, sans-serif;
  --av-radius: 6px;
  --av-radius-sm: 4px;
  --av-gutter: 16px;
  --av-max: 1200px;

  /* Branchement des variables Exo sur la DA */
  --color-text: var(--av-text);
  --color-text-darker: var(--av-muted);
  --color-text-secondary: var(--av-muted);
  --color-text-dark: var(--av-bg);
  --color-bg: var(--av-bg);
  --color-brighter-bg: var(--av-panel);
  --color-primary: var(--av-green);
  --color-primary-hover: var(--av-green-soft);
  --color-primary-text: #fff;
  --color-primary-text-hover: var(--av-bg);
  --color-secondary: var(--av-panel2);
  --color-secondary-hover: var(--av-line);
  --color-secondary-text: var(--av-text);
  --color-secondary-text-hover: var(--av-text);
  --color-tertiary-hover: rgb(105 207 140 / 12%);
  --color-sale-banner-bg: var(--av-green);
  --color-sale-banner-text: #fff;
  --content-inner-width: var(--av-max);
  --tebex-legal-footer-background-color: var(--av-panel);
  --tebex-legal-footer-border-color: var(--av-line);
  --tebex-legal-footer-text-color: var(--av-muted);
}
@media (width > 600px) { :root { --av-gutter: 24px; } }
@media (width > 960px) { :root { --av-gutter: 40px; } }

/* ---- Base ---------------------------------------------------------------- */
html { scrollbar-color: var(--av-line) var(--av-bg); }
body.av-theme {
  background: var(--av-bg);
  color: var(--av-text);
  font-family: var(--av-font-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip; /* « clip » et pas « hidden » : sinon le body devient un conteneur de défilement et le bandeau ne colle plus */
}
body.av-theme .site { font-size: 15px; gap: 0; }
:where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--av-green-soft);
  outline-offset: 3px;
}

/* ---- Utilitaires --------------------------------------------------------- */
.av-wrap { width: 100%; max-width: calc(var(--av-max) + var(--av-gutter) * 2); margin: 0 auto; padding: 0 var(--av-gutter); }
.av-section { padding: 56px 0; }
@media (width > 960px) { .av-section { padding: 80px 0; } }
.av-kicker {
  display: block; color: var(--av-muted); font: 600 12px/1 var(--av-font-body);
  letter-spacing: .12em; text-transform: uppercase;
}
.av-title {
  margin-top: 12px; font: 900 clamp(34px, 6vw, 64px)/.92 var(--av-font-title);
  text-transform: uppercase; letter-spacing: .01em;
}
.av-title .av-accent, .av-accent { color: var(--av-green-soft); }
.av-lead { margin-top: 16px; max-width: 60ch; color: var(--av-muted); font-size: 16px; line-height: 1.6; }
.av-card {
  background: var(--av-panel);
  border: 1px solid var(--av-line);
  border-radius: var(--av-radius);
}

/* ---- Boutons (les nôtres + ceux d'Exo) ----------------------------------- */
.av-btn, .btn-primary, .btn-secondary {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 0 20px; border-radius: var(--av-radius-sm);
  font: 700 14px/1 var(--av-font-body); letter-spacing: .02em;
  transition: background-color .15s, color .15s, border-color .15s, transform .15s;
}
.av-btn-primary, .btn-primary { background: var(--av-green); color: #fff; }
.av-btn-primary:hover, .btn-primary:hover { background: var(--av-green-soft); color: var(--av-bg); }
.av-btn-ghost, .btn-secondary { background: transparent; color: var(--av-text); border: 1px solid var(--av-line); }
.av-btn-ghost:hover, .btn-secondary:hover { border-color: var(--av-green-soft); color: var(--av-green-soft); }
.av-btn:active, .btn-primary:active, .btn-secondary:active { transform: translateY(1px); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ---- En-tête ------------------------------------------------------------- */
.av-header {
  position: sticky; top: 0; z-index: 50; max-width: none; padding: 0;
  border-bottom: 1px solid var(--av-line);
}
/* Le flou est sur un pseudo-élément : un backdrop-filter sur l'en-tête lui-même
   enfermerait le menu mobile (position: fixed) dans la hauteur de l'en-tête. */
.av-header::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: rgb(5 9 5 / 82%); backdrop-filter: blur(12px);
}
.av-header .site-header-inner {
  display: flex; align-items: center; gap: 16px; min-height: 72px;
  padding-top: 0; padding-bottom: 0;
}
.av-logo { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; }
.av-logo img { width: 40px; height: auto; }
.av-logo-text { font: 900 22px/1 var(--av-font-title); text-transform: uppercase; letter-spacing: .02em; }
.av-header-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.av-header-actions .user-actions { display: flex; gap: 8px; }
.av-header .toggle-navigation { display: none; }

/* Navigation horizontale (ordinateur) */
.av-nav.navigation-horizontal { background: none; }
.av-nav .menu { display: flex; gap: 4px; }
.av-nav .menu > li > a {
  display: block; padding: 10px 14px; border-radius: var(--av-radius-sm);
  color: var(--av-muted); font-weight: 600;
}
.av-nav .menu > li > a:hover, .av-nav .menu > li.active > a { color: var(--av-text); background: rgb(105 207 140 / 10%); }
.av-nav .menu > li.active > a { color: var(--av-green-soft); }
.av-nav .mobile-only, .av-nav .close-navigation { display: none; }

/* Mobile : même logique qu'Exo — .av-nav = fond plein écran (un clic dessus ferme),
   .menu = panneau qui sort de la gauche (main.js : glisser vers la gauche pour fermer). */
@media (width <= 960px) {
  .av-header .toggle-navigation { display: inline-flex; }
  .av-btn-discord { display: none; }
  .av-header .user-name { display: none; }
  .av-nav .mobile-only { display: block; }
}
@media (width <= 420px) {
  .av-logo-text { display: none; }
  .av-header-actions .av-btn, .av-header-actions .btn-primary { padding: 0 14px; }
}

/* Neutralise la mise en page d'en-tête d'Exo (hauteur 355 px, boutons en absolu) */
body.av-theme .av-header .site-header-inner { position: static; height: auto; padding: 0 var(--av-gutter); flex-wrap: nowrap; }
body.av-theme .av-header .log-in, body.av-theme .av-header .user-actions { position: static; }
body.av-theme .av-nav .menu > li > a { padding: 10px 14px; max-width: none; }
@media (width > 960px) {
  body.av-theme .av-nav { visibility: visible; opacity: 1; }
  body.av-theme .av-nav .menu { padding: 0; background: none; font-size: 15px; line-height: 1.2; translate: none; scale: 1; opacity: 1; }
}
@media (width <= 960px) {
  body.av-theme .av-nav {
    position: fixed; inset: 0; z-index: 60; background: rgb(5 9 5 / 70%);
    transition: opacity .2s ease, visibility .2s;
  }
  body.av-theme:not(.show-navigation) .av-nav { visibility: hidden; opacity: 0; }
  body.av-theme.show-navigation .av-nav { visibility: visible; opacity: 1; }
  body.av-theme .av-nav .menu {
    position: absolute; inset: 0 auto 0 0; width: min(320px, 86vw);
    display: flex; flex-direction: column; gap: 2px; padding: 80px 16px 24px;
    background: var(--av-panel); border-right: 1px solid var(--av-line);
    font-size: 16px; line-height: 1.2; color: var(--av-muted);
    translate: 0 0; scale: 1; opacity: 1; transition: translate .25s ease;
  }
  body.av-theme:not(.show-navigation) .av-nav .menu { translate: -100% 0; }
  body.av-theme .av-nav .close-navigation {
    display: inline-flex; position: absolute; top: 16px; right: auto;
    left: calc(min(320px, 86vw) - 60px); z-index: 1;
  }
}

/* ---- Pied de page -------------------------------------------------------- */
.av-footer { margin-top: 40px; border-top: 1px solid var(--av-line); background: var(--av-panel); }
.av-footer .site-footer-inner { display: grid; gap: 28px; padding-top: 40px; padding-bottom: 40px; }
.av-footer-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.av-footer-links { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.av-footer-links a { color: var(--av-muted); font-weight: 600; }
.av-footer-links a:hover { color: var(--av-green-soft); }
.av-footer .we-accept { display: flex; flex-wrap: wrap; gap: 10px; }
.av-footer .we-accept img { height: 28px; width: auto; border-radius: 4px; background: #fff; padding: 3px 6px; }
.av-footer-legal { display: grid; gap: 6px; color: var(--av-muted); font-size: 13px; line-height: 1.5; }
.av-disclaimer { color: var(--av-text); font-weight: 700; letter-spacing: .03em; }
.av-footer-legal a { color: var(--av-green-soft); }

/* ---- Accueil : hero « affiche » ------------------------------------------
   L'image fait le travail : le nom du serveur, une ligne, un bouton. */
.av-hero {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; align-items: flex-end;
  min-height: min(820px, 92svh);
  margin-top: calc(var(--av-header-h) * -1); /* l'image passe sous le bandeau transparent */
  padding: calc(var(--av-header-h) + 40px) 0 clamp(40px, 8vh, 88px);
}
.av-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background: var(--av-hero-image) 62% 35% / cover no-repeat;
}
.av-hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(0deg, var(--av-bg) 0%, rgb(5 9 5 / 55%) 28%, transparent 55%),
    linear-gradient(180deg, rgb(5 9 5 / 60%) 0%, transparent 22%);
}
.av-hero-title {
  font: 900 clamp(64px, 13vw, 168px)/.82 var(--av-font-title);
  text-transform: uppercase; letter-spacing: -.01em;
  text-shadow: 0 2px 24px rgb(0 0 0 / 35%);
}
.av-hero-sub {
  margin-top: 14px; color: var(--av-text); opacity: .85;
  font: 600 clamp(15px, 1.6vw, 18px)/1.3 var(--av-font-body); letter-spacing: .02em;
}
.av-hero-cta { margin-top: 26px; }
@media (width <= 600px) {
  .av-hero { min-height: 78svh; }
  .av-hero::before { background-image: var(--av-hero-image-sm, var(--av-hero-image)); background-position: 30% 30%; }
  .av-hero-cta { width: 100%; }
}

/* ---- Accueil : catégories ------------------------------------------------ */
.av-category-grid {
  display: grid; gap: 16px; margin-top: 32px;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
}
.av-category {
  position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px;
  min-height: 180px; padding: 22px; overflow: hidden;
  transition: border-color .2s, transform .2s;
}
.av-category:hover { border-color: var(--av-green-soft); }
.av-category-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; z-index: 0; }
.av-category-name, .av-category-cta { position: relative; z-index: 1; }
.av-category-name { font: 900 34px/1 var(--av-font-title); text-transform: uppercase; }
.av-category-cta { color: var(--av-green-soft); font-weight: 600; }

/* ---- Accueil : paiement sécurisé ----------------------------------------- */
.av-secure-inner { display: grid; gap: 24px; align-items: center; padding: 28px; }
@media (width > 960px) { .av-secure-inner { grid-template-columns: 1.4fr 1fr; padding: 40px; } }
.av-secure .we-accept { display: flex; flex-wrap: wrap; gap: 10px; }
.av-secure .we-accept img { height: 36px; width: auto; border-radius: 6px; background: #fff; padding: 4px 8px; }
.we-accept img[alt="Visa"] { background: #1a1f71; } /* logo Visa blanc */

/* ---- Modules placés sur l'accueil ---------------------------------------- */
.av-slot .widget { background: none; padding: 0; margin-top: 28px; border-radius: 0; }
.av-slot .widget-title { display: none; } /* le titre de section suffit */

/* Best-seller : grande carte horizontale */
.av-bestseller .store-product {
  display: grid; gap: 20px; padding: 20px; text-align: left;
  background: linear-gradient(135deg, var(--av-deep), var(--av-panel) 60%);
  border: 1px solid var(--av-green); border-radius: var(--av-radius);
}
@media (width > 760px) { .av-bestseller .store-product { grid-template-columns: 340px 1fr; align-items: center; padding: 28px; } }
.av-bestseller .store-product .image { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: var(--av-radius-sm); }
.av-bestseller .product-title { font: 900 40px/1 var(--av-font-title); text-transform: uppercase; }

/* Paiements récents : bandeau défilant pleine largeur */
.av-marquee {
  overflow: hidden; margin-top: 28px;
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.av-marquee-track {
  display: flex; gap: 0; width: max-content;
  animation: av-marquee var(--av-marquee-duration, 40s) linear infinite;
}
.av-marquee:hover .av-marquee-track { animation-play-state: paused; }
@keyframes av-marquee { to { transform: translateX(-50%); } }
.av-marquee-track > .purchase { margin-right: 14px; }
.av-slot .av-marquee { margin-top: 0; }
.av-payments .purchase { display: flex; align-items: center; gap: 12px; min-width: 240px; padding: 14px 16px; }
.av-payments .avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.av-avatar-letter { display: grid; place-items: center; background: var(--av-green); font-weight: 700; text-transform: uppercase; }
.av-payments .username { font-size: 15px; font-weight: 700; }
.av-payments time, .av-purchase-package { color: var(--av-muted); font-size: 13px; }
.av-payments .price { margin-left: auto; color: var(--av-green-soft); font-weight: 700; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .av-marquee { overflow-x: auto; }
}

/* ---- En-tête de page ----------------------------------------------------- */
.av-page-head { padding: 44px 0 0; }
.av-page-head-row {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 24px;
  padding-bottom: 18px; border-bottom: 1px solid var(--av-line);
}
.av-page-head .av-page-title { margin: 0; font-size: clamp(40px, 7vw, 72px); }
.av-page-meta { color: var(--av-muted); font-size: 13px; text-align: right; }
.av-page-meta .av-refund { display: block; margin-top: 4px; }
.av-page-head .category-description { margin: 16px 0 0; padding: 0; background: none; font-size: 16px; }
body.page-category .site-content { padding-top: 24px; }
body.av-theme .site-content { padding-bottom: 24px; }

/* ---- Grille et cartes produit -------------------------------------------- */
.av-product-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 14px; }
.store-product.av-card { padding: 0; overflow: hidden; gap: 0; text-align: left; transition: border-color .15s; }
.store-product.av-card:hover { border-color: rgb(105 207 140 / 60%); }
.store-product.av-card .image-link { position: relative; display: block; }
.store-product.av-card .image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--av-panel2); } /* visuels des packs en 4:3 : pas de recadrage */
.av-product-body { display: grid; gap: 10px; padding: 14px 16px 16px; border-top: 1px solid var(--av-line); }
.store-product .product-title { font: 900 22px/1 var(--av-font-title); text-transform: uppercase; letter-spacing: .01em; }
.store-product .price { font-size: 16px; color: var(--av-text); }
.store-product .price strong { color: var(--av-text); font-size: 22px; font-weight: 700; }
.store-product .price .discount { color: var(--av-muted); margin-right: 6px; }
.av-badge {
  position: absolute; top: 10px; left: 10px; padding: 5px 8px; border-radius: var(--av-radius-sm);
  background: var(--av-green); color: #fff; font-size: 12px; font-weight: 700; text-transform: uppercase;
}
.no-products { padding: 28px; text-align: center; color: var(--av-muted); }

/* ---- Fiche produit ------------------------------------------------------- */
.store-product-full.av-card { display: grid; gap: 24px; padding: 20px; }
@media (width > 860px) { .store-product-full.av-card { grid-template-columns: 1fr 1fr; padding: 32px; } }
.store-product-full .image { width: 100%; border-radius: var(--av-radius-sm); }
.av-package-info { display: grid; gap: 18px; align-content: start; }
.store-product-full .product-title { font: 900 clamp(32px, 5vw, 48px)/1 var(--av-font-title); text-transform: uppercase; }
.store-product-full .descr { color: var(--av-muted); line-height: 1.6; }

/* ---- Pages de texte ------------------------------------------------------ */
.store-text.av-card { padding: 28px; line-height: 1.7; }
.store-text.av-card h1, .store-text.av-card h2, .store-text.av-card h3 { font-family: var(--av-font-title); text-transform: uppercase; text-align: left; }

/* ---- Popups, panier, formulaires (mécanique Exo, habillage AntalyaV) ----- */
.popup { background: rgb(5 9 5 / 72%); backdrop-filter: blur(4px); }
.popup-content { background: var(--av-panel); border: 1px solid var(--av-line); border-radius: var(--av-radius); }
.popup-close { border-radius: 0 var(--av-radius) 0 var(--av-radius-sm); }
.basket-popup-content { background: var(--av-panel); border-left: 1px solid var(--av-line); }
.basket-item { background: var(--av-panel2); border: 1px solid var(--av-line); border-radius: var(--av-radius-sm); }
.store-form input[type=text], .store-form input[type=email], .store-form select, .store-form textarea,
.gift-form-popup input {
  width: 100%; min-height: 46px; padding: 0 14px;
  background: var(--av-bg); border: 1px solid var(--av-line); border-radius: var(--av-radius-sm); color: var(--av-text);
}
.store-form input:focus, .gift-form-popup input:focus { border-color: var(--av-green-soft); }
.store-form h2 { font: 900 32px/1 var(--av-font-title); text-transform: uppercase; }
.quantity-field { background: var(--av-panel2); border: 1px solid var(--av-line); border-radius: var(--av-radius-sm); }
.toast { background: var(--av-panel2); border: 1px solid var(--av-green); color: var(--av-text); border-radius: var(--av-radius-sm); }

/* ---- Mention « aucun remboursement » ------------------------------------- */
.av-refund { color: var(--av-muted); font-size: 13px; font-weight: 500; }
.av-refund-box { margin: 12px 0 0; }

/* ---- Affichage « liste » choisi dans le panel ---------------------------- */
.av-product-list { display: grid; gap: 14px; }
.av-product-list .store-product.av-card { display: grid; grid-template-columns: 110px 1fr; align-items: center; }
.av-product-list .store-product.av-card .image { height: 100%; }
@media (width > 760px) {
  .av-product-list .store-product.av-card { grid-template-columns: 160px 1fr; }
  .av-product-list .av-product-body { grid-template-columns: 1fr auto; align-items: center; }
}

/* ---- Catégories à paliers (tiered) --------------------------------------- */
.av-tiered { background: none; padding: 0; }
.av-tiered .store-product-tiered { display: grid; gap: 14px; padding: 20px; text-align: left; }
.av-tiered .store-product-tiered .image { width: 100%; border-radius: var(--av-radius-sm); }
.av-tiered .store-product-tiered .descr { color: var(--av-muted); line-height: 1.6; }
.av-tiered .store-product-tiered.subscribed { border-color: var(--av-green-soft); }

/* ---- Bandeau du haut (refonte) -------------------------------------------
   Liens en texte, un seul bouton (« Jouer »). Sur l'accueil, il est transparent
   par-dessus l'image et devient une barre sombre dès qu'on fait défiler. */
.av-header .site-header-inner { min-height: var(--av-header-h); }
.av-header { border-bottom-color: transparent; transition: border-color .2s; }
.av-header::before { transition: opacity .2s; }
.av-link {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 6px;
  color: var(--av-text); font: 600 14px/1 var(--av-font-body); letter-spacing: .02em;
  transition: color .15s;
}
.av-link:hover { color: var(--av-green-soft); }
.av-btn-play { min-height: 40px; padding: 0 18px; }
@media (width > 960px) {
  body.av-theme .av-nav .menu > li > a {
    padding: 10px 12px; background: none;
    font: 700 17px/1 var(--av-font-title); letter-spacing: .06em; text-transform: uppercase;
    color: rgb(244 250 245 / 72%);
  }
  body.av-theme .av-nav .menu > li > a:hover { color: var(--av-text); background: none; }
  body.av-theme .av-nav .menu > li.active > a { color: var(--av-text); background: none; border-radius: 0; box-shadow: inset 0 -2px 0 var(--av-green-soft); }
}
body.page-index .av-header:not(.av-scrolled)::before { opacity: 0; }
body.page-index .av-header.av-scrolled,
body:not(.page-index) .av-header { border-bottom-color: var(--av-line); }

/* ---- Badge bonus (ajouté par antalya.js d'après le nom du pack) ---------- */
.av-bonus { margin-top: -4px; color: var(--av-green-soft); font-size: 13px; font-weight: 600; }

/* ---- Comment ça marche : bande d'infos sous le haut de page --------------- */
.av-how { border-bottom: 1px solid var(--av-line); }
.av-how-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.av-how-item { display: grid; gap: 4px; padding: 22px 24px; border-left: 1px solid var(--av-line); }
.av-how-item:first-child { border-left: 0; padding-left: 0; }
.av-how-item strong { font: 900 18px/1.1 var(--av-font-title); text-transform: uppercase; letter-spacing: .04em; }
.av-how-item span { color: var(--av-muted); font-size: 14px; }
@media (width <= 760px) {
  .av-how-row { grid-template-columns: 1fr; }
  .av-how-item, .av-how-item:first-child { padding: 14px 0; border-left: 0; border-top: 1px solid var(--av-line); }
  .av-how-item:first-child { border-top: 0; }
}

/* ---- FAQ ----------------------------------------------------------------- */
.av-faq-list { display: grid; gap: 10px; margin-top: 28px; max-width: 820px; }
.av-faq-item { padding: 0; }
.av-faq-item summary {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  min-height: 56px; padding: 14px 20px; cursor: pointer; list-style: none;
  font-weight: 700; font-size: 16px;
}
.av-faq-item summary::-webkit-details-marker { display: none; }
.av-faq-item summary::after { content: "+"; color: var(--av-green-soft); font: 900 26px/1 var(--av-font-title); transition: rotate .2s; }
.av-faq-item[open] summary::after { rotate: 45deg; }
.av-faq-item p { padding: 0 20px 18px; color: var(--av-muted); line-height: 1.6; }
.av-faq-item a { color: var(--av-green-soft); text-decoration: underline; }

/* ---- Popup de connexion -------------------------------------------------- */
.av-login-why { color: var(--av-muted); margin: 10px 0 4px; }

/* Cartes de même hauteur dans une rangée : l'espace en trop va au-dessus du prix,
   pas sous l'image ; prix et bouton alignés en bas de chaque carte. */
.store-product.av-card:not(.store-product-full) { display: flex; flex-direction: column; }
.store-product.av-card:not(.store-product-full) .image-link { flex: none; }
.store-product.av-card .av-product-body { display: flex; flex-direction: column; flex: 1; }
.store-product.av-card .av-product-body .product-actions { margin-top: auto; }

/* ---- Titres de section (accueil) : sobres, comme l'en-tête des pages boutique */
.av-section-title {
  padding-bottom: 14px; border-bottom: 1px solid var(--av-line);
  font: 900 clamp(26px, 3.4vw, 34px)/1 var(--av-font-title); text-transform: uppercase; letter-spacing: .02em;
}
.av-section { padding: 48px 0; }
@media (width > 960px) { .av-section { padding: 64px 0; } }
.av-secure-inner .av-section-title { padding-bottom: 0; border-bottom: 0; }
.av-secure-inner .av-lead { margin-top: 12px; }

/* ---- Catégories : liste façon menu de jeu --------------------------------- */
.av-cat-list { display: grid; }
.av-cat-row, .av-cat-row.av-category {
  display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 0; padding: 18px 0; overflow: visible; text-align: left;
  border: 0; border-bottom: 1px solid var(--av-line); border-radius: 0; background: none;
  transition: color .15s;
}
.av-cat-name { font: 900 clamp(40px, 7vw, 76px)/.9 var(--av-font-title); text-transform: uppercase; letter-spacing: .01em; }
.av-cat-go { color: var(--av-muted); font-size: 28px; transition: color .15s, transform .15s; }
.av-cat-row:hover { color: var(--av-green-soft); }
.av-cat-row:hover .av-cat-go { color: var(--av-green-soft); transform: translateX(4px); }
