/**
 * QR Animal — MODULES / Styles conditionnels (handle 'qr-base')
 * ─────────────────────────────────────────────────────────────
 * @since 10.30.18 — Issu du split de qr-base.css. Contient :
 *   page produit WooCommerce, homepage, espace client, wizard,
 *   paramètres notifications, fiche animal, alerte perdu,
 *   tracking, carte animaux perdus.
 * Chargé si : is_front_page(), is_woocommerce(), is_cart(),
 * is_checkout(), is_account_page(), shortcode QR détecté, ou
 * enqueue direct du handle 'qr-base' (17 points d'appel existants).
 * Dépend de 'qr-core' (chargé partout).
 */

/* ══════════════════════════════════════════════════════════
   ═══════════════════════════════════════════════════════════
   SINGLE PRODUCT — PAGE PRODUIT WOOCOMMERCE + WOODMART
   Titre, galerie, prix, formulaire, personnalisation,
   onglets, tableaux, avis, produits liés, USP badges.
   (Fusionné depuis qr-single-product.css — @since 4.2.0)
   ═══════════════════════════════════════════════════════════
   ══════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════
   PAGE BODY & LAYOUT
   ══════════════════════════════════════ */
.single-product {
    background: var(--qr-bg-body) !important;
}

.single-product .site-content,
.single-product .main-page-wrapper,
.single-product .wd-page-content,
.single-product #main {
    background-color: var(--qr-bg-body) !important;
}

/* Force fond sombre sur TOUS les conteneurs Woodmart single product */
.single-product .content-layout-wrapper,
.single-product .wd-content-area,
.single-product .wd-content-layout,
.single-product article.product,
.single-product div.product,
.single-product .woocommerce-tabs,
.single-product .woocommerce-tabs .panel,
.single-product .woocommerce-tabs .woocommerce-Tabs-panel,
.single-product .woocommerce-Tabs-panel--description,
.single-product .woocommerce-Tabs-panel--additional_information,
.single-product .woocommerce-Tabs-panel--reviews,
.single-product .wd-tabs,
.single-product .wd-tabs .panel,
.single-product .wd-single-info-row,
.single-product .wd-single-info-item,
.single-product .wd-single-content,
.single-product .wd-single-tabs,
.single-product .wd-accordion,
.single-product .wd-accordion .wd-accordion-content,
.single-product .product-extra-content,
.single-product .wd-builder-on .entry-content,
.single-product .wd-builder-off .entry-content,
.single-product .entry-content,
.single-product .summary.entry-summary {
    background-color: var(--qr-bg-body) !important;
    color: var(--qr-text-secondary) !important;
}

/* Texte dans les onglets — forcer blanc/gris clair */
.single-product .woocommerce-tabs .panel *,
.single-product .wd-tabs .panel * {
    color: inherit !important;
}

/* ── Elementor containers sur page produit — fond sombre ── */
.single-product .e-con,
.single-product .e-con-inner,
.single-product .e-con-boxed {
    background-color: var(--qr-bg-body) !important;
}

/* ── Colonnes Description / Caractéristiques ── */
/* Cibler les conteneurs enfants qui ont un background Elementor défini */
.single-product .e-con.e-child[data-settings*="background"] {
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    border-radius: var(--qr-radius) !important;
    padding: 32px !important;
}

/* Widgets intérieurs — fond transparent pour laisser voir la card */
.single-product .e-con.e-child[data-settings*="background"] .elementor-widget-container {
    background: transparent !important;
}

/* Éléments imbriqués dans la card — héritent du fond card #161616 */
.single-product .e-con.e-child[data-settings*="background"] .e-con,
.single-product .e-con.e-child[data-settings*="background"] .e-con-inner,
.single-product .e-con.e-child[data-settings*="background"] .elementor-element {
    background: transparent !important;
    background-color: transparent !important;
}

.single-product .elementor-widget-wd_single_product_content .elementor-widget-container,
.single-product .elementor-widget-wd_single_product_additional_info_table .elementor-widget-container,
.single-product .elementor-widget-wd_title .elementor-widget-container,
.single-product .elementor-widget-wd_single_product_reviews .elementor-widget-container,
.single-product .elementor-widget-divider .elementor-widget-container {
    background-color: transparent !important;
}

/* Info boxes USP — garder fond card */
.single-product .elementor-widget-wd_infobox .elementor-widget-container {
    background-color: transparent !important;
}

/* ── Woodmart titres (Description, Caractéristiques, etc.) ── */
.single-product .woodmart-title-container,
.single-product .title-wrapper,
.single-product .liner-continer h4,
.single-product .wd-title-color-default .title {
    color: var(--qr-text-primary) !important;
}

/* ── Woodmart single product content ── */
.single-product .wd-single-content,
.single-product .wd-single-content p,
.single-product .wd-single-content li {
    color: var(--qr-text-secondary) !important;
}

.single-product .wd-single-content strong {
    color: var(--qr-text-primary) !important;
}

.single-product .wd-single-content h2,
.single-product .wd-single-content h3,
.single-product .wd-single-content h4 {
    color: var(--qr-text-primary) !important;
}

.single-product .wd-single-content hr {
    border: none !important;
    height: 1px !important;
    background: linear-gradient(to right, transparent, var(--qr-gold-border), transparent) !important;
    margin: 30px auto !important;
    max-width: 200px !important;
}

/* HR dans le widget contenu Elementor */
.single-product .elementor-widget-wd_single_product_content hr,
.single-product .elementor-widget-container hr,
.single-product .e-con.e-child hr {
    border: none !important;
    height: 1px !important;
    background: linear-gradient(to right, transparent, rgba(251, 191, 36, 0.3), transparent) !important;
    margin: 30px auto !important;
    max-width: 200px !important;
}

/* ── Tableaux attributs Woodmart (shop_attributes) ── */
.single-product .shop_attributes,
.single-product .woocommerce-product-attributes {
    background: transparent !important;
    width: 100% !important;
    border-collapse: collapse !important;
}

.single-product .woocommerce-product-attributes-item__label,
.single-product .shop_attributes th {
    color: var(--qr-text-muted) !important;
    background: transparent !important;
    border-bottom: 1px solid var(--qr-border) !important;
    border-top: none !important;
    padding: 12px 16px !important;
    font-weight: 400 !important;
}

.single-product .woocommerce-product-attributes-item__value,
.single-product .shop_attributes td {
    color: var(--qr-text-primary) !important;
    background: transparent !important;
    border-bottom: 1px solid var(--qr-border) !important;
    border-top: none !important;
    padding: 12px 16px !important;
    font-weight: 600 !important;
}

.single-product .shop_attributes td p,
.single-product .woocommerce-product-attributes-item__value p {
    color: var(--qr-text-primary) !important;
    margin: 0 !important;
}

.single-product .wd-attr-name,
.single-product .wd-attr-name-label {
    color: var(--qr-text-muted) !important;
}

.single-product .wd-attr-term,
.single-product .wd-attr-term p {
    color: var(--qr-text-primary) !important;
}

.single-product .shop_attributes tr:hover th,
.single-product .shop_attributes tr:hover td {
    background: var(--qr-bg-card) !important;
}

.single-product .shop_attributes tr:last-child th,
.single-product .shop_attributes tr:last-child td {
    border-bottom: none !important;
}

.single-product .woocommerce-tabs .panel h2,
.single-product .woocommerce-tabs .panel h3,
.single-product .woocommerce-tabs .panel h4,
.single-product .woocommerce-tabs .panel strong,
.single-product .wd-tabs .panel h2,
.single-product .wd-tabs .panel h3,
.single-product .wd-tabs .panel h4,
.single-product .wd-tabs .panel strong {
    color: var(--qr-text-primary) !important;
}

/* ── USP Badges Elementor / Woodmart Info Boxes ── */
.single-product .wd-info-box,
.single-product .info-box-wrapper,
.single-product .wd-info-box.box-style-shadow {
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    border-radius: var(--qr-radius-sm) !important;
    box-shadow: none !important;
    transition: border-color 0.3s !important;
}

.single-product .wd-info-box:hover,
.single-product .info-box-wrapper:hover {
    border-color: var(--qr-gold-border) !important;
}

.single-product .info-box-title,
.single-product .wd-info-box .info-box-title {
    color: var(--qr-text-primary) !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
}

.single-product .info-box-inner,
.single-product .info-box-inner p,
.single-product .info-box-content p,
.single-product .reassurance-subtitle {
    color: var(--qr-text-muted) !important;
    font-size: 0.78rem !important;
}

/* ══════════════════════════════════════
   BREADCRUMB
   ══════════════════════════════════════ */
.single-product .woocommerce-breadcrumb,
.single-product .breadcrumbs,
.single-product .wd-breadcrumbs,
.single-product .woodmart-breadcrumbs {
    background: transparent !important;
    padding: 16px 0 !important;
}

.single-product .woocommerce-breadcrumb,
.single-product .woocommerce-breadcrumb a,
.single-product .breadcrumbs a,
.single-product .wd-breadcrumbs a {
    color: var(--qr-text-muted) !important;
    font-size: 0.82rem !important;
    text-decoration: none !important;
}

.single-product .woocommerce-breadcrumb a:hover,
.single-product .breadcrumbs a:hover,
.single-product .wd-breadcrumbs a:hover {
    color: var(--qr-gold) !important;
}

/* ══════════════════════════════════════
   PAGE TITLE
   ══════════════════════════════════════ */
.single-product .page-title,
.single-product .wd-page-title {
    background: var(--qr-bg-body) !important;
}

.single-product .page-title h1,
.single-product .wd-page-title h1,
.single-product .entry-title {
    color: var(--qr-text-primary) !important;
}

/* ══════════════════════════════════════
   PRODUCT TITLE (H1)
   ══════════════════════════════════════ */
.single-product .product_title,
.single-product h1.product_title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: clamp(1.6rem, 3vw, 2.2rem) !important;
    font-weight: 700 !important;
    color: var(--qr-text-primary) !important;
    line-height: 1.25 !important;
    margin-bottom: 16px !important;
}

/* ══════════════════════════════════════
   PRODUCT NAVIGATION (prev/next)
   ══════════════════════════════════════ */
.single-product .wd-product-nav,
.single-product .woodmart-product-nav,
.single-product .product-nav {
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    border-radius: var(--qr-radius-sm) !important;
}

.single-product .wd-product-nav a,
.single-product .product-nav a {
    color: var(--qr-text-secondary) !important;
}

.single-product .wd-product-nav a:hover,
.single-product .product-nav a:hover {
    color: var(--qr-gold) !important;
}

.single-product .wd-product-nav .product-short-info,
.single-product .product-nav .product-short-info {
    background: var(--qr-bg-elevated) !important;
    border: 1px solid var(--qr-border) !important;
}

.single-product .wd-product-nav .product-short-info .product-title,
.single-product .product-nav .product-short-info .product-title {
    color: var(--qr-text-primary) !important;
}

.single-product .wd-product-nav .product-short-info .amount,
.single-product .product-nav .product-short-info .amount {
    color: var(--qr-gold) !important;
}

/* ══════════════════════════════════════
   PRODUCT GALLERY / IMAGES
   ══════════════════════════════════════ */
.single-product .woocommerce-product-gallery,
.single-product .product-images {
    background: transparent !important;
}

.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image,
.single-product .product-images img {
    border-radius: var(--qr-radius) !important;
    border: 1px solid var(--qr-border) !important;
    background: var(--qr-bg-card) !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li img {
    border-radius: var(--qr-radius-sm) !important;
    border: 1px solid var(--qr-border) !important;
    opacity: 0.6;
    transition: all 0.3s;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li img:hover,
.single-product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
    opacity: 1;
    border-color: var(--qr-gold-border) !important;
}

/* ══════════════════════════════════════
   SHOP / ARCHIVE — PRIX GRILLE PRODUITS
   ══════════════════════════════════════ */
.products .product .price .amount,
.wd-products .product .price .amount,
.wd-products-element .product .price .amount {
    color: #fff !important;
}

.products .product .price del .amount,
.wd-products .product .price del .amount {
    color: var(--qr-text-dim) !important;
    opacity: 0.6;
}

/* ══════════════════════════════════════
   PRICE
   ══════════════════════════════════════ */
.single-product .price,
.single-product p.price,
.single-product .summary .price {
    color: var(--qr-gold) !important;
    font-size: 1.6rem !important;
    font-weight: 700 !important;
}

.single-product .price del {
    color: var(--qr-text-dim) !important;
    opacity: 0.6;
}

.single-product .price ins {
    color: var(--qr-gold) !important;
    text-decoration: none !important;
}

.single-product .price .woocommerce-Price-currencySymbol {
    color: inherit !important;
}
.amount {
	color: var(--qr-gold) !important;
}

/* ══════════════════════════════════════
   STOCK STATUS
   ══════════════════════════════════════ */
.single-product .stock,
.single-product .in-stock {
    color: var(--qr-green) !important;
}

.single-product .out-of-stock {
    color: var(--qr-red) !important;
}

.single-product .on-backorder {
    color: var(--qr-orange) !important;
}

/* ══════════════════════════════════════
   PRODUCT SUMMARY / META
   ══════════════════════════════════════ */
.single-product .summary,
.single-product .entry-summary {
    color: var(--qr-text-secondary) !important;
}

.single-product .product_meta,
.single-product .product_meta span {
    color: var(--qr-text-muted) !important;
    font-size: 0.85rem !important;
}

.single-product .product_meta a {
    color: var(--qr-gold) !important;
    text-decoration: none !important;
}

.single-product .product_meta a:hover {
    text-decoration: underline !important;
}

/* ══════════════════════════════════════
   PERSONALIZATION FORM (configurateur)
   ══════════════════════════════════════ */
.single-product .summary label,
.single-product .summary .label {
    color: var(--qr-text-primary) !important;
    font-weight: 600 !important;
}

.single-product .summary input[type="text"],
.single-product .summary input[type="number"],
.single-product .summary input[type="email"],
.single-product .summary textarea,
.single-product .summary select {
    background: var(--qr-bg-input) !important;
    border: 1px solid var(--qr-border-light) !important;
    color: var(--qr-text-primary) !important;
    border-radius: var(--qr-radius-sm) !important;
    padding: 10px 14px !important;
    transition: border-color 0.3s !important;
}

.single-product .summary input:focus,
.single-product .summary textarea:focus,
.single-product .summary select:focus {
    border-color: var(--qr-gold) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px var(--qr-gold-muted) !important;
}

.single-product .summary input::placeholder,
.single-product .summary textarea::placeholder {
    color: var(--qr-text-dim) !important;
}

/* Blockquote aide dans le configurateur */
.single-product .summary blockquote {
    background: var(--qr-gold-muted) !important;
    border-left: 3px solid var(--qr-gold) !important;
    color: var(--qr-text-secondary) !important;
    padding: 10px 16px !important;
    margin: 12px 0 !important;
    border-radius: 0 var(--qr-radius-sm) var(--qr-radius-sm) 0 !important;
    font-size: 0.85rem !important;
}

/* Typography selector dropdown */
.single-product .summary .font-selector,
.single-product .summary .typography-selector {
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    border-radius: var(--qr-radius-sm) !important;
}

/* Size radio buttons */
.single-product .summary input[type="radio"] + label,
.single-product .summary .size-option {
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    color: var(--qr-text-secondary) !important;
    border-radius: var(--qr-radius-sm) !important;
    transition: all 0.3s !important;
}

.single-product .summary input[type="radio"]:checked + label,
.single-product .summary .size-option.active,
.single-product .summary .size-option:hover {
    border-color: var(--qr-gold) !important;
    background: var(--qr-gold-muted) !important;
    color: var(--qr-gold) !important;
}

/* View configuration link */
.single-product .summary a[href*="configuration"],
.single-product .summary .view-config-link {
    color: var(--qr-gold) !important;
    text-decoration: none !important;
}

/* Motif decoratif popup / canvas */
.single-product #canvas_popup_1836,
.single-product [id*="canvas_popup"] {
    background: var(--qr-bg-card) !important;
    color: var(--qr-text-primary) !important;
}

/* ══════════════════════════════════════
   QUANTITY INPUT
   ══════════════════════════════════════ */
.single-product .quantity,
.single-product .quantity .qty {
    background: var(--qr-bg-input) !important;
    border: 1px solid var(--qr-border-light) !important;
    color: var(--qr-text-primary) !important;
    border-radius: var(--qr-radius-sm) !important;
}

.single-product .quantity .qty:focus {
    border-color: var(--qr-gold) !important;
    outline: none !important;
}

.single-product .quantity .plus,
.single-product .quantity .minus,
.single-product .quantity button {
    background: var(--qr-bg-surface) !important;
    color: var(--qr-text-secondary) !important;
    border: 1px solid var(--qr-border) !important;
}

.single-product .quantity .plus:hover,
.single-product .quantity .minus:hover,
.single-product .quantity button:hover {
    background: var(--qr-bg-elevated) !important;
    color: var(--qr-gold) !important;
    border-color: var(--qr-gold-border) !important;
}

/* ══════════════════════════════════════
   ADD TO CART BUTTON
   ══════════════════════════════════════ */
.single-product .single_add_to_cart_button,
.single-product button.single_add_to_cart_button,
.single-product .cart .single_add_to_cart_button {
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark)) !important;
    color: #000 !important;
    border: none !important;
    border-radius: var(--qr-radius-pill) !important;
    padding: 14px 36px !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 20px rgba(251, 191, 36, 0.3) !important;
}

.single-product .single_add_to_cart_button:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 30px rgba(251, 191, 36, 0.45) !important;
}

.single-product .single_add_to_cart_button:active {
    transform: translateY(0) !important;
}

.single-product .single_add_to_cart_button.disabled,
.single-product .single_add_to_cart_button:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
    transform: none !important;
}

/* ══════════════════════════════════════
   WISHLIST / COMPARE BUTTONS
   ══════════════════════════════════════ */
.single-product .summary .wd-action-btn,
.single-product .summary .woodmart-wishlist-btn,
.single-product .summary .woodmart-compare-btn,
.single-product .summary .product-actions-btns a {
    color: var(--qr-text-muted) !important;
    border: 1px solid var(--qr-border) !important;
    background: var(--qr-bg-card) !important;
    border-radius: var(--qr-radius-sm) !important;
    transition: all 0.3s !important;
}

.single-product .summary .wd-action-btn:hover,
.single-product .summary .woodmart-wishlist-btn:hover,
.single-product .summary .woodmart-compare-btn:hover,
.single-product .summary .product-actions-btns a:hover {
    color: var(--qr-gold) !important;
    border-color: var(--qr-gold-border) !important;
    background: var(--qr-gold-muted) !important;
}

/* ══════════════════════════════════════
   USP BADGES (Made in Bordeaux, QR Code, etc.)
   ══════════════════════════════════════ */
.single-product .wd-single-info-row,
.single-product .product-extra-content,
.single-product .product-usp-row {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 16px;
    padding: 24px 0;
    border-top: 1px solid var(--qr-border);
    margin-top: 24px;
}

.single-product .wd-single-info-item,
.single-product .product-usp-item {
    text-align: center;
    padding: 16px 8px;
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    border-radius: var(--qr-radius-sm);
    color: var(--qr-text-secondary) !important;
    transition: border-color 0.3s;
}

.single-product .wd-single-info-item:hover,
.single-product .product-usp-item:hover {
    border-color: var(--qr-gold-border);
}

.single-product .wd-single-info-item h4,
.single-product .product-usp-item h4 {
    color: var(--qr-text-primary) !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    margin: 8px 0 4px !important;
}

.single-product .wd-single-info-item p,
.single-product .product-usp-item p {
    color: var(--qr-text-muted) !important;
    font-size: 0.75rem !important;
    margin: 0 !important;
}

/* "X personnes regardent ce produit" */
.single-product .wd-visit-count,
.single-product .woodmart-visit-count,
.single-product .product-visitor-count {
    color: var(--qr-text-muted) !important;
    font-size: 0.85rem !important;
}

/* ══════════════════════════════════════
   TABS (Description, Caractéristiques, Avis)
   ══════════════════════════════════════ */
.single-product .woocommerce-tabs,
.single-product .wd-tabs {
    margin-top: 50px;
}

.single-product .woocommerce-tabs .tabs,
.single-product .woocommerce-tabs ul.tabs,
.single-product .wd-tabs .tabs {
    list-style: none !important;
    display: flex !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 0 30px !important;
    border-bottom: 1px solid var(--qr-border) !important;
    background: transparent !important;
}

.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after {
    display: none !important;
}

.single-product .woocommerce-tabs ul.tabs li,
.single-product .wd-tabs .tabs li {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.single-product .woocommerce-tabs ul.tabs li a,
.single-product .wd-tabs .tabs li a {
    display: block;
    padding: 14px 24px !important;
    color: var(--qr-text-muted) !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    border-bottom: 2px solid transparent !important;
    transition: all 0.3s !important;
    background: transparent !important;
}

.single-product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--qr-text-primary) !important;
}

.single-product .woocommerce-tabs ul.tabs li.active a,
.single-product .wd-tabs .tabs li.active a {
    color: var(--qr-gold) !important;
    border-bottom-color: var(--qr-gold) !important;
}

/* Tab content panels */
.single-product .woocommerce-tabs .panel,
.single-product .woocommerce-tabs .woocommerce-Tabs-panel,
.single-product .wd-tabs .panel {
    background: transparent !important;
    color: var(--qr-text-secondary) !important;
    padding: 0 !important;
}

.single-product .woocommerce-tabs .panel h2,
.single-product .woocommerce-tabs .panel h3,
.single-product .woocommerce-tabs .panel h4 {
    color: var(--qr-text-primary) !important;
}

.single-product .woocommerce-tabs .panel p {
    color: var(--qr-text-secondary) !important;
    line-height: 1.7 !important;
}

.single-product .woocommerce-tabs .panel strong {
    color: var(--qr-text-primary) !important;
}

.single-product .woocommerce-tabs .panel a {
    color: var(--qr-gold) !important;
}

/* <hr> in tab content */
.single-product .woocommerce-tabs .panel hr {
    border: none;
    height: 1px;
    background: linear-gradient(to right, transparent, var(--qr-gold-border), transparent);
    margin: 30px auto;
    max-width: 200px;
}

/* Lists in description */
.single-product .woocommerce-tabs .panel ul,
.single-product .woocommerce-tabs .panel ol {
    color: var(--qr-text-secondary) !important;
    padding-left: 20px !important;
}

.single-product .woocommerce-tabs .panel li {
    margin-bottom: 6px;
}

/* ══════════════════════════════════════
   TABLES (Caractéristiques)
   ══════════════════════════════════════ */
.single-product .woocommerce-tabs table,
.single-product .woocommerce-tabs .shop_attributes,
.single-product table.shop_attributes {
    width: 100% !important;
    border-collapse: collapse !important;
    border: none !important;
    background: transparent !important;
}

.single-product .woocommerce-tabs table th,
.single-product .woocommerce-tabs table td,
.single-product table.shop_attributes th,
.single-product table.shop_attributes td {
    padding: 12px 16px !important;
    border: none !important;
    border-bottom: 1px solid var(--qr-border) !important;
    font-size: 0.9rem !important;
    vertical-align: middle !important;
}

.single-product .woocommerce-tabs table th,
.single-product table.shop_attributes th {
    color: var(--qr-text-muted) !important;
    font-weight: 400 !important;
    width: 40% !important;
    background: transparent !important;
}

.single-product .woocommerce-tabs table td,
.single-product table.shop_attributes td {
    color: var(--qr-text-primary) !important;
    font-weight: 600 !important;
    background: transparent !important;
}

.single-product .woocommerce-tabs table tr:hover th,
.single-product .woocommerce-tabs table tr:hover td {
    background: var(--qr-bg-card) !important;
}

.single-product .woocommerce-tabs table tr:last-child th,
.single-product .woocommerce-tabs table tr:last-child td {
    border-bottom: none !important;
}

/* ══════════════════════════════════════
   ACCORDION TABS (Woodmart accordion style)
   ══════════════════════════════════════ */
.single-product .wd-accordion .wd-accordion-title,
.single-product .wc-tabs-wrapper .wd-accordion-title {
    background: var(--qr-bg-card) !important;
    color: var(--qr-text-primary) !important;
    border: 1px solid var(--qr-border) !important;
    padding: 16px 20px !important;
    border-radius: var(--qr-radius-sm) !important;
    margin-bottom: 8px !important;
    cursor: pointer;
    transition: all 0.3s !important;
}

.single-product .wd-accordion .wd-accordion-title:hover {
    border-color: var(--qr-gold-border) !important;
}

.single-product .wd-accordion .wd-accordion-title.active,
.single-product .wd-accordion .wd-accordion-title[aria-expanded="true"] {
    border-color: var(--qr-gold) !important;
    color: var(--qr-gold) !important;
}

.single-product .wd-accordion .wd-accordion-content {
    background: transparent !important;
    color: var(--qr-text-secondary) !important;
    padding: 20px !important;
}

/* ══════════════════════════════════════
   REVIEW FORM
   ══════════════════════════════════════ */
.single-product #reviews {
    color: var(--qr-text-secondary) !important;
}

.single-product #reviews h2,
.single-product #reviews .woocommerce-Reviews-title {
    color: var(--qr-text-primary) !important;
}

.single-product #reviews .comment-respond {
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    border-radius: var(--qr-radius) !important;
    padding: 28px !important;
    margin-top: 20px !important;
}

.single-product #reviews .comment-form label {
    color: var(--qr-text-secondary) !important;
}

.single-product #reviews .comment-form input,
.single-product #reviews .comment-form textarea {
    background: var(--qr-bg-input) !important;
    border: 1px solid var(--qr-border-light) !important;
    color: var(--qr-text-primary) !important;
    border-radius: var(--qr-radius-sm) !important;
    padding: 10px 14px !important;
}

.single-product #reviews .comment-form input:focus,
.single-product #reviews .comment-form textarea:focus {
    border-color: var(--qr-gold) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px var(--qr-gold-muted) !important;
}

.single-product #reviews .comment-form .submit,
.single-product #reviews .comment-form input[type="submit"] {
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark)) !important;
    color: #000 !important;
    border: none !important;
    border-radius: var(--qr-radius-pill) !important;
    padding: 12px 32px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.3s !important;
    box-shadow: 0 4px 15px rgba(251, 191, 36, 0.25) !important;
}

.single-product #reviews .comment-form .submit:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 25px rgba(251, 191, 36, 0.4) !important;
}

/* Stars rating */
.single-product #reviews .stars a,
.single-product .star-rating span::before {
    color: var(--qr-gold) !important;
}

.single-product .star-rating::before {
    color: var(--qr-border-light) !important;
}

/* Existing reviews */
.single-product #reviews .comment_container {
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    border-radius: var(--qr-radius) !important;
    padding: 20px !important;
    margin-bottom: 16px !important;
}

.single-product #reviews .woocommerce-review__author {
    color: var(--qr-text-primary) !important;
    font-weight: 600 !important;
}

.single-product #reviews .woocommerce-review__published-date {
    color: var(--qr-text-dim) !important;
}

.single-product #reviews .description p {
    color: var(--qr-text-secondary) !important;
}

/* "No reviews yet" message */
.single-product #reviews .woocommerce-noreviews {
    color: var(--qr-text-muted) !important;
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    border-radius: var(--qr-radius-sm) !important;
    padding: 20px !important;
    text-align: center;
}

/* ══════════════════════════════════════
   RELATED / UPSELL PRODUCTS
   ══════════════════════════════════════ */
.single-product .related.products,
.single-product .upsells.products,
.single-product .cross-sells {
    padding-top: 40px;
    margin-top: 40px;
    border-top: 1px solid var(--qr-border);
}

.single-product .related.products > h2,
.single-product .upsells.products > h2,
.single-product .cross-sells > h2 {
    font-family: 'Playfair Display', Georgia, serif !important;
    color: var(--qr-text-primary) !important;
    font-size: 1.5rem !important;
    margin-bottom: 24px !important;
}

.single-product .related.products .product,
.single-product .upsells.products .product {
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    border-radius: var(--qr-radius) !important;
    overflow: hidden !important;
    transition: all 0.35s !important;
}

.single-product .related.products .product:hover,
.single-product .upsells.products .product:hover {
    transform: translateY(-4px) !important;
    border-color: var(--qr-gold-border) !important;
    box-shadow: var(--qr-shadow-gold) !important;
}

.single-product .related.products .product .woocommerce-loop-product__title,
.single-product .upsells.products .product .woocommerce-loop-product__title {
    color: var(--qr-text-primary) !important;
    font-size: 0.9rem !important;
}

.single-product .related.products .product .price,
.single-product .upsells.products .product .price {
    color: var(--qr-gold) !important;
    font-size: 1rem !important;
}

.single-product .related.products .product .button,
.single-product .upsells.products .product .button {
    background: transparent !important;
    border: 1px solid var(--qr-gold-border) !important;
    color: var(--qr-gold) !important;
    border-radius: var(--qr-radius-sm) !important;
    transition: all 0.3s !important;
}

.single-product .related.products .product .button:hover,
.single-product .upsells.products .product .button:hover {
    background: var(--qr-gold) !important;
    color: #000 !important;
}

/* ══════════════════════════════════════
   WOODMART SPECIFIC OVERRIDES
   ══════════════════════════════════════ */

/* Woodmart sticky add to cart bar */
.single-product .wd-sticky-btn,
.single-product .woodmart-sticky-btn {
    background: var(--qr-bg-card) !important;
    border-top: 1px solid var(--qr-border) !important;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.3) !important;
}

.single-product .wd-sticky-btn .product-title,
.single-product .woodmart-sticky-btn .product-title {
    color: var(--qr-text-primary) !important;
}

.single-product .wd-sticky-btn .price,
.single-product .woodmart-sticky-btn .price {
    color: var(--qr-gold) !important;
}

/* Woodmart "Back to products" link */
.single-product .wd-back-btn a,
.single-product a[href*="boutique"].back-to-shop {
    color: var(--qr-text-muted) !important;
    text-decoration: none !important;
    font-size: 0.85rem !important;
}

.single-product .wd-back-btn a:hover,
.single-product a[href*="boutique"].back-to-shop:hover {
    color: var(--qr-gold) !important;
}

/* Woodmart product badges (sale, new, etc.) */
.single-product .wd-product-labels .wd-label,
.single-product .product-labels .label {
    border-radius: var(--qr-radius-sm) !important;
    font-weight: 600 !important;
}

/* Price summary / config popup */
.single-product .wd-popup,
.single-product .woodmart-popup,
.single-product .mfp-content {
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    border-radius: var(--qr-radius) !important;
    color: var(--qr-text-primary) !important;
}

.single-product .wd-popup .close-btn,
.single-product .mfp-close {
    color: var(--qr-text-muted) !important;
}

.single-product .wd-popup .close-btn:hover,
.single-product .mfp-close:hover {
    color: var(--qr-gold) !important;
}

/* ══════════════════════════════════════
   SHARING / SOCIAL
   ══════════════════════════════════════ */
.single-product .product-share,
.single-product .wd-social-icons {
    border-top: 1px solid var(--qr-border) !important;
    padding-top: 16px !important;
    margin-top: 16px !important;
}

.single-product .product-share a,
.single-product .wd-social-icons a {
    color: var(--qr-text-muted) !important;
    transition: color 0.3s !important;
}

.single-product .product-share a:hover,
.single-product .wd-social-icons a:hover {
    color: var(--qr-gold) !important;
}

/* ══════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════ */
/* ══════════════════════════════════════
   RESPONSIVE — TABLETTE (max 768px)
   ══════════════════════════════════════ */
@media (max-width: 768px) {

    /* ── Titre produit ── */
    .single-product .product_title,
    .single-product h1.product_title {
        font-size: 1.4rem !important;
        line-height: 1.3 !important;
    }

    /* ── Prix ── */
    .single-product .price,
    .single-product p.price {
        font-size: 1.3rem !important;
    }

    /* ── Onglets en colonne ── */
    .single-product .woocommerce-tabs ul.tabs {
        flex-direction: column !important;
        border-bottom: none !important;
    }

    .single-product .woocommerce-tabs ul.tabs li a {
        border-bottom: 1px solid var(--qr-border) !important;
        border-left: 2px solid transparent !important;
        padding: 12px 16px !important;
    }

    .single-product .woocommerce-tabs ul.tabs li.active a {
        border-bottom-color: var(--qr-border) !important;
        border-left-color: var(--qr-gold) !important;
    }

    /* ── Contenu onglets ── */
    .single-product .woocommerce-tabs .panel h2 {
        font-size: 1.2rem !important;
    }

    .single-product .woocommerce-tabs .panel p {
        font-size: 0.9rem !important;
    }

    /* ── Tableaux caractéristiques ── */
    .single-product .woocommerce-tabs table th,
    .single-product .woocommerce-tabs table td {
        padding: 10px 12px !important;
        font-size: 0.82rem !important;
    }

    .single-product .woocommerce-tabs table th {
        width: 45% !important;
    }

    /* ── USP badges 2 colonnes ── */
    .single-product .wd-single-info-row,
    .single-product .product-extra-content {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .single-product .wd-single-info-item h4,
    .single-product .product-usp-item h4 {
        font-size: 0.78rem !important;
    }

    .single-product .wd-single-info-item p,
    .single-product .product-usp-item p {
        font-size: 0.7rem !important;
    }

    /* ── Bouton ajout panier full width ── */
    .single-product .single_add_to_cart_button {
        width: 100% !important;
        padding: 14px 20px !important;
    }

    /* ── Formulaire personnalisation ── */
    .single-product .summary input[type="text"],
    .single-product .summary select {
        font-size: 16px !important; /* évite zoom iOS */
    }

    /* ── Navigation prev/next masquée ── */
    .single-product .wd-product-nav,
    .single-product .product-nav {
        display: none !important;
    }

    /* ── Review form ── */
    .single-product #reviews .comment-respond {
        padding: 20px 16px !important;
    }

    /* ── Produits liés : 2 colonnes ── */
    .single-product .related.products > h2,
    .single-product .upsells.products > h2 {
        font-size: 1.2rem !important;
    }

    /* ── Quantité + bouton en colonne ── */
    .single-product form.cart {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
    }

    .single-product form.cart .quantity {
        width: 100% !important;
    }

    /* ── Wishlist / compare inline ── */
    .single-product .product-actions-btns {
        display: flex !important;
        gap: 8px !important;
    }

    .single-product .product-actions-btns a {
        flex: 1 !important;
        text-align: center !important;
        padding: 10px !important;
        font-size: 0.82rem !important;
    }
}

/* ══════════════════════════════════════
   RESPONSIVE — MOBILE (max 480px)
   ══════════════════════════════════════ */
@media (max-width: 480px) {

    /* ── USP badges 1 colonne ── */
    .single-product .wd-single-info-row,
    .single-product .product-extra-content {
        grid-template-columns: 1fr;
    }

    /* ── Titre + prix encore plus compact ── */
    .single-product .product_title {
        font-size: 1.2rem !important;
    }

    .single-product .price {
        font-size: 1.2rem !important;
    }

    /* ── Tableaux : affichage vertical ── */
    .single-product .woocommerce-tabs table,
    .single-product .woocommerce-tabs table tbody,
    .single-product .woocommerce-tabs table tr,
    .single-product .woocommerce-tabs table th,
    .single-product .woocommerce-tabs table td {
        display: block !important;
        width: 100% !important;
    }

    .single-product .woocommerce-tabs table th {
        border-bottom: none !important;
        padding-bottom: 2px !important;
        font-size: 0.75rem !important;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .single-product .woocommerce-tabs table td {
        padding-top: 2px !important;
        padding-bottom: 14px !important;
        border-bottom: 1px solid var(--qr-border) !important;
    }

    /* ── Blockquote aide ── */
    .single-product .summary blockquote {
        font-size: 0.8rem !important;
        padding: 8px 12px !important;
    }
}


/* ══════════════════════════════════════════════════════════
   HOMEPAGE — SECTIONS ACCUEIL
   (Fusionné depuis qr-homepage.css)
   ══════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════
   GOOGLE FONT
   ══════════════════════════════════════ */

/* ══════════════════════════════════════
   COMMUN HOMEPAGE
   ══════════════════════════════════════ */
.sp-section {
    padding: 0px 20px;
    background: var(--qr-bg-body);
    position: relative;
    overflow: hidden;
}

.sp-section:first-child::before {
    display: none;
}

/* ══════════════════════════════════════
   SÉPARATEURS / DIVIDERS
   Couvre : <hr>, Elementor dividers,
   widgets séparateurs, et sp-separator
   ══════════════════════════════════════ */

/* ── <hr> natif (homepage uniquement) ── */
body.home hr,
body.home .wp-block-separator {
    border: none;
    height: 1px;
    max-width: 280px;
    margin: 40px auto;
    background: linear-gradient(to right, transparent, var(--qr-gold-border), transparent);
    opacity: 1;
}

/* ── Elementor Divider Widget (homepage uniquement) ── */
body.home .elementor-widget-divider .elementor-divider {
    padding: 20px 0;
}

body.home .elementor-widget-divider .elementor-divider-separator {
    border-top-color: transparent !important;
    position: relative;
}

body.home .elementor-widget-divider .elementor-divider-separator::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 280px;
    height: 1px;
    background: linear-gradient(to right, transparent, rgba(251, 191, 36, 0.35), transparent);
}

/* Variante Elementor divider avec icône/texte au centre */
body.home .elementor-widget-divider .elementor-icon {
    color: var(--qr-gold) !important;
    opacity: 0.5;
}

/* ── Elementor sections : forcer fond + pas de gap (homepage uniquement) ── */
body.home .elementor-section,
body.home .elementor-top-section,
body.home .e-con,
body.home .e-con-inner {
    --e-con-default-padding-block: 0;
    --e-con-default-padding-inline: 0;
}

/* Page d'accueil : fond body sur toutes les sections Elementor */
body.home .elementor-section,
body.home .elementor-top-section,
body.home .e-con {
    background-color: var(--qr-bg-body) !important;
}

/* ── Séparateur custom sp-separator (pour blocs HTML) ── */
.sp-separator {
    background: var(--qr-bg-body);
    padding: 30px 0;
    text-align: center;
    line-height: 0;
    position: relative;
}

.sp-separator--line {
    padding: 0;
}

.sp-separator--line::after {
    content: '';
    display: block;
    width: 280px;
    height: 1px;
    margin: 0 auto;
    background: linear-gradient(to right, transparent, rgba(251, 191, 36, 0.35), transparent);
}

.sp-separator--diamond {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 500px;
    margin: 0 auto;
    padding: 30px 20px;
    background: var(--qr-bg-body);
}

.sp-separator--diamond::before,
.sp-separator--diamond::after {
    content: '';
    flex: 1;
    height: 1px;
}

.sp-separator--diamond::before {
    background: linear-gradient(to right, transparent, rgba(251, 191, 36, 0.3));
}

.sp-separator--diamond::after {
    background: linear-gradient(to left, transparent, rgba(251, 191, 36, 0.3));
}

.sp-separator__diamond {
    width: 10px;
    height: 10px;
    background: var(--qr-gold);
    transform: rotate(45deg);
    margin: 0 16px;
    box-shadow: 0 0 12px rgba(251, 191, 36, 0.3);
    flex-shrink: 0;
}

.sp-separator--dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 30px 0;
    background: var(--qr-bg-body);
}

.sp-separator__dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(251, 191, 36, 0.3);
}

.sp-separator__dot--center {
    width: 7px;
    height: 7px;
    background: rgba(251, 191, 36, 0.55);
    box-shadow: 0 0 8px rgba(251, 191, 36, 0.2);
}

.sp-separator--paw {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 500px;
    margin: 0 auto;
    padding: 30px 20px;
    background: var(--qr-bg-body);
}

.sp-separator--paw::before,
.sp-separator--paw::after {
    content: '';
    flex: 1;
    height: 1px;
}

.sp-separator--paw::before {
    background: linear-gradient(to right, transparent, rgba(251, 191, 36, 0.2));
}

.sp-separator--paw::after {
    background: linear-gradient(to left, transparent, rgba(251, 191, 36, 0.2));
}

.sp-separator__paw {
    margin: 0 20px;
    font-size: 1.2rem;
    opacity: 0.5;
    filter: grayscale(0.3);
}

.sp-separator--double {
    padding: 30px 0;
    background: var(--qr-bg-body);
    text-align: center;
}

.sp-separator--double::before,
.sp-separator--double::after {
    content: '';
    display: block;
    max-width: 300px;
    height: 1px;
    margin: 0 auto;
}

.sp-separator--double::before {
    background: linear-gradient(to right, transparent, rgba(251, 191, 36, 0.25), transparent);
    margin-bottom: 4px;
}

.sp-separator--double::after {
    background: linear-gradient(to right, transparent, rgba(251, 191, 36, 0.12), transparent);
}

.sp-separator--star {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 400px;
    margin: 0 auto;
    padding: 30px 20px;
    background: var(--qr-bg-body);
}

.sp-separator--star::before,
.sp-separator--star::after {
    content: '';
    flex: 1;
    height: 1px;
}

.sp-separator--star::before {
    background: linear-gradient(to right, transparent, rgba(251, 191, 36, 0.2));
}

.sp-separator--star::after {
    background: linear-gradient(to left, transparent, rgba(251, 191, 36, 0.2));
}

.sp-separator__star {
    margin: 0 16px;
    color: rgba(251, 191, 36, 0.4);
    font-size: 0.9rem;
    letter-spacing: 6px;
}

.sp-separator--short {
    padding: 20px 0;
    text-align: center;
    background: var(--qr-bg-body);
}

.sp-separator--short::after {
    content: '';
    display: block;
    width: 60px;
    height: 2px;
    margin: 0 auto;
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark));
    border-radius: 1px;
    opacity: 0.5;
}

.sp-container {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.sp-section-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--qr-gold);
    margin-bottom: 16px;
}

.sp-section-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    font-weight: 700;
    color: var(--qr-text-primary);
    margin: 0 0 20px;
    line-height: 1.2;
}

.sp-section-title em {
    font-style: italic;
    color: var(--qr-gold);
}

.sp-section-subtitle {
    font-size: 1.05rem;
    color: var(--qr-text-secondary);
    margin: 0 0 40px;
    line-height: 1.7;
}

/* ══════════════════════════════════════
   1. HERO
   ══════════════════════════════════════ */
.sp-hero {
    padding: 100px 20px 80px;
    text-align: center;
    background: var(--qr-bg-body);
    position: relative;
    overflow: hidden;
}

.sp-hero::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 120px;
    background: linear-gradient(to bottom, transparent, var(--qr-bg-body));
    pointer-events: none;
}

.sp-hero-tagline {
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: var(--qr-gold);
    border: 1px solid var(--qr-gold-border);
    padding: 6px 20px;
    border-radius: var(--qr-radius-pill);
    margin-bottom: 30px;
    animation: qr-fadeInDown 0.8s ease-out;
}

.sp-hero h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(2.2rem, 5vw, 3.6rem);
    font-weight: 700;
    color: var(--qr-text-primary);
    margin: 0 0 24px;
    line-height: 1.15;
    animation: qr-fadeInUp 0.8s ease-out 0.1s both;
}

.sp-hero h1 em {
    font-style: italic;
    color: var(--qr-gold);
}

.sp-hero-desc {
    font-size: 1.1rem;
    color: var(--qr-text-secondary);
    max-width: 640px;
    margin: 0 auto 36px;
    line-height: 1.8;
    animation: qr-fadeInUp 0.8s ease-out 0.2s both;
}

.sp-hero-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark));
    color: #000;
    padding: 16px 36px;
    border-radius: var(--qr-radius-pill);
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(251, 191, 36, 0.3);
    animation: qr-fadeInUp 0.8s ease-out 0.3s both;
}

.sp-hero-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(251, 191, 36, 0.45);
    color: #000;
    text-decoration: none;
}

.sp-hero-price {
    display: block;
    margin-top: 14px;
    font-size: 0.9rem;
    color: var(--qr-text-muted);
    animation: qr-fadeInUp 0.8s ease-out 0.4s both;
}

.sp-hero-badges {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 50px;
    animation: qr-fadeInUp 0.8s ease-out 0.5s both;
}

.sp-hero-badge {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    color: var(--qr-text-secondary);
    padding: 10px 18px;
    border-radius: var(--qr-radius-sm);
    background: var(--qr-bg-card);
    border: 1px solid var(--qr-border);
    transition: border-color 0.3s;
}

.sp-hero-badge:hover {
    border-color: var(--qr-gold-border);
}

.sp-hero-badge-icon {
    font-size: 1.2rem;
}

/* ══════════════════════════════════════
   2. PROMO BANNER
   ══════════════════════════════════════ */
.sp-promo {
    padding: 60px 20px;
    background: var(--qr-bg-card);
    border-top: 1px solid var(--qr-border);
    border-bottom: 1px solid var(--qr-border);
    position: relative;
    overflow: hidden;
}

.sp-promo::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(to right, transparent, var(--qr-gold), transparent);
}

.sp-promo-inner {
    max-width: 900px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 40px;
    align-items: center;
}

.sp-promo-shipping {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--qr-gold);
    margin-bottom: 12px;
}

.sp-promo h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.5rem, 3vw, 2rem);
    color: var(--qr-text-primary);
    margin: 0 0 12px;
    line-height: 1.3;
}

.sp-promo h2 em {
    color: var(--qr-gold);
    font-style: italic;
}

.sp-promo-text {
    font-size: 0.95rem;
    color: var(--qr-text-secondary);
    line-height: 1.6;
    margin: 0 0 16px;
}

.sp-promo-code-box {
    text-align: center;
}

.sp-promo-code-label {
    font-size: 0.75rem;
    color: var(--qr-text-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.sp-promo-code {
    display: inline-block;
    background: var(--qr-gold-muted);
    border: 2px dashed var(--qr-gold);
    color: var(--qr-gold);
    padding: 12px 28px;
    border-radius: var(--qr-radius-sm);
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 10px;
}

.sp-promo-validity {
    font-size: 0.8rem;
    color: var(--qr-text-dim);
}

.sp-promo-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    padding: 12px 28px;
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark));
    color: #000;
    border-radius: var(--qr-radius-pill);
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(251, 191, 36, 0.25);
}

.sp-promo-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 25px rgba(251, 191, 36, 0.4);
    color: #000;
    text-decoration: none;
}

.sp-promo-perks {
    display: flex;
    gap: 24px;
    margin-top: 24px;
    flex-wrap: wrap;
}

.sp-promo-perk {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.82rem;
    color: var(--qr-text-muted);
}

/* ══════════════════════════════════════
   3. BEST-SELLERS
   ══════════════════════════════════════ */
.sp-bestsellers {
    text-align: center;
}

.sp-products-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 24px;
    margin-bottom: 40px;
}

.sp-product-card {
    background: var(--qr-bg-card);
    border: 1px solid var(--qr-border);
    border-radius: var(--qr-radius);
    overflow: hidden;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.sp-product-card:hover {
    transform: translateY(-6px);
    border-color: var(--qr-gold-border);
    box-shadow: var(--qr-shadow-gold);
}

.sp-product-card-img {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--qr-bg-surface);
}

.sp-product-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.sp-product-card:hover .sp-product-card-img img {
    transform: scale(1.06);
}

.sp-product-card-body {
    padding: 16px;
}

.sp-product-card-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--qr-text-primary);
    margin: 0 0 8px;
    line-height: 1.4;
}

.sp-product-card-title a {
    color: inherit;
    text-decoration: none;
}

.sp-product-card-title a:hover {
    color: var(--qr-gold);
}

.sp-product-card-price {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--qr-gold);
    margin-bottom: 12px;
}

.sp-product-card-btn {
    display: block;
    width: 100%;
    padding: 10px;
    background: transparent;
    border: 1px solid var(--qr-gold-border);
    color: var(--qr-gold);
    border-radius: var(--qr-radius-sm);
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    text-align: center;
    transition: all 0.3s ease;
    cursor: pointer;
}

.sp-product-card-btn:hover {
    background: var(--qr-gold);
    color: #000;
    text-decoration: none;
}

.sp-view-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 32px;
    border: 1px solid var(--qr-gold-border);
    color: var(--qr-gold);
    border-radius: var(--qr-radius-pill);
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    transition: all 0.3s ease;
}

.sp-view-all:hover {
    background: var(--qr-gold-muted);
    border-color: var(--qr-gold);
    color: var(--qr-gold);
    text-decoration: none;
}

/* ══════════════════════════════════════
   4. FEATURES / POURQUOI NOUS
   ══════════════════════════════════════ */
.sp-features {
    text-align: center;
}

.sp-features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
}

.sp-feature-card {
    background: var(--qr-bg-card);
    border: 1px solid var(--qr-border);
    border-radius: var(--qr-radius);
    padding: 32px 28px;
    text-align: left;
    transition: all 0.35s ease;
    position: relative;
    overflow: hidden;
}

.sp-feature-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(to right, var(--qr-gold), transparent);
    opacity: 0;
    transition: opacity 0.3s;
}

.sp-feature-card:hover {
    border-color: var(--qr-gold-border);
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
}

.sp-feature-card:hover::before {
    opacity: 1;
}

.sp-feature-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    background: var(--qr-gold-muted);
    border-radius: var(--qr-radius-sm);
    font-size: 1.5rem;
    margin-bottom: 20px;
}

.sp-feature-badge {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--qr-gold);
    font-weight: 600;
    margin-bottom: 8px;
}

.sp-feature-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--qr-text-primary);
    margin: 0 0 12px;
}

.sp-feature-text {
    font-size: 0.9rem;
    color: var(--qr-text-secondary);
    line-height: 1.7;
    margin: 0;
}

/* ══════════════════════════════════════
   5. AVIS GOOGLE
   ══════════════════════════════════════ */
.sp-reviews {
    text-align: center;
}

.sp-reviews-header {
    margin-bottom: 40px;
}

.sp-reviews-rating {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 8px;
}

.sp-reviews-stars {
    color: var(--qr-gold);
    font-size: 1.4rem;
    letter-spacing: 2px;
}

.sp-reviews-label {
    font-size: 0.9rem;
    color: var(--qr-text-muted);
}

.sp-reviews-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 24px;
    margin-bottom: 30px;
}

.sp-review-card {
    background: var(--qr-bg-card);
    border: 1px solid var(--qr-border);
    border-radius: var(--qr-radius);
    padding: 28px;
    text-align: left;
    position: relative;
    transition: border-color 0.3s;
}

.sp-review-card:hover {
    border-color: var(--qr-gold-border);
}

.sp-review-card::before {
    content: '"';
    position: absolute;
    top: 16px;
    right: 24px;
    font-family: Georgia, serif;
    font-size: 4rem;
    color: var(--qr-gold-muted);
    line-height: 1;
}

.sp-review-stars {
    color: var(--qr-gold);
    font-size: 0.9rem;
    letter-spacing: 2px;
    margin-bottom: 16px;
}

.sp-review-text {
    font-size: 0.92rem;
    color: var(--qr-text-secondary);
    line-height: 1.7;
    margin: 0 0 20px;
    font-style: italic;
}

.sp-review-author {
    display: flex;
    align-items: center;
    gap: 12px;
}

.sp-review-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--qr-gold-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
    color: var(--qr-gold);
}

.sp-review-name {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--qr-text-primary);
}

.sp-review-source {
    font-size: 0.75rem;
    color: var(--qr-text-dim);
}

.sp-reviews-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 28px;
    border: 1px solid var(--qr-gold-border);
    color: var(--qr-gold);
    border-radius: var(--qr-radius-pill);
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s;
}

.sp-reviews-cta:hover {
    background: var(--qr-gold-muted);
    border-color: var(--qr-gold);
    text-decoration: none;
    color: var(--qr-gold);
}

/* ══════════════════════════════════════
   6. COMMENT ÇA MARCHE
   ══════════════════════════════════════ */
.sp-steps {
    text-align: center;
}

.sp-steps-track {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    position: relative;
    margin-bottom: 50px;
}

.sp-steps-track::before {
    content: '';
    position: absolute;
    top: 44px;
    left: 12.5%;
    right: 12.5%;
    height: 2px;
    background: var(--qr-border);
    z-index: 0;
}

.sp-step {
    position: relative;
    z-index: 1;
    padding: 0 12px;
}

.sp-step-number {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--qr-bg-card);
    border: 2px solid var(--qr-gold-border);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    font-size: 1.4rem;
    transition: all 0.3s ease;
}

.sp-step:hover .sp-step-number {
    background: var(--qr-gold-muted);
    border-color: var(--qr-gold);
    transform: scale(1.1);
}

.sp-step-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1rem;
    font-weight: 700;
    color: var(--qr-text-primary);
    margin: 0 0 10px;
}

.sp-step-text {
    font-size: 0.85rem;
    color: var(--qr-text-secondary);
    line-height: 1.6;
}

.sp-steps-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 36px;
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark));
    color: #000;
    border-radius: var(--qr-radius-pill);
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(251, 191, 36, 0.3);
}

.sp-steps-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(251, 191, 36, 0.45);
    color: #000;
    text-decoration: none;
}

/* ══════════════════════════════════════
   7. GALERIE / AMBASSADEURS
   ══════════════════════════════════════ */
.sp-gallery {
    text-align: center;
}

.sp-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
}

.sp-gallery-item {
    position: relative;
    aspect-ratio: 1;
    border-radius: var(--qr-radius);
    overflow: hidden;
    border: 1px solid var(--qr-border);
    transition: all 0.35s ease;
}

.sp-gallery-item:hover {
    border-color: var(--qr-gold-border);
    transform: scale(1.03);
    box-shadow: var(--qr-shadow-gold);
}

.sp-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.sp-gallery-item:hover img {
    transform: scale(1.1);
}

.sp-gallery-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 30px 12px 12px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
    opacity: 0;
    transition: opacity 0.3s;
}

.sp-gallery-item:hover .sp-gallery-overlay {
    opacity: 1;
}

.sp-gallery-name {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--qr-text-primary);
}

/* ── Footer : voir qr-base.css (chargé globalement) ── */

/* ══════════════════════════════════════
   WOO PRODUCTS OVERRIDE (best-sellers)
   ══════════════════════════════════════ */
.sp-bestsellers .products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
    gap: 24px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 40px !important;
}

.sp-bestsellers .products li.product {
    background: var(--qr-bg-card) !important;
    border: 1px solid var(--qr-border) !important;
    border-radius: var(--qr-radius) !important;
    overflow: hidden !important;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    width: auto !important;
}

.sp-bestsellers .products li.product:hover {
    transform: translateY(-6px) !important;
    border-color: var(--qr-gold-border) !important;
    box-shadow: var(--qr-shadow-gold) !important;
}

.sp-bestsellers .products li.product a img,
.sp-bestsellers .products li.product img {
    border-radius: 0 !important;
    margin: 0 !important;
}

.sp-bestsellers .products li.product .woocommerce-loop-product__title,
.sp-bestsellers .products li.product h2 {
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    color: var(--qr-text-primary) !important;
    padding: 12px 16px 4px !important;
    margin: 0 !important;
}

.sp-bestsellers .products li.product .price {
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: var(--qr-gold) !important;
    padding: 0 16px 8px !important;
}

.sp-bestsellers .products li.product .button,
.sp-bestsellers .products li.product a.add_to_cart_button {
    display: block !important;
    margin: 0 16px 16px !important;
    padding: 10px !important;
    background: transparent !important;
    border: 1px solid var(--qr-gold-border) !important;
    color: var(--qr-gold) !important;
    border-radius: var(--qr-radius-sm) !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    text-align: center !important;
    transition: all 0.3s ease !important;
}

.sp-bestsellers .products li.product .button:hover,
.sp-bestsellers .products li.product a.add_to_cart_button:hover {
    background: var(--qr-gold) !important;
    color: #000 !important;
}

/* ══════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════ */
@media (max-width: 768px) {
    .sp-section {
        padding: 60px 16px;
    }

    .sp-hero {
        padding: 70px 16px 60px;
    }

    .sp-promo-inner {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .sp-promo-perks {
        justify-content: center;
    }

    .sp-promo__bottom {
        display: none;
    }

    .sp-banner__features {
        display: none;
    }

    .sp-features-grid {
        grid-template-columns: 1fr;
    }

    .sp-steps-track {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .sp-steps-track::before {
        display: none;
    }

    .sp-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .sp-reviews-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .sp-hero-badges {
        flex-direction: column;
        align-items: center;
    }

    .sp-products-grid,
    .sp-bestsellers .products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }

    .sp-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
}

/* fin du fichier */


/* ══════════════════════════════════════════════════════════
   CLIENT SPACE — ESPACE CLIENT / MES ANIMAUX
   (Fusionné depuis qr-client-space.css)
   ══════════════════════════════════════════════════════════ */
/* ── Layout espace client ── */
.animal-client-space {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    font-family: var(--qr-font-body);
}

/* ── Header ── */
.client-space-header {
    text-align: center;
    margin-bottom: 30px;
    padding: 30px;
    background: var(--qr-bg-card);
    color: white;
    border-radius: var(--qr-radius-lg);
    border: 1px solid var(--qr-border);
    position: relative;
    overflow: hidden;
}
.client-space-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(to right, transparent, var(--qr-gold), transparent);
}
.client-space-header h2 {
    margin: 0 0 10px 0;
    font-size: 2.2em;
    font-family: var(--qr-font-heading);
    color: var(--qr-gold-light);
}
.header-description {
    margin: 0 0 15px 0;
    opacity: 0.7;
    font-size: 1.1em;
}

/* ── Bannière info QR ── */
.qr-info-banner {
    background: rgba(251, 191, 36, 0.08);
    border: 1px solid rgba(251, 191, 36, 0.15);
    border-radius: var(--qr-radius-sm);
    padding: 12px 20px;
    margin-top: 15px;
}
.qr-info-banner p {
    margin: 0;
    font-size: 0.95em;
    font-weight: 500;
    color: var(--qr-text-secondary);
}

/* ── Grille stats ── */
.client-space-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

/* ── Grille cartes animaux ── */
.animal-cards-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 25px;
    margin-bottom: 40px;
    max-width: 100%;
}

/* ── Carte animal ── */
.animal-card {
    border: 1px solid var(--qr-border);
    border-radius: var(--qr-radius-lg);
    background: var(--qr-bg-card);
    box-shadow: var(--qr-shadow);
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.3s;
    overflow: hidden;
}
.animal-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5);
    border-color: var(--qr-gold-border);
}

/* ── Header carte ── */
.animal-card-header {
    background: var(--qr-bg-card);
    color: white;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    position: relative;
}
.animal-card-header::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(to right, transparent, rgba(251, 191, 36, 0.15), transparent);
}
.animal-card-info {
    flex: 1;
}
.animal-card-info h3 {
    margin: 0 0 5px 0;
    font-size: 1.3em;
    color: var(--qr-text-primary);
}
.animal-qr-title {
    margin: 0 0 5px 0;
    opacity: 0.7;
    font-size: 0.9em;
}
.qr-code-display {
    font-family: monospace;
    font-size: 0.8em;
    opacity: 0.5;
    color: var(--qr-gold);
}

/* ── Zone QR code ── */
.animal-qr-code {
    padding: 20px;
    text-align: center;
    background: var(--qr-bg-card);
}

/* ── Section téléchargement ── */
.qr-download-section {
    margin-top: 20px;
    padding: 25px;
    background: var(--qr-bg-card);
    border-radius: var(--qr-radius);
    border: 1px solid var(--qr-border);
    position: relative;
    overflow: hidden;
}
.qr-download-section::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--qr-gold), var(--qr-green));
}
.download-title {
    margin: 0 0 8px 0;
    font-size: 1.2em;
    color: var(--qr-gold-light);
    font-weight: 700;
    font-family: var(--qr-font-heading);
    display: flex;
    align-items: center;
    gap: 8px;
}
.download-subtitle {
    margin: 0 0 20px 0;
    font-size: 0.95em;
    color: var(--qr-text-muted);
    font-style: italic;
}
.download-buttons-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 15px;
}

/* ── Boutons téléchargement ── */
.btn-download {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 15px;
    border: 1px solid var(--qr-border-light);
    border-radius: 10px;
    background: var(--qr-bg-card);
    color: var(--qr-text-secondary);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    font-size: 16px;
    font-weight: 600;
    position: relative;
    overflow: hidden;
}
.btn-download::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(251, 191, 36, 0.08), transparent);
    transition: left 0.5s;
}
.btn-download:hover::before { left: 100%; }
.btn-download:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(251, 191, 36, 0.15);
    text-decoration: none;
}
.btn-png:hover {
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark));
    border-color: var(--qr-gold);
    color: #0a0a0a;
}
.btn-svg:hover {
    background: linear-gradient(135deg, var(--qr-green), #059669);
    border-color: var(--qr-green);
    color: white;
}
.format-info {
    font-size: 0.85em;
    font-weight: 400;
    opacity: 0.6;
    margin-top: 6px;
    line-height: 1.3;
    transition: opacity 0.3s;
}
.btn-download:hover .format-info { opacity: 1; }

/* ── Stats zone ── */
.animal-stats {
    padding: 15px 20px;
    background: var(--qr-bg-card);
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

/* ── Actions ── */
.animal-actions {
    padding: 20px;
    display: flex;
    gap: 10px;
}
.animal-actions .btn {
    flex: 1;
}

/* ── Partage ── */
.animal-sharing {
    padding: 15px 20px;
    background: rgba(251, 191, 36, 0.05);
    border-top: 1px solid rgba(251, 191, 36, 0.1);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.sharing-title {
    font-size: 0.9em;
    color: var(--qr-text-secondary);
    font-weight: 500;
}

/* ── Aucun animal ── */
.no-animals {
    text-align: center;
    padding: 60px 20px;
    background: var(--qr-bg-card);
    border-radius: var(--qr-radius-lg);
    color: var(--qr-text-secondary);
    border: 1px solid var(--qr-border);
}
.no-animals-icon { font-size: 4em; margin-bottom: 20px; }
.no-animals h3 {
    margin: 0 0 15px 0;
    font-size: 1.5em;
    color: var(--qr-gold-light);
    font-family: var(--qr-font-heading);
}
.no-animals p { margin: 10px 0; opacity: 0.6; }

.getting-started {
    background: rgba(251, 191, 36, 0.06);
    border: 1px solid rgba(251, 191, 36, 0.12);
    border-radius: var(--qr-radius);
    padding: 25px;
    margin: 30px auto 0;
    max-width: 500px;
    text-align: left;
}
.getting-started h4 {
    margin: 0 0 15px 0;
    text-align: center;
    color: var(--qr-gold);
}
.getting-started ol {
    margin: 0;
    padding-left: 20px;
    color: var(--qr-text-secondary);
}
.getting-started li {
    margin-bottom: 8px;
    line-height: 1.5;
}

/* ── Recherche ── */
.animals-search-container {
    background: var(--qr-bg-card);
    padding: 20px;
    border-radius: var(--qr-radius);
    border: 1px solid var(--qr-border);
    margin-bottom: 30px;
}
.animals-search-box {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
}
.animals-search-input {
    flex: 1;
    padding: 15px 45px 15px 20px;
    border: 1px solid var(--qr-border-light);
    border-radius: 10px;
    font-size: 16px;
    transition: all 0.3s;
    background: var(--qr-bg-input);
    color: var(--qr-text-primary);
    font-family: var(--qr-font-body);
}
.animals-search-input::placeholder { color: var(--qr-text-dim); }
.animals-search-input:focus {
    outline: none;
    border-color: var(--qr-gold);
    box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.15);
}
.animals-search-icon {
    position: absolute;
    right: 15px;
    color: var(--qr-text-muted);
    font-size: 18px;
    pointer-events: none;
}
.animals-search-clear {
    position: absolute;
    right: 50px;
    color: var(--qr-text-muted);
    cursor: pointer;
    font-size: 20px;
    display: none;
    transition: color 0.2s;
}
.animals-search-clear.show { display: block; }
.animals-search-clear:hover { color: var(--qr-gold); }
.animals-no-results {
    text-align: center;
    padding: 40px 20px;
    background: rgba(251, 191, 36, 0.06);
    border-radius: var(--qr-radius);
    border: 1px solid rgba(251, 191, 36, 0.12);
    color: var(--qr-gold);
    display: none;
}
.animals-no-results.show { display: block; }

/* ── Pagination ── */
.animals-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin-top: 30px;
    padding: 20px;
    background: var(--qr-bg-card);
    border-radius: var(--qr-radius);
    border: 1px solid var(--qr-border);
}
.pagination-btn {
    padding: 10px 15px;
    border: 1px solid var(--qr-border-light);
    background: var(--qr-bg-card);
    border-radius: var(--qr-radius-sm);
    cursor: pointer;
    transition: all 0.3s;
    font-weight: 600;
    color: var(--qr-text-secondary);
    font-family: var(--qr-font-body);
}
.pagination-btn:hover:not(:disabled) {
    background: var(--qr-gold);
    border-color: var(--qr-gold);
    color: #0a0a0a;
    transform: translateY(-2px);
}
.pagination-btn:disabled { opacity: 0.3; cursor: not-allowed; }
.pagination-btn.active {
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark));
    border-color: var(--qr-gold);
    color: #0a0a0a;
}
.pagination-info {
    font-size: 14px;
    color: var(--qr-text-muted);
    font-weight: 500;
}

/* ── QR pending notice ── */
.qr-pending-notice {
    background: rgba(251, 191, 36, 0.08);
    border-left: 4px solid var(--qr-gold);
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
    color: var(--qr-text-secondary);
}
.qr-pending-notice h3 {
    margin-top: 0;
    color: var(--qr-gold);
}

/* ══════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════ */
@media (max-width: 768px) {
    .animal-cards-grid { grid-template-columns: 1fr; }
    .animal-actions { flex-direction: column; }
    .client-space-stats { grid-template-columns: repeat(2, 1fr); }
    .animal-sharing { flex-direction: column; gap: 10px; text-align: center; }
    .download-buttons-group { grid-template-columns: 1fr; }
    .animal-stats { flex-direction: column; gap: 15px; }
    .animals-search-box { flex-direction: column; }
    .animals-pagination { flex-wrap: wrap; gap: 8px; }
    .pagination-btn { padding: 8px 12px; font-size: 14px; }
}


/* ══════════════════════════════════════════════════════════
   WIZARD — MODE ASSISTANT 5 ÉTAPES
   (Fusionné depuis wizard-mobile.css)
   ══════════════════════════════════════════════════════════ */
.editor-tabs { display: none !important; }

.wizard-step-indicator {
    display: block !important;
    background: var(--qr-bg-surface);
    color: white; padding: 30px 40px; text-align: center;
    border-radius: var(--qr-radius) var(--qr-radius) 0 0; margin: 0;
    border-bottom: 1px solid rgba(251, 191, 36, 0.15);
    position: relative;
}
.wizard-step-indicator::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(to right, transparent, var(--qr-gold), transparent);
}
.wizard-step-indicator h2 {
    margin: 0 0 10px 0; font-size: 28px; font-weight: 700;
    font-family: var(--qr-font-heading); color: var(--qr-gold-light);
}
.wizard-step-indicator .step-subtitle { font-size: 16px; opacity: 0.7; margin: 0; }

.wizard-progress { background: rgba(251, 191, 36, 0.15); height: 8px; border-radius: 4px; margin-top: 20px; overflow: hidden; max-width: 600px; margin-left: auto; margin-right: auto; }
.wizard-progress-fill { background: linear-gradient(90deg, var(--qr-gold), var(--qr-gold-dark)); height: 100%; transition: width 0.4s ease; border-radius: 4px; }

.editor-progress { display: none !important; }

.wizard-navigation {
    display: flex !important; gap: 15px;
    padding: 25px 40px;
    background: var(--qr-bg-card);
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    position: sticky; bottom: 0; z-index: 100;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.3);
    justify-content: center; max-width: 600px; margin: 0 auto;
}

.wizard-navigation .btn {
    flex: 1; max-width: 250px;
    padding: 16px 32px; font-size: 16px; font-weight: 600;
    border-radius: var(--qr-radius-sm); border: none; cursor: pointer; transition: all 0.3s;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    font-family: var(--qr-font-body);
}

.btn-wizard-prev {
    background: var(--qr-bg-surface); color: var(--qr-text-secondary);
    border: 1px solid var(--qr-border-light);
}
.btn-wizard-prev:hover { background: var(--qr-bg-elevated); border-color: var(--qr-gold-border); color: var(--qr-gold); transform: translateY(-2px); }

.btn-wizard-next, .btn-wizard-finish {
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark)); color: #0a0a0a;
}
.btn-wizard-next:hover, .btn-wizard-finish:hover {
    transform: translateY(-2px); box-shadow: 0 5px 20px rgba(251, 191, 36, 0.35);
}

.btn-wizard-prev:disabled { opacity: 0.3; cursor: not-allowed; transform: none !important; }

.btn-wizard-later { background: linear-gradient(135deg, var(--qr-gold-dark), #d97706); color: #0a0a0a; }
.btn-wizard-later:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(245, 158, 11, 0.4); }
.btn-wizard-later:disabled, .btn-wizard-later.saving { opacity: 0.5; cursor: not-allowed; transform: none !important; }

.animal-page-editor .tab-content { display: none; animation: qr-fadeInSlide 0.4s ease; }
.animal-page-editor .tab-content.active { display: block; }
@keyframes qr-fadeInSlide { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }

.editor-actions { display: none !important; }
.editor-footer { display: none !important; }
.editor-header { display: none !important; }

.animal-page-editor { border-radius: var(--qr-radius); overflow: hidden; max-width: 1000px; margin: 20px auto; background: var(--qr-bg-card); }
.editor-container { padding: 40px; min-height: 50vh; }

.btn-wizard-next.saving, .btn-wizard-finish.saving { opacity: 0.7; pointer-events: none; position: relative; }
.btn-wizard-next.saving::after, .btn-wizard-finish.saving::after {
    content: ''; position: absolute; right: 15px;
    width: 16px; height: 16px;
    border: 2px solid #0a0a0a; border-top-color: transparent;
    border-radius: 50%; animation: qr-spin 0.8s linear infinite;
}

.wizard-notification {
    position: fixed; top: 20px; right: 20px; left: 20px;
    max-width: 400px; margin: 0 auto;
    padding: 16px 20px; border-radius: var(--qr-radius-sm);
    font-weight: 600; font-size: 15px; text-align: center;
    z-index: 10000; opacity: 0; transform: translateY(-20px);
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
.wizard-notification.show { opacity: 1; transform: translateY(0); }
.wizard-notification-success { background: linear-gradient(135deg, var(--qr-green), #059669); color: white; }
.wizard-notification-error { background: linear-gradient(135deg, var(--qr-red), #dc2626); color: white; }

@media (max-width: 768px) {
    .wizard-step-indicator { padding: 20px; }
    .wizard-step-indicator h2 { font-size: 22px; }
    .wizard-step-indicator .step-subtitle { font-size: 14px; }
    .wizard-navigation { padding: 15px 20px; flex-direction: column; }
    .wizard-navigation .btn { max-width: 100%; width: 100%; }
    .editor-container { padding: 20px; }
    .animal-page-editor { margin: 0; border-radius: 0; }
}


/* ══════════════════════════════════════════════════════════
   NOTIFICATION SETTINGS — PARAMÈTRES NOTIFICATIONS
   (Fusionné depuis qr-notification-settings-page.css)
   ══════════════════════════════════════════════════════════ */
.qr-notification-settings-wrapper { max-width: 900px; margin: 0 auto; }
.qr-notification-settings-header { margin-bottom: 30px; }
.qr-notification-settings-header h2 { margin-bottom: 10px; font-size: 28px; font-family: var(--qr-font-heading); color: var(--qr-gold-light); }

.qr-notification-settings-content {
    background: var(--qr-bg-card); padding: 30px; border-radius: var(--qr-radius);
    border: 1px solid var(--qr-border);
}

.qr-notification-option {
    border: 1px solid var(--qr-border); border-radius: var(--qr-radius); padding: 25px;
    margin-bottom: 25px; transition: all 0.3s ease; background: var(--qr-bg-surface);
}
.qr-notification-option:hover { border-color: var(--qr-gold-border); box-shadow: 0 4px 12px rgba(251, 191, 36, 0.08); }

.qr-notification-option-header { display: flex; align-items: flex-start; gap: 20px; }
.qr-notification-toggle { flex-shrink: 0; }

.qr-switch { position: relative; display: inline-block; width: 60px; height: 34px; }
.qr-switch input { opacity: 0; width: 0; height: 0; }
.qr-slider { position: absolute; cursor: pointer; inset: 0; background-color: rgba(255, 255, 255, 0.15); transition: .4s; border-radius: 34px; }
.qr-slider:before { position: absolute; content: ""; height: 26px; width: 26px; left: 4px; bottom: 4px; background-color: white; transition: .4s; border-radius: 50%; }
input:checked + .qr-slider { background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark)); }
input:checked + .qr-slider:before { transform: translateX(26px); }

.qr-notification-info h3 { margin: 0 0 8px 0; font-size: 18px; color: var(--qr-text-secondary); }
.qr-notification-info .description { margin: 0; color: var(--qr-text-muted); }

.qr-notification-option-details { margin-top: 25px; padding-top: 25px; border-top: 1px solid rgba(255, 255, 255, 0.06); }

.qr-form-group { margin-bottom: 20px; }
.qr-form-group label { display: block; font-weight: 600; margin-bottom: 8px; color: var(--qr-text-secondary); font-size: 14px; }
.qr-form-group .required { color: var(--qr-red); }

.qr-input-text {
    width: 100%; padding: 12px 15px;
    border: 1px solid var(--qr-border-light); border-radius: var(--qr-radius-sm);
    font-size: 16px; transition: all 0.3s;
    background: var(--qr-bg-body); color: white; font-family: var(--qr-font-body);
}
.qr-input-text:focus { outline: none; border-color: var(--qr-gold); box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.2); }
.qr-help-text { margin: 8px 0 0 0; font-size: 14px; color: var(--qr-text-dim); }

.qr-alert { padding: 15px; border-radius: var(--qr-radius-sm); display: flex; gap: 12px; margin-top: 15px; }
.qr-alert .dashicons { flex-shrink: 0; font-size: 20px; margin-top: 2px; }
.qr-alert-info { background: rgba(251, 191, 36, 0.06); border-left: 3px solid var(--qr-gold); }
.qr-alert-info .dashicons { color: var(--qr-gold); }
.qr-alert strong { display: block; margin-bottom: 5px; color: var(--qr-text-secondary); }
.qr-alert p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--qr-text-muted); }

.qr-notification-actions {
    margin-top: 30px; padding-top: 25px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    display: flex; align-items: center; gap: 20px;
}

.qr-btn {
    padding: 12px 24px; border: none; border-radius: var(--qr-radius-sm);
    font-size: 16px; font-weight: 600; cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px;
    transition: all 0.3s ease; font-family: var(--qr-font-body);
}
.qr-btn-primary { background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark)); color: #0a0a0a; }
.qr-btn-primary:hover { transform: translateY(-2px); box-shadow: var(--qr-shadow-gold); }

#notification-save-result { font-weight: 600; }
#notification-save-result.success { color: var(--qr-green); }
#notification-save-result.error { color: var(--qr-red); }

.qr-notification-info-section { margin-top: 40px; padding-top: 40px; border-top: 1px solid rgba(255, 255, 255, 0.06); }
.qr-notification-info-section h3 { margin-bottom: 20px; font-size: 20px; color: var(--qr-gold-light); font-family: var(--qr-font-heading); }

.qr-info-cards { display: grid; gap: 20px; }
.qr-info-card { display: flex; gap: 15px; padding: 20px; background: var(--qr-bg-surface); border-radius: 10px; border: 1px solid rgba(255, 255, 255, 0.06); }
.qr-info-card-icon { flex-shrink: 0; font-size: 32px; }
.qr-info-card h4 { margin: 0 0 8px 0; color: var(--qr-text-secondary); }
.qr-info-card p { margin: 0; color: var(--qr-text-muted); line-height: 1.6; }

@media (max-width: 768px) {
    .qr-notification-settings-content { padding: 20px; }
    .qr-notification-option { padding: 20px; }
    .qr-notification-option-header { flex-direction: column; gap: 15px; }
}


/* ══════════════════════════════════════════════════════════
/* ── Masquer la toolbar Woodmart sur les pages standalone ── */
.qr-page-animal .wd-toolbar,
.qr-page-lost-alert .wd-toolbar,
.qr-page-tracking .wd-toolbar,
.qr-page-lost-animals .wd-toolbar { display: none !important; }

body.qr-page-animal,
body.qr-page-lost-alert,
body.qr-page-tracking,
body.qr-page-lost-animals { padding-bottom: 0 !important; margin-bottom: 0 !important; }

   ACTIVATION PAGE — PAGE D'ACTIVATION QR
   Scopé sous body.qr-page-activation
   (Fusionné depuis qr-activation-page.css)
   ══════════════════════════════════════════════════════════ */
body.qr-page-activation {
    font-family: var(--qr-font-body);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 20px;
    box-sizing: border-box;
}

.activation-container {
    background: var(--qr-bg-card);
    padding: 40px;
    border-radius: var(--qr-radius-lg);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
    max-width: 500px;
    width: 100%;
    text-align: center;
    border: 1px solid var(--qr-border);
    position: relative;
    overflow: hidden;
}
.activation-container::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(to right, transparent, var(--qr-gold), transparent);
}

.qr-icon { font-size: 4em; margin-bottom: 20px; }

body.qr-page-activation h1 {
    color: var(--qr-gold-light);
    margin-bottom: 10px;
    font-size: 2em;
    font-family: var(--qr-font-heading);
    font-weight: 700;
}

body.qr-page-activation .subtitle {
    color: var(--qr-text-muted);
    margin-bottom: 30px;
    font-size: 1.1em;
    line-height: 1.5;
}

.auth-tabs {
    display: flex;
    margin-bottom: 20px;
    border-bottom: 2px solid var(--qr-border);
}
.auth-tab {
    flex: 1;
    padding: 12px;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    transition: all 0.3s;
    font-weight: 500;
    color: var(--qr-text-muted);
    background: none;
    border-top: none;
    border-left: none;
    border-right: none;
    font-family: var(--qr-font-body);
    font-size: 14px;
}
.auth-tab.active {
    border-bottom-color: var(--qr-gold);
    color: var(--qr-gold);
}
.auth-tab:hover:not(.active) {
    background: rgba(255, 255, 255, 0.04);
    color: var(--qr-text-secondary);
}

.auth-form { display: none; text-align: left; }
.auth-form.active { display: block; }

/* Inputs standalone (hors .form-group) */
body.qr-page-activation label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: var(--qr-text-secondary);
    font-size: 14px;
}

body.qr-page-activation input[type="text"],
body.qr-page-activation input[type="email"],
body.qr-page-activation input[type="password"] {
    width: 100%;
    padding: 14px;
    border: 1px solid var(--qr-border-light);
    border-radius: var(--qr-radius-sm);
    font-size: 16px;
    box-sizing: border-box;
    transition: all 0.3s;
    background: var(--qr-bg-input);
    color: var(--qr-text-primary);
    font-family: var(--qr-font-body);
}
body.qr-page-activation input::placeholder { color: var(--qr-text-dim); }
body.qr-page-activation input:focus {
    border-color: var(--qr-gold);
    outline: none;
    box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.25);
}

/* Bouton principal activation */
.activation-container .btn {
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark));
    color: #0a0a0a;
    padding: 14px 30px;
    border: none;
    border-radius: var(--qr-radius-sm);
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
    width: 100%;
    margin-top: 10px;
    transition: all 0.3s;
    font-family: var(--qr-font-body);
}
.activation-container .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 20px rgba(251, 191, 36, 0.35);
}
.activation-container .btn:disabled {
    background: rgba(255, 255, 255, 0.1);
    color: var(--qr-text-dim);
    transform: none;
    box-shadow: none;
    cursor: not-allowed;
}

body.qr-page-activation input:valid { border-color: var(--qr-green); }
body.qr-page-activation input:invalid { border-color: var(--qr-red); }

.security-info {
    background: rgba(251, 191, 36, 0.06);
    border: 1px solid rgba(251, 191, 36, 0.15);
    border-radius: var(--qr-radius-sm);
    padding: 15px;
    margin-top: 20px;
    font-size: 14px;
    color: var(--qr-text-secondary);
}
.security-info h4 {
    margin: 0 0 10px 0;
    color: var(--qr-gold);
    font-family: var(--qr-font-heading);
}

@media (max-width: 480px) {
    .activation-container { padding: 30px 20px; margin: 10px; }
    h1 { font-size: 1.6em; }
    .qr-icon { font-size: 3em; }
}


/* ══════════════════════════════════════════════════════════
   ANIMAL PAGE — FICHE PUBLIQUE ANIMAL
   Scopé sous body.qr-page-animal
   (Fusionné depuis qr-animal-page.css)
   ══════════════════════════════════════════════════════════ */

body.qr-page-animal {
    font-family: var(--qr-font-body);
    margin: 0;
    padding: 20px;
    line-height: 1.6;
    min-height: 100vh;
}

.animal-page-container {
    max-width: 600px;
    margin: 0 auto;
    background: var(--qr-bg-card);
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
    position: relative;
    overflow: hidden;
    animation: qr-slideInUp 0.6s ease-out;
    border: 1px solid var(--qr-border);
}

.edit-btn {
    position: absolute;
    top: 15px; right: 15px;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(10px);
    color: var(--qr-gold-light);
    padding: 8px 18px;
    border: 1px solid var(--qr-gold-border);
    border-radius: 20px;
    cursor: pointer;
    text-decoration: none;
    font-size: 12px;
    font-weight: 500;
    z-index: 10;
    transition: all 0.3s;
}
.edit-btn:hover {
    background: var(--qr-gold);
    color: #0a0a0a;
    border-color: var(--qr-gold);
}

.animal-header {
    background: var(--qr-bg-card);
    color: white;
    padding: 30px 25px;
    text-align: center;
    position: relative;
    border-bottom: 1px solid rgba(251, 191, 36, 0.15);
}
.animal-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(to right, transparent, var(--qr-gold), transparent);
}

.animal-name {
    font-family: var(--qr-font-heading);
    font-size: 2.2em;
    font-weight: 700;
    margin: 0 0 10px 0;
    color: var(--qr-text-primary);
    letter-spacing: -0.5px;
    animation: qr-fadeInDown 0.8s ease-out 0.2s both;
}

.animal-info-basic {
    font-size: 1.1em;
    color: var(--qr-text-secondary);
    animation: qr-fadeInDown 0.8s ease-out 0.4s both;
}

.emergency-banner {
    background: linear-gradient(135deg, var(--qr-gold-dark), var(--qr-gold));
    color: #0a0a0a;
    text-align: center;
    padding: 15px;
    font-weight: 600;
    font-size: 1.1em;
    animation: qr-pulse-banner 2s infinite;
}
@keyframes qr-pulse-banner {
    0%, 100% { opacity: 1; }
    30% { opacity: 0.85; }
}

.animal-content { padding: 25px; }

.info-section {
    margin-bottom: 25px;
    background: var(--qr-bg-body);
    border-radius: var(--qr-radius);
    padding: 10px;
    border: 1px solid var(--qr-border);
    border-left: 3px solid var(--qr-gold);
    transition: transform 0.2s, box-shadow 0.2s;
    animation: qr-fadeInUp 0.6s ease-out;
}
.info-section:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
}
.info-section h3 {
    margin: 0 0 15px 0;
    color: var(--qr-gold-light);
    font-size: 1.3em;
    font-family: var(--qr-font-heading);
    display: flex;
    align-items: center;
    gap: 10px;
}

.contact-person {
    background: var(--qr-bg-card);
    padding: 10px;
    border-radius: var(--qr-radius-sm);
    margin-bottom: 10px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    transition: transform 0.2s;
}
.contact-person:hover { transform: translateX(5px); }
.contact-person h4 {
    margin: 0 0 8px 0;
    color: var(--qr-text-secondary);
    font-size: 1.1em;
}

.phone-link {
    color: var(--qr-green);
    text-decoration: none;
    font-weight: bold;
    font-size: 1.1em;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: rgba(16, 185, 129, 0.08);
    border-radius: 25px;
    transition: all 0.3s;
}
.phone-link:hover {
    color: white;
    background: var(--qr-gold-light);
    transform: scale(1.05);
}

.address-info {
    background: var(--qr-bg-card);
    padding: 15px;
    border-radius: var(--qr-radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.vet-info { background: var(--qr-bg-body); border-left-color: var(--qr-green); }
.health-info { background: var(--qr-bg-body); border-left-color: var(--qr-orange); }
.behavior-info { background: var(--qr-bg-body); border-left-color: var(--qr-blue); }

.scan-counter {
    text-align: center;
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    font-size: 12px;
    color: var(--qr-text-dim);
}

.call-to-action {
    background: linear-gradient(135deg, var(--qr-gold-dark), var(--qr-gold));
    color: #0a0a0a;
    text-align: center;
    padding: 20px 20px 35px 20px;
    margin: 0 -25px -25px -25px;
    font-size: 1.1em;
    font-weight: 600;
    animation: qr-slideInUp 0.8s ease-out 0.6s both;
}

/* ── Welcome banner (propriétaire) ── */
.owner-welcome-banner {
    background: var(--qr-bg-surface);
    color: white;
    padding: 20px;
    border-radius: var(--qr-radius);
    margin: 20px 0;
    display: flex;
    align-items: center;
    gap: 15px;
    border: 1px solid rgba(251, 191, 36, 0.15);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    animation: qr-slideDown 0.5s ease-out;
}
.welcome-icon { font-size: 48px; flex-shrink: 0; }
.welcome-content { flex: 1; }
.welcome-content h4 {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 600;
    color: var(--qr-gold-light);
}
.welcome-content p {
    margin: 0 0 15px 0;
    font-size: 14px;
    opacity: 0.8;
    line-height: 1.5;
}

.btn-edit-now {
    display: inline-block;
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark));
    color: #0a0a0a;
    padding: 10px 20px;
    border-radius: var(--qr-radius-sm);
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.3s ease;
}
.btn-edit-now:hover {
    transform: translateY(-2px);
    box-shadow: var(--qr-shadow-gold);
}

/* ── Lost alert banner ── */
.lost-alert-banner {
    background: linear-gradient(135deg, #dc2626, #b91c1c);
    color: white;
    padding: 30px;
    text-align: center;
    margin: -20px -20px 30px -20px;
    box-shadow: 0 4px 20px rgba(220, 38, 38, 0.5);
    animation: qr-urgent-pulse 2s infinite;
}
.lost-alert-banner h2 {
    margin: 0 0 15px 0;
    font-size: 2.5em;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}
@keyframes qr-urgent-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.02); }
}

/* ── Responsive ── */
@media (max-width: 480px) {
    body.qr-page-animal { padding: 10px; }
    .animal-page-container { border-radius: 15px; }
    .animal-header { padding: 25px 20px; }
    .animal-photo { width: 100px; height: 100px; }
    .animal-name { font-size: 1.8em; }
    .animal-content { padding: 15px; }
    .phone-link { font-size: 1em; padding: 6px 12px; }
    .owner-welcome-banner { flex-direction: column; text-align: center; padding: 20px 15px; }
    .welcome-icon { font-size: 36px; }
    .welcome-content h4 { font-size: 16px; }
}


/* ══════════════════════════════════════════════════════════
   LOST ALERT PAGE — PAGE PUBLIQUE ALERTE ANIMAL PERDU
   Scopé sous body.qr-page-lost-alert
   Cohérent avec la charte qr-page-animal (variables, animations, radius)
   Accent rouge pour l'urgence, gold pour les accents, bordures subtiles.
   ══════════════════════════════════════════════════════════ */

/* Reset léger — on garde box-sizing, pas de margin/padding à 0 sur *
   pour ne pas casser les défauts utiles (paragraphes, titres) */
body.qr-page-lost-alert *,
body.qr-page-lost-alert *::before,
body.qr-page-lost-alert *::after { box-sizing: border-box; }

body.qr-page-lost-alert {
    font-family: var(--qr-font-body);
    background: var(--qr-bg-body);
    color: var(--qr-text-primary);
    margin: 0;
    padding: 20px;
    line-height: 1.6;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ── Container principal — aligné avec .animal-page-container ── */
.lost-alert-container {
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
    background: var(--qr-bg-card);
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
    border: 1px solid var(--qr-border);
    overflow: hidden;
    position: relative;
    animation: qr-slideInUp 0.6s ease-out;
}

/* ── Header d'alerte rouge (urgence) ── */
.alert-header {
    background: linear-gradient(135deg, #b91c1c 0%, var(--qr-red) 100%);
    padding: 35px 25px 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.alert-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(to right, transparent, var(--qr-gold), transparent);
    z-index: 2;
}
.alert-header h1 {
    font-family: var(--qr-font-heading);
    font-size: 2em;
    font-weight: 700;
    margin: 0 0 12px 0;
    color: #ffffff;
    letter-spacing: 1px;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
    animation: qr-fadeInDown 0.8s ease-out 0.2s both;
}
.alert-header > p {
    font-size: 1.25em;
    color: #ffffff;
    margin: 0 0 25px 0;
    font-weight: 600;
    animation: qr-fadeInDown 0.8s ease-out 0.4s both;
}

/* ── Photo animal : halo doré identique à /qr/ (.animal-photo) ── */
.lost-alert-container .animal-photo {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 4px solid var(--qr-gold);
    margin: 0 auto;
    overflow: hidden;
    background: var(--qr-bg-body);
    box-shadow: 0 5px 25px var(--qr-gold-glow);
    transition: transform 0.3s;
    position: relative;
    z-index: 1;
}
.lost-alert-container .animal-photo:hover { transform: scale(1.03); }
.lost-alert-container .animal-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.animal-photo-placeholder {
    width: 100%;
    height: 100%;
    background: var(--qr-gold-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 4em;
}

/* ── Contenu : sections info ── */
.alert-content {
    padding: 25px;
    background: var(--qr-bg-card);
}

/* Info-row : même pattern que .info-section de /qr/ */
.info-row {
    margin-bottom: 15px;
    background: var(--qr-bg-body);
    border-radius: var(--qr-radius);
    padding: 15px 18px;
    border: 1px solid var(--qr-border);
    border-left: 3px solid var(--qr-gold);
    transition: transform 0.2s, box-shadow 0.2s;
    animation: qr-fadeInUp 0.6s ease-out;
}
.info-row:last-child { margin-bottom: 0; }
.info-row:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
}
.info-row strong {
    display: block;
    color: var(--qr-gold-light);
    margin-bottom: 6px;
    font-size: 0.9em;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}
.info-row p {
    color: var(--qr-text-secondary);
    line-height: 1.6;
    font-size: 1em;
    margin: 0;
}

/* Row récompense : accent vert pour mise en avant */
.info-row.reward-row {
    border-left-color: var(--qr-green);
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.06), var(--qr-bg-body));
}
.info-row.reward-row strong { color: var(--qr-green); }
.reward-amount {
    color: var(--qr-green) !important;
    font-size: 1.3em !important;
    font-weight: 700 !important;
}

/* ── Section contact finale : bandeau doré d'action ── */
.contact-section {
    background: linear-gradient(135deg, var(--qr-gold) 0%, var(--qr-gold-dark) 100%);
    color: #0a0a0a;
    padding: 30px 25px;
    text-align: center;
    border-top: 3px solid var(--qr-gold-light);
}
.contact-section h2 {
    margin: 0 0 10px 0;
    font-family: var(--qr-font-heading);
    color: #0a0a0a;
    font-size: 1.8em;
    font-weight: 700;
    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.25);
}
.contact-section p {
    color: #0a0a0a;
    margin: 0 0 15px 0;
    font-weight: 500;
}
.contact-section p:last-child { margin: 20px 0 0 0; }

/* Bouton téléphone : noir avec texte gold, cohérent avec /qr/ */
.phone-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: #0a0a0a;
    color: var(--qr-gold);
    padding: 14px 32px;
    border-radius: var(--qr-radius-pill);
    text-decoration: none;
    font-weight: 700;
    font-size: 1.2em;
    margin: 10px 0;
    transition: all 0.3s;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}
.phone-button:hover {
    transform: translateY(-2px) scale(1.03);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
    color: var(--qr-gold-light);
}

/* ── Responsive ── */
@media (max-width: 480px) {
    body.qr-page-lost-alert { padding: 10px; }
    .lost-alert-container { border-radius: 15px; }
    .alert-header { padding: 28px 20px 25px; }
    .alert-header h1 { font-size: 1.6em; letter-spacing: 0.5px; }
    .alert-header > p { font-size: 1.1em; }
    .lost-alert-container .animal-photo { width: 120px; height: 120px; }
    .alert-content { padding: 18px; }
    .info-row { padding: 13px 15px; }
    .contact-section { padding: 25px 20px; }
    .contact-section h2 { font-size: 1.5em; }
    .phone-button { padding: 12px 24px; font-size: 1.1em; }
}


/* ══════════════════════════════════════════════════════════
   TRACKING PAGE — PAGE DE SUIVI / STATISTIQUES
   Scopé sous body.qr-page-tracking
   (Fusionné depuis qr-tracking-page.css)
   ══════════════════════════════════════════════════════════ */

body.qr-page-tracking {
    font-family: var(--qr-font-body);
}

.error-container {
    max-width: 600px; margin: 100px auto; padding: 40px;
    background: var(--qr-bg-card); border-radius: var(--qr-radius-lg);
    box-shadow: var(--qr-shadow);
    text-align: center; border: 1px solid var(--qr-border);
}
.error-icon { font-size: 5em; margin-bottom: 20px; }
.error-title { font-size: 2em; color: var(--qr-red); margin-bottom: 15px; font-family: var(--qr-font-heading); }
.error-message { color: var(--qr-text-muted); font-size: 1.1em; line-height: 1.6; margin-bottom: 30px; }
.error-btn {
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark)); color: #0a0a0a;
    padding: 12px 30px; border-radius: var(--qr-radius-sm); text-decoration: none;
    display: inline-block; transition: all 0.3s; font-weight: 600;
}
.error-btn:hover { transform: translateY(-2px); box-shadow: var(--qr-shadow-gold); color: #0a0a0a; }

.tracking-page-container { max-width: 1200px; margin: 0 auto; padding: 20px; min-height: 100vh; }

.tracking-header {
    background: var(--qr-bg-card); padding: 30px;
    border-radius: var(--qr-radius-lg); border: 1px solid var(--qr-border);
    margin-bottom: 30px; text-align: center;
    position: relative; overflow: hidden;
}
.tracking-header::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(to right, transparent, var(--qr-gold), transparent);
}

.tracking-title { font-size: 2.5em; color: var(--qr-gold-light); margin: 0 0 10px 0; font-family: var(--qr-font-heading); }
.tracking-subtitle { color: var(--qr-text-muted); font-size: 1.1em; margin-bottom: 20px; }

.tracking-back-btn {
    background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark)); color: #0a0a0a;
    text-decoration: none; padding: 12px 24px; border-radius: var(--qr-radius-sm);
    display: inline-flex; align-items: center; gap: 8px; transition: all 0.3s; font-weight: 600;
}
.tracking-back-btn:hover { transform: translateY(-2px); box-shadow: var(--qr-shadow-gold); color: #0a0a0a; }

.tracking-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-bottom: 30px; }

.tracking-stat-card {
    background: var(--qr-bg-card); padding: 30px; border-radius: var(--qr-radius-lg); text-align: center;
    border: 1px solid var(--qr-border); border-left: 3px solid var(--qr-gold);
}
.tracking-stat-number { font-size: 3em; font-weight: bold; color: var(--qr-gold); display: block; }
.tracking-stat-label { color: var(--qr-text-muted); font-size: 1.1em; margin-top: 10px; }

.tracking-content {
    background: var(--qr-bg-card); padding: 30px; border-radius: var(--qr-radius-lg);
    border: 1px solid var(--qr-border);
}

.tracking-section-title {
    font-size: 1.5em; color: var(--qr-gold-light); margin-bottom: 20px;
    font-family: var(--qr-font-heading);
    display: flex; align-items: center; gap: 10px;
}

.countries-list {
    list-style: none; padding: 0;
    display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px;
}
.countries-list li {
    background: var(--qr-bg-surface); padding: 15px; border-radius: var(--qr-radius-sm);
    display: flex; justify-content: space-between; align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.06);
}
.country-name { font-weight: 600; color: var(--qr-text-secondary); }
.country-count { background: var(--qr-gold); color: #0a0a0a; padding: 4px 12px; border-radius: 20px; font-size: 0.9em; font-weight: 600; }

.scans-list { max-height: 600px; overflow-y: auto; }

.scan-item {
    background: var(--qr-bg-surface); border-radius: var(--qr-radius); padding: 20px;
    margin-bottom: 15px; display: grid;
    grid-template-columns: 1fr 1fr 1fr; gap: 20px;
    transition: transform 0.2s; border: 1px solid rgba(255, 255, 255, 0.06);
}
.scan-item:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); border-color: rgba(251, 191, 36, 0.15); }

.scan-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; grid-column: 1 / -1; }
.scan-time { font-weight: bold; color: var(--qr-text-secondary); font-size: 1.1em; display: flex; align-items: center; }
.scan-number { background: var(--qr-gold); color: #0a0a0a; padding: 4px 8px; border-radius: 12px; font-size: 0.8em; font-weight: bold; margin-right: 10px; text-transform: uppercase; }

.ip-protocols { display: flex; gap: 5px; }
.ip-version { padding: 4px 8px; border-radius: 12px; font-size: 11px; font-weight: bold; text-transform: uppercase; }
.ip-version.ipv4 { background: var(--qr-gold-muted); color: var(--qr-gold); }
.ip-version.ipv6 { background: rgba(16, 185, 129, 0.1); color: var(--qr-green); }

.scan-section h4 { color: var(--qr-text-muted); font-size: 0.9em; text-transform: uppercase; margin-bottom: 8px; letter-spacing: 0.5px; }
.scan-detail { margin-bottom: 5px; font-size: 0.9em; display: flex; align-items: center; gap: 8px; color: var(--qr-text-secondary); }
.scan-ip { color: var(--qr-gold); font-family: monospace; }
.scan-reverse { color: #a78bfa; font-family: monospace; font-size: 0.8em; word-break: break-all; }
.scan-device { color: #60a5fa; }
.scan-coordinates { color: var(--qr-red); font-family: monospace; }

.no-data { text-align: center; color: var(--qr-text-dim); font-style: italic; padding: 40px; }

/* ── Carte ── */
.map-container {
    background: var(--qr-bg-card); padding: 30px; border-radius: var(--qr-radius-lg);
    border: 1px solid var(--qr-border); margin-bottom: 30px;
}
.map-title { font-size: 1.5em; color: var(--qr-gold-light); margin-bottom: 20px; font-family: var(--qr-font-heading); display: flex; align-items: center; gap: 10px; }
#tracking-map { height: 500px; width: 100%; border-radius: var(--qr-radius); border: 1px solid var(--qr-border-light); }
.map-legend { display: flex; gap: 20px; margin-top: 15px; flex-wrap: wrap; font-size: 0.9em; color: var(--qr-text-muted); }
.legend-item { display: flex; align-items: center; gap: 8px; }
.legend-marker { width: 20px; height: 20px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.2); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); }
.legend-marker.gps { background: var(--qr-red); }

.map-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 15px; margin-top: 20px; }
.map-stat { text-align: center; padding: 15px; background: var(--qr-bg-surface); border-radius: var(--qr-radius-sm); border: 1px solid rgba(255, 255, 255, 0.06); }
.map-stat-number { font-size: 1.5em; font-weight: bold; color: var(--qr-gold); }
.map-stat-label { font-size: 0.9em; color: var(--qr-text-muted); margin-top: 5px; }

.no-gps-data { text-align: center; padding: 40px; color: var(--qr-text-dim); background: var(--qr-bg-surface); border-radius: var(--qr-radius); border: 2px dashed var(--qr-border-light); }

.tracking-section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.delete-logs-btn {
    background: var(--qr-red); color: white; border: none;
    padding: 8px 16px; border-radius: 6px; cursor: pointer;
    font-size: 14px; transition: all 0.3s ease; font-weight: 500;
}
.delete-logs-btn:hover { background: #dc2626; transform: translateY(-1px); box-shadow: 0 2px 8px var(--qr-red-glow); }

@media (max-width: 768px) {
    .map-container { padding: 20px; margin: 0 -10px 20px -10px; border-radius: 0; }
    #tracking-map { height: 400px; }
    .map-legend { flex-direction: column; gap: 10px; }
    .tracking-page-container { padding: 10px; }
    .tracking-header { padding: 20px; }
    .tracking-title { font-size: 2em; }
    .scan-item { grid-template-columns: 1fr; gap: 15px; }
    .tracking-stats-grid { grid-template-columns: repeat(2, 1fr); }
    .tracking-section-header { flex-direction: column; gap: 10px; align-items: stretch; }
    .delete-logs-btn { align-self: flex-end; }
}


/* ══════════════════════════════════════════════════════════
   LOST ANIMALS PUBLIC — CARTE ANIMAUX PERDUS
   Scopé sous body.qr-page-lost-animals
   (Fusionné depuis qr-lost-animals-public-page.css)
   ══════════════════════════════════════════════════════════ */
body.qr-page-lost-animals .lost-animals-page * { margin: 0; padding: 0; box-sizing: border-box; }

body.qr-page-lost-animals {
    font-family: var(--qr-font-body);
}

body.qr-page-lost-animals .lost-animals-page { width: 100%; min-height: 100vh; }

body.qr-page-lost-animals .page-header {
    background: var(--qr-bg-surface);
    color: white; padding: 30px 20px; text-align: center;
    border-bottom: 1px solid rgba(251, 191, 36, 0.15);
    position: relative;
}
body.qr-page-lost-animals .page-header::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(to right, transparent, var(--qr-gold), transparent); }
body.qr-page-lost-animals .page-header h1 { font-size: 2.5em; margin-bottom: 10px; font-family: var(--qr-font-heading); color: var(--qr-gold-light); }
body.qr-page-lost-animals .page-header p { font-size: 1.1em; opacity: 0.7; }

body.qr-page-lost-animals #lost-animals-map { width: 100%; height: 500px; position: relative; z-index: 1; }

body.qr-page-lost-animals .sp-public-cta-bar {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
    padding: 20px;
    margin: 0;
    background: var(--qr-bg-card, #1a1a1a);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
body.qr-page-lost-animals .sp-public-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    letter-spacing: 0.3px;
    transition: transform 0.15s, box-shadow 0.15s;
    border: none;
}
body.qr-page-lost-animals .sp-public-cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}
body.qr-page-lost-animals .sp-public-cta-lost {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #000;
}
body.qr-page-lost-animals .sp-public-cta-found {
    background: linear-gradient(135deg, #34d399, #10b981);
    color: #fff;
}

body.qr-page-lost-animals .filters-section {
    background: var(--qr-bg-card); padding: 25px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    position: sticky; top: 0; z-index: 100;
    transition: top 0.3s ease;
}
body.qr-page-lost-animals .filters-container { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; align-items: end; }
body.qr-page-lost-animals .filter-group { display: flex; flex-direction: column; }
body.qr-page-lost-animals .filter-group label { font-weight: 600; margin-bottom: 5px; color: var(--qr-text-secondary); font-size: 0.9em; }
body.qr-page-lost-animals .filter-group input,
body.qr-page-lost-animals .filter-group select {
    padding: 10px 12px; border: 1px solid var(--qr-border-light);
    border-radius: var(--qr-radius-sm); font-size: 1em; transition: all 0.3s;
    background: var(--qr-bg-input); color: white; font-family: var(--qr-font-body);
}
body.qr-page-lost-animals .filter-group input:focus,
body.qr-page-lost-animals .filter-group select:focus { outline: none; border-color: var(--qr-gold); box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.2); }
body.qr-page-lost-animals .filter-group select option { background-color: var(--qr-bg-card, #161616); color: #fff; }

body.qr-page-lost-animals .filter-actions { display: flex; gap: 10px; }
body.qr-page-lost-animals .btn-filter {
    padding: 10px 20px; background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark));
    color: #0a0a0a; border: none; border-radius: var(--qr-radius-sm); cursor: pointer; font-weight: 600; transition: all 0.2s;
}
body.qr-page-lost-animals .btn-filter:hover { transform: translateY(-2px); box-shadow: var(--qr-shadow-gold); }
body.qr-page-lost-animals .btn-reset {
    padding: 10px 20px; background: transparent; color: var(--qr-text-muted);
    border: 1px solid var(--qr-border-light); border-radius: var(--qr-radius-sm); cursor: pointer; font-weight: 600; transition: all 0.2s;
}
body.qr-page-lost-animals .btn-reset:hover { border-color: var(--qr-gold); color: var(--qr-gold); }

body.qr-page-lost-animals .results-section { max-width: 1200px; margin: 30px auto; padding: 0 20px; }
body.qr-page-lost-animals .results-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
body.qr-page-lost-animals .results-count { font-size: 1.2em; font-weight: 600; color: var(--qr-text-secondary); }

body.qr-page-lost-animals .results-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 25px; }

body.qr-page-lost-animals .lost-animal-card {
    background: var(--qr-bg-card); border-radius: var(--qr-radius); overflow: hidden;
    border: 1px solid var(--qr-border);
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; cursor: pointer;
}
body.qr-page-lost-animals .lost-animal-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4); border-color: var(--qr-gold-border); }

body.qr-page-lost-animals .card-image { width: 100%; height: 200px; object-fit: cover; background: var(--qr-bg-input); }
body.qr-page-lost-animals .card-badge { position: absolute; top: 10px; right: 10px; background: rgba(239, 68, 68, 0.95); color: white; padding: 5px 12px; border-radius: 20px; font-size: 0.85em; font-weight: 600; }
body.qr-page-lost-animals .card-content { padding: 20px; }
body.qr-page-lost-animals .card-header { display: flex; justify-content: space-between; align-items: start; margin-bottom: 15px; }
body.qr-page-lost-animals .card-title { font-size: 1.4em; font-weight: 700; color: var(--qr-gold-light); margin-bottom: 5px; font-family: var(--qr-font-heading); }
body.qr-page-lost-animals .card-subtitle { color: var(--qr-text-muted); font-size: 0.95em; }
body.qr-page-lost-animals .card-icon { font-size: 2em; }

body.qr-page-lost-animals .card-info { display: flex; flex-direction: column; gap: 8px; margin-bottom: 15px; }
body.qr-page-lost-animals .lost-animal-card .info-row { display: flex; align-items: center; gap: 8px; font-size: 0.95em; color: var(--qr-text-muted); padding: 0; background: none; border: none; margin: 0; }
body.qr-page-lost-animals .info-icon { font-size: 1.1em; min-width: 20px; }

body.qr-page-lost-animals .card-description { color: var(--qr-text-muted); font-size: 0.95em; line-height: 1.5; margin-bottom: 15px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
body.qr-page-lost-animals .card-scan-info { background: rgba(16, 185, 129, 0.08); border-left: 3px solid var(--qr-green); padding: 10px; margin-bottom: 15px; border-radius: 4px; font-size: 0.9em; color: var(--qr-text-secondary); }
body.qr-page-lost-animals .card-scan-info strong { color: var(--qr-green); }

body.qr-page-lost-animals .card-actions { display: flex; gap: 10px; }
body.qr-page-lost-animals .btn-contact { flex: 1; padding: 12px; background: linear-gradient(135deg, var(--qr-gold), var(--qr-gold-dark)); color: #0a0a0a; border: none; border-radius: var(--qr-radius-sm); cursor: pointer; font-weight: 600; text-align: center; text-decoration: none; transition: all 0.2s; }
body.qr-page-lost-animals .btn-contact:hover { transform: translateY(-2px); box-shadow: var(--qr-shadow-gold); color: #0a0a0a; }
body.qr-page-lost-animals .btn-details { padding: 12px 20px; background: transparent; color: var(--qr-gold); border: 1px solid var(--qr-gold-border); border-radius: var(--qr-radius-sm); cursor: pointer; font-weight: 600; transition: all 0.2s; }
body.qr-page-lost-animals .btn-details:hover { background: var(--qr-gold-muted); }

body.qr-page-lost-animals .loading { text-align: center; padding: 40px; }
body.qr-page-lost-animals .spinner { border: 4px solid var(--qr-border); border-top: 4px solid var(--qr-gold); border-radius: 50%; width: 40px; height: 40px; animation: qr-spin 1s linear infinite; margin: 0 auto; }

body.qr-page-lost-animals .no-results { text-align: center; padding: 60px 20px; background: var(--qr-bg-card); border-radius: var(--qr-radius); border: 1px solid var(--qr-border); }
body.qr-page-lost-animals .no-results-icon { font-size: 4em; margin-bottom: 20px; }
body.qr-page-lost-animals .no-results h3 { font-size: 1.5em; color: var(--qr-gold-light); margin-bottom: 10px; font-family: var(--qr-font-heading); }
body.qr-page-lost-animals .no-results p { color: var(--qr-text-muted); font-size: 1.1em; }

/* ── InfoWindow Google Maps ── */
body.qr-page-lost-animals .gm-style .gm-style-iw-c { padding: 0 !important; border-radius: var(--qr-radius) !important; max-width: 280px !important; }
body.qr-page-lost-animals .gm-style .gm-style-iw-d { overflow: auto !important; }
body.qr-page-lost-animals .custom-infowindow { padding: 15px; text-align: center; background: var(--qr-bg-card); }
body.qr-page-lost-animals .infowindow-image { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; margin: 0 auto 10px; border: 3px solid var(--qr-gold); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); display: block; }
body.qr-page-lost-animals .infowindow-title { font-weight: 700; font-size: 1.1em; margin-bottom: 5px; color: var(--qr-gold-light); }
body.qr-page-lost-animals .infowindow-location { color: var(--qr-text-muted); font-size: 0.9em; margin-bottom: 8px; }
body.qr-page-lost-animals .infowindow-badge { display: inline-block; padding: 4px 10px; border-radius: 12px; font-size: 0.85em; font-weight: 600; margin-top: 5px; }
body.qr-page-lost-animals .badge-lost { background: rgba(239, 68, 68, 0.15); color: #f87171; }
body.qr-page-lost-animals .badge-found { background: rgba(16, 185, 129, 0.15); color: #34d399; }
body.qr-page-lost-animals .badge-scan { background: rgba(16, 185, 129, 0.15); color: #34d399; }
body.qr-page-lost-animals .infowindow-link { color: var(--qr-gold); font-weight: 600; text-decoration: none; margin-top: 10px; display: inline-block; }
body.qr-page-lost-animals .infowindow-link:hover { text-decoration: underline; }

body.qr-page-lost-animals .sp-filter-toggle {
    display: none;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: rgba(251, 191, 36, 0.15);
    color: var(--qr-gold);
    border: 1px solid var(--qr-gold-border, rgba(251,191,36,0.3));
    border-radius: var(--qr-radius-sm, 8px);
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    font-family: var(--qr-font-body);
    margin-bottom: 8px;
}

@media (max-width: 768px) {
    body.qr-page-lost-animals .page-header h1 { font-size: 1.8em; }
    body.qr-page-lost-animals #lost-animals-map { height: 400px; }
    body.qr-page-lost-animals .filters-section { position: sticky; top: 0; padding: 12px 16px; }
    body.qr-page-lost-animals .filters-container { grid-template-columns: 1fr 1fr; gap: 10px; }
    body.qr-page-lost-animals .filters-container.sp-collapsed .filter-group { display: none; }
    body.qr-page-lost-animals .filters-container.sp-collapsed .filter-actions { display: flex; }
    body.qr-page-lost-animals .filter-actions { grid-column: 1 / -1; }
    body.qr-page-lost-animals .results-grid { grid-template-columns: 1fr; }
    body.qr-page-lost-animals .sp-public-cta-bar { flex-direction: column; padding: 16px; gap: 10px; }
    body.qr-page-lost-animals .sp-public-cta-btn { justify-content: center; padding: 14px 20px; font-size: 14px; }
    body.qr-page-lost-animals .sp-filter-toggle { display: inline-flex; }
}
/* ── Upload photo : barre de progression ── */
.photo-upload-progress { margin-top: 8px; }
.progress-bar-container { width: 100%; height: 6px; background: rgba(255,255,255,0.1); border-radius: 3px; overflow: hidden; }
.progress-bar-fill { height: 100%; width: 0; background: linear-gradient(90deg, var(--qr-gold), var(--qr-gold-light, #fcd34d)); border-radius: 3px; transition: width 0.2s ease; }
.photo-upload-progress .progress-text { display: inline-block; margin-top: 4px; font-size: 0.85em; color: var(--qr-text-muted, #999); }

/* ── Photo preview : loader pendant chargement ── */
.photo-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px 20px; gap: 12px; }
.photo-loading span { font-size: 0.9em; color: var(--qr-text-muted, #999); animation: qr-pulse 1.5s ease-in-out infinite; }
.photo-loading-spinner { width: 36px; height: 36px; border: 3px solid rgba(251, 191, 36, 0.15); border-top-color: var(--qr-gold, #fbbf24); border-radius: 50%; animation: qr-spin 0.8s linear infinite; }
@keyframes qr-spin { to { transform: rotate(360deg); } }
@keyframes qr-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
.photo-loading-error { padding: 15px; text-align: center; color: var(--qr-red, #ef4444); font-size: 0.9em; }

/* ── Upload photo : aperçu avec overlay de chargement ── */
.photo-preview-loading { position: relative; display: inline-block; width: 100%; }
.photo-preview-loading img { display: block; max-width: 100%; max-height: 250px; border-radius: var(--qr-radius, 12px); object-fit: contain; filter: brightness(0.5); transition: filter 0.3s ease; }
.photo-preview-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; border-radius: var(--qr-radius, 12px); }
.photo-overlay-text { font-size: 0.95em; color: #fff; font-weight: 600; text-shadow: 0 1px 4px rgba(0,0,0,0.5); }

/* ── Google Places Autocomplete — Dark Theme (global) ── */
.pac-container {
    background: #1a1a1a !important;
    border: 1px solid #2a2a2a !important;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5) !important;
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    margin-top: 4px;
    z-index: 99999 !important;
}

.pac-container .pac-item {
    padding: 10px 14px;
    border-top: 1px solid #2a2a2a;
    color: #e5e7eb !important;
    cursor: pointer;
    font-size: 14px;
    line-height: 1.4;
    background: transparent;
}

.pac-container .pac-item:first-child {
    border-top: none;
}

.pac-container .pac-item:hover,
.pac-container .pac-item-selected {
    background: rgba(251, 191, 36, 0.1) !important;
}

.pac-container .pac-item .pac-item-query {
    color: #ffffff !important;
    font-weight: 500;
}

.pac-container .pac-item .pac-matched {
    color: #fbbf24 !important;
    font-weight: 600;
}

.pac-container .pac-icon {
    display: none;
}

.pac-container::after {
    display: none !important;
}
