/* ============================================================
   AIGenie Tech — Thème premium « Luxe minimaliste » (électronique)
   V2 — Design system : Space Grotesk (titres) + Inter (corps)
   Palette noir / blanc / or champagne.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&family=Fraunces:ital,opsz,wght@1,9..144,400;1,9..144,500;1,9..144,600&display=swap');

:root {
  --ag-black: #0a0a0c;
  --ag-ink: #16161a;
  --ag-gray: #71717a;
  --ag-line: #ececef;
  --ag-bg: #ffffff;
  --ag-soft: #f5f5f6;
  --ag-gold: #c9a86a;
  --ag-gold-d: #b6924f;
  --ag-head: 'Space Grotesk', -apple-system, 'Segoe UI', sans-serif;
  --ag-body: 'Inter', -apple-system, 'Segoe UI', sans-serif;
  --ag-accent: 'Fraunces', Georgia, 'Times New Roman', serif;
}

/* ---- Typographie ---- */
body, p, a, li, span, input, textarea, select, button, .btn, .product-title, .price { font-family: var(--ag-body) !important; }
.h1,.h2,.h3,.h4, h1,h2,h3,h4, .products-section-title, .logo, .navbar-brand { font-family: var(--ag-head) !important; }
body { color: var(--ag-ink) !important; background: var(--ag-bg) !important; -webkit-font-smoothing: antialiased; letter-spacing: .01em; }
a { color: var(--ag-ink); transition: color .25s ease; }
a:hover { color: var(--ag-gold-d); text-decoration: none; }
.h1,.h2,.h3, h1,h2,h3 { letter-spacing: .03em; font-weight: 700; color: var(--ag-black); }

/* ---- Header sombre & épuré ---- */
#header { background: var(--ag-black) !important; box-shadow: none !important; }
#header .header-nav, #header .header-top { background: transparent !important; border: 0 !important; }
#header a, #header .header-nav a, #header .top-menu a,
#_desktop_user_info a, #_desktop_cart a, .header-top a { color: #f2f2f3 !important; }
#header a:hover { color: var(--ag-gold) !important; }
#_desktop_logo img, .logo.img-fluid { max-height: 42px !important; width: auto !important; }
.header-top .menu, #_desktop_top_menu { background: transparent !important; }
/* ---- Panier header (transparent, aligné, plus de fond blanc) ---- */
#_desktop_cart { display: flex; align-items: center; }
#_desktop_cart .blockcart { background: transparent !important; box-shadow: none !important; border: 0 !important; padding: .3rem .6rem !important; margin: 0 !important; border-radius: 2px; display: inline-flex; align-items: center; height: auto !important; }
#_desktop_cart .blockcart.active, #_desktop_cart .blockcart.inactive { background: transparent !important; color: #f2f2f3 !important; }
#_desktop_cart .blockcart a, #_desktop_cart .blockcart span, #_desktop_cart .blockcart .cart-products-count, #_desktop_cart .blockcart .material-icons { color: #f2f2f3 !important; }
#_desktop_cart .blockcart:hover a, #_desktop_cart .blockcart:hover .material-icons { color: var(--ag-gold) !important; }
#_desktop_cart .blockcart .cart-products-count { background: var(--ag-gold) !important; color: var(--ag-black) !important; border-radius: 999px; padding: 0 .4em; font-size: .72rem; font-weight: 700; }
#menu-icon, .material-icons { color: #f2f2f3 !important; }
#search_widget input[type=text] {
  background: rgba(255,255,255,.08) !important; border: 1px solid rgba(255,255,255,.16) !important;
  color: #fff !important; border-radius: 2px;
}
#search_widget input::placeholder { color: #b8b8bf !important; }
#search_widget button .search { color: var(--ag-gold) !important; }

/* ---- Menu principal ---- */
.top-menu a.dropdown-item, #top-menu a, .top-menu .sub-menu a {
  letter-spacing: .08em; text-transform: uppercase; font-size: .78rem; font-weight: 600; font-family: var(--ag-head) !important;
}
.top-menu .sub-menu { background: #fff !important; border: 1px solid var(--ag-line); }
.top-menu .sub-menu a { color: var(--ag-ink) !important; }

/* ---- Titres de section ---- */
.products-section-title, h2.products-section-title, .h2.products-section-title, .featured-products .h2 {
  text-align: center !important; text-transform: uppercase !important; letter-spacing: .2em !important;
  font-weight: 600 !important; font-size: 1.4rem !important; color: var(--ag-black) !important;
  border: 0 !important; position: relative; padding-bottom: 1rem; margin: 0 auto 2.6rem !important;
}
.products-section-title::after {
  content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 56px; height: 2px; background: var(--ag-gold);
}

/* ---- Bannière hero / slider ---- */
.carousel, #carousel, .homeslider-container { background: var(--ag-soft) !important; }
.carousel .caption .caption-description, .carousel .display-1, .carousel h2 { color: #fff !important; letter-spacing: .05em; font-family: var(--ag-head) !important; }
.carousel .caption { background: rgba(10,10,12,.34); }

/* ---- Cartes produits épurées ---- */
.product-miniature .thumbnail-container, .product-miniature .card, .js-product-miniature .thumbnail-container {
  background: #fff !important; border: 1px solid var(--ag-line) !important; border-radius: 4px !important;
  box-shadow: none !important; overflow: hidden; transition: border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.product-miniature:hover .thumbnail-container { border-color: var(--ag-gold) !important; transform: translateY(-4px); box-shadow: 0 16px 36px -20px rgba(10,10,12,.4) !important; }
.product-miniature img { transition: transform .5s ease; }
.product-miniature:hover img { transform: scale(1.04); }
.product-title a { color: var(--ag-ink) !important; font-weight: 500 !important; letter-spacing: .01em; }
.product-title a:hover { color: var(--ag-gold-d) !important; }
.product-price-and-shipping .price, .product-miniature .price { color: var(--ag-black) !important; font-weight: 700 !important; }
.regular-price { color: var(--ag-gray) !important; }
.product-flags .product-flag { background: var(--ag-black) !important; color: #fff !important; border-radius: 2px; text-transform: uppercase; letter-spacing: .1em; font-size: .62rem; font-weight: 600; font-family: var(--ag-head) !important; }
.product-flags .product-flag.on-sale, .product-flags .discount { background: var(--ag-gold) !important; color: var(--ag-black) !important; }

/* ---- Boutons ---- */
.btn-primary, .add-to-cart, button.btn-primary, .btn-secondary {
  background: var(--ag-black) !important; border: 1px solid var(--ag-black) !important; color: #fff !important;
  border-radius: 2px !important; text-transform: uppercase; letter-spacing: .12em; font-weight: 600;
  font-size: .76rem; padding: .72rem 1.4rem; transition: all .25s ease; box-shadow: none !important; font-family: var(--ag-head) !important;
}
.btn-primary:hover, .add-to-cart:hover, button.btn-primary:hover, .btn-secondary:hover {
  background: var(--ag-gold) !important; border-color: var(--ag-gold) !important; color: var(--ag-black) !important;
}

/* ---- Footer luxueux ---- */
#footer { background: var(--ag-black) !important; color: #b9b9c0 !important; padding-top: 3rem; }
#footer .footer-container { background: transparent !important; box-shadow: none !important; }
#footer h3, #footer .h3, #footer .title { color: #fff !important; text-transform: uppercase; letter-spacing: .14em; font-size: .9rem; font-weight: 600; font-family: var(--ag-head) !important; }
#footer a, #footer li a { color: #b9b9c0 !important; }
#footer a:hover { color: var(--ag-gold) !important; }

/* ---- Newsletter (sélecteurs corrects : block_newsletter + label) ---- */
.block-newsletter, .block_newsletter, #footer .block_newsletter { background: transparent !important; }
#block-newsletter-label, .block_newsletter p { color: #fff !important; }
#footer #block-newsletter-label { font-family: var(--ag-head) !important; font-weight: 600; letter-spacing: .04em; font-size: 1.15rem; }
.block_newsletter .form-control-comment, .block_newsletter .newsletter-comment { color: #9a9aa2 !important; }
.block-newsletter input[type=email], .block_newsletter input[type=email], .block_newsletter input[name=email] {
  background: rgba(255,255,255,.08) !important; border: 1px solid rgba(255,255,255,.24) !important; color: #fff !important; border-radius: 2px;
}
.block-newsletter input::placeholder, .block_newsletter input::placeholder { color: #c6c6cd !important; opacity: 1 !important; }
.block-newsletter [type=submit], .block-newsletter button, .block-newsletter .btn,
.block_newsletter [type=submit], .block_newsletter button, .block_newsletter .btn, .ps-newsletter [type=submit] {
  background: var(--ag-gold) !important; border: 1px solid var(--ag-gold) !important; color: var(--ag-black) !important;
  border-radius: 2px !important; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; font-family: var(--ag-head) !important;
}

/* ---- Divers / réassurance ---- */
.block-reassurance { border-top: 1px solid var(--ag-line); border-bottom: 1px solid var(--ag-line); background: var(--ag-soft); }
.block-reassurance li { color: var(--ag-gray); }
.block-reassurance svg, .block-reassurance .material-icons { color: var(--ag-gold) !important; fill: var(--ag-gold) !important; width: 26px !important; height: 26px !important; max-width: 26px !important; max-height: 26px !important; }
.block-reassurance img { width: 26px !important; height: 26px !important; }
/* sécurité : aucun SVG inline du thème ne dépasse une taille raisonnable */
.ag-reassurance__ico svg { width: 30px !important; height: 30px !important; }
hr { border-color: var(--ag-line) !important; }

/* ---- HERO premium ---- */
.ag-hero { position: relative; height: 72vh; min-height: 520px; overflow: hidden; background: #0a0a0c; color: #fff; }
.ag-hero__track { display: flex; height: 100%; transition: transform .7s cubic-bezier(.16,1,.3,1); will-change: transform; }
.ag-hero__slide { position: relative; flex: 0 0 100%; width: 100%; height: 100%; display: flex; align-items: center; }
.ag-hero__slide--1 { background: linear-gradient(135deg, #0a0a0c, #18181d 55%, #0a0a0c); }
.ag-hero__slide--2 { background: linear-gradient(120deg, #0a0a0c, #141a24 55%, #0a0a0c); }
.ag-hero__slide--3 { background: linear-gradient(150deg, #0a0a0c, #1c1613 55%, #0a0a0c); }
.ag-hero__glow { position: absolute; top: -25%; right: -8%; width: 55%; height: 150%; background: radial-gradient(circle, rgba(201,168,106,.22), transparent 60%); z-index: 1; pointer-events: none; }
.ag-hero__slide--2 .ag-hero__glow { right: auto; left: -8%; }
.ag-hero__inner { position: relative; z-index: 2; max-width: 660px; padding: 0 6vw; }
.ag-hero__eyebrow { display: inline-block; letter-spacing: .32em; text-transform: uppercase; font-size: .72rem; font-weight: 600; color: var(--ag-gold); margin-bottom: 1.4rem; font-family: var(--ag-head) !important; }
.ag-hero__title { font-family: var(--ag-head) !important; font-size: clamp(2.6rem, 5.2vw, 4.4rem); font-weight: 700; line-height: 1.04; letter-spacing: .01em; margin: 0 0 1.4rem; color: #fff !important; }
.ag-hero__title em { font-family: var(--ag-accent) !important; font-style: italic; font-weight: 500; letter-spacing: 0; color: var(--ag-gold) !important; }
.ag-hero__subtitle { font-family: var(--ag-body) !important; font-size: 1.12rem; line-height: 1.6; color: #b9b9c0 !important; max-width: 31rem; margin: 0 0 2.2rem; }
.ag-hero__cta { display: inline-block; background: var(--ag-gold) !important; color: #0a0a0c !important; padding: .95rem 2.2rem; border-radius: 2px; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; font-size: .78rem; font-family: var(--ag-head) !important; transition: all .25s ease; }
.ag-hero__cta:hover { background: #fff !important; color: #0a0a0c !important; transform: translateY(-2px); }
.ag-hero__slide.is-active .ag-hero__eyebrow, .ag-hero__slide.is-active .ag-hero__title, .ag-hero__slide.is-active .ag-hero__subtitle, .ag-hero__slide.is-active .ag-hero__cta { opacity: 0; animation: agFade .9s ease forwards; }
.ag-hero__slide.is-active .ag-hero__title { animation-delay: .1s; }
.ag-hero__slide.is-active .ag-hero__subtitle { animation-delay: .2s; }
.ag-hero__slide.is-active .ag-hero__cta { animation-delay: .3s; }
@keyframes agFade { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.ag-hero__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 6; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); color: #fff; width: 46px; height: 46px; border-radius: 50%; font-size: 1.6rem; line-height: 1; cursor: pointer; transition: all .25s; display: flex; align-items: center; justify-content: center; }
.ag-hero__arrow:hover { background: var(--ag-gold); color: #0a0a0c; border-color: var(--ag-gold); }
.ag-hero__arrow--prev { left: 22px; } .ag-hero__arrow--next { right: 22px; }
.ag-hero__dots { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); display: flex; gap: 10px; z-index: 6; }
.ag-hero__dot { width: 30px; height: 3px; border: 0; padding: 0; background: rgba(255,255,255,.25); cursor: pointer; transition: background .25s; }
.ag-hero__dot.is-active { background: var(--ag-gold); }
@media (max-width: 767px) { .ag-hero { height: 70vh; min-height: 440px; } .ag-hero__arrow { display: none; } .ag-hero__inner { padding: 0 7vw; } }

/* ---- Bandeau réassurance ---- */
.ag-hero { margin-bottom: 0 !important; }
.ag-reassurance { background: var(--ag-soft); border-top: 1px solid var(--ag-line); border-bottom: 1px solid var(--ag-line); margin-bottom: 3.5rem; }
.ag-reassurance__inner { max-width: 1240px; margin: 0 auto; padding: 1.7rem 5vw; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.6rem; }
.ag-reassurance__item { display: flex; align-items: center; gap: .95rem; }
.ag-reassurance__ico { flex-shrink: 0; color: var(--ag-gold); display: inline-flex; }
.ag-reassurance__ico svg { width: 30px; height: 30px; }
.ag-reassurance__txt { display: flex; flex-direction: column; line-height: 1.3; }
.ag-reassurance__txt strong { font-family: var(--ag-head); font-size: .92rem; font-weight: 600; color: var(--ag-black); letter-spacing: .01em; }
.ag-reassurance__txt span { font-family: var(--ag-body); font-size: .78rem; color: var(--ag-gray); }
@media (max-width: 991px) { .ag-reassurance__inner { grid-template-columns: repeat(2, 1fr); gap: 1.3rem 1.6rem; } }

/* ---- Section titres custom ---- */
.ag-section-title { text-align: center; text-transform: uppercase; letter-spacing: .2em; font-weight: 600; font-size: 1.4rem; font-family: var(--ag-head); color: var(--ag-black); position: relative; padding-bottom: 1rem; margin: 0 auto 2.6rem; }
.ag-section-title::after { content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 56px; height: 2px; background: var(--ag-gold); }
/* Masque les liens "Tous les produits…" en pied de section (flottants/incohérents) */
.featured-products .all-product-link, .products-section-footer .all-product-link, section .all-product-link { display: none !important; }
/* En-tête de catégorie : image de couverture centrée et non déformée (toutes les catégories) */
#category .block-category { overflow: hidden; }
#category .block-category-inner { display: block; }
#category .category-cover { position: static !important; float: none !important; right: auto !important; bottom: auto !important; left: auto !important; top: auto !important; text-align: center; margin: 1.4rem auto 0 !important; }
#category .category-cover img { position: static !important; float: none !important; display: inline-block !important; width: auto !important; height: auto !important; max-width: 100% !important; max-height: 240px; border-radius: 10px; object-fit: cover; }

/* ---- Bannières catégories ---- */
.ag-categories { max-width: 1240px; margin: 0 auto 4rem; padding: 0 5vw; }
.ag-categories__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.ag-cat-card { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 300px; padding: 2rem; border-radius: 6px; overflow: hidden; background: linear-gradient(160deg, #1b1b21, #0a0a0c); border: 1px solid rgba(255,255,255,.07); transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease; }
.ag-cat-card:hover { transform: translateY(-5px); border-color: var(--ag-gold); box-shadow: 0 22px 44px -24px rgba(10,10,12,.7); }
.ag-cat-card__num { position: absolute; top: .6rem; right: 1.4rem; font-family: var(--ag-head); font-size: 4.8rem; font-weight: 700; color: rgba(201,168,106,.15); line-height: 1; }
.ag-cat-card__label { font-family: var(--ag-head); font-size: 1.4rem; font-weight: 600; color: #fff; letter-spacing: .01em; position: relative; z-index: 2; }
.ag-cat-card__link { margin-top: .6rem; font-family: var(--ag-head); font-size: .76rem; text-transform: uppercase; letter-spacing: .16em; color: var(--ag-gold); position: relative; z-index: 2; }
.ag-cat-card__link::after { content: " →"; display: inline-block; transition: transform .25s ease; }
.ag-cat-card:hover .ag-cat-card__link::after { transform: translateX(4px); }
@media (max-width: 767px) { .ag-categories__grid { grid-template-columns: 1fr; } }

/* ---- Fiche produit ---- */
.page-product .breadcrumb a, .breadcrumb a { color: var(--ag-gray) !important; font-size: .82rem; letter-spacing: .02em; }
.page-product .breadcrumb a:hover { color: var(--ag-gold-d) !important; }
.product-information h1, h1.h1, .page-product .h1 {
  font-family: var(--ag-head) !important; font-size: 2.1rem !important; font-weight: 700 !important;
  letter-spacing: .01em; color: var(--ag-black) !important; line-height: 1.15;
}
.product-prices { margin: 1.3rem 0; }
.product-price, .current-price span.price, .current-price-value, .product-prices .current-price .price {
  font-family: var(--ag-head) !important; font-size: 2rem !important; font-weight: 700 !important; color: var(--ag-black) !important;
}
.product-prices .regular-price, .regular-price { color: var(--ag-gray) !important; font-size: 1.15rem; }
/* badge réduction : or au lieu d'orange */
.discount, .discount-percentage, .product-discount .discount, span.discount, .product-flag.discount, .has-discount .discount {
  background: var(--ag-gold) !important; color: var(--ag-black) !important; border-radius: 2px !important;
  font-family: var(--ag-head) !important; text-transform: uppercase; letter-spacing: .08em; font-weight: 600 !important;
}
.tax-shipping-delivery-label, .product-prices .tax-shipping-delivery-label {
  color: var(--ag-gray) !important; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em;
}
.product-variants .control-label, .product-quantity .control-label, .product-actions .control-label {
  font-family: var(--ag-head) !important; text-transform: uppercase; letter-spacing: .1em; font-size: .78rem;
  color: var(--ag-ink) !important; font-weight: 600;
}
.product-variants .input-color + span, .product-variants .color { border-radius: 2px !important; }
.product-add-to-cart .add-to-cart, .product-actions .add-to-cart { min-width: 290px; padding: .95rem 2rem !important; }
.product-cover img, .js-qv-product-cover img { border: 1px solid var(--ag-line); border-radius: 6px; background: #fff; }
.product-images li img, .images-container .thumb { border: 1px solid var(--ag-line) !important; border-radius: 4px; transition: border-color .25s ease; }
.product-images li img:hover, .images-container .thumb.selected { border-color: var(--ag-gold) !important; }
.product-information .product-description, .product-description p { color: var(--ag-ink); line-height: 1.7; }
.tabs .nav-tabs .nav-link { font-family: var(--ag-head) !important; text-transform: uppercase; letter-spacing: .08em; font-size: .82rem; color: var(--ag-gray); border: 0; }
.tabs .nav-tabs .nav-link.active { color: var(--ag-black); border-bottom: 2px solid var(--ag-gold); }

/* ---- Bannière CTA premium ---- */
.ag-cta { position: relative; overflow: hidden; background: linear-gradient(135deg, #0a0a0c, #18181d 55%, #0a0a0c); margin: 1rem 0 0; padding: 4.5rem 6vw; text-align: center; }
.ag-cta__glow { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 70%; height: 200%; background: radial-gradient(circle, rgba(201,168,106,.16), transparent 60%); pointer-events: none; }
.ag-cta__inner { position: relative; z-index: 2; max-width: 640px; margin: 0 auto; }
.ag-cta__eyebrow { display: inline-block; letter-spacing: .3em; text-transform: uppercase; font-size: .72rem; font-weight: 600; color: var(--ag-gold); margin-bottom: 1rem; font-family: var(--ag-head); }
.ag-cta__title { font-family: var(--ag-head); font-size: clamp(1.8rem, 3.6vw, 2.6rem); font-weight: 700; color: #fff; letter-spacing: .01em; margin: 0 0 1rem; }
.ag-cta__text { font-family: var(--ag-body); color: #b9b9c0; font-size: 1.05rem; line-height: 1.6; margin: 0 auto 2rem; max-width: 30rem; }
.ag-cta__btn { display: inline-block; background: var(--ag-gold); color: #0a0a0c; padding: .95rem 2.4rem; border-radius: 2px; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; font-size: .78rem; font-family: var(--ag-head); transition: all .25s ease; }
.ag-cta__btn:hover { background: #fff; color: #0a0a0c; transform: translateY(-2px); }

/* ---- Header sticky ---- */
#header { position: sticky; top: 0; z-index: 1000; }

/* ---- Animations d'apparition au scroll ---- */
.ag-reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
.ag-reveal.ag-in { opacity: 1; transform: none; }

/* ---- Harmonisation liens rouges → or + bouton « Afficher » ---- */
.forgot-password a, .no-account a, .forgotten-password a, .lost_password a { color: var(--ag-gold-d) !important; }
.forgot-password a:hover, .no-account a:hover { color: var(--ag-gold) !important; }
.input-group .btn, [data-action="show-password"], .show-password .btn, .input-group-text {
  background: var(--ag-ink) !important; color: #fff !important; border-color: var(--ag-ink) !important;
  font-family: var(--ag-head) !important; text-transform: uppercase; letter-spacing: .08em; font-size: .72rem;
}

/* ---- Crédit thème (footer) — désactivable côté client ---- */
.ag-theme-credit { text-align: center; padding: 1rem 0 1.4rem; font-size: .74rem; letter-spacing: .06em; color: #7a7a82 !important; font-family: var(--ag-head) !important; }
.ag-theme-credit a { color: var(--ag-gold) !important; }
