/* ==========================================================================
   Template Au Temps pour Soi - CSS Principal
   Cabinet de bien-etre - Geneve
   ========================================================================== */

/* --- Variables & Reset --- */
:root {
    --color-primary: #cd6c3c;
    --color-primary-dark: #a8562e;
    --color-primary-light: #e8a882;
    --color-primary-pale: #f5ebe4;
    --color-bg: #faf9f7;
    --color-cream: #f5f3f0;
    --color-charcoal: #2a2622;
    --color-text: #3d3833;
    --color-text-light: #6b6560;
    --color-white: #ffffff;
    --color-border: #e5e0db;
    --font-heading: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    --font-body: 'Nunito Sans', 'Segoe UI', Roboto, Arial, sans-serif;
    --container: 1200px;
    --gap: 2rem;
    --radius: 8px;
    --radius-btn: 999px;
    --shadow: 0 2px 12px rgba(42, 38, 34, .08);
    --shadow-lg: 0 8px 32px rgba(42, 38, 34, .12);
    --transition: .3s ease;
    --header-h: 90px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: hidden; overflow-x: clip; }

body {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.7;
    color: var(--color-text);
    background: var(--color-bg);
    overflow-x: hidden;
    overflow-x: clip;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a, a:hover, a:focus, a:visited { text-decoration: none !important; }
a { color: var(--color-primary); transition: color var(--transition); }
a:hover { color: var(--color-primary-dark); }
/* Plus aucun soulignement nulle part */
u { text-decoration: none; }
ul, ol { list-style: none; }

.container {
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* --- Skip link (accessibilite) --- */
.skip-link {
    position: absolute;
    top: -100%;
    left: 1rem;
    background: var(--color-primary);
    color: var(--color-white);
    padding: .75rem 1.5rem;
    border-radius: var(--radius);
    z-index: 9999;
    font-weight: 600;
    font-size: .95rem;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(205, 108, 60, .3);
    transition: top .2s ease;
}
.skip-link:focus {
    top: 1rem;
    outline: 3px solid var(--color-primary-dark);
    outline-offset: 2px;
}

/* --- Topbar --- */
.topbar {
    background: var(--color-charcoal);
    color: var(--color-white);
    font-size: .85rem;
    padding: .4rem 0;
}
.topbar .container { display: flex; justify-content: flex-end; align-items: center; }
.topbar .mod-custom { display: flex; align-items: center; gap: 1.5rem; }
.topbar .mod-custom p { display: flex; align-items: center; gap: 1.75rem; margin: 0; }
.topbar a { color: var(--color-primary-light); }
.topbar a:hover { color: var(--color-white); }
.topbar-item { display: inline-flex; align-items: center; gap: .35rem; }
.topbar-item svg { flex-shrink: 0; }
.topbar-social {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin: 0 0 0 1rem;
    padding: 0 0 0 1rem;
    list-style: none;
    border-left: 1px solid rgba(255,255,255,.18);
}
.topbar-social li { margin: 0; padding: 0; }
.topbar-social .social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255,255,255,.06);
    color: var(--color-primary-light);
    transition: background var(--transition), color var(--transition), transform var(--transition);
}
.topbar-social .social-link svg { display: block; }
.topbar-social .social-link:hover,
.topbar-social .social-link:focus-visible { color: var(--color-white); transform: translateY(-1px); }
.topbar-social .social-facebook:hover, .topbar-social .social-facebook:focus-visible { background: #1877F2; }
.topbar-social .social-instagram:hover, .topbar-social .social-instagram:focus-visible {
    background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
}
.topbar-social .social-linkedin:hover, .topbar-social .social-linkedin:focus-visible { background: #0A66C2; }

/* --- Header --- */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(250, 249, 247, .97);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--color-border);
    height: var(--header-h);
    transition: box-shadow var(--transition);
}
.site-header.scrolled { box-shadow: var(--shadow); }

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--header-h);
    gap: 2rem;
}

.site-logo {
    display: flex;
    align-items: center;
    gap: .6rem;
    text-decoration: none;
}
.site-logo .logo-face {
    height: 70px;
    width: auto;
    flex-shrink: 0;
}
.site-logo .logo-text {
    display: flex;
    flex-direction: column;
    white-space: nowrap;
}
.site-logo .logo-line1 {
    font-family: var(--font-heading);
    font-size: 1.55rem;
    font-weight: 600;
    line-height: 1.1;
    color: var(--color-charcoal);
    letter-spacing: .06em;
}
.site-logo .logo-line2 {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 400;
    font-style: italic;
    line-height: 1.2;
    color: var(--color-primary);
    letter-spacing: .12em;
}

/* --- Navigation principale --- */
.main-nav ul {
    display: flex;
    align-items: center;
    gap: .25rem;
}
.main-nav a {
    display: block;
    padding: .5rem 1rem;
    color: var(--color-charcoal);
    font-size: .95rem;
    font-weight: 600;
    border-radius: var(--radius);
    transition: background var(--transition), color var(--transition);
}
.main-nav a:hover,
.main-nav .active > a,
.main-nav .current > a {
    color: var(--color-primary);
    background: var(--color-primary-pale);
}

/* Accessibilite */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Dropdown */
.main-nav li { position: relative; }
.main-nav li.parent {
    display: flex;
    align-items: center;
}
.main-nav li.parent > a {
    padding-right: .25rem;
}

/* --- Header tools (compte + panier) --- */
.header-tools {
    display: flex;
    align-items: center;
    gap: .25rem;
    margin-left: auto;
}
.header-tool {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: var(--color-charcoal);
    border-radius: 50%;
    transition: background var(--transition), color var(--transition), transform .25s ease;
    text-decoration: none;
}
.header-tool .header-tool-label { display: none; }
.header-tool:hover {
    background: var(--color-cream);
    color: var(--color-primary);
    transform: translateY(-2px);
}

/* Module panier HikaShop dans le header */
.header-tools .hikashop_cart_module {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.header-tools .hikashop_cart {
    position: relative;
}
/* Le lien principal "Total : X CHF" devient une icône ronde avec badge */
.header-tools a.hikashop_small_cart_checkout_link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: var(--color-charcoal);
    border-radius: 50%;
    text-decoration: none;
    font-size: 0;
    transition: background var(--transition), color var(--transition), transform .25s ease;
    overflow: visible;
}
.header-tools a.hikashop_small_cart_checkout_link:hover {
    background: var(--color-cream);
    color: var(--color-primary);
    transform: translateY(-2px);
}
/* Icône panier SVG */
.header-tools a.hikashop_small_cart_checkout_link::before {
    content: '';
    width: 22px;
    height: 22px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") center/contain no-repeat;
    display: inline-block;
}
.header-tools a.hikashop_small_cart_checkout_link .hikashop_small_cart_total_title,
.header-tools .hikashop_cart_zone_header_product_number_value,
.header-tools .hikashop_small_cart_checkout_link > span:not(.autemps-cart-badge),
.header-tools .hikashop_small_cart_checkout_link > img { display: none !important; }

/* Badge compteur d'articles - injecté via JS */
.header-tools a.hikashop_small_cart_checkout_link .autemps-cart-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: 10px;
    font-size: .7rem;
    font-weight: 700;
    font-family: var(--font-body);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    border: 2px solid var(--color-white);
    animation: cartBadgeBounce .35s ease-out;
    box-sizing: border-box;
}
@keyframes cartBadgeBounce {
    0% { transform: scale(0); }
    60% { transform: scale(1.25); }
    100% { transform: scale(1); }
}

/* Panier vide dans le header : remplacer le texte "Le panier est vide" par l'icône panier */
.header-tools .hikashop_cart_empty_message {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin: 0;
    padding: 0;
    font-size: 0;
    line-height: 1;
    color: var(--color-charcoal);
    border-radius: 50%;
    transition: background var(--transition), color var(--transition), transform .25s ease;
}
.header-tools .hikashop_cart_empty_message:hover {
    background: var(--color-cream);
    color: var(--color-primary);
    transform: translateY(-2px);
}
.header-tools .hikashop_cart_empty_message::before {
    content: '';
    display: inline-block;
    width: 22px;
    height: 22px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Dropdown panier : complètement caché par défaut, visible au survol */
.header-tools .hikashop_cart_dropdown_container {
    position: absolute;
    top: 100%;
    right: 0;
    min-width: 340px;
    max-width: 400px;
    background: var(--color-white);
    border: 0 solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 16px 48px rgba(42, 38, 34, .18);
    padding: 0;
    margin-top: 10px;
    z-index: 150;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    pointer-events: none;
    transition: opacity .22s ease, transform .22s ease, visibility .22s, padding .22s ease, max-height .22s ease;
    overflow: hidden;
    max-height: 0;
}
/* Pont invisible pour éviter la perte de hover dans l'espace entre icône et dropdown */
.header-tools .hikashop_cart_dropdown_container::before {
    content: '';
    position: absolute;
    top: -12px;
    left: 0;
    right: 0;
    height: 12px;
    background: transparent;
}
/* Zone de survol étendue sur le module pour couvrir l'intervalle */
.header-tools .hikashop_cart_module {
    padding-bottom: 12px;
    margin-bottom: -12px;
}
.header-tools .hikashop_cart_module:hover .hikashop_cart_dropdown_container,
.header-tools .hikashop_cart_dropdown_container:hover,
.header-tools .hikashop_cart_module:focus-within .hikashop_cart_dropdown_container,
.header-tools .hikashop_cart_dropdown_container.hk-is-active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
    padding: 1rem;
    max-height: 80vh;
    border-width: 1px;
    overflow: visible;
}
/* Force l'affichage du contenu du dropdown quand il est ouvert au survol */
.header-tools .hikashop_cart_dropdown_content { display: none; }
.header-tools .hikashop_cart_module:hover .hikashop_cart_dropdown_content,
.header-tools .hikashop_cart_dropdown_container:hover .hikashop_cart_dropdown_content,
.header-tools .hikashop_cart_module:focus-within .hikashop_cart_dropdown_content,
.header-tools .hikashop_cart_dropdown_container.hk-is-active .hikashop_cart_dropdown_content {
    display: block !important;
    position: static !important;
    width: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.header-tools .hikashop_cart_dropdown_content { border: 0 !important; outline: 0 !important; box-shadow: none !important; }
/* Police unifiée dans tout le module panier */
.header-tools .hikashop_cart_dropdown_content,
.header-tools .hikashop_cart_dropdown_content * {
    font-family: var(--font-body) !important;
}
.header-tools .hikashop_cart_dropdown_content table {
    width: 100%;
    font-size: .9rem;
    border-collapse: collapse;
}
.header-tools .hikashop_cart_dropdown_content thead th {
    text-align: left;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--color-charcoal);
    padding: 0 0 .6rem;
    border-bottom: 1px solid var(--color-border);
    font-weight: 700;
}
.header-tools .hikashop_cart_dropdown_content thead th:last-child { text-align: right; }
.header-tools .hikashop_cart_dropdown_content tbody td {
    padding: .7rem 0;
    border: none;
    vertical-align: middle;
    line-height: 1.35;
}
.header-tools .hikashop_cart_dropdown_content tbody td.hikashop_cart_module_product_name_value {
    font-size: .85rem;
    color: var(--color-charcoal);
    padding-right: .75rem;
    line-height: 1.35;
}
.header-tools .hikashop_cart_dropdown_content tbody td.hikashop_cart_module_product_price_value {
    text-align: right;
    white-space: nowrap;
}

/* Layout du dropdown panier : on remplace la table par un flex column
   pour garantir l'ordre thead → tbody → tfoot même si HikaShop met tfoot avant tbody */
.header-tools .hikashop_cart_dropdown_content table {
    display: flex;
    flex-direction: column;
    width: 100%;
}
.header-tools .hikashop_cart_dropdown_content thead { order: 1; display: block; width: 100%; }
.header-tools .hikashop_cart_dropdown_content tbody { order: 2; display: block; width: 100%; }
.header-tools .hikashop_cart_dropdown_content tfoot { order: 3; display: block; width: 100%; }
.header-tools .hikashop_cart_dropdown_content tr {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    column-gap: .5rem;
    align-items: center;
    padding: .65rem 0;
    border: none !important;
    width: 100%;
    box-sizing: border-box;
}
.header-tools .hikashop_cart_dropdown_content tbody tr > * {
    min-width: 0 !important;
    max-width: none !important;
    width: auto !important;
}
/* Annuler les contraintes HikaShop sur les cellules du dropdown panier */
.header-tools .hikashop_cart_dropdown_content td.hikashop_cart_module_product_quantity_value,
.header-tools .hikashop_cart_dropdown_container td.hikashop_cart_module_product_quantity_value.hikashop_cart_value,
.header-tools .hikashop_cart_dropdown_content td.hikashop_cart_module_product_price_value,
.header-tools .hikashop_cart_dropdown_content td.hikashop_cart_module_product_name_value {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    display: block !important;
}
.header-tools .hikashop_cart_dropdown_content thead tr { padding: 0 0 .5rem; }
.header-tools .hikashop_cart_dropdown_content tfoot tr {
    border: none !important;
    padding: .85rem 0 .4rem;
    grid-template-columns: 1fr auto;
    margin-top: .5rem;
}
.header-tools .hikashop_cart_dropdown_content td,
.header-tools .hikashop_cart_dropdown_content th {
    display: block;
    padding: 0;
    border: none;
    vertical-align: middle;
}
.header-tools .hikashop_cart_dropdown_content thead th.hikashop_cart_module_product_quantity_title { text-align: center; }
.header-tools .hikashop_cart_dropdown_content thead th.hikashop_cart_module_product_price_title { text-align: right; }
.header-tools .hikashop_cart_dropdown_content td.hikashop_cart_module_product_quantity_value { text-align: center; }
.header-tools .hikashop_cart_dropdown_content td.hikashop_cart_module_product_price_value { text-align: right; white-space: nowrap; }
.header-tools .hikashop_cart_dropdown_content td.hikashop_cart_module_product_delete_value { text-align: right; }
.header-tools .hikashop_cart_dropdown_content tfoot td.hikashop_cart_module_product_total_title { grid-column: 1; text-align: left; }
.header-tools .hikashop_cart_dropdown_content tfoot td.hikashop_cart_module_product_total_value { grid-column: 2; text-align: right; }

/* Stepper pill compact [− 2 +] */
.header-tools .hikashop_cart_dropdown_content .hikashop_product_quantity_input_div_default_main {
    display: inline-flex !important;
    align-items: center;
    gap: 0;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    padding: 2px;
    background: var(--color-cream);
    height: 28px;
    overflow: visible;
    box-shadow: 0 1px 2px rgba(42, 38, 34, .04);
}
/* Wrapper des boutons +/- transparent pour réordonner en flex */
.header-tools .hikashop_cart_dropdown_content .hikashop_product_quantity_change_div_default {
    display: contents !important;
}
.header-tools .hikashop_cart_dropdown_content .hikashop_product_quantity_input_div_default {
    order: 2;
    display: flex;
    align-items: center;
    padding: 0 2px;
}
.header-tools .hikashop_cart_dropdown_content .hikashop_product_quantity_change_div_minus_default {
    order: 1;
    display: flex;
}
.header-tools .hikashop_cart_dropdown_content .hikashop_product_quantity_change_div_plus_default {
    order: 3;
    display: flex;
}
.header-tools .hikashop_cart_dropdown_content input.hikashop_product_quantity_field {
    width: 22px !important;
    height: 22px !important;
    text-align: center;
    border: none !important;
    background: transparent !important;
    font-size: .85rem !important;
    font-weight: 700;
    color: var(--color-charcoal);
    padding: 0 !important;
    box-shadow: none !important;
    font-variant-numeric: tabular-nums;
    appearance: textfield;
    -moz-appearance: textfield;
}
.header-tools .hikashop_cart_dropdown_content input.hikashop_product_quantity_field::-webkit-outer-spin-button,
.header-tools .hikashop_cart_dropdown_content input.hikashop_product_quantity_field::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.header-tools .hikashop_cart_dropdown_content a.hikashop_product_quantity_field_change_plus,
.header-tools .hikashop_cart_dropdown_content a.hikashop_product_quantity_field_change_minus {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 22px !important;
    height: 22px !important;
    padding: 0 !important;
    background: var(--color-white) !important;
    color: var(--color-charcoal) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 50% !important;
    font-size: .9rem !important;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: background var(--transition), color var(--transition), border-color var(--transition), transform .15s ease;
    margin: 0 !important;
}
.header-tools .hikashop_cart_dropdown_content a.hikashop_product_quantity_field_change_plus:hover,
.header-tools .hikashop_cart_dropdown_content a.hikashop_product_quantity_field_change_minus:hover {
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
    border-color: var(--color-primary) !important;
    transform: scale(1.05);
}
.header-tools .hikashop_cart_dropdown_content a.hikashop_product_quantity_field_change_plus:active,
.header-tools .hikashop_cart_dropdown_content a.hikashop_product_quantity_field_change_minus:active {
    transform: scale(0.95);
}

/* Masquer le bouton rafraîchir qui apparaît sous la quantité (icône box si FA non chargée) */
.header-tools .hikashop_cart_dropdown_content .hikashop_cart_product_quantity_refresh { display: none !important; }

/* Bouton supprimer (corbeille) sur chaque ligne du panier */
.header-tools .hikashop_cart_dropdown_content td.hikashop_cart_module_product_delete_value,
.header-tools .hikashop_cart_dropdown_content .hikashop_cart_module_product_delete {
    text-align: center;
    width: 28px;
}
.header-tools .hikashop_cart_dropdown_content .hikashop_cart_module_product_delete a,
.header-tools .hikashop_cart_dropdown_content a.hikashop_cart_delete_button,
.header-tools .hikashop_cart_dropdown_content a[onclick*="delete"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    color: var(--color-text-light) !important;
    background: transparent;
    border: none;
    border-radius: 6px;
    font-size: 0;
    transition: background var(--transition), color var(--transition);
}
.header-tools .hikashop_cart_dropdown_content .hikashop_cart_module_product_delete a::before,
.header-tools .hikashop_cart_dropdown_content a.hikashop_cart_delete_button::before,
.header-tools .hikashop_cart_dropdown_content a[onclick*="delete"]::before {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6m5 0V4a2 2 0 0 1 2-2h0a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6m5 0V4a2 2 0 0 1 2-2h0a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E") center/contain no-repeat;
}
.header-tools .hikashop_cart_dropdown_content .hikashop_cart_module_product_delete a:hover,
.header-tools .hikashop_cart_dropdown_content a.hikashop_cart_delete_button:hover {
    color: #d64531 !important;
    background: rgba(214, 69, 49, .08);
}

.header-tools .hikashop_cart_dropdown_content td.hikashop_cart_module_product_delete_value img,
.header-tools .hikashop_cart_dropdown_content a[onclick*="delete"] img,
.header-tools .hikashop_cart_dropdown_content a.hikashop_cart_delete_button img { display: none; }
.header-tools .hikashop_cart_dropdown_content tbody td.hikashop_cart_module_product_price_value .hikashop_product_price {
    font-size: .9rem !important;
    font-weight: 600 !important;
    color: var(--color-primary) !important;
    font-family: var(--font-body) !important;
    letter-spacing: 0 !important;
    white-space: nowrap;
}
.header-tools .hikashop_cart_dropdown_content tfoot td {
    padding: .9rem 0 .4rem;
    font-weight: 700;
    font-size: .95rem;
    border: none;
}
.header-tools .hikashop_cart_dropdown_content tfoot td.hikashop_cart_module_product_total_title {
    color: var(--color-charcoal);
    text-transform: uppercase;
    letter-spacing: .6px;
    font-size: .85rem;
    font-weight: 700;
}
.header-tools .hikashop_cart_dropdown_content tfoot td.hikashop_cart_module_product_total_value {
    text-align: right;
    white-space: nowrap;
    color: var(--color-primary);
}
.header-tools .hikashop_cart_dropdown_content tfoot td.hikashop_cart_module_product_total_value .hikashop_product_price {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: var(--color-primary) !important;
    white-space: nowrap;
    font-family: var(--font-body) !important;
}
.header-tools .hikashop_cart_dropdown_content .hikashop_product_price_full {
    display: inline !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    color: inherit !important;
    background: none !important;
    border: none !important;
}
.header-tools .hikashop_cart_dropdown_content .hikashop_cart_proceed_to_checkout {
    display: block;
    margin-top: 1rem;
    padding: .85rem 1rem;
    background: var(--color-primary);
    color: var(--color-white) !important;
    border-radius: 12px;
    text-align: center;
    font-weight: 700;
    font-size: .95rem;
    text-decoration: none;
    transition: background var(--transition), transform .2s ease, box-shadow var(--transition);
    box-shadow: 0 4px 12px rgba(205, 108, 60, .25);
}
.header-tools .hikashop_cart_dropdown_content .hikashop_cart_proceed_to_checkout:hover {
    background: var(--color-primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(205, 108, 60, .35);
}
.header-tools .hikashop_cart_dropdown_content .hikashop_cart_proceed_to_checkout span {
    font-size: inherit;
    font-weight: inherit;
}

/* Effet pulse à l'ajout */
@keyframes cartPulse {
    0% { box-shadow: 0 0 0 0 rgba(205, 108, 60, .6); }
    70% { box-shadow: 0 0 0 16px rgba(205, 108, 60, 0); }
    100% { box-shadow: 0 0 0 0 rgba(205, 108, 60, 0); }
}
.header-tools a.hikashop_small_cart_checkout_link.hikashop_cart_updated {
    animation: cartPulse .7s ease-out;
}

@media (max-width: 980px) {
    .header-tools { order: 3; margin-left: 0; }
    .header-tool, .header-tools a.hikashop_small_cart_checkout_link { width: 38px; height: 38px; }
    .header-tools .hikashop_cart_dropdown_container { right: -10px; min-width: 280px; }
}

/* Bouton toggle Joomla 6 */
.main-nav .mod-menu__toggle-sub {
    background: none;
    border: none;
    cursor: pointer;
    padding: .5rem .3rem .5rem .15rem;
    color: var(--color-charcoal);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color var(--transition);
}
.main-nav .mod-menu__toggle-sub:hover { color: var(--color-primary); }

/* Chevron via CSS */
.main-nav .mod-menu__toggle-sub .icon-chevron-down {
    display: block;
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform var(--transition);
    font-size: 0;
}
.main-nav .mod-menu__toggle-sub .icon-chevron-down::before { content: none; }
.main-nav .mod-menu__toggle-sub[aria-expanded="true"] .icon-chevron-down {
    transform: rotate(-135deg);
}

/* Sous-menu dropdown */
.main-nav ul ul,
.main-nav .mod-menu__sub {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    min-width: 220px;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    padding: .5rem 0;
    z-index: 100;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
/* Pont invisible pour garder le hover entre le parent et le sous-menu */
.main-nav .mod-menu__sub::before {
    content: '';
    position: absolute;
    top: -12px;
    left: 0;
    right: 0;
    height: 12px;
}
.main-nav li:hover > ul,
.main-nav li:hover > .mod-menu__sub,
.main-nav li:focus-within > ul,
.main-nav li:focus-within > .mod-menu__sub,
.main-nav .mod-menu__sub[aria-hidden="false"] {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}
.main-nav ul ul li,
.main-nav .mod-menu__sub li {
    display: block;
    width: 100%;
    padding: 0;
}
.main-nav ul ul a,
.main-nav .mod-menu__sub a {
    display: block;
    width: 100%;
    padding: .6rem 1.25rem;
    font-size: .9rem;
    font-weight: 500;
    border-radius: 0;
    text-align: left;
    white-space: nowrap;
}
.main-nav ul ul a:hover,
.main-nav .mod-menu__sub a:hover {
    background: var(--color-primary-pale);
    color: var(--color-primary);
}

/* Hamburger */
.menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: .5rem;
    z-index: 1001;
}
.hamburger { display: flex; flex-direction: column; gap: 5px; width: 26px; }
.hamburger span {
    display: block;
    height: 2px;
    background: var(--color-charcoal);
    border-radius: 2px;
    transition: transform var(--transition), opacity var(--transition);
}
.menu-toggle[aria-expanded="true"] .hamburger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .hamburger span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .hamburger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* --- Hero --- */
.hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 580px;
    background:
        radial-gradient(ellipse 80% 60% at 20% 80%, rgba(205, 108, 60, .15) 0%, transparent 60%),
        radial-gradient(ellipse 60% 50% at 80% 20%, rgba(205, 108, 60, .1) 0%, transparent 50%),
        linear-gradient(160deg, #1e1b18 0%, #2a2622 30%, #3d3530 60%, #4a3a30 100%);
    text-align: center;
    overflow: hidden;
}
/* Lueur 1 — terracotta chaud, dérive lente haut-droite */
.hero::before {
    content: '';
    position: absolute;
    top: -10%;
    right: -5%;
    width: 800px;
    height: 600px;
    background: radial-gradient(ellipse, rgba(205, 108, 60, .28) 0%, rgba(205, 108, 60, .1) 40%, transparent 70%);
    filter: blur(80px);
    animation: glowDrift1 22s ease-in-out infinite;
    pointer-events: none;
}
/* Lueur 2 — ambre doux, dérive bas-gauche */
.hero::after {
    content: '';
    position: absolute;
    bottom: -15%;
    left: -8%;
    width: 700px;
    height: 550px;
    background: radial-gradient(ellipse, rgba(232, 168, 130, .22) 0%, rgba(205, 108, 60, .08) 45%, transparent 70%);
    filter: blur(100px);
    animation: glowDrift2 28s ease-in-out infinite;
    pointer-events: none;
}
@keyframes glowDrift1 {
    0%, 100% { transform: translate(0, 0) scale(1); opacity: 1; }
    30% { transform: translate(-55px, 45px) scale(1.12); opacity: .7; }
    65% { transform: translate(35px, -30px) scale(.88); opacity: .9; }
}
@keyframes glowDrift2 {
    0%, 100% { transform: translate(0, 0) scale(1); opacity: .85; }
    40% { transform: translate(50px, -40px) scale(1.1); opacity: 1; }
    72% { transform: translate(-35px, 30px) scale(.9); opacity: .55; }
}

/* Animations d'entree du hero */
@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes heroBadgeIn {
    from { opacity: 0; transform: translateY(-15px) scale(.9); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes heroGlow {
    0%, 100% { opacity: .6; }
    50% { opacity: 1; }
}
@keyframes heroDividerFlow {
    0% { background-position: -200% center; }
    100% { background-position: 200% center; }
}
.hero-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
/* Lueur 3 — centrale, pulse lente */
.hero-overlay::before {
    content: '';
    position: absolute;
    top: 20%;
    left: 20%;
    width: 650px;
    height: 420px;
    background: radial-gradient(ellipse, rgba(205, 108, 60, .14) 0%, rgba(180, 80, 30, .05) 50%, transparent 75%);
    filter: blur(110px);
    animation: glowDrift3 32s ease-in-out infinite reverse;
    pointer-events: none;
}
@keyframes glowDrift3 {
    0%, 100% { transform: translate(0, 0) scale(1); opacity: .8; }
    35% { transform: translate(60px, -45px) scale(1.15); opacity: 1; }
    68% { transform: translate(-45px, 55px) scale(.85); opacity: .5; }
}
.hero-content { position: relative; z-index: 1; padding: 4rem 1.5rem; max-width: 750px; }
.hero-title {
    font-family: var(--font-heading);
    font-size: clamp(2.4rem, 5vw, 3.8rem);
    font-weight: 500;
    color: var(--color-white);
    margin-bottom: 1.25rem;
    line-height: 1.15;
    letter-spacing: .02em;
    text-shadow: 0 2px 30px rgba(0, 0, 0, .3);
    animation: heroFadeUp .9s cubic-bezier(.22, 1, .36, 1) .5s both;
}
.hero-subtitle {
    font-size: clamp(1.05rem, 2.5vw, 1.3rem);
    color: var(--color-primary-light);
    margin-bottom: 2.5rem;
    font-weight: 300;
    max-width: 550px;
    margin-inline: auto;
    line-height: 1.6;
    text-shadow: 0 1px 10px rgba(0, 0, 0, .2);
    animation: heroFadeUp .9s cubic-bezier(.22, 1, .36, 1) .8s both;
}
.hero-btn {
    position: relative;
    overflow: hidden;
}
.hero-btn::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 30%, rgba(255, 255, 255, .15) 50%, transparent 70%);
    transform: translateX(-100%);
    transition: transform .6s ease;
}
.hero-btn:hover::after { transform: translateX(100%); }

/* Badge hero */
.hero-badge {
    display: inline-block;
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--color-primary-light);
    border: 1px solid rgba(232, 168, 130, .3);
    padding: .5rem 1.5rem;
    border-radius: 50px;
    margin-bottom: 1.5rem;
    backdrop-filter: blur(4px);
    background: rgba(205, 108, 60, .08);
    animation: heroBadgeIn .8s cubic-bezier(.22, 1, .36, 1) .2s both;
}

/* Actions hero */
.hero-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; animation: heroFadeUp .9s cubic-bezier(.22, 1, .36, 1) 1.1s both; }
.btn-outline-light {
    background: transparent;
    color: var(--color-white);
    border-color: rgba(255, 255, 255, .4);
}
.btn-outline-light:hover {
    background: rgba(255, 255, 255, .1);
    border-color: var(--color-white);
    color: var(--color-white);
    transform: translateY(-2px);
}

/* Ligne decorative sous le hero */
.hero-divider {
    height: 4px;
    background: linear-gradient(90deg, transparent 0%, var(--color-primary) 25%, var(--color-primary-light) 50%, var(--color-primary) 75%, transparent 100%);
    background-size: 200% 100%;
    animation: heroDividerFlow 4s ease-in-out infinite, heroGlow 3s ease-in-out infinite;
}

/* --- Boutons --- */
.btn {
    display: inline-block;
    padding: .85rem 2.2rem;
    font-family: var(--font-body);
    font-size: .95rem;
    font-weight: 700;
    border-radius: var(--radius-btn);
    border: 2px solid transparent;
    cursor: pointer;
    transition: all var(--transition);
    text-align: center;
    letter-spacing: .02em;
}
.btn-primary {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}
.btn-primary:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    color: var(--color-white);
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(205, 108, 60, .35);
}
.btn-outline {
    background: transparent;
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.btn-outline:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

/* --- Fil d'Ariane --- */
.breadcrumbs-wrapper {
    background: var(--color-cream);
    padding: .75rem 0;
    border-bottom: 1px solid var(--color-border);
}
.breadcrumbs-wrapper .mod-breadcrumbs {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .85rem;
    color: var(--color-text-light);
}
.breadcrumbs-wrapper a { color: var(--color-primary); }

/* --- Contenu principal --- */
.site-main { padding: 3rem 0; }

.content-layout { display: grid; gap: var(--gap); }
.content-layout.with-sidebar {
    grid-template-columns: 1fr 280px;
}
/* Boutique HikaShop : masquer sidebar vide, pleine largeur */
.content-layout:has(.hikashop_categories_listing_main) {
    grid-template-columns: 1fr !important;
}
.content-layout:has(.hikashop_categories_listing_main) .sidebar { display: none; }
.content-area { min-width: 0; overflow: hidden; }

.content-area h1, .content-area h2, .content-area h3, .content-area h4 {
    font-family: var(--font-heading);
    color: var(--color-charcoal);
    line-height: 1.3;
    margin-bottom: 1rem;
}
.content-area h1 { font-size: 2.4rem; font-weight: 600; }
.content-area h2 { font-size: 1.8rem; font-weight: 600; color: var(--color-primary); margin-top: 2rem; }
.content-area h3 { font-size: 1.4rem; font-weight: 500; }

.content-area p { margin-bottom: 1rem; }
.content-area ul, .content-area ol {
    margin: 1rem 0 1.5rem 1.5rem;
    list-style: disc;
}
.content-area li { margin-bottom: .4rem; }
.content-area ol { list-style: decimal; }

.content-area blockquote {
    border-left: 4px solid var(--color-primary);
    padding: 1rem 1.5rem;
    margin: 1.5rem 0;
    background: var(--color-cream);
    border-radius: 0 var(--radius) var(--radius) 0;
    font-style: italic;
    color: var(--color-text-light);
}

/* Article Joomla - en-tete generique */
.com-content-article .page-header h1,
.com-content-article .page-header h2 {
    font-family: var(--font-heading);
    font-size: 2.4rem;
    color: var(--color-charcoal);
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--color-primary-pale);
}

/* En-tete visuel des pages internes */
.is-page .com-content-article .page-header {
    background: linear-gradient(135deg, #1e1b18 0%, #2a2622 40%, #3d3530 70%, #4a3a30 100%);
    margin: 0 0 2.5rem;
    padding: 3rem 2.5rem 2.5rem;
    border-radius: 16px;
    position: relative;
    overflow: hidden;
    text-align: center;
}
.is-page .com-content-article .page-header::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 80% at 80% 50%, rgba(205, 108, 60, .12) 0%, transparent 60%),
        radial-gradient(ellipse 40% 60% at 20% 80%, rgba(205, 108, 60, .08) 0%, transparent 50%);
}
.is-page .com-content-article .page-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
    border-radius: 2px;
}
.is-page .com-content-article .page-header h1,
.is-page .com-content-article .page-header h2 {
    font-size: 2.4rem;
    color: var(--color-white);
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
    position: relative;
    z-index: 1;
    text-shadow: 0 2px 20px rgba(0, 0, 0, .3);
}
/* Masquer les metadonnees d'article sur le frontend */
.com-content-article .article-info,
.com-content-article .article-info-term,
.com-content-article dd.createdby,
.com-content-article dd.category-name,
.com-content-article dd.published,
.com-content-article dd.hits,
.com-content-article .page-header .article-info { display: none; }

/* --- Sidebar --- */
.sidebar .module {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}
.sidebar .module h3 {
    font-family: var(--font-heading);
    font-size: 1.3rem;
    color: var(--color-primary);
    margin-bottom: 1rem;
    padding-bottom: .5rem;
    border-bottom: 2px solid var(--color-primary-pale);
}

/* --- Section Services --- */
.services-section {
    padding: 3.5rem 0 5rem;
    background: var(--color-cream);
    position: relative;
}
.services-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--color-border), transparent);
}
.services-section h2 {
    font-family: var(--font-heading);
    font-size: 2.2rem;
    font-weight: 600;
    color: var(--color-charcoal);
}
.services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
}
.service-card {
    background: var(--color-white);
    border-radius: 16px;
    padding: 2.5rem 2rem 2rem;
    text-align: center;
    box-shadow: 0 2px 16px rgba(42, 38, 34, .06);
    transition: transform var(--transition), box-shadow var(--transition);
    border: 1px solid var(--color-border);
    position: relative;
    overflow: hidden;
}
.service-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
    opacity: 0;
    transition: opacity var(--transition);
}
.service-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px rgba(205, 108, 60, .12);
}
.service-card:hover::before { opacity: 1; }
.service-card .icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary-pale);
    border-radius: 50%;
    transition: background var(--transition), transform var(--transition);
}
.service-card:hover .icon {
    background: var(--color-primary);
    transform: scale(1.05);
}
.service-card .icon svg { transition: stroke var(--transition); }
.service-card:hover .icon svg { stroke: var(--color-white); }
.service-card h3 {
    font-family: var(--font-heading);
    font-size: 1.4rem;
    color: var(--color-charcoal);
    margin-bottom: .75rem;
    font-weight: 600;
}
.service-card p {
    color: var(--color-text-light);
    font-size: .92rem;
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

/* --- CTA Section --- */
.cta-section {
    background:
        radial-gradient(ellipse 60% 80% at 80% 50%, rgba(168, 86, 46, .4) 0%, transparent 60%),
        linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: var(--color-white);
    padding: 4.5rem 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.cta-section::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -20%;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .04);
}
.cta-section h2 {
    font-family: var(--font-heading);
    font-size: 2.2rem;
    font-weight: 500;
    margin-bottom: .75rem;
}
.cta-section p {
    font-size: 1.1rem;
    opacity: .9;
    margin-bottom: 2rem;
    max-width: 550px;
    margin-inline: auto;
}
.cta-section .btn {
    background: var(--color-white);
    color: var(--color-primary);
    border-color: var(--color-white);
}
.cta-section .btn:hover {
    background: transparent;
    color: var(--color-white);
    transform: translateY(-2px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, .2);
}

/* --- Content Top/Bottom --- */
.content-top, .content-bottom { padding: 2rem 0; }

/* --- Module chrome --- */
.module { margin-bottom: 1.5rem; }
.module h3 {
    font-family: var(--font-heading);
    font-size: 1.3rem;
    color: var(--color-charcoal);
    margin-bottom: 1rem;
}

/* --- Tableau tarifs --- */
.tarifs-table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
    background: var(--color-white);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}
.tarifs-table th {
    background: var(--color-primary);
    color: var(--color-white);
    padding: 1rem 1.25rem;
    text-align: left;
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 600;
}
.tarifs-table td {
    padding: .9rem 1.25rem;
    border-bottom: 1px solid var(--color-border);
}
.tarifs-table tr:last-child td { border-bottom: none; }
.tarifs-table tr:hover td { background: var(--color-cream); }
.tarifs-table .prix {
    font-weight: 700;
    color: var(--color-primary);
    font-size: 1.1rem;
    white-space: nowrap;
}

/* --- Cartes tarifs --- */
.tarifs-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--gap);
    margin: 2rem 0;
}
@media (max-width: 640px) {
    .tarifs-grid { grid-template-columns: 1fr; }
}
.tarif-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    padding: 2rem;
    text-align: center;
    transition: transform var(--transition), box-shadow var(--transition);
    position: relative;
    overflow: hidden;
}
.tarif-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
    opacity: 0;
    transition: opacity var(--transition);
}
.tarif-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px rgba(205, 108, 60, .12);
}
.tarif-card:hover::before { opacity: 1; }
.tarif-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--color-primary-pale);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    color: var(--color-primary);
}
.tarif-card h3 {
    font-family: var(--font-heading);
    color: var(--color-primary);
    margin-bottom: .25rem;
    font-size: 1.35rem;
    font-weight: 600;
}
.tarif-price {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--color-primary);
    margin: .75rem 0;
}
.tarif-price small { font-size: .5em; color: var(--color-text-light, #6b635b); }
.tarif-detail { font-size: .9rem; color: var(--color-text-light, #6b635b); }
.tarif-includes {
    font-size: .82rem;
    color: var(--color-primary);
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--color-border);
    font-style: italic;
}

/* --- Cartes contact --- */
.contact-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin: 1.5rem 0 2rem;
}
.contact-card-link { text-decoration: none; color: inherit; display: block; height: 100%; }
.contact-card {
    background: var(--color-white);
    border-radius: 12px;
    padding: 1.5rem 1rem;
    text-align: center;
    box-shadow: 0 2px 8px rgba(42, 38, 34, .06);
    border: 1px solid var(--color-border);
    transition: transform .2s ease, box-shadow .2s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}
.contact-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(42, 38, 34, .1);
}
.contact-card-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--color-primary-pale);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto .75rem;
    color: var(--color-primary);
}
.contact-card h3 {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-charcoal);
    margin-bottom: .35rem;
}
.contact-card p {
    font-size: .9rem;
    color: var(--color-primary);
    margin: 0;
    word-break: break-word;
}
@media (max-width: 600px) {
    .contact-cards { grid-template-columns: 1fr; }
}

.rabais-notice {
    background: var(--color-primary-pale, #f5ebe4);
    border-left: 4px solid var(--color-primary);
    padding: 1.25rem 1.5rem;
    border-radius: 0 var(--radius, 8px) var(--radius, 8px) 0;
    margin: 2rem 0;
}
.rabais-notice strong { color: var(--color-primary-dark, #a8562e); }

/* --- Footer --- */
.site-footer {
    background: linear-gradient(180deg, #2a2622 0%, #1e1b18 100%);
    color: rgba(255, 255, 255, .75);
    padding: 0;
    margin-top: 3rem;
    position: relative;
}
.site-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent 5%, var(--color-primary) 30%, var(--color-primary-light) 50%, var(--color-primary) 70%, transparent 95%);
}
.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1.3fr;
    gap: 3rem;
    padding: 3.5rem 0 2.5rem;
}
.footer-col h3, .footer-col h4 {
    font-family: var(--font-heading);
    color: var(--color-white);
    font-size: 1.25rem;
    font-weight: 500;
    margin-bottom: 1.25rem;
    position: relative;
    padding-bottom: 0;
    border-bottom: none;
}
.footer-col h3::after, .footer-col h4::after {
    content: '';
    display: block;
    width: 40px;
    height: 2px;
    background: var(--color-primary);
    margin-top: .6rem;
    border-radius: 1px;
}
.footer-col p { font-size: .88rem; line-height: 1.8; }
.footer-col a { color: var(--color-primary-light); transition: color .2s ease, padding-left .2s ease; }
.footer-col a:hover { color: var(--color-white); padding-left: 2px; }

.footer-about .footer-logo {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: 1rem;
}
.footer-about .footer-logo .logo-face {
    height: 65px;
    width: auto;
    flex-shrink: 0;
    filter: brightness(1.8) contrast(1.1);
}
.footer-about .footer-logo .logo-text {
    display: flex;
    flex-direction: column;
    white-space: nowrap;
}
.footer-about .footer-logo .logo-line1 {
    font-family: var(--font-heading);
    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1.1;
    color: var(--color-white);
    letter-spacing: .06em;
}
.footer-about .footer-logo .logo-line2 {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 400;
    font-style: italic;
    line-height: 1.2;
    color: var(--color-primary-light);
    letter-spacing: .12em;
}
.footer-about p { color: rgba(255, 255, 255, .6); }

.footer-links ul { display: flex; flex-direction: column; gap: .4rem; }
.footer-links a {
    font-size: .9rem;
    padding: .3rem 0;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}
.footer-links a::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--color-primary);
    transition: transform .2s ease;
}
.footer-links a:hover::before { transform: scale(1.5); }

.footer-contact .contact-item {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    margin-bottom: .85rem;
    font-size: .9rem;
    line-height: 1.6;
}
.footer-contact .contact-item::before {
    content: '';
    flex-shrink: 0;
    margin-top: .1rem;
    width: 32px;
    height: 32px;
    background-color: rgba(205, 108, 60, .1);
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px 16px;
    transition: background-color .3s ease, transform .3s ease;
}
.footer-contact .contact-item:hover::before {
    background-color: rgba(205, 108, 60, .25);
    transform: scale(1.1);
}
/* Icone : adresse (pin) */
.footer-contact .contact-item:nth-of-type(1)::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cd6c3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/><circle cx='12' cy='10' r='3'/></svg>");
}
/* Icone : telephone */
.footer-contact .contact-item:nth-of-type(2)::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cd6c3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/></svg>");
}
/* Icone : email (enveloppe) */
.footer-contact .contact-item:nth-of-type(3)::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cd6c3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/><polyline points='22,6 12,13 2,6'/></svg>");
}
/* Icone : horaires (horloge) */
.footer-contact .contact-item:nth-of-type(4)::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cd6c3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><polyline points='12 6 12 12 16 14'/></svg>");
}

/* Icones topbar : telephone + email avant les liens */
.topbar-item a[href^="tel:"]::before,
.topbar-item a[href^="mailto:"]::before {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    margin-right: .4rem;
    vertical-align: -2px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.topbar-item a[href^="tel:"]::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8a882' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/></svg>");
}
.topbar-item a[href^="mailto:"]::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8a882' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/><polyline points='22,6 12,13 2,6'/></svg>");
}

.footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}
.footer-social li { margin: 0; padding: 0; }
.footer-social .social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 50%;
    color: var(--color-primary-light);
    transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.footer-social .social-link svg { display: block; }
.footer-social .social-link:hover,
.footer-social .social-link:focus-visible {
    color: var(--color-white);
    border-color: transparent;
    transform: translateY(-3px);
    box-shadow: 0 8px 18px rgba(0,0,0,.35);
    padding-left: 0;
}
.footer-social .social-facebook:hover, .footer-social .social-facebook:focus-visible { background: #1877F2; }
.footer-social .social-instagram:hover, .footer-social .social-instagram:focus-visible {
    background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
}
.footer-social .social-linkedin:hover, .footer-social .social-linkedin:focus-visible { background: #0A66C2; }

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .08);
    padding: 1.25rem 0;
    font-size: .8rem;
    text-align: center;
    color: rgba(255, 255, 255, .4);
}
/* CGV link : s'intègre visuellement à la suite du menu footer-links */
.footer-legal-nav {
    list-style: none;
    margin: .4rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

/* --- Bouton retour en haut --- */
.back-to-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 44px;
    height: 44px;
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all var(--transition);
    z-index: 99;
}
.back-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.back-to-top:hover {
    background: var(--color-primary-dark);
    transform: translateY(-2px);
}

/* --- Page erreur --- */
.error-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background: var(--color-cream);
}
.error-container {
    text-align: center;
    max-width: 500px;
    padding: 3rem;
}
.error-code {
    font-family: var(--font-heading);
    font-size: 8rem;
    font-weight: 700;
    color: var(--color-primary-light);
    line-height: 1;
    margin: 1.5rem 0 .5rem;
}
.error-title {
    font-family: var(--font-heading);
    font-size: 2rem;
    color: var(--color-charcoal);
    margin-bottom: 1rem;
}
.error-message { color: var(--color-text-light); margin-bottom: 2rem; }

/* --- Page offline --- */
.offline-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background: var(--color-cream);
}
.offline-container {
    text-align: center;
    max-width: 440px;
    padding: 3rem;
    background: var(--color-white);
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
}
.offline-container h1 {
    font-family: var(--font-heading);
    color: var(--color-charcoal);
    margin: 1.5rem 0 .75rem;
}
.offline-form { margin-top: 2rem; text-align: left; }
.form-group { margin-bottom: 1rem; }
.form-group label {
    display: block;
    font-size: .85rem;
    font-weight: 600;
    margin-bottom: .3rem;
    color: var(--color-charcoal);
}
.form-group input {
    width: 100%;
    padding: .7rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-family: var(--font-body);
    font-size: .95rem;
    transition: border-color var(--transition);
}
.form-group input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(205, 108, 60, .15);
}

/* --- HikaShop --- */
.hikashop_products_listing { padding: 1rem 0; }

/* Grille produits : 3 colonnes, responsive */
.hikashop_products .hk-row-fluid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
    margin: 0 !important;
}
.hikashop_products .hk-row-fluid > [class*="hkc-"] {
    grid-column: span 1 !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: none !important;
}
@media (max-width: 900px) {
    .hikashop_products .hk-row-fluid { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
}
@media (max-width: 560px) {
    .hikashop_products .hk-row-fluid { grid-template-columns: 1fr; }
}

/* Carte produit */
.hikashop_product {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    overflow: hidden;
    transition: transform var(--transition), box-shadow var(--transition);
    display: flex;
    flex-direction: column;
}
.hikashop_product:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(42, 38, 34, .12);
}
.hikashop_product .hikashop_container {
    height: 100%;
    display: flex;
    flex-direction: column;
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
}
.hikashop_product .hikashop_subcontainer.thumbnail {
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    border: none !important;
}
.hikashop_product .hikashop_subcontainer,
.hikashop_product .hikashop_subcontainer_aligned {
    min-height: auto !important;
    padding: 0 !important;
    border: none !important;
    display: flex !important;
    flex-direction: column;
    height: 100%;
    background: transparent;
}
.hikashop_listing_img_title {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-align: center;
}

/* Image produit */
.hikashop_product_image {
    aspect-ratio: 1;
    overflow: hidden;
    background: linear-gradient(135deg, var(--color-cream) 0%, #ece4db 100%);
    position: relative;
    width: 100% !important;
    height: auto !important;
}
.hikashop_product_image_subdiv,
.hikashop_product_image a {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
.hikashop_product_image img,
img.hikashop_product_listing_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
    display: block;
}
.hikashop_product:hover .hikashop_product_image img { transform: scale(1.05); }

/* Nom produit */
.hikashop_product_name {
    display: block !important;
    padding: 1rem 1.25rem .35rem;
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.35;
    min-height: 3em;
}
.hikashop_product_name a {
    color: var(--color-charcoal);
    text-decoration: none;
}
.hikashop_product_name a:hover { color: var(--color-primary); }

/* Prix */
.hikashop_product_price_full {
    display: block !important;
    padding: .25rem 1.25rem .75rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-primary);
}
.hikashop_product_price_full .hikashop_product_price_per_unit {
    display: inline;
    font-size: .75rem;
    font-weight: 400;
    color: var(--color-text-light);
    margin-left: .3rem;
}
.hikashop_product_description {
    padding: 0 1.25rem .75rem;
    font-size: .9rem;
    color: var(--color-text-light);
    line-height: 1.5;
}
.hikashop_product_code_list { display: none; }
.hikashop_product_stock_count:empty { display: none; }

/* Boutons — centrés horizontalement dans la vignette */
.hikashop_product .hikabtn,
.hikashop_product button.hikacart,
.hikashop_product a.hikashop_aligned_btn:not(:first-of-type) {
    display: inline-block;
    width: auto;
    margin: 0 auto 1rem !important;
    padding: .85rem 2.2rem;
    background: var(--color-primary);
    color: var(--color-white);
    border: 2px solid var(--color-primary);
    border-radius: var(--radius-btn);
    font-family: var(--font-body);
    font-size: .95rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    transition: background var(--transition), border-color var(--transition), transform .2s ease, box-shadow var(--transition);
}
/* Centrage via conteneur */
.hikashop_product .hikashop_listing_img_title,
.hikashop_product .hikashop_product_quantity_main,
.hikashop_product .hikashop_subcontainer {
    text-align: center;
}
.hikashop_product .hikabtn:hover,
.hikashop_product button.hikacart:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(205, 108, 60, .35);
}
/* Masquer le sélecteur de quantité dans les vignettes produits (utile uniquement sur la page détail) */
.hikashop_products .hikashop_product .hikashop_product_quantity_main,
.hikashop_products .hikashop_product .hikashop_product_quantity_input_div_default_main,
.hikashop_products .hikashop_product .hikashop_product_quantity_change_div_default,
.hikashop_products .hikashop_product .hikashop_quantity_form { display: none !important; }

/* Un seul bouton principal sur la vignette : masquer le bouton "Détails produit" redondant */
.hikashop_products .hikashop_product .product_details_button,
.hikashop_products .hikashop_product a.product_details_button { display: none !important; }

.hikashop_product .hikashop_product_quantity_main { display: none; }
.hikashop_cart_input_button,
input.hikashop_cart_input_button {
    width: 100%;
    padding: .85rem 2.2rem;
    background: var(--color-primary);
    color: var(--color-white);
    border: 2px solid var(--color-primary);
    border-radius: var(--radius-btn);
    font-family: var(--font-body);
    font-size: .95rem;
    font-weight: 700;
    cursor: pointer;
    transition: background var(--transition), border-color var(--transition), transform .2s ease, box-shadow var(--transition);
}
.hikashop_cart_input_button:hover,
input.hikashop_cart_input_button:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(205, 108, 60, .35);
}

/* Description courte catégorie */
.hikashop_categories_listing_main p:first-of-type {
    color: var(--color-text-light);
    font-size: 1rem;
    max-width: 800px;
    margin: 0 auto 2rem;
    text-align: center;
    line-height: 1.6;
}

/* Bannière catégorie (image + description en haut de la page catégorie) */
.hikashop_category_description {
    margin: 0 0 2.5rem;
    text-align: center;
}
.hikashop_category_description .hikashop_category_image {
    display: none;
}
.hikashop_category_description_content {
    max-width: 720px;
    margin: 0 auto;
    font-size: 1.05rem;
    line-height: 1.65;
    color: var(--color-text-light);
    font-style: italic;
}
.hikashop_category_description_content::before,
.hikashop_category_description_content::after {
    content: '';
    display: block;
    width: 40px;
    height: 2px;
    background: var(--color-primary);
    opacity: .4;
    margin: .75rem auto;
}

/* HikaShop - detail produit */
.hikashop_product_page {
    padding: 1.5rem clamp(1.5rem, 4vw, 3rem) 3rem;
    max-width: 1080px;
    margin: 0 auto;
}
/* Plus d'air sur la page produit en augmentant le container parent */
.container:has(.hikashop_product_page) { padding-left: clamp(1.5rem, 4vw, 3rem) !important; padding-right: clamp(1.5rem, 4vw, 3rem) !important; }
.hikashop_product_page > h1,
.hikashop_product_top_part > h1 {
    font-family: var(--font-heading);
    font-size: clamp(1.8rem, 3.5vw, 2.4rem);
    font-weight: 600;
    color: var(--color-charcoal);
    text-align: center;
    margin: 0 0 2rem;
    padding: 0 0 1.25rem;
    position: relative;
    line-height: 1.2;
}
.hikashop_product_page > h1::after,
.hikashop_product_top_part > h1::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: var(--color-primary);
    border-radius: 2px;
}
.hikashop_product_page .hk-row-fluid {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
    margin: 0 0 2rem !important;
    align-items: start;
}
.hikashop_product_page .hk-row-fluid > .hikashop_product_left_part,
.hikashop_product_page .hk-row-fluid > .hikashop_product_right_part {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
    flex: none !important;
    grid-column: auto !important;
}
.hikashop_product_page .hk-row-fluid > .hikashop_product_left_part { padding: 0 !important; }
@media (max-width: 800px) {
    .hikashop_product_page .hk-row-fluid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

/* Colonne gauche : image principale */
.hikashop_product_left_part {
    margin: 0 !important;
}
#hikashop_product_image_main,
.hikashop_global_image_div {
    width: 100%;
}
.hikashop_main_image_div,
#hikashop_main_image_div {
    width: 100%;
    background: var(--color-white);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 12px 32px rgba(42, 38, 34, .1);
    position: relative;
    aspect-ratio: 1;
    display: block;
    border: none;
}
/* L'image doit remplir la carte — neutraliser les wrappers HikaShop */
#hikashop_main_image_div,
#hikashop_image_main_thumb_div,
.hikashop_product_main_image_thumb,
.hikashop_product_main_image,
.hikashop_product_main_image_subdiv,
#hikashop_main_image_div a {
    position: static !important;
}
#hikashop_main_image_div {
    position: relative !important;
    display: block;
}
#hikashop_main_image_div > *:not(.hikashop_slide_prev):not(.hikashop_slide_next),
#hikashop_image_main_thumb_div,
.hikashop_product_main_image_thumb,
.hikashop_product_main_image,
.hikashop_product_main_image_subdiv,
#hikashop_main_image_div a:not(.hikashop_slide_prev):not(.hikashop_slide_next) {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: block !important;
}
#hikashop_main_image_div .hikashop_slide_prev,
#hikashop_main_image_div .hikashop_slide_next,
.hikashop_slide_prev,
.hikashop_slide_next { display: none !important; }
#hikashop_main_image_div img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.hikashop_product_main_image_div img,
.hikashop_product_main_image img,
img#hikashop_main_image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
    border-radius: 0 !important;
    max-width: 100%;
    transition: transform .6s ease;
}
.hikashop_product_main_image_div:hover img,
.hikashop_product_main_image:hover img { transform: scale(1.03); }

/* Une seule image par produit : on masque toute la galerie (vignettes, boutons prev/next) */
.hikashop_small_image_div,
#hikashop_small_image_div,
.hikashop_slide_prev,
.hikashop_slide_next,
.hikashop_thumbnail_0,
.hikashop_active_thumbnail,
.hikashop_product_main_image_navigation,
.hikashop_product_image_carousel_nav,
.hikashop_slide_content_nav { display: none !important; }

/* Colonne droite : carte d'achat */
.hikashop_product_page .hikashop_product_right_part {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 20px;
    padding: 1.5rem;
    box-shadow: 0 4px 16px rgba(42, 38, 34, .04);
    display: flex !important;
    flex-wrap: wrap !important;
    column-gap: 4%;
    row-gap: .85rem;
    align-content: flex-start;
}
.hikashop_product_page .hikashop_product_right_part > * { flex: 1 1 100%; min-width: 0; }
.hikashop_product_page .hikashop_product_right_part > *:empty,
.hikashop_product_page .hikashop_product_right_part .hikashop_product_price_with_options_main:empty,
.hikashop_product_page .hikashop_product_right_part .hikashop_product_contact_main:empty,
.hikashop_product_page .hikashop_product_right_part #hikashop_product_id_main,
.hikashop_product_page .hikashop_product_right_part .hikashop_product_price_with_options_main,
.hikashop_product_page .hikashop_product_right_part .hikashop_product_stock_count { display: none !important; }
.hikashop_product_right_part br { display: none; }
.hikashop_product_vote_mini:empty { display: none; }

/* Prix mis en valeur */
.hikashop_product_right_part .hikashop_product_price_main,
.hikashop_product_right_part .hikashop_product_price_full {
    display: block;
    font-family: var(--font-heading);
}
.hikashop_product_right_part .hikashop_product_price {
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--color-primary);
    letter-spacing: -.5px;
}
.hikashop_product_right_part .hikashop_product_price_per_unit {
    display: inline-block;
    font-family: var(--font-body);
    font-size: .85rem;
    font-weight: 400;
    color: var(--color-text-light);
    margin-left: .5rem;
}

.hikashop_product_right_part .hikashop_product_price_main {
    padding-bottom: .75rem;
    margin-bottom: 0;
    border-bottom: 1px solid var(--color-border);
}

/* Résumé produit (intro) dans la colonne droite */
.hikashop_product_right_part .hikashop_product_intro {
    margin: 0;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--color-border);
    font-size: .95rem;
    line-height: 1.5;
    color: var(--color-text);
}
.hikashop_product_right_part .hikashop_product_intro p { margin: 0 0 .4rem; }
.hikashop_product_right_part .hikashop_product_intro p:last-child { margin-bottom: 0; }
.hikashop_product_right_part .hikashop_product_intro p:first-child strong {
    display: block;
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: .25rem;
}
.hikashop_product_right_part .hikashop_product_intro em {
    color: var(--color-primary);
    font-style: italic;
}

/* Ligne combinée Contenance (gauche) + Quantité (droite) */
.hikashop_product_right_part .hikashop_product_characteristics,
#hikashop_product_characteristics {
    flex: 0 0 58% !important;
    margin: 0 !important;
}
.hikashop_product_right_part .hikashop_product_quantity_main {
    display: contents !important;
    margin: 0 !important;
}
.hikashop_product_right_part .hikashop_quantity_form {
    flex: 0 0 38% !important;
    margin: 0 !important;
}
.hikashop_product_right_part .hikashop_quantity_form::before {
    content: 'QUANTITÉ';
    display: block;
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: .85rem;
    color: var(--color-charcoal);
    text-transform: uppercase;
    letter-spacing: .6px;
    margin-bottom: .35rem;
}
.hikashop_product_right_part button.hikacart,
.hikashop_product_right_part input.hikashop_cart_input_button {
    flex: 1 1 100% !important;
    width: 100% !important;
    margin: .5rem 0 0 !important;
}
.hikashop_product_right_part .hikashop_product_stock_count:empty { display: none; }
@media (max-width: 540px) {
    .hikashop_product_right_part .hikashop_product_characteristics,
    .hikashop_product_right_part .hikashop_quantity_form {
        flex: 1 1 100% !important;
    }
}
.hikashop_product_characteristics_table {
    width: 100% !important;
    border-collapse: collapse;
    display: block;
}
.hikashop_product_characteristics_table tbody {
    display: block;
    width: 100%;
}
.hikashop_product_characteristics_table tr {
    display: block;
    width: 100%;
    margin: 0;
}
.hikashop_product_characteristics_table td {
    display: block;
    padding: 0;
    vertical-align: middle;
    width: 100%;
}
.hikashop_product_characteristics_table td:first-child {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: .85rem;
    color: var(--color-charcoal);
    text-transform: uppercase;
    letter-spacing: .6px;
    margin-bottom: .35rem;
}
.hikashop_product_characteristics_table select,
select[id^="hikashop_product_characteristic_"] {
    width: 100% !important;
    min-width: 100% !important;
    padding: .6rem 2.5rem .6rem 1rem !important;
    font-family: var(--font-body) !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    border: 2px solid var(--color-border) !important;
    border-radius: 12px !important;
    background-color: var(--color-white) !important;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cd6c3c' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 1rem center !important;
    background-size: 18px !important;
    color: var(--color-charcoal) !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    box-shadow: 0 2px 6px rgba(42, 38, 34, .04);
    transition: border-color var(--transition), box-shadow var(--transition), background-color var(--transition);
    height: auto !important;
    line-height: 1.4 !important;
}
.hikashop_product_characteristics_table select:hover,
select[id^="hikashop_product_characteristic_"]:hover {
    border-color: var(--color-primary) !important;
    background-color: var(--color-cream) !important;
}
.hikashop_product_characteristics_table select:focus,
select[id^="hikashop_product_characteristic_"]:focus {
    outline: none !important;
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 4px rgba(205, 108, 60, .15) !important;
}

/* Quantité - display:contents posé plus haut, pas de règle supplémentaire ici */
.hikashop_product_right_part .hikashop_product_quantity_input_div_default_main {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    border: 2px solid var(--color-border);
    border-radius: 12px;
    padding: 0 .3rem;
    width: fit-content;
    height: 45.6px;
    box-shadow: 0 2px 6px rgba(42, 38, 34, .04);
    background: var(--color-white);
}
.hikashop_product_right_part .hikashop_product_quantity_change_div_default {
    display: inline-flex;
    gap: .25rem;
}
.hikashop_product_right_part .hikashop_product_quantity_change_div_plus_default,
.hikashop_product_right_part .hikashop_product_quantity_change_div_minus_default {
    display: inline-flex;
}
.hikashop_product_right_part input.hikashop_product_quantity_field {
    width: 42px;
    text-align: center;
    border: none;
    background: transparent;
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-charcoal);
    padding: 0;
    height: 100%;
}
.hikashop_product_right_part input.hikashop_product_quantity_field:focus { outline: none; }
.hikashop_product_right_part .hikashop_product_quantity_field_change_plus,
.hikashop_product_right_part .hikashop_product_quantity_field_change_minus {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-cream);
    color: var(--color-charcoal);
    border: none;
    border-radius: 8px;
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    transition: background var(--transition), color var(--transition);
    text-decoration: none;
}
.hikashop_product_right_part .hikashop_product_quantity_field_change_plus:hover,
.hikashop_product_right_part .hikashop_product_quantity_field_change_minus:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

/* Bouton Ajouter au panier */
.hikashop_product_right_part button.hikacart,
.hikashop_product_right_part input.hikashop_cart_input_button { padding: .85rem 2.2rem !important; }
.hikashop_product_right_part input.hikashop_cart_input_button-old,
.hikashop_product_right_part button.hikacart-old,
.hikashop_product_page button.hikacart {
    display: block;
    width: 100%;
    padding: 1rem 1.5rem;
    background: var(--color-primary);
    color: var(--color-white) !important;
    border: none;
    border-radius: 12px;
    font-family: var(--font-body);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: .3px;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    transition: background var(--transition), transform .2s ease, box-shadow var(--transition);
    box-shadow: 0 4px 12px rgba(205, 108, 60, .25);
    margin: 0;
}
.hikashop_product_right_part input.hikashop_cart_input_button:hover,
.hikashop_product_right_part button.hikacart:hover,
.hikashop_product_page button.hikacart:hover {
    background: var(--color-primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(205, 108, 60, .35);
}
.hikashop_product_right_part .hikashop_product_stock_count:empty { display: none; }

/* Description complète (en bas) */
.hikashop_product_bottom_part {
    margin-top: .5rem;
    padding: 2.5rem 2rem;
    background: var(--color-cream);
    border-radius: 20px;
    border-left: 4px solid var(--color-primary);
}
.hikashop_product_description_main {
    max-width: 800px;
    margin: 0 auto;
    color: var(--color-text);
    font-size: 1rem;
    line-height: 1.75;
}
.hikashop_product_description_main p { margin: 0 0 1rem; }
.hikashop_product_description_main strong {
    font-weight: 600;
    color: var(--color-charcoal);
}
.hikashop_product_description_main h3 {
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--color-charcoal);
    margin: 2rem 0 1rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid rgba(205, 108, 60, .3);
}
.hikashop_product_description_main ul {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
}
.hikashop_product_description_main ul li {
    position: relative;
    padding: .5rem 0 .5rem 2rem;
    line-height: 1.6;
}
.hikashop_product_description_main ul li::before {
    content: '✿';
    position: absolute;
    left: 0;
    top: .5rem;
    color: var(--color-primary);
    font-size: 1rem;
}
.hikashop_product_description_main em {
    color: var(--color-primary);
    font-style: italic;
    font-weight: 500;
}

/* Retirer éléments indésirables */
.hikashop_product_files_main:empty,
#hikashop_product_url_main:empty { display: none; }

/* HikaShop - panier */
.hikashop_checkout_page .btn,
.hikashop_cart_proceed_to_checkout {
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: var(--radius-btn);
    padding: .85rem 2.2rem;
    font-weight: 700;
}

/* HikaShop - banniere titre boutique */
.hikashop_categories_listing_main > h1 {
    background: linear-gradient(135deg, #1e1b18 0%, #2a2622 40%, #3d3530 70%, #4a3a30 100%);
    margin: 0 0 2.5rem;
    padding: 3rem 2.5rem 2.5rem;
    border-radius: 16px;
    position: relative;
    overflow: hidden;
    font-family: var(--font-heading);
    font-size: 2.4rem;
    color: var(--color-white);
    border-bottom: none;
    text-align: center;
}
.hikashop_categories_listing_main > h1::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 80% at 80% 50%, rgba(205, 108, 60, .12) 0%, transparent 60%),
        radial-gradient(circle at 20% 80%, rgba(205, 108, 60, .06) 0%, transparent 40%);
    pointer-events: none;
}
.hikashop_categories_listing_main > h1::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: var(--color-primary);
    border-radius: 2px;
}

/* Boutique - masquer sidebar vide, pleine largeur */
.hikashop_categories_listing_main ~ .sidebar,
.has-sidebar .sidebar:has(#hikashop_module_113) .module-body:empty ~ * { display: none; }
.hikashop_categories_listing_main { max-width: 100%; }

/* HikaShop - listing categories (grille) */
.hikashop_subcategories .hk-row-fluid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1.5rem;
}
.hikashop_subcategories .hk-row-fluid > [class*="hkc-"] {
    grid-column: span 1 !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
}
.hikashop_subcategories .hikashop_subcontainer {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    overflow: hidden;
    padding: 0;
    text-align: center;
    transition: transform .3s ease, box-shadow .3s ease;
    min-height: auto !important;
}
.hikashop_subcategories .hikashop_subcontainer:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(42, 38, 34, .12);
}
.hikashop_subcategories .hikashop_category_image {
    width: 100%;
    aspect-ratio: 4/3;
    height: auto !important;
    overflow: hidden;
    border-radius: 0;
    background: linear-gradient(135deg, var(--color-cream) 0%, #ece4db 100%);
    margin: 0;
    position: relative;
    display: block;
}
.hikashop_subcategories .hikashop_category_image a {
    display: block;
    width: 100%;
    height: 100%;
}
.hikashop_subcategories .hikashop_category_image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(30, 27, 24, .06) 100%);
    pointer-events: none;
}
.hikashop_subcategories .hikashop_category_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: 100%;
    transition: transform .4s ease;
}
.hikashop_subcategories .hikashop_subcontainer:hover .hikashop_category_image img {
    transform: scale(1.05);
}
.hikashop_subcategories .hikashop_container,
.hikashop_subcategories .hikashop_subcontainer { min-width: 0; }
.hikashop_subcategories .hikashop_category_name {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 600;
    display: block;
    padding: 1.25rem 1.25rem 1.5rem;
}
.hikashop_subcategories .hikashop_category_name a {
    color: var(--color-charcoal);
    transition: color .2s ease;
}
.hikashop_subcategories .hikashop_category_name a:hover {
    color: var(--color-primary);
}
.hikashop_subcategories br { display: none; }

/* HikaShop - lien powered by */
.hikashop_footer { display: none; }

/* HikaShop - categories sidebar */
.hikashop_filter_main ul { list-style: none; padding: 0; }
.hikashop_filter_main li { margin-bottom: .4rem; }
.hikashop_filter_main a {
    display: block;
    padding: .4rem .75rem;
    border-radius: var(--radius);
    font-size: .9rem;
    color: var(--color-text);
}
.hikashop_filter_main a:hover {
    background: var(--color-primary-pale);
    color: var(--color-primary);
}

/* --- Messages systeme Joomla --- */
.alert, #system-message-container .alert {
    padding: 1rem 1.5rem;
    border-radius: var(--radius);
    margin-bottom: 1.5rem;
    border: 1px solid;
    font-size: .9rem;
}
.alert-info { background: #e8f4fd; border-color: #b6d4fe; color: #084298; }
.alert-success { background: #e8f5e9; border-color: #a3d9a5; color: #1b5e20; }
.alert-warning { background: #fff8e1; border-color: #ffe082; color: #e65100; }
.alert-danger, .alert-error { background: #fde8e8; border-color: #f5c6cb; color: #842029; }

/* --- Page Soins & Traitements (grille cartes) --- */
.soins-overview .lead {
    font-size: 1.15rem;
    color: var(--color-charcoal);
    max-width: 800px;
    margin-bottom: 2.5rem;
    line-height: 1.8;
}
.soins-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--gap);
}
.btn-soin {
    display: inline-block;
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: none;
    background-image: linear-gradient(var(--color-primary-light), var(--color-primary-light));
    background-size: 0% 1px;
    background-repeat: no-repeat;
    background-position: left bottom;
    transition: background-size .3s ease, color .3s ease;
}
.btn-soin:hover {
    color: var(--color-primary-dark);
    background-size: 100% 1px;
}

/* --- Responsive --- */
@media (max-width: 992px) {
    .soins-grid { grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
    .footer-about { grid-column: 1 / -1; }
    .hikashop_products { grid-template-columns: repeat(2, 1fr); }
    .services-grid { grid-template-columns: repeat(2, 1fr); }
    .content-layout.with-sidebar { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    :root { --header-h: 65px; }

    .topbar { font-size: .78rem; }
    .topbar .container { justify-content: center; flex-wrap: wrap; gap: .5rem; }
    .topbar-social { margin-left: 0; padding-left: 0; border-left: none; }

    .menu-toggle { display: flex; }

    .main-nav {
        position: fixed;
        top: 0;
        right: 0;
        width: min(86vw, 340px);
        max-width: 340px;
        height: 100vh;
        height: 100dvh;
        background: var(--color-white);
        padding: calc(var(--header-h) + 1rem) 1.5rem 2rem;
        box-shadow: -12px 0 40px rgba(42, 38, 34, .18);
        transform: translateX(100%);
        transition: transform .32s cubic-bezier(.22, .61, .36, 1);
        will-change: transform;
        overflow-y: auto;
        overscroll-behavior: contain;
        z-index: 999;
    }
    .main-nav.is-open { transform: translateX(0); }

    .main-nav > ul,
    .main-nav .mod-menu {
        flex-direction: column !important;
        gap: 0 !important;
        align-items: stretch !important;
        margin: 0;
        padding: 0;
    }
    .main-nav > ul > li,
    .main-nav .mod-menu > li {
        width: 100%;
        border-bottom: 1px solid rgba(42, 38, 34, .06);
    }
    .main-nav > ul > li:last-child,
    .main-nav .mod-menu > li:last-child { border-bottom: none; }

    .main-nav a {
        display: flex !important;
        align-items: center;
        justify-content: flex-start;
        padding: .95rem 1.1rem !important;
        font-size: 1.02rem !important;
        font-weight: 500;
        color: var(--color-text);
        border-radius: 8px;
        transition: background .2s ease, color .2s ease, padding-left .2s ease;
    }
    .main-nav a:hover,
    .main-nav a:focus-visible {
        background: var(--color-primary-pale, rgba(205, 108, 60, .08));
        color: var(--color-primary);
        padding-left: 1.4rem !important;
    }
    /* Élément actif : barre orange à gauche, pas d'encadré */
    .main-nav > ul > li.active > a,
    .main-nav > ul > li.current > a,
    .main-nav .mod-menu > li.active > a,
    .main-nav .mod-menu > li.current > a {
        color: var(--color-primary) !important;
        font-weight: 600;
        border: none !important;
        box-shadow: inset 3px 0 0 var(--color-primary);
        background: transparent !important;
    }
    .main-nav > ul > li.active > a::after,
    .main-nav > ul > li.current > a::after { display: none !important; }

    .main-nav li.parent { flex-wrap: wrap; }

    /* Fade-in séquentiel des items à l'ouverture (premium) */
    .main-nav.is-open > ul > li,
    .main-nav.is-open .mod-menu > li {
        animation: nav-item-in .4s cubic-bezier(.22, .61, .36, 1) both;
    }
    .main-nav.is-open > ul > li:nth-child(1),
    .main-nav.is-open .mod-menu > li:nth-child(1) { animation-delay: .08s; }
    .main-nav.is-open > ul > li:nth-child(2),
    .main-nav.is-open .mod-menu > li:nth-child(2) { animation-delay: .14s; }
    .main-nav.is-open > ul > li:nth-child(3),
    .main-nav.is-open .mod-menu > li:nth-child(3) { animation-delay: .2s; }
    .main-nav.is-open > ul > li:nth-child(4),
    .main-nav.is-open .mod-menu > li:nth-child(4) { animation-delay: .26s; }
    .main-nav.is-open > ul > li:nth-child(5),
    .main-nav.is-open .mod-menu > li:nth-child(5) { animation-delay: .32s; }
    .main-nav.is-open > ul > li:nth-child(n+6),
    .main-nav.is-open .mod-menu > li:nth-child(n+6) { animation-delay: .38s; }
    @keyframes nav-item-in {
        from { opacity: 0; transform: translateX(12px); }
        to   { opacity: 1; transform: translateX(0); }
    }

    .main-nav ul ul,
    .main-nav .mod-menu__sub {
        position: static;
        box-shadow: none;
        border: 0 !important;
        padding: 0 0 0 1rem;
        min-width: auto;
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        max-height: 0;
        overflow: hidden;
        background: var(--color-cream);
        border-radius: var(--radius);
        margin: 0;
        width: 100%;
        transform: none;
        transition: max-height .3s ease, opacity .2s ease, visibility .2s, margin .3s ease, padding .3s ease;
    }
    .main-nav .mod-menu__sub[aria-hidden="false"],
    .main-nav li:hover > ul,
    .main-nav li:hover > .mod-menu__sub {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        max-height: 500px;
        padding: .35rem 0 .35rem 1rem;
        margin: .25rem 0;
        transform: none;
    }

    .hero { min-height: 400px; }
    .hero-title { font-size: 1.8rem; }
    .hero-subtitle { font-size: 1rem; }

    .services-grid { grid-template-columns: 1fr; }
    .soins-grid { grid-template-columns: 1fr; }
    .hikashop_products { grid-template-columns: 1fr; }
    .hikashop_subcategories .hk-row-fluid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .footer-grid { grid-template-columns: 1fr; text-align: center; }
    .footer-about { align-items: center; }
    .footer-about .footer-logo { justify-content: center; }
    .footer-col h3, .footer-col h4 { text-align: center; }
    .footer-col h3::after, .footer-col h4::after { margin-left: auto; margin-right: auto; }
    .footer-links ul { align-items: center; }
    .footer-links a { justify-content: center; }
    .footer-contact .contact-item { justify-content: center; text-align: left; }

    .site-main { padding: 2rem 0; }
    .content-area h1 { font-size: 1.8rem; }
    .content-area h2 { font-size: 1.5rem; }
    .hikashop_categories_listing_main > h1 {
        font-size: 1.8rem;
        padding: 2rem 1.5rem 1.75rem;
    }
}

@media (max-width: 480px) {
    .container { padding: 0 1rem; }
    .site-logo .logo-face { height: 55px; }
    .site-logo .logo-line1 { font-size: 1.25rem; }
    .site-logo .logo-line2 { font-size: .9rem; }
    .hero { min-height: 350px; }
    .hero-content { padding: 2.5rem 1rem; }
    .btn { padding: .75rem 1.5rem; font-size: .9rem; }
    .hero-actions,
    .cta-section .cta-buttons,
    .cta-section p:has(.btn),
    .content-area p:has(> .btn, > a.btn),
    .com-content-article p:has(> .btn, > a.btn) {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: .85rem;
    }
    .hero-actions .btn,
    .cta-section .btn,
    .content-area p > .btn,
    .content-area p > a.btn,
    .com-content-article p > .btn,
    .com-content-article p > a.btn {
        width: 100%;
        max-width: 320px;
        margin: 0;
    }
    .tarifs-table th, .tarifs-table td { padding: .7rem; font-size: .85rem; }
    .hikashop_subcategories .hk-row-fluid {
        grid-template-columns: 1fr !important;
        gap: 1rem;
    }
    .hikashop_categories_listing_main > h1 {
        font-size: 1.5rem;
        padding: 1.5rem 1.25rem 1.25rem;
    }
}

/* --- Page d'accueil : ameliorations --- */
.is-home .site-main { padding: 3.5rem 0 0; }
.is-home .site-main .content-area > .com-content-article {
    max-width: 780px;
    margin: 0 auto;
}

/* Titres h2 page accueil */
.is-home .content-area h2 {
    position: relative;
    padding-bottom: 1.25rem;
    margin-top: 3.5rem;
    text-align: center;
    font-size: 1.9rem;
}
.is-home .content-area h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
    border-radius: 2px;
}
.is-home .content-area h2:first-child,
.is-home .content-area .page-header + h2 { margin-top: 0; }

/* Paragraphes */
.is-home .content-area p {
    font-size: 1.02rem;
    line-height: 1.85;
    color: var(--color-text);
}

/* Liste des soins dans une carte */
.is-home .content-area ul {
    background: var(--color-white);
    border-radius: 12px;
    padding: 1.75rem 1.75rem 1.25rem 2.75rem;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow);
    margin: 1.5rem 0 2rem;
}
.is-home .content-area li {
    margin-bottom: .75rem;
    line-height: 1.7;
    position: relative;
}
.is-home .content-area li::marker {
    color: var(--color-primary);
    font-size: 1.2em;
}

/* Boutons CTA dans l'article d'accueil */

/* Section praticienne - mise en avant */
.is-home .content-area h2:nth-of-type(3) + p {
    background: linear-gradient(135deg, var(--color-primary-pale) 0%, rgba(245, 235, 228, .4) 100%);
    padding: 1.5rem 2rem;
    border-radius: 12px;
    border-left: 4px solid var(--color-primary);
    font-style: normal;
}

/* Section adresse - icone et mise en valeur */
.is-home .content-area h2:nth-of-type(4) + p {
    background: var(--color-white);
    padding: 1.25rem 1.75rem;
    border-radius: 12px;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow);
}

/* Separation entre services et footer */
.services-section + .cta-section { margin-top: 0; }

/* Espace apres hero divider */
.hero-divider + .site-main,
.hero-divider + .content-top + .site-main { margin-top: 0; }

/* --- Pages internes : contenu centre --- */
.is-page .content-area > .com-content-article {
    max-width: 820px;
    margin: 0 auto;
}
.is-page .content-area h2 {
    position: relative;
    padding-bottom: 1rem;
    margin-top: 2.5rem;
}
.is-page .content-area h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 50px;
    height: 3px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
    border-radius: 2px;
}

/* --- Pages internes : titres h3 avec timeline --- */
.is-page .content-area > .com-content-article > div > h3,
.is-page .content-area > .com-content-article h3:not(.soin-card h3):not([class]) {
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--color-charcoal);
    position: relative;
    padding-left: 1.5rem;
    margin-top: 1.75rem;
    margin-bottom: .5rem;
}
/* Exception : titres dans les cartes contact/tarifs (centrés, pas de puce) */
.is-page .content-area .contact-card h3,
.is-page .content-area .tarif-card h3 {
    padding-left: 0 !important;
    margin-top: 0 !important;
}
.is-page .content-area .contact-card h3::before,
.is-page .content-area .contact-card h3::after,
.is-page .content-area .tarif-card h3::before,
.is-page .content-area .tarif-card h3::after { content: none !important; }
/* Exception : pas de soulignement anime sur les liens de cartes contact */
.content-area a.contact-card-link {
    background-image: none !important;
}

/* Section intro avec image a gauche */
.intro-with-image {
    display: flex;
    gap: 2.5rem;
    align-items: center;
    flex-wrap: wrap;
    margin: 2rem 0 2.5rem;
}
.intro-with-image .intro-image {
    flex: 1 1 300px;
    max-width: 420px;
}
.intro-with-image .intro-image img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 6px 24px rgba(42, 38, 34, .12);
    display: block;
}
.intro-with-image .intro-text {
    flex: 1 1 400px;
}
.intro-with-image .intro-text h2 {
    margin-top: 0;
}
@media (max-width: 640px) {
    .intro-with-image { gap: 1.5rem; }
    .intro-with-image .intro-image { max-width: 100%; margin: 0 auto; }
}

/* Deux images côte à côte dans un article */
.image-row {
    display: flex;
    gap: 1.5rem;
    margin: 2rem 0;
    flex-wrap: wrap;
}
.image-row > a,
.image-row > img {
    flex: 1 1 0;
    min-width: 0;
    display: block;
}
.image-row > a img,
.image-row > img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 6px 24px rgba(42, 38, 34, .12);
    display: block;
}
@media (max-width: 640px) {
    .image-row { gap: 1rem; }
}
.image-row > a.img-popup { cursor: zoom-in; }
.image-row > a.img-popup img { transition: transform .4s ease; }
.image-row > a.img-popup:hover img { transform: scale(1.02); }

/* Lightbox images */
.img-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(20, 15, 10, .88);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility .3s ease;
    backdrop-filter: blur(4px);
}
.img-lightbox.is-open {
    opacity: 1;
    visibility: visible;
}
.img-lightbox__figure {
    margin: 0;
    max-width: min(1200px, 92vw);
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
    transform: scale(.96);
    transition: transform .35s cubic-bezier(.22, 1, .36, 1);
}
.img-lightbox.is-open .img-lightbox__figure { transform: scale(1); }
.img-lightbox__img {
    max-width: 100%;
    max-height: 80vh;
    width: auto;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
    display: block;
}
.img-lightbox__caption {
    color: rgba(255, 255, 255, .92);
    font-family: var(--font-body);
    font-size: .95rem;
    text-align: center;
    max-width: 80ch;
    line-height: 1.4;
}
.img-lightbox__close {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .2s ease, transform .2s ease;
}
.img-lightbox__close:hover,
.img-lightbox__close:focus-visible {
    background: rgba(255, 255, 255, .22);
    transform: rotate(90deg);
    outline: 2px solid rgba(255, 255, 255, .5);
    outline-offset: 2px;
}
@media (max-width: 640px) {
    .img-lightbox { padding: 1rem; }
    .img-lightbox__close { top: .75rem; right: .75rem; width: 40px; height: 40px; }
}

.is-page .content-area > .com-content-article > div > h3::before {
    content: '';
    position: absolute;
    left: 0;
    top: .45em;
    width: 10px;
    height: 10px;
    background: var(--color-primary);
    border-radius: 50%;
}
.is-page .content-area > .com-content-article > div > h3::after {
    content: '';
    position: absolute;
    left: 4px;
    top: calc(.45em + 14px);
    width: 2px;
    height: calc(100% + .5rem);
    background: var(--color-primary-pale);
}
.is-page .content-area > .com-content-article > div > h3:last-of-type::after { display: none; }

/* Reset h3 dans les cartes soin */
.soin-card h3 { padding-left: 0 !important; }
.soin-card h3::before, .soin-card h3::after { display: none !important; }

/* --- Page Soins & Traitements : conteneur elargi --- */
.is-page .content-area > .com-content-article:has(.soins-overview) {
    max-width: 1060px;
}
/* Delais en cascade pour les cartes soin */
.soin-card.fade-in:nth-child(1) { transition-delay: 0s; }
.soin-card.fade-in:nth-child(2) { transition-delay: .1s; }
.soin-card.fade-in:nth-child(3) { transition-delay: .2s; }
.soin-card.fade-in:nth-child(4) { transition-delay: 0s; }
.soin-card.fade-in:nth-child(5) { transition-delay: .1s; }
.soin-card.fade-in:nth-child(6) { transition-delay: .2s; }

/* --- Page Soins & Traitements : cartes ameliorees --- */
.soin-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    padding: 2rem;
    transition: transform var(--transition), box-shadow var(--transition);
    position: relative;
    overflow: hidden;
}
.soin-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
    opacity: 0;
    transition: opacity var(--transition);
}
.soin-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px rgba(205, 108, 60, .12);
}
.soin-card:hover::before { opacity: 1; }
.soin-card h3 {
    font-family: var(--font-heading);
    color: var(--color-primary);
    margin-bottom: .75rem;
    font-size: 1.35rem;
    font-weight: 600;
}
.soin-card p {
    color: var(--color-text-light);
    line-height: 1.7;
    margin-bottom: .75rem;
    font-size: .95rem;
}

/* --- Page Contact : cartes info --- */
.is-page .content-area ul {
    background: var(--color-white);
    border-radius: 12px;
    padding: 1.5rem 1.5rem 1.5rem 2.5rem;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow);
    margin: 1rem 0 1.5rem;
}
.is-page .content-area li {
    margin-bottom: .6rem;
    line-height: 1.7;
}
.is-page .content-area li::marker {
    color: var(--color-primary);
}

/* --- Liens de fin d'article : centrer la ligne des CTA --- */
.is-home .content-area > .com-content-article > div > p:last-child,
.is-home .content-area > .com-content-article > p:last-of-type,
.is-page .content-area > .com-content-article > div > p:last-child,
.is-page .content-area > .com-content-article > p:last-of-type {
    text-align: center;
}

/* --- Animations d'entree --- */
.fade-in {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s cubic-bezier(.25, .46, .45, .94), transform .7s cubic-bezier(.25, .46, .45, .94);
}
.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Delai echelonne pour les cartes */
.service-card.fade-in:nth-child(1) { transition-delay: 0s; }
.service-card.fade-in:nth-child(2) { transition-delay: .1s; }
.service-card.fade-in:nth-child(3) { transition-delay: .2s; }
.service-card.fade-in:nth-child(4) { transition-delay: .3s; }
.service-card.fade-in:nth-child(5) { transition-delay: .4s; }
.service-card.fade-in:nth-child(6) { transition-delay: .5s; }

/* Animation slide-in depuis la gauche */
.slide-in-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity .7s cubic-bezier(.25, .46, .45, .94), transform .7s cubic-bezier(.25, .46, .45, .94);
}
.slide-in-left.visible {
    opacity: 1;
    transform: translateX(0);
}

/* Desactiver animations si preference utilisateur */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
    html { scroll-behavior: auto; }
    .fade-in, .slide-in-left { opacity: 1; transform: none; }
    .hero-badge, .hero-title, .hero-subtitle, .hero-actions { opacity: 1; transform: none; }
    .hero-content::before, .hero-content::after { display: none; }
}

/* --- Overlay menu mobile --- */
.nav-overlay {
    position: fixed;
    inset: 0;
    background: rgba(42, 38, 34, .48);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    z-index: 998;
    opacity: 0;
    visibility: hidden;
    transition: opacity .32s ease, visibility .32s ease;
}
.nav-overlay.is-open {
    opacity: 1;
    visibility: visible;
}

/* ==========================================================================
   AMELIORATIONS VISUELLES v2
   ========================================================================== */

/* --- Hero : texture grain subtile --- */
.hero-overlay::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4"><rect width="4" height="4" fill="transparent"/><rect width="1" height="1" fill="rgba(255,255,255,.015)"/></svg>');
    pointer-events: none;
}

/* Hero : particules flottantes decoratives */
.hero-content::before,
.hero-content::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}
.hero-content::before {
    width: 6px;
    height: 6px;
    background: rgba(232, 168, 130, .4);
    top: 20%;
    left: 10%;
    animation: particleFloat 8s ease-in-out infinite;
    box-shadow:
        60vw 10vh 0 rgba(232, 168, 130, .25),
        20vw 50vh 0 rgba(232, 168, 130, .2),
        70vw 40vh 0 1px rgba(255, 255, 255, .08),
        40vw 70vh 0 rgba(232, 168, 130, .15);
}
.hero-content::after {
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, .12);
    top: 60%;
    right: 15%;
    animation: particleFloat 12s ease-in-out infinite reverse;
    box-shadow:
        -30vw -20vh 0 rgba(255, 255, 255, .08),
        -50vw 10vh 0 1px rgba(232, 168, 130, .18);
}
@keyframes particleFloat {
    0%, 100% { transform: translate(0, 0); opacity: .6; }
    25% { transform: translate(15px, -25px); opacity: 1; }
    50% { transform: translate(-10px, -15px); opacity: .4; }
    75% { transform: translate(20px, 10px); opacity: .8; }
}

/* Hero badge : shimmer effet */
.hero-badge {
    background: linear-gradient(110deg, rgba(205, 108, 60, .08) 0%, rgba(232, 168, 130, .15) 45%, rgba(205, 108, 60, .08) 55%, rgba(205, 108, 60, .08) 100%);
    background-size: 250% 100%;
    animation: heroBadgeIn .8s cubic-bezier(.22, 1, .36, 1) .2s both, badgeShimmer 4s ease-in-out 2s infinite;
}
@keyframes badgeShimmer {
    0%, 100% { background-position: 100% center; }
    50% { background-position: 0% center; }
}

/* --- Header : underline anime sur liens nav niveau 1 --- */
.main-nav > ul > li > a {
    position: relative;
}
.main-nav > ul > li > a::after {
    content: '';
    position: absolute;
    bottom: 2px;
    left: 50%;
    width: 0;
    height: 2px;
    background: var(--color-primary);
    border-radius: 1px;
    transition: width .3s ease, left .3s ease;
}
.main-nav > ul > li > a:hover::after,
.main-nav > ul > li.active > a::after,
.main-nav > ul > li.current > a::after {
    width: calc(100% - 2rem);
    left: 1rem;
}

/* Header : separator gradient sous topbar */
.topbar {
    position: relative;
}
.topbar::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(205, 108, 60, .3), transparent);
}

/* Header scroll : effet refine */
.site-header.scrolled {
    box-shadow: 0 4px 20px rgba(42, 38, 34, .08);
    border-bottom-color: transparent;
}

/* --- Dropdown : ameliorations --- */
.main-nav ul ul,
.main-nav .mod-menu__sub {
    border-top: 3px solid var(--color-primary);
}

/* --- Breadcrumbs : separateur chevron --- */
.breadcrumbs-wrapper .mod-breadcrumbs__separator {
    opacity: .4;
    font-size: .75rem;
}
/* Masquer l'icône de pin "location" du divider de début (icône de Joomla non chargée) */
.breadcrumbs-wrapper .mod-breadcrumbs__divider {
    display: none !important;
}
/* Ajouter un chevron entre chaque étape du fil d'ariane */
.breadcrumbs-wrapper .mod-breadcrumbs__item + .mod-breadcrumbs__item::before {
    content: '›';
    color: var(--color-text-light);
    opacity: .55;
    margin: 0 .55rem;
    font-size: 1rem;
    font-weight: 400;
    display: inline-block;
}
/* L'item courant (active) en couleur texte standard, non cliquable */
.breadcrumbs-wrapper .mod-breadcrumbs__item.active {
    color: var(--color-text-light);
}

/* --- Boutons : effet focus accessible --- */
.btn:focus-visible,
.service-card:focus-within,
.soin-card:focus-within,
.contact-card:focus-within,
.tarif-card:focus-within {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}
a:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-radius: 2px;
}

/* --- Boutons : hover ameliore avec ombre coloree --- */
.btn-outline:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(205, 108, 60, .2);
}

/* --- Service cards : reflet lumineux au hover --- */
.service-card::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(205, 108, 60, .04) 0%, transparent 60%);
    opacity: 0;
    transition: opacity .5s ease;
    pointer-events: none;
}
.service-card:hover::after { opacity: 1; }

/* --- Tarif cards : hover et transition --- */
.tarif-card:hover .tarif-price {
    transform: scale(1.05);
}
.tarif-price {
    transition: transform var(--transition);
}

/* --- Contact cards : couleur d'icone au hover --- */
.contact-card:hover .contact-card-icon {
    background: var(--color-primary);
    color: var(--color-white);
    transition: background .3s ease, color .3s ease;
}
.contact-card-icon {
    transition: background .3s ease, color .3s ease;
}

/* --- Soin cards : lien decouvrir anime au hover --- */
.soin-card:hover .btn-soin {
    background-size: 100% 1px;
    color: var(--color-primary-dark);
}

/* --- CTA section : cercles decoratifs --- */
.cta-section::after {
    content: '';
    position: absolute;
    bottom: -30%;
    right: -10%;
    width: 350px;
    height: 350px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .04);
    pointer-events: none;
}

/* CTA bouton : pulse subtil */
.cta-section .btn {
    position: relative;
    animation: ctaPulse 3s ease-in-out 2s infinite;
}
@keyframes ctaPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .3); }
    50% { box-shadow: 0 0 0 12px rgba(255, 255, 255, 0); }
}

/* --- Footer : separateur ondule --- */
.site-footer {
    margin-top: 0;
}
.site-footer::before {
    height: 4px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--color-primary) 20%,
        var(--color-primary-light) 40%,
        var(--color-primary) 60%,
        var(--color-primary-light) 80%,
        transparent 100%);
}

/* Footer : hover sur icones contact */

/* Footer : hover sur liens avec trait anime */
.footer-links a {
    position: relative;
}
.footer-links a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background: var(--color-primary-light);
    transition: width .3s ease;
}
.footer-links a:hover::after {
    width: 100%;
}

/* Footer bottom : legere mise en avant */
.footer-bottom {
    letter-spacing: .03em;
}

/* --- Sections : separateurs decoratifs --- */
.services-section::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--color-border), transparent);
}

/* --- Images dans articles : coins arrondis --- */
.content-area img:not([width="65"]):not(.footer-about img) {
    border-radius: var(--radius);
}

/* --- Selection texte aux couleurs du theme --- */
::selection {
    background: rgba(205, 108, 60, .2);
    color: var(--color-charcoal);
}

/* --- Smooth scroll offset pour ancres --- */
[id] {
    scroll-margin-top: calc(var(--header-h) + 1rem);
}

/* --- Liens dans le contenu : underline anime --- */
.content-area a:not(.btn):not(.btn-soin):not(.btn-outline):not(.btn-primary) {
    text-decoration: none;
    background-image: linear-gradient(var(--color-primary-light), var(--color-primary-light));
    background-size: 0% 1px;
    background-repeat: no-repeat;
    background-position: left bottom;
    transition: background-size .3s ease, color .3s ease;
}
.content-area a:not(.btn):not(.btn-soin):not(.btn-outline):not(.btn-primary):hover {
    background-size: 100% 1px;
}

/* --- Blockquote : icone decorative --- */
.content-area blockquote {
    position: relative;
}
.content-area blockquote::before {
    content: '\201C';
    position: absolute;
    top: -.25rem;
    left: .75rem;
    font-size: 3rem;
    font-family: var(--font-heading);
    color: var(--color-primary);
    opacity: .2;
    line-height: 1;
}

/* --- Page header : hover subtil --- */
.is-page .com-content-article .page-header {
    transition: box-shadow .5s ease;
}
.is-page .com-content-article .page-header:hover {
    box-shadow: 0 8px 40px rgba(42, 38, 34, .15);
}

/* --- Animation d'entree de page --- */
@keyframes pageLoad {
    from { opacity: 0; }
    to { opacity: 1; }
}
.site-main,
.content-top,
.content-bottom {
    animation: pageLoad .4s ease both;
}

/* --- Fil d'Ariane : accessibilite et style --- */
.breadcrumbs-wrapper nav[aria-label] ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem;
}

/* --- Responsive : desactiver effets lourds sur mobile --- */
@media (max-width: 768px) {
    .hero-content::before,
    .hero-content::after {
        display: none;
    }
    .main-nav > ul > li > a::after {
        display: none;
    }
    .cta-section .btn {
        animation: none;
    }
}

/* ====================================================
   Pages utilisateur (com_users) & Checkout HikaShop
   ==================================================== */

.com-users-login .content-area,
.com-users-registration .content-area,
.com-users-remind .content-area,
.com-users-reset .content-area,
.com-users-profile .content-area,
.login, .registration,
.hikashop_checkout_page {
    max-width: 960px;
    margin: 0 auto;
}

.login h1, .login h2,
.registration h1, .registration h2,
.com-users-remind h1,
.com-users-reset h1,
.com-users-profile h1,
.hikashop_checkout_page h1,
.hikashop_checkout_page > h2:first-child {
    font-family: var(--font-heading);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 600;
    color: var(--color-charcoal);
    text-align: center;
    margin: 0 0 2rem;
    padding: 0 0 1rem;
    position: relative;
    line-height: 1.2;
}
.login h1::after, .login h2::after,
.registration h1::after, .registration h2::after,
.com-users-remind h1::after,
.com-users-reset h1::after,
.com-users-profile h1::after,
.hikashop_checkout_page h1::after,
.hikashop_checkout_page > h2:first-child::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: var(--color-primary);
    border-radius: 2px;
}

/* Cartes de formulaire */
.login .com-users-login__form,
.login form.form-validate,
.registration form.form-validate,
.com-users-remind form.form-validate,
.com-users-reset form.form-validate,
.com-users-profile form.form-validate,
.hikashop_checkout_login_main,
.hikashop_checkout_register_main {
    background: var(--color-white) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 16px !important;
    padding: 2rem clamp(1.25rem, 3vw, 2rem) !important;
    box-shadow: 0 4px 16px rgba(42, 38, 34, .04) !important;
    margin: 0 auto 1.5rem !important;
}
.form-validate.well {
    background: var(--color-white);
    border: none;
    box-shadow: none;
}

/* Fieldsets */
.login fieldset,
.registration fieldset,
.com-users-remind fieldset,
.com-users-reset fieldset,
.com-users-profile fieldset,
.hikashop_checkout_page fieldset {
    border: none;
    background: transparent;
    padding: 0;
    margin: 0;
}
.login fieldset > legend,
.registration fieldset > legend,
.com-users-remind fieldset > legend,
.com-users-reset fieldset > legend,
.com-users-profile fieldset > legend,
.hikashop_checkout_page fieldset > legend {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--color-primary);
    padding: 0 0 .75rem;
    margin: 0 0 1rem;
    width: 100%;
    border-bottom: 1px solid var(--color-border);
    text-transform: none;
    letter-spacing: 0;
}

/* Champs */
.login input[type="text"], .login input[type="email"], .login input[type="password"],
.registration input[type="text"], .registration input[type="email"], .registration input[type="password"], .registration input[type="tel"],
.com-users-remind input[type="text"], .com-users-remind input[type="email"],
.com-users-reset input[type="text"], .com-users-reset input[type="email"], .com-users-reset input[type="password"],
.com-users-profile input[type="text"], .com-users-profile input[type="email"], .com-users-profile input[type="password"], .com-users-profile input[type="tel"],
.hikashop_checkout_page input[type="text"]:not(.hikashop_product_quantity_field):not(.hikashop_cart_input_button),
.hikashop_checkout_page input[type="email"],
.hikashop_checkout_page input[type="password"],
.hikashop_checkout_page input[type="tel"],
.hikashop_checkout_page textarea,
.hikashop_checkout_page select:not([id^="hikashop_product_characteristic_"]) {
    width: 100%;
    padding: .75rem 1rem;
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-charcoal);
    border: 2px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-white);
    transition: border-color var(--transition), box-shadow var(--transition);
    box-sizing: border-box;
}
.login input:focus, .registration input:focus, .com-users-remind input:focus,
.com-users-reset input:focus, .com-users-profile input:focus,
.hikashop_checkout_page input:focus, .hikashop_checkout_page textarea:focus, .hikashop_checkout_page select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 4px rgba(205, 108, 60, .15);
}

/* Labels — masqués visuellement (remplacés par placeholders) mais conservés pour l'accessibilité */
.login label, .registration label, .com-users-remind label, .com-users-reset label, .com-users-profile label,
.hikashop_checkout_page label, .hikashop_checkout_page .control-label {
    display: block;
    font-family: var(--font-heading);
    font-size: .85rem;
    font-weight: 600;
    color: var(--color-charcoal);
    margin-bottom: .35rem;
    text-transform: uppercase;
    letter-spacing: .5px;
}
/* Exception : les labels qui enveloppent une checkbox/radio (ex: "Faire de cette adresse...")
   ne doivent PAS être en majuscules, ni mis en forme comme des titres de champs */
.hikashop_checkout_page label:has(> input[type="checkbox"]),
.hikashop_checkout_page label:has(> input[type="radio"]),
.hikashop_checkout_address_default label,
.hikashop_checkout_address_same label {
    display: inline-flex !important;
    align-items: center;
    gap: .55rem;
    font-family: var(--font-body) !important;
    font-size: .92rem !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    color: var(--color-charcoal) !important;
    margin-bottom: 0 !important;
    cursor: pointer;
}
.hikashop_checkout_page label > input[type="checkbox"],
.hikashop_checkout_page label > input[type="radio"] {
    width: 1.05rem !important;
    height: 1.05rem !important;
    accent-color: var(--color-primary);
    flex-shrink: 0;
    margin: 0;
}
/* Label transformé en placeholder : retiré visuellement mais accessible aux lecteurs d'écran.
   Spécificité renforcée pour battre #hikashop_checkout_login_form .hkcontrol-label (1,1,0). */
.autemps-hidden-label,
#hikashop_checkout_login_form .autemps-hidden-label,
.hikashop_checkout_page .autemps-hidden-label,
label.autemps-hidden-label.hkcontrol-label {
    position: absolute !important;
    width: 1px !important;
    max-width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    left: auto !important;
}
.autemps-hidden-label + * { margin-top: 0 !important; }
.login .control-group:has(.autemps-hidden-label),
.registration .control-group:has(.autemps-hidden-label),
.com-users-login__input:has(.autemps-hidden-label),
.hikashop_checkout_page .hkform-group:has(.autemps-hidden-label),
.hikashop_checkout_page .control-group:has(.autemps-hidden-label) { display: block; }
.com-users-login__input:has(.autemps-hidden-label) > .control-label { display: none; }
/* Quand le label est masqué (JS labelToPlaceholder), le wrapper d'input reprend toute la largeur.
   Exclure .autemps-hidden-label pour ne pas écraser son planquage accessible (width:1px absolute). */
.hikashop_checkout_page .hkform-group:has(.autemps-hidden-label) > [class*="hkc-"]:not(.autemps-hidden-label),
.hikashop_checkout_page .control-group:has(.autemps-hidden-label) > [class*="hkc-"]:not(.autemps-hidden-label) {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    display: block !important;
    margin-left: 0 !important;
}
.hikashop_checkout_page .hkform-group:has(.autemps-hidden-label) input[type="text"],
.hikashop_checkout_page .hkform-group:has(.autemps-hidden-label) input[type="email"],
.hikashop_checkout_page .hkform-group:has(.autemps-hidden-label) input[type="password"],
.hikashop_checkout_page .hkform-group:has(.autemps-hidden-label) input[type="tel"],
.hikashop_checkout_page .hkform-group:has(.autemps-hidden-label) .form-control,
.hikashop_checkout_page .hkform-group:has(.autemps-hidden-label) .hkform-control {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

/* Placeholder style cohérent avec le design */
.login input::placeholder,
.registration input::placeholder,
.com-users-remind input::placeholder,
.com-users-reset input::placeholder,
.com-users-profile input::placeholder,
.hikashop_checkout_page input::placeholder,
.hikashop_checkout_page textarea::placeholder {
    color: var(--color-text-light);
    opacity: .7;
    font-weight: 400;
    font-family: var(--font-body);
}
.login .mb-3, .registration .mb-3, .login .control-group,
.registration .control-group, .hikashop_checkout_page .control-group { margin-bottom: 1.15rem; }

/* Boutons */
.login button[type="submit"], .login .btn-primary,
.registration button[type="submit"], .registration .btn-primary,
.com-users-remind button[type="submit"], .com-users-remind .btn-primary,
.com-users-reset button[type="submit"], .com-users-reset .btn-primary,
.com-users-profile button[type="submit"], .com-users-profile .btn-primary,
.hikashop_checkout_page button[type="submit"],
.hikashop_checkout_page input[type="submit"],
.hikashop_checkout_page .btn-primary,
.hikashop_next_button {
    display: inline-block;
    padding: .85rem 1.75rem;
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
    border: none !important;
    border-radius: 12px !important;
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .3px;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    transition: background var(--transition), transform .2s ease, box-shadow var(--transition);
    box-shadow: 0 4px 12px rgba(205, 108, 60, .25);
}
.login button[type="submit"]:hover, .registration button[type="submit"]:hover,
.com-users-remind button[type="submit"]:hover, .com-users-reset button[type="submit"]:hover,
.com-users-profile button[type="submit"]:hover,
.hikashop_checkout_page button[type="submit"]:hover,
.hikashop_checkout_page input[type="submit"]:hover,
.hikashop_next_button:hover {
    background: var(--color-primary-dark) !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(205, 108, 60, .35) !important;
}

/* Options secondaires sous le formulaire de login — cartes horizontales */
.com-users-login__options {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: .75rem;
    margin: 1.5rem 0 0;
    padding: 0 !important;
    list-style: none;
    border: none !important;
    background: transparent !important;
}
.com-users-login__options > a,
.com-users-login__options .list-group-item {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center;
    gap: .45rem;
    padding: .75rem 1rem !important;
    background: var(--color-white) !important;
    color: var(--color-charcoal) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 12px !important;
    font-family: var(--font-body) !important;
    font-size: .85rem !important;
    font-weight: 600;
    text-decoration: none !important;
    transition: border-color var(--transition), color var(--transition), background var(--transition), transform .2s ease;
    line-height: 1.3;
}
.com-users-login__options > a:hover,
.com-users-login__options .list-group-item:hover {
    border-color: var(--color-primary) !important;
    color: var(--color-primary) !important;
    background: var(--color-cream) !important;
    transform: translateY(-2px);
}
/* Icônes SVG injectées selon le texte */
.com-users-login__options > a::before {
    content: '';
    display: inline-block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    background-color: currentColor;
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
}
.com-users-login__options > a[href*="remind"]::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E");
}
.com-users-login__options > a[href*="reset"]::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
}
.com-users-login__options > a[href*="registration"]::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='8.5' cy='7' r='4'/%3E%3Cline x1='20' y1='8' x2='20' y2='14'/%3E%3Cline x1='23' y1='11' x2='17' y2='11'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='8.5' cy='7' r='4'/%3E%3Cline x1='20' y1='8' x2='20' y2='14'/%3E%3Cline x1='23' y1='11' x2='17' y2='11'/%3E%3C/svg%3E");
}
@media (max-width: 640px) {
    .com-users-login__options { grid-template-columns: 1fr; }
}

/* Compat ul/list-unstyled d'anciens thèmes */
.login ul.nav-stacked, .login ul.list-unstyled,
.registration ul.nav-stacked {
    margin-top: 1.25rem;
    text-align: center;
    list-style: none;
    padding: 0;
}
.login ul a, .registration ul a {
    color: var(--color-primary);
    font-size: .9rem;
    text-decoration: none;
    display: inline-block;
    margin: .25rem .5rem;
}
.login ul a:hover { color: var(--color-primary-dark); text-decoration: underline; }

/* Passkey (WebAuthn) - bouton propre */
.plg_system_webauthn_login_button,
.com-users-login__passkey,
.login__webauthn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .6rem;
    width: 100% !important;
    padding: .75rem 1rem !important;
    margin: .75rem 0 0 !important;
    background: var(--color-white) !important;
    color: var(--color-primary) !important;
    border: 2px dashed var(--color-primary) !important;
    border-radius: 12px !important;
    font-family: var(--font-body) !important;
    font-size: .9rem !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    box-shadow: none !important;
    cursor: pointer;
    transition: background var(--transition), color var(--transition);
}
.plg_system_webauthn_login_button:hover,
.com-users-login__passkey:hover,
.login__webauthn:hover {
    background: var(--color-cream) !important;
}
.plg_system_webauthn_login_button svg,
.com-users-login__passkey svg,
.login__webauthn svg {
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
    flex-shrink: 0;
    fill: currentColor;
}

/* Groupe mot de passe avec icône oeil intégrée — scopé aux contextes mot de passe UNIQUEMENT
   pour ne pas casser les .input-group Bootstrap utilisés ailleurs (coupon, recherche, etc.) */
.password-group,
.input-group:has(> .input-password-toggle),
.input-group:has(> input[type="password"]) {
    position: relative;
    display: block;
}
.password-group input[type="password"],
.password-group input[type="text"],
.input-group:has(> .input-password-toggle) input[type="password"],
.input-group:has(> input[type="password"]) input[type="password"] {
    padding-right: 3rem !important;
}
.input-password-toggle,
button.input-password-toggle {
    position: absolute !important;
    right: 6px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: none !important;
    color: var(--color-text-light) !important;
    cursor: pointer;
    box-shadow: none !important;
    margin: 0 !important;
    border-radius: 8px !important;
    z-index: 2;
}
.input-password-toggle:hover {
    background: var(--color-cream) !important;
    color: var(--color-primary) !important;
}
/* Icône oeil — SVG en fallback si la police icône n'est pas chargée */
.input-password-toggle .icon-eye,
.input-password-toggle .icon-eye-slash,
.input-password-toggle .icon-fw {
    display: inline-block;
    width: 20px;
    height: 20px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat;
}
.input-password-toggle .icon-eye-slash {
    -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E") center/contain no-repeat;
}
.input-password-toggle .icon-eye::before,
.input-password-toggle .icon-eye-slash::before { display: none; }

/* Checkbox ligne */
.login input[type="checkbox"] + label,
.registration input[type="checkbox"] + label,
.hikashop_checkout_page input[type="checkbox"] + label {
    display: inline;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    margin-left: .35rem;
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: .95rem;
}

/* ============================================================
   CHECKOUT LOGIN/REGISTRATION — layout 50/50 et champs 100%
   ============================================================ */
.hikashop_checkout_login_register, .hikashop_checkout_login_cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin: 0 0 2rem;
}
/* Hikashop checkout login utilise .hk-container-fluid + .hkc-lg-4 / .hkc-lg-8
   (ou l'ancien .span4/.span8). On force 50/50 et on remet en flex. */
#hikashop_checkout .hk-container-fluid:has(#hikashop_checkout_login_form),
.hikashop_checkout_login.row-fluid {
    display: flex !important;
    flex-wrap: wrap;
    gap: 2rem;
    align-items: flex-start;
}
#hikashop_checkout .hk-container-fluid:has(#hikashop_checkout_login_form) > .hkc-lg-4,
#hikashop_checkout .hk-container-fluid:has(#hikashop_checkout_login_form) > .hkc-lg-8,
.hikashop_checkout_login_left_part,
.hikashop_checkout_login_right_part {
    flex: 1 1 calc(50% - 1rem) !important;
    width: calc(50% - 1rem) !important;
    max-width: calc(50% - 1rem) !important;
    min-width: 0;
    margin: 0 !important;
}
/* Formulaire de connexion — champs 100% largeur, pas de taille fixe (size="18") */
#hikashop_checkout_login_form input[type="text"],
#hikashop_checkout_login_form input[type="password"],
#hikashop_checkout_login_form input[type="email"],
#hikashop_checkout_login_form .input-small,
#hikashop_checkout_login_form .hkform-control:not([type="checkbox"]):not([type="radio"]),
#hikashop_checkout_login_form .form-control:not([type="checkbox"]):not([type="radio"]) {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}
/* Wrappers internes (input-prepend, input-append, input-group) — pleine largeur.
   Exclusion .autemps-hidden-label pour ne pas casser son planquage accessible. */
#hikashop_checkout_login_form .input-prepend,
#hikashop_checkout_login_form .input-append,
#hikashop_checkout_login_form .input-prepend.input-append,
#hikashop_checkout_login_form .input-group,
#hikashop_checkout_login_form .controls,
#hikashop_checkout_login_form .control-group,
#hikashop_checkout_login_form .hkform-group,
#hikashop_checkout_login_form .userdata,
#hikashop_checkout_login_form .hkc-sm-8,
#hikashop_checkout_login_form [class*="hkc-"]:not(.autemps-hidden-label) {
    width: 100% !important;
    max-width: 100% !important;
    display: block;
    box-sizing: border-box;
    margin-left: 0 !important;
}
/* Le label column (hkc-sm-4) devant l'input ne doit pas le pousser a droite */
#hikashop_checkout_login_form .hkc-sm-4.hkcontrol-label:empty { display: none; }
#hikashop_checkout_login_form .hkcontrol-label:not(.autemps-hidden-label) {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: .35rem;
}
/* Restaure l'affichage flex pour l'input + bouton eye (mot de passe) */
#hikashop_checkout_login_form .input-group:has(> .input-password-toggle),
#hikashop_checkout_login_form .input-group:has(> input[type="password"]) {
    position: relative;
    display: block;
}
/* Icones add-on (loupe, user) — retirer si decoratives */
#hikashop_checkout_login_form .add-on,
#hikashop_checkout_login_form .btn.hasTooltip { display: none !important; }
/* Bouton de connexion en pleine largeur */
#hikashop_checkout_login_form button[type="submit"],
#hikashop_checkout_login_form .hikabtn_checkout_login_form,
#hikashop_checkout_login_form .btn-primary {
    width: 100% !important;
}

@media (max-width: 760px) {
    .hikashop_checkout_login_register, .hikashop_checkout_login_cols { grid-template-columns: 1fr; }
    #hikashop_checkout .hk-container-fluid:has(#hikashop_checkout_login_form) > .hkc-lg-4,
    #hikashop_checkout .hk-container-fluid:has(#hikashop_checkout_login_form) > .hkc-lg-8,
    .hikashop_checkout_login_left_part,
    .hikashop_checkout_login_right_part {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* Checkbox "Se souvenir de moi" — taille native + label inline, pas de stretch */
#hikashop_checkout_login_form .hikashop_login_remember_line {
    margin: .25rem 0 .75rem !important;
}
#hikashop_checkout_login_form .hikashop_login_remember_line .hkcontrol-label:empty {
    display: none !important;
}
#hikashop_checkout_login_form .hikashop_login_remember_line .hkcheckbox {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: 0;
}
#hikashop_checkout_login_form .hikashop_login_remember_line .hkcheckbox label {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 0 !important;
    padding: 0 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-weight: 400;
    font-size: .9rem;
    color: #555;
    cursor: pointer;
    line-height: 1.2;
}
#hikashop_checkout_login_form .hikashop_login_remember_line input[type="checkbox"],
#hikashop_checkout_login_form .hkcheckbox input[type="checkbox"] {
    width: 1rem !important;
    height: 1rem !important;
    min-width: 0 !important;
    max-width: 1rem !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 0 0 auto;
    accent-color: #cd6c3c;
    cursor: pointer;
    vertical-align: middle;
}

/* Liens "Mot de passe / Identifiant oublié ?" — côte à côte, discrets */
#hikashop_checkout_login_form .hikashop_login_forgot_password_line,
#hikashop_checkout_login_form .hikashop_login_forgot_username_line {
    display: inline-block !important;
    width: auto !important;
    max-width: none !important;
    margin: .5rem 0 0 !important;
    padding: 0 !important;
    text-align: center;
}
#hikashop_checkout_login_form .hikashop_login_forgot_password_line .hkcontrol-label:empty,
#hikashop_checkout_login_form .hikashop_login_forgot_username_line .hkcontrol-label:empty {
    display: none !important;
}
#hikashop_checkout_login_form .hikashop_login_forgot_password_line > [class*="hkc-"],
#hikashop_checkout_login_form .hikashop_login_forgot_username_line > [class*="hkc-"] {
    display: inline-block !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
#hikashop_checkout_login_form .hikashop_login_forgot_password_line a,
#hikashop_checkout_login_form .hikashop_login_forgot_username_line a {
    color: #888 !important;
    font-size: .85rem !important;
    font-weight: 400 !important;
    text-decoration: none !important;
    transition: color .2s;
}
#hikashop_checkout_login_form .hikashop_login_forgot_password_line a:hover,
#hikashop_checkout_login_form .hikashop_login_forgot_username_line a:hover {
    color: #cd6c3c !important;
    text-decoration: underline !important;
}
/* Séparateur entre les deux liens */
#hikashop_checkout_login_form .hikashop_login_forgot_password_line + .hikashop_login_forgot_username_line::before {
    content: "·";
    color: #bbb;
    margin: 0 .5rem;
    font-weight: 700;
}

/* Titre "Adresse" (legend ADDRESS_INFORMATION dans le form d'enregistrement) — masque */
.hika_registration_address,
.hika_registration_address legend,
.hikashop_registration_address,
.hikashop_registration_address legend,
.hikashop_registration_address_info_line,
.hikashop_registration_address_info_title { display: none !important; }

/* Colonnes label vides (div.hkcontrol-label:empty) — masquer pour que le contenu
   prenne la pleine largeur, sans dépendre du JS labelToPlaceholder */
.hikashop_checkout_page .hkform-group > div.hkcontrol-label:empty,
.hikashop_checkout_page .control-group > div.hkcontrol-label:empty {
    display: none !important;
}
.hikashop_checkout_page .hkform-group:has(> div.hkcontrol-label:empty) > [class*="hkc-"]:not(.hkcontrol-label),
.hikashop_checkout_page .control-group:has(> div.hkcontrol-label:empty) > [class*="hkc-"]:not(.hkcontrol-label) {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    display: block !important;
    margin-left: 0 !important;
}

/* "Les champs signalés par un astérisque (*) sont obligatoires." — discret, aligné à gauche, peu d'espace */
.hikashop_registration_required_info_line,
.hikashop_address_required_info_line {
    text-align: left !important;
    margin: .5rem 0 !important;
    display: block !important;
}
.hikashop_registration_required_info_line > div:first-child:empty,
.hikashop_address_required_info_line > div:first-child:empty {
    display: none !important;
}
.hikashop_registration_required_info_line > div:not(:empty),
.hikashop_address_required_info_line .controls,
.hikashop_address_required_info_line > div:not(:empty) {
    font-size: .78rem !important;
    color: #888 !important;
    font-style: italic;
    text-align: left !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
}

/* Checkbox "Faire de cette adresse l'adresse par défaut" : aligner à gauche, pas de colonne vide */
.hikashop_checkout_page .hkform-group.hikashop_checkout_address_default,
.hikashop_checkout_page .hkform-group.hikashop_checkout_address_same,
.hikashop_checkout_page .control-group.hikashop_checkout_address_default,
.hikashop_checkout_page .control-group.hikashop_checkout_address_same {
    display: block !important;
    margin: .5rem 0 !important;
    text-align: left !important;
}
.hikashop_checkout_page .hikashop_checkout_address_default > div:first-child:empty,
.hikashop_checkout_page .hikashop_checkout_address_same > div:first-child:empty {
    display: none !important;
}
.hikashop_checkout_page .hikashop_checkout_address_default > [class*="hkc-"]:not(:empty),
.hikashop_checkout_page .hikashop_checkout_address_same > [class*="hkc-"]:not(:empty) {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    display: block !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    text-align: left !important;
}

/* Le bouton OK sortait en float:right via un wrapper inline-styled — on annule et on compacte */
.hikashop_checkout_page div[style*="float:right"]:has(> .hikashop_checkout_address_ok_button),
.hikashop_checkout_page div[style*="float: right"]:has(> .hikashop_checkout_address_ok_button) {
    float: none !important;
    text-align: left !important;
    margin: .5rem 0 0 !important;
    display: block !important;
}

/* Bouton "Enregistrer" — centré, brand color, pleine largeur contrôlée */
#hikashop_register_form_button,
.hikabtn_checkout_login_register {
    display: block !important;
    width: 100% !important;
    max-width: 320px;
    margin: .25rem auto 0 !important;
    padding: .85rem 2.2rem !important;
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
    border: 2px solid var(--color-primary) !important;
    border-radius: var(--radius-btn) !important;
    font-family: var(--font-body);
    font-size: .95rem;
    font-weight: 700;
    cursor: pointer;
    transition: background var(--transition), border-color var(--transition), transform .2s ease, box-shadow var(--transition);
}
#hikashop_register_form_button:hover,
.hikabtn_checkout_login_register:hover {
    background: var(--color-primary-dark) !important;
    border-color: var(--color-primary-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(205, 108, 60, .35);
}
/* Wrapper du bouton — centrer dans la colonne */
.hkform-group:has(#hikashop_register_form_button),
.hkform-group:has(.hikabtn_checkout_login_register) {
    text-align: center;
}

/* ============================================================
   MODES DE PAIEMENT & DE LIVRAISON — cartes cliquables élégantes
   (Hikashop 6 rend un <table class="hikashop_payment_methods_table">
    avec <tr><td> contenant radio, label, images, description)
   ============================================================ */
.hikashop_checkout_payment,
.hikashop_checkout_shipping {
    margin: 0 0 1.5rem;
}

/* ========== Séparation visuelle des sections du checkout ==========
   Chaque bloc (login, adresse, livraison, paiement, panier, coupon, ...)
   est mis en carte blanche avec bordure et légère ombre pour créer une hiérarchie claire.
*/
.hikashop_checkout_page > .hikashop_checkout_login,
.hikashop_checkout_page > .hikashop_checkout_address,
.hikashop_checkout_page > .hikashop_checkout_shipping,
.hikashop_checkout_page > .hikashop_checkout_payment,
.hikashop_checkout_page > .hikashop_checkout_cart,
.hikashop_checkout_page > .hikashop_checkout_coupon,
.hikashop_checkout_page > .hikashop_checkout_terms,
.hikashop_checkout_page > .hikashop_checkout_fields,
.hikashop_checkout_page > .hikashop_checkout_status,
.hikashop_checkout_page > div[id^="hikashop_checkout_address_"],
.hikashop_checkout_page > div[id^="hikashop_checkout_shipping_"],
.hikashop_checkout_page > div[id^="hikashop_checkout_payment_"],
.hikashop_checkout_page > div[id^="hikashop_checkout_login_"],
.hikashop_checkout_page > div[id^="hikashop_checkout_cart_"] {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 1.75rem 1.85rem;
    margin: 0 0 1.25rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .03);
}
/* Titres de section (legend) : bandeau clair du haut avec trait de séparation prononcé */
.hikashop_checkout_page > .hikashop_checkout_address > legend,
.hikashop_checkout_page > .hikashop_checkout_shipping > legend,
.hikashop_checkout_page > .hikashop_checkout_payment > legend,
.hikashop_checkout_page > .hikashop_checkout_login > legend,
.hikashop_checkout_page > .hikashop_checkout_cart > legend,
.hikashop_checkout_page > div[id^="hikashop_checkout_"] > legend:first-of-type {
    display: block;
    width: 100%;
    padding: 0 0 .85rem;
    margin: -.25rem 0 1.25rem;
    font-family: var(--font-heading);
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--color-charcoal);
    border: none;
    border-bottom: 2px solid var(--color-primary);
    letter-spacing: 0;
    text-transform: none;
    position: relative;
}
/* Les boutons de pied (Continuer) restent sans carte */
.hikashop_checkout_page > .hikashop_checkout_buttons {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 1rem 0;
}
/* Titre de section (legend standalone rendu par show_block_payment.php) */
.hikashop_checkout_payment > legend,
.hikashop_checkout_shipping > legend,
.hikashop_checkout_payment fieldset > legend,
.hikashop_checkout_shipping fieldset > legend {
    display: block;
    width: 100%;
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--color-charcoal);
    padding: 0 0 .6rem;
    margin: 0 0 1rem;
    border: none;
    border-bottom: 1px solid var(--color-border);
    text-transform: none;
    letter-spacing: 0;
    position: static;
    float: none;
}

/* Tableau des méthodes — reset Bootstrap puis espacement entre cartes */
.hikashop_checkout_payment table.hikashop_payment_methods_table,
.hikashop_checkout_shipping table.hikashop_shipping_methods_table,
table.hikashop_payment_methods_table,
table.hikashop_shipping_methods_table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 .75rem !important;
    background: transparent !important;
    border: none !important;
    margin: 0 !important;
    --bs-table-bg: transparent;
    --bs-table-striped-bg: transparent;
    --bs-table-hover-bg: transparent;
    --bs-table-accent-bg: transparent;
    --bs-table-border-color: transparent;
}
table.hikashop_payment_methods_table > :not(caption) > * > *,
table.hikashop_shipping_methods_table > :not(caption) > * > * {
    background: transparent !important;
    box-shadow: none !important;
}
table.hikashop_payment_methods_table.table-striped > tbody > tr:nth-of-type(odd) > *,
table.hikashop_shipping_methods_table.table-striped > tbody > tr:nth-of-type(odd) > *,
table.hikashop_payment_methods_table.table-hover > tbody > tr:hover > *,
table.hikashop_shipping_methods_table.table-hover > tbody > tr:hover > * {
    background-color: transparent !important;
    --bs-table-accent-bg: transparent;
}

/* Chaque ligne = 1 carte. Le <td> porte la bordure/le fond */
table.hikashop_payment_methods_table tr,
table.hikashop_shipping_methods_table tr {
    background: transparent !important;
}
table.hikashop_payment_methods_table tr > td,
table.hikashop_shipping_methods_table tr > td {
    position: relative;
    padding: 1.1rem 1.25rem 1.1rem 3.25rem !important;
    background: var(--color-white) !important;
    border: 2px solid var(--color-border) !important;
    border-radius: 14px !important;
    cursor: pointer;
    transition: border-color var(--transition), background var(--transition), box-shadow var(--transition), transform .2s ease;
    vertical-align: middle !important;
}
table.hikashop_payment_methods_table tr > td:hover,
table.hikashop_shipping_methods_table tr > td:hover {
    border-color: var(--color-primary) !important;
    background: var(--color-primary-pale) !important;
    transform: translateY(-1px);
}
/* État sélectionné */
table.hikashop_payment_methods_table tr:has(input.hikashop_checkout_payment_radio:checked) > td,
table.hikashop_shipping_methods_table tr:has(input.hikashop_checkout_shipping_radio:checked) > td {
    border-color: var(--color-primary) !important;
    background: var(--color-primary-pale) !important;
    box-shadow: 0 4px 14px rgba(205, 108, 60, .12);
}

/* Radio custom — cercle posé en haut à gauche de la carte */
input.hikashop_checkout_payment_radio,
input.hikashop_checkout_shipping_radio {
    position: absolute !important;
    top: 50%;
    left: 1.1rem;
    transform: translateY(-50%);
    appearance: none;
    -webkit-appearance: none;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    border: 2px solid var(--color-border);
    border-radius: 50%;
    background: var(--color-white);
    cursor: pointer;
    transition: border-color var(--transition), background var(--transition);
    z-index: 2;
}
input.hikashop_checkout_payment_radio:hover,
input.hikashop_checkout_shipping_radio:hover {
    border-color: var(--color-primary);
}
input.hikashop_checkout_payment_radio:checked,
input.hikashop_checkout_shipping_radio:checked {
    border-color: var(--color-primary);
    background: radial-gradient(circle, var(--color-primary) 0 5px, var(--color-white) 6px 100%);
}
input.hikashop_checkout_payment_radio:focus-visible,
input.hikashop_checkout_shipping_radio:focus-visible {
    outline: 3px solid rgba(205, 108, 60, .25);
    outline-offset: 2px;
}

/* Zone label (cliquable) — nom + cost + images + description alignés */
.hikashop_checkout_payment table.hikashop_payment_methods_table tr > td > label,
.hikashop_checkout_shipping table.hikashop_shipping_methods_table tr > td > label {
    display: inline-flex !important;
    align-items: center;
    gap: .6rem;
    cursor: pointer;
    margin: 0 !important;
    padding: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--color-charcoal) !important;
    font-family: var(--font-body) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    line-height: 1.35;
}
span.hikashop_checkout_payment_name,
span.hikashop_checkout_shipping_name {
    font-family: var(--font-body) !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    color: var(--color-charcoal) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.35;
}

/* Cost (prix du mode, ex: "gratuit" ou "+ 5 CHF") */
span.hikashop_checkout_payment_cost,
span.hikashop_checkout_shipping_cost {
    display: inline-block;
    margin-left: .6rem;
    font-size: .85rem !important;
    font-weight: 600;
    color: var(--color-text-light);
    font-family: var(--font-body) !important;
}
span.hikashop_checkout_payment_price,
span.hikashop_checkout_shipping_price { color: var(--color-primary); font-weight: 700; }

/* Images / logos de paiement — contenues, proportionnées */
span.hikashop_checkout_payment_images,
span.hikashop_checkout_payment_image,
span.hikashop_checkout_shipping_images,
span.hikashop_checkout_shipping_image {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    vertical-align: middle;
    margin-left: .5rem;
}
span.hikashop_checkout_payment_images img,
span.hikashop_checkout_payment_image img,
span.hikashop_checkout_shipping_images img,
span.hikashop_checkout_shipping_image img {
    max-height: 28px !important;
    max-width: 60px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    border-radius: 4px;
    border: none !important;
    box-shadow: none !important;
    display: inline-block !important;
    vertical-align: middle;
}

/* Description — en sous-texte, plus discret, en français stp ;-) */
.hikashop_checkout_payment_description,
.hikashop_checkout_shipping_description {
    display: block;
    margin: .5rem 0 0 !important;
    padding: 0 !important;
    font-size: .85rem !important;
    font-weight: 400 !important;
    color: var(--color-text-light) !important;
    line-height: 1.5;
    font-family: var(--font-body) !important;
    background: transparent !important;
    border: none !important;
}

/* Bloc saisie carte crédit (ccinfo) — ouverture propre */
.hikashop_checkout_payment_card,
.hikashop_checkout_payment_custom {
    margin-top: .75rem !important;
    padding-top: .75rem !important;
    border-top: 1px dashed var(--color-border);
}
.hikashop_checkout_payment_card .hika_options,
.hikashop_checkout_payment_card dl.hika_options {
    display: grid;
    grid-template-columns: minmax(120px, auto) 1fr;
    gap: .4rem .75rem;
    margin: 0;
}
.hikashop_checkout_payment_card dt { align-self: center; font-size: .85rem; color: var(--color-text); margin: 0; }
.hikashop_checkout_payment_card dd { margin: 0; }
.hikashop_checkout_payment_card input[type="text"] {
    padding: .55rem .85rem !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 8px !important;
    width: 100%;
    max-width: 260px;
}
.hikashop_checkout_payment_card .card_expiration_date_input { max-width: 60px; text-align: center; }
.hikashop_checkout_payment_submit { margin-top: .75rem; }

/* ============================================================
   FORMULAIRES D'ADRESSE — label masqué via override PHP
   ============================================================ */
/* L'override /html/com_hikashop/layouts/address_field_row.php ajoute la classe
   .autemps_field_no_label sur le wrapper quand le libellé doit être caché.
   Le champ conserve un aria-label pour rester accessible. */
.autemps_field_no_label .hikashop_address_field_input {
    width: 100% !important;
    max-width: 100% !important;
}
.autemps_field_no_label select,
.autemps_field_no_label input,
.autemps_field_no_label .hkform-control {
    width: 100% !important;
    max-width: 100% !important;
}
/* Fallback CSS si l'override n'est pas utilisé ailleurs : masquer les labels "pays" residuels */
.hika_address_field label[for*="country"],
.hikashop_checkout_address label[for*="country"] {
    position: absolute !important;
    width: 1px !important; height: 1px !important;
    padding: 0 !important; margin: -1px !important;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
select[id*="country"],
select[name*="country"] { width: 100% !important; max-width: 100% !important; }

/* ============================================================
   PANIER CHECKOUT — carte blanche, tableau épuré, total mis en avant
   ============================================================ */

/* Wrapper carte */
.hikashop_cart_page, .hikashop_checkout_cart {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    padding: 1.25rem clamp(1rem, 3vw, 1.75rem);
    box-shadow: 0 4px 16px rgba(42, 38, 34, .04);
    margin: 0 0 1.5rem;
}
.hikashop_checkout_cart > br:first-child { display: none; }
.hikashop_checkout_cart_print_link { text-align: right; margin-bottom: .5rem; }
.hikashop_checkout_cart_print_link img { opacity: .55; transition: opacity var(--transition); }
.hikashop_checkout_cart_print_link img:hover { opacity: 1; }

/* Tableau cart — neutralise Bootstrap (.table .table-striped .table-hover) */
.hikashop_cart_page table,
.hikashop_checkout_cart table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 0 !important;
    background: transparent !important;
    --bs-table-bg: transparent;
    --bs-table-striped-bg: transparent;
    --bs-table-hover-bg: transparent;
    --bs-table-accent-bg: transparent;
    --bs-table-border-color: transparent;
    border: none !important;
}
.hikashop_cart_page table > :not(caption) > * > *,
.hikashop_checkout_cart table > :not(caption) > * > * {
    background: transparent !important;
    box-shadow: none !important;
    border-color: var(--color-border) !important;
}
.hikashop_cart_page table.table-striped > tbody > tr:nth-of-type(odd) > *,
.hikashop_cart_page table.table-hover > tbody > tr:hover > *,
.hikashop_checkout_cart table.table-striped > tbody > tr:nth-of-type(odd) > *,
.hikashop_checkout_cart table.table-hover > tbody > tr:hover > * {
    --bs-table-accent-bg: transparent;
    background-color: transparent !important;
    color: inherit !important;
}

/* En-tête */
.hikashop_cart_page table thead,
.hikashop_checkout_cart table thead {
    background: transparent !important;
}
.hikashop_cart_page table thead th,
.hikashop_checkout_cart table thead th {
    padding: .4rem .5rem 1rem !important;
    font-family: var(--font-heading) !important;
    font-size: .72rem !important;
    font-weight: 700 !important;
    color: var(--color-text-light) !important;
    text-transform: uppercase !important;
    letter-spacing: 1.2px !important;
    text-align: left !important;
    border: none !important;
    border-bottom: 2px solid var(--color-border) !important;
    background: transparent !important;
}
.hikashop_cart_page table thead th.hikashop_cart_product_price_title,
.hikashop_cart_page table thead th.hikashop_cart_product_total_title,
.hikashop_checkout_cart table thead th.hikashop_cart_product_price_title,
.hikashop_checkout_cart table thead th.hikashop_cart_product_total_title { text-align: right !important; }
.hikashop_cart_page table thead th.hikashop_cart_product_quantity_title,
.hikashop_checkout_cart table thead th.hikashop_cart_product_quantity_title { text-align: center !important; }

/* Lignes produit */
.hikashop_cart_page table tbody td,
.hikashop_checkout_cart table tbody td {
    padding: 1rem .5rem !important;
    border: none !important;
    border-bottom: 1px solid var(--color-border) !important;
    vertical-align: middle !important;
    font-size: .95rem !important;
    color: var(--color-text) !important;
    background: transparent !important;
}
.hikashop_cart_page table tbody tr:last-of-type td,
.hikashop_checkout_cart table tbody tr:last-of-type td { border-bottom: 1px solid var(--color-border) !important; }

.hikashop_cart_product_name_value p.hikashop_cart_product_name {
    margin: 0 !important;
    font-weight: 600;
    color: var(--color-charcoal);
    line-height: 1.35;
}
.hikashop_cart_product_name_value p.hikashop_cart_product_name a {
    color: var(--color-charcoal);
    text-decoration: none;
    transition: color var(--transition);
}
.hikashop_cart_product_name_value p.hikashop_cart_product_name a:hover {
    color: var(--color-primary);
}
.hikashop_product_code_checkout {
    display: block;
    font-size: .75rem;
    font-weight: 400;
    color: var(--color-text-light);
    margin-top: .2rem;
}
.hikashop_cart_product_option_name, .hikashop_cart_product_custom_item_fields p {
    margin: .25rem 0 0 !important;
    font-size: .82rem;
    color: var(--color-text-light);
}

/* Masquer les lignes d'option/variant (ex: "changement de contenant") dans le panier et le checkout */
.hikashop_cart_page .hikashop_cart_option_name,
.hikashop_checkout_cart .hikashop_cart_option_name,
.hikashop_cart_dropdown_content .hikashop_cart_option_name {
    display: none !important;
}
/* Masquer aussi le bouton "Editer options" (crayon) qui permet de changer le contenant */
.hikashop_cart_page .edit_cart_product,
.hikashop_checkout_cart .edit_cart_product,
.hikashop_cart_dropdown_content .edit_cart_product {
    display: none !important;
}
/* Si le wrapper custom_item_fields ne contient plus rien d'utile, le masquer aussi */
.hikashop_cart_page .hikashop_cart_product_custom_item_fields:not(:has(p:not(.hikashop_cart_option_name))),
.hikashop_checkout_cart .hikashop_cart_product_custom_item_fields:not(:has(p:not(.hikashop_cart_option_name))) {
    display: none !important;
}

/* Image produit */
.hikashop_cart_page table tbody td img,
.hikashop_checkout_cart table tbody td img {
    max-width: 64px !important;
    max-height: 64px !important;
    width: 64px !important;
    height: 64px !important;
    border-radius: 10px;
    object-fit: cover;
    border: 1px solid var(--color-border);
}

/* Prix unitaire & total ligne — discrets pour laisser ressortir le grand total */
.hikashop_cart_product_price_value,
.hikashop_cart_product_total_value {
    text-align: right !important;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    font-size: .9rem !important;
}
.hikashop_cart_product_price_value .hikashop_product_price,
.hikashop_cart_product_total_value .hikashop_product_price {
    font-weight: 500 !important;
    font-size: .9rem !important;
    color: var(--color-charcoal);
}
.hikashop_cart_product_price_value .visible-phone { display: none; }

/* Colonne quantité — widget pilule + / - */
.hikashop_cart_product_quantity_value {
    text-align: center !important;
    white-space: nowrap;
}
.hikashop_checkout_cart .hikashop_product_quantity_input_div_default_main,
.hikashop_cart_page .hikashop_product_quantity_input_div_default_main {
    display: inline-flex;
    align-items: center;
    background: var(--color-cream);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    padding: 2px;
    gap: 0;
}
.hikashop_checkout_cart .hikashop_product_quantity_change_div_default,
.hikashop_cart_page .hikashop_product_quantity_change_div_default { display: inline-flex; }
.hikashop_checkout_cart a.hikashop_product_quantity_field_change_plus,
.hikashop_checkout_cart a.hikashop_product_quantity_field_change_minus,
.hikashop_cart_page a.hikashop_product_quantity_field_change_plus,
.hikashop_cart_page a.hikashop_product_quantity_field_change_minus {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--color-white);
    color: var(--color-charcoal);
    border-radius: 999px;
    font-weight: 700;
    font-size: 1.1rem;
    line-height: 1;
    text-decoration: none;
    transition: background var(--transition), color var(--transition);
    border: 1px solid transparent;
}
.hikashop_checkout_cart a.hikashop_product_quantity_field_change_plus:hover,
.hikashop_checkout_cart a.hikashop_product_quantity_field_change_minus:hover,
.hikashop_cart_page a.hikashop_product_quantity_field_change_plus:hover,
.hikashop_cart_page a.hikashop_product_quantity_field_change_minus:hover {
    background: var(--color-primary);
    color: var(--color-white);
}
.hikashop_checkout_cart input.hikashop_product_quantity_field,
.hikashop_cart_page input.hikashop_product_quantity_field {
    width: 38px !important;
    text-align: center;
    background: transparent;
    border: none !important;
    color: var(--color-charcoal);
    font-weight: 700;
    font-size: .95rem;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    -moz-appearance: textfield;
}
.hikashop_checkout_cart input.hikashop_product_quantity_field::-webkit-outer-spin-button,
.hikashop_checkout_cart input.hikashop_product_quantity_field::-webkit-inner-spin-button,
.hikashop_cart_page input.hikashop_product_quantity_field::-webkit-outer-spin-button,
.hikashop_cart_page input.hikashop_product_quantity_field::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.hikashop_checkout_cart input.hikashop_product_quantity_field:focus,
.hikashop_cart_page input.hikashop_product_quantity_field:focus {
    outline: none;
    box-shadow: none !important;
}

/* Refresh button — masqué, AJAX natif */
.hikashop_checkout_cart .hikashop_cart_product_quantity_refresh,
.hikashop_cart_page .hikashop_cart_product_quantity_refresh,
.hikashop_checkout_cart td.hikashop_cart_product_quantity_value .hikashop_cart_product_quantity_refresh,
.hikashop_cart_page td.hikashop_cart_product_quantity_value .hikashop_cart_product_quantity_refresh {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}
/* Purge défensive : tout <img> parasite (ex: refresh.png résiduel) et
   tout <input> type="submit/button" orphelin dans la cellule quantité */
.hikashop_checkout_cart td.hikashop_cart_product_quantity_value img,
.hikashop_cart_page td.hikashop_cart_product_quantity_value img,
.hikashop_checkout_cart td.hikashop_cart_product_quantity_value input[type="submit"],
.hikashop_checkout_cart td.hikashop_cart_product_quantity_value input[type="button"],
.hikashop_checkout_cart td.hikashop_cart_product_quantity_value input[type="image"],
.hikashop_cart_page td.hikashop_cart_product_quantity_value input[type="submit"],
.hikashop_cart_page td.hikashop_cart_product_quantity_value input[type="button"],
.hikashop_cart_page td.hikashop_cart_product_quantity_value input[type="image"] {
    display: none !important;
}
/* Nuclear option — seul le widget quantité et le bouton supprimer sont autorisés */
.hikashop_checkout_cart td.hikashop_cart_product_quantity_value > *:not(.hikashop_product_quantity_input_div_default_main):not(.hikashop_cart_product_quantity_delete):not(input.hikashop_product_quantity_field):not(.hikashop_product_quantity_change_div_default):not(select):not(span.visible-phone),
.hikashop_cart_page td.hikashop_cart_product_quantity_value > *:not(.hikashop_product_quantity_input_div_default_main):not(.hikashop_cart_product_quantity_delete):not(input.hikashop_product_quantity_field):not(.hikashop_product_quantity_change_div_default):not(select):not(span.visible-phone) {
    display: none !important;
}

/* Delete — icône corbeille propre (SVG mask sur <a>, image cachée) */
.hikashop_checkout_cart .hikashop_cart_product_quantity_delete,
.hikashop_cart_page .hikashop_cart_product_quantity_delete {
    display: inline-block;
    margin-left: .25rem;
    vertical-align: middle;
}
.hikashop_checkout_cart .hikashop_cart_product_quantity_delete a,
.hikashop_cart_page .hikashop_cart_product_quantity_delete a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: transparent;
    color: var(--color-text-light);
    transition: background var(--transition), color var(--transition);
    border: 1px solid transparent;
}
.hikashop_checkout_cart .hikashop_cart_product_quantity_delete a:hover,
.hikashop_cart_page .hikashop_cart_product_quantity_delete a:hover {
    background: #fdecea;
    color: #d64531;
    border-color: rgba(214, 69, 49, .3);
}
.hikashop_checkout_cart .hikashop_cart_product_quantity_delete a::before,
.hikashop_cart_page .hikashop_cart_product_quantity_delete a::before {
    content: '';
    width: 18px;
    height: 18px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3Cpath d='M10 11v6M14 11v6'/%3E%3Cpath d='M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3Cpath d='M10 11v6M14 11v6'/%3E%3Cpath d='M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E") center/contain no-repeat;
}
.hikashop_checkout_cart .hikashop_cart_product_quantity_delete a img,
.hikashop_cart_page .hikashop_cart_product_quantity_delete a img { display: none !important; }

/* FontAwesome v5 icônes (Hikashop) non rendues par FA6 Free — masquer les carrés vides.
   Le SVG trash est injecté via ::before sur le <a>, donc inutile de garder l'<i>. */
.hikashop_checkout_cart .hikashop_cart_product_quantity_delete i,
.hikashop_checkout_cart .hikashop_cart_product_quantity_delete .fa,
.hikashop_checkout_cart .hikashop_cart_product_quantity_delete .fas,
.hikashop_checkout_cart .hikashop_cart_product_quantity_delete .far,
.hikashop_checkout_cart .hikashop_cart_product_quantity_refresh i,
.hikashop_cart_page .hikashop_cart_product_quantity_delete i,
.hikashop_cart_page .hikashop_cart_product_quantity_delete .fa,
.hikashop_cart_page .hikashop_cart_product_quantity_delete .fas,
.hikashop_cart_page .hikashop_cart_product_quantity_delete .far,
.hikashop_cart_page .hikashop_cart_product_quantity_refresh i {
    display: none !important;
}

/* Bouton "Editer options" (.edit_cart_product) — remplacement icône crayon par SVG */
.hikashop_cart_product_name_value .edit_cart_product i,
.hikashop_cart_product_name_value .edit_cart_product .fa,
.hikashop_cart_product_name_value .edit_cart_product .fas {
    display: none !important;
}
.hikashop_cart_product_name_value .edit_cart_product {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-left: .4rem;
    border-radius: 50%;
    color: var(--color-text-light);
    background: transparent;
    vertical-align: middle;
    transition: background .2s, color .2s;
    text-decoration: none;
}
.hikashop_cart_product_name_value .edit_cart_product::before {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.hikashop_cart_product_name_value .edit_cart_product:hover {
    background: var(--color-primary-pale);
    color: var(--color-primary);
}

/* Lignes spacer (tr.margin) et cellules vides : invisibles (corrige les "barres noires") */
.hikashop_checkout_cart table tr.margin,
.hikashop_checkout_cart table tr.margin > td,
.hikashop_cart_page table tr.margin,
.hikashop_cart_page table tr.margin > td {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    height: .75rem;
}
.hikashop_checkout_cart table .hikashop_cart_empty_footer,
.hikashop_cart_page table .hikashop_cart_empty_footer {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
}

/* Rangées de totaux (sous-total / coupon / livraison / paiement / taxes / total) */
.hikashop_checkout_cart table tbody tr:has(.hikashop_cart_subtotal_title),
.hikashop_checkout_cart table tbody tr:has(.hikashop_cart_coupon_title),
.hikashop_checkout_cart table tbody tr:has(.hikashop_cart_shipping_title),
.hikashop_checkout_cart table tbody tr:has(.hikashop_cart_payment_title),
.hikashop_checkout_cart table tbody tr:has(.hikashop_cart_tax_title),
.hikashop_checkout_cart table tbody tr:has(.hikashop_cart_additional_title),
.hikashop_checkout_cart table tbody tr:has(.hikashop_cart_total_title),
.hikashop_cart_page table tbody tr:has(.hikashop_cart_subtotal_title),
.hikashop_cart_page table tbody tr:has(.hikashop_cart_total_title) {
    border-bottom: none;
}
.hikashop_cart_subtotal_title, .hikashop_cart_coupon_title, .hikashop_cart_shipping_title,
.hikashop_cart_payment_title, .hikashop_cart_tax_title, .hikashop_cart_additional_title,
.hikashop_cart_total_title {
    text-align: right !important;
    font-family: var(--font-heading) !important;
    font-weight: 600 !important;
    color: var(--color-text) !important;
    border-bottom: none !important;
    padding: .5rem .5rem !important;
}
.hikashop_cart_subtotal_value, .hikashop_cart_coupon_value, .hikashop_cart_shipping_value,
.hikashop_cart_payment_value, .hikashop_cart_tax_value, .hikashop_cart_additional_value,
.hikashop_cart_total_value {
    text-align: right !important;
    white-space: nowrap;
    border-bottom: none !important;
    padding: .5rem .5rem !important;
    font-variant-numeric: tabular-nums;
}

/* Ligne TOTAL — mise en avant forte */
.hikashop_cart_total_title {
    font-family: var(--font-heading) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: var(--color-charcoal) !important;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    border-top: 2px solid var(--color-charcoal) !important;
    padding-top: 1.1rem !important;
    padding-bottom: 1.1rem !important;
    vertical-align: middle !important;
}
.hikashop_cart_total_value {
    border-top: 2px solid var(--color-charcoal) !important;
    padding-top: 1.1rem !important;
    padding-bottom: 1.1rem !important;
    vertical-align: middle !important;
}
.hikashop_checkout_cart_final_total,
.hikashop_checkout_cart_final_total .hikashop_product_price {
    font-family: var(--font-heading) !important;
    font-size: 1.9rem !important;
    font-weight: 700 !important;
    font-style: normal !important;
    color: var(--color-primary) !important;
    letter-spacing: .3px;
    line-height: 1 !important;
}

/* ============================================================
   COUPON — markup via override show_block_coupon.php
   ============================================================ */
.hikashop_checkout_coupon {
    margin: 1rem 0;
    padding: .85rem 1rem;
    background: var(--color-cream);
    border: 1px dashed var(--color-border);
    border-radius: 12px;
    color: var(--color-text);
    box-sizing: border-box;
    width: 100%;
}
/* Ligne input + bouton */
.autemps_coupon_group {
    display: flex;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: .5rem;
    width: 100%;
}
.autemps_coupon_input {
    flex: 1 1 0;
    min-width: 0;
    padding: .65rem .9rem !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 8px !important;
    font-family: var(--font-body) !important;
    font-size: .9rem !important;
    background: var(--color-white) !important;
    color: var(--color-charcoal) !important;
    box-sizing: border-box;
    margin: 0 !important;
    height: auto;
    line-height: 1.35;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.autemps_coupon_input:focus {
    outline: none;
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(205, 108, 60, .15) !important;
}
.autemps_coupon_btn {
    flex: 0 0 auto;
    white-space: nowrap;
    padding: 0 1.25rem !important;
    margin: 0 !important;
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
    border: none !important;
    border-radius: 8px !important;
    font-family: var(--font-body) !important;
    font-size: .85rem !important;
    font-weight: 700 !important;
    letter-spacing: .3px;
    text-transform: uppercase;
    cursor: pointer;
    transition: background var(--transition), box-shadow var(--transition), transform .15s ease;
    box-shadow: 0 2px 8px rgba(205, 108, 60, .22);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    line-height: 1.2;
}
.autemps_coupon_btn:hover {
    background: var(--color-primary-dark) !important;
    box-shadow: 0 4px 12px rgba(205, 108, 60, .35);
    transform: translateY(-1px);
}
.autemps_coupon_btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(205, 108, 60, .25);
}
/* Coupon appliqué */
.autemps_coupon_applied {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    font-size: .95rem;
    color: var(--color-text);
}
.autemps_coupon_applied .hikashop_coupon_label {
    font-weight: 600;
    color: var(--color-primary);
}
.autemps_coupon_remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    color: #b53d3d;
    background: transparent;
    border: 1px solid transparent;
    transition: background var(--transition), border-color var(--transition);
    text-decoration: none;
    flex: 0 0 auto;
}
.autemps_coupon_remove::before {
    content: '';
    width: 16px;
    height: 16px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3Cpath d='M10 11v6M14 11v6'/%3E%3Cpath d='M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3Cpath d='M10 11v6M14 11v6'/%3E%3Cpath d='M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2'/%3E%3C/svg%3E") center/contain no-repeat;
}
.autemps_coupon_remove:hover {
    background: rgba(181, 61, 61, .08);
    border-color: rgba(181, 61, 61, .25);
}
/* Responsive : stack sur mobile */
@media (max-width: 480px) {
    .autemps_coupon_group { flex-wrap: wrap; }
    .autemps_coupon_input { flex: 1 1 100%; }
    .autemps_coupon_btn { flex: 1 1 100%; padding: .7rem 1rem !important; }
}

/* Bouton CHECKOUT (Terminer / Suivant) */
.hikashop_checkout_buttons {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin: 1.5rem 0 0;
    padding: 1rem 0 0;
    border-top: 1px solid var(--color-border);
}
.hikashop_checkout_buttons .buttons_left { flex: 1 1 auto; }
.hikashop_checkout_buttons .buttons_right { flex: 0 0 auto; }
.hikashop_checkout_buttons [style*="clear:both"] { display: none; }
.hikabtn_checkout_continue {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .85rem 1.75rem;
    background: transparent;
    color: var(--color-primary) !important;
    border: 2px solid var(--color-primary);
    border-radius: var(--radius-btn);
    font-family: var(--font-body);
    font-weight: 700;
    font-size: .9rem;
    text-decoration: none;
    transition: background var(--transition), color var(--transition), transform .2s ease;
}
.hikabtn_checkout_continue::before {
    content: '\2190';
    font-size: 1rem;
}
.hikabtn_checkout_continue:hover {
    background: var(--color-primary);
    color: var(--color-white) !important;
    transform: translateY(-2px);
}
.hikabtn_checkout_next,
#hikabtn_checkout_next {
    padding: .85rem 2.2rem !important;
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
    border: 2px solid var(--color-primary) !important;
    border-radius: var(--radius-btn) !important;
    font-family: var(--font-body) !important;
    font-size: .95rem !important;
    font-weight: 700 !important;
    cursor: pointer;
    transition: background var(--transition), border-color var(--transition), transform .2s ease, box-shadow var(--transition);
    min-width: 220px;
}
.hikabtn_checkout_next:hover,
#hikabtn_checkout_next:hover {
    background: var(--color-primary-dark) !important;
    border-color: var(--color-primary-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(205, 108, 60, .35);
}

/* Boutons OK / Annuler / Nouveau du bloc adresse checkout — masquer icônes FA v5 cassées et styler proprement */
.hikashop_checkout_address_ok_button i,
.hikashop_checkout_address_cancel_button i,
.hikashop_checkout_address_new_button i {
    display: none !important;
}
.hikashop_checkout_address_ok_button,
.hikashop_checkout_address_cancel_button,
.hikashop_checkout_address_new_button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: .7rem 1.4rem !important;
    margin: .25rem .25rem 0 0 !important;
    font-family: var(--font-body) !important;
    font-size: .9rem !important;
    font-weight: 600 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    border-radius: 999px !important;
    border: 1px solid transparent !important;
    cursor: pointer;
    transition: background var(--transition), color var(--transition), transform .2s ease, border-color var(--transition);
}
.hikashop_checkout_address_ok_button {
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
}
.hikashop_checkout_address_ok_button:hover {
    background: var(--color-primary-dark) !important;
    transform: translateY(-1px);
}
.hikashop_checkout_address_cancel_button {
    background: transparent !important;
    color: var(--color-text-light) !important;
    border-color: var(--color-border) !important;
}
.hikashop_checkout_address_cancel_button:hover {
    background: var(--color-cream) !important;
    color: var(--color-charcoal) !important;
    border-color: var(--color-charcoal) !important;
}
.hikashop_checkout_address_new_button {
    background: var(--color-primary-pale) !important;
    color: var(--color-primary) !important;
}
.hikashop_checkout_address_new_button:hover {
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
}

/* ----- Responsive — Panier empilé sur mobile (chaque ligne produit = carte) ----- */
@media (max-width: 768px) {
    .hikashop_cart_page,
    .hikashop_checkout_cart { padding: 1rem !important; }

    .hikashop_cart_page table,
    .hikashop_checkout_cart table { display: block !important; background: transparent !important; }
    .hikashop_cart_page table thead,
    .hikashop_checkout_cart table thead { display: none !important; }
    .hikashop_cart_page table tbody,
    .hikashop_checkout_cart table tbody { display: block !important; }
    .hikashop_cart_page table tfoot,
    .hikashop_checkout_cart table tfoot { display: block !important; }

    /* Chaque ligne produit = carte à part entière avec padding interne */
    .hikashop_cart_page table tbody tr,
    .hikashop_checkout_cart table tbody tr {
        display: grid !important;
        grid-template-columns: 72px minmax(0, 1fr);
        grid-auto-rows: auto;
        column-gap: 1rem;
        row-gap: .45rem;
        padding: 1rem 1.1rem !important;
        margin: 0 0 .9rem !important;
        background: var(--color-cream-light, #faf6f0) !important;
        border: 1px solid var(--color-border) !important;
        border-radius: 14px !important;
        box-shadow: 0 2px 6px rgba(42, 38, 34, .04) !important;
        align-items: center;
        box-sizing: border-box;
    }

    /* Les td : zéro padding propre, le breathing room vient du padding de la tr */
    .hikashop_cart_page table tbody td,
    .hikashop_checkout_cart table tbody td {
        padding: 0 !important;
        border: none !important;
        background: transparent !important;
        font-size: .95rem !important;
        min-width: 0;
    }

    /* Neutraliser par défaut les labels ::before injectés par HikaShop (data-title).
       Les cellules que je veux labelliser réinjectent leur label ci-dessous avec spécificité renforcée. */
    .hikashop_cart_page table tbody td::before,
    .hikashop_checkout_cart table tbody td::before {
        content: none !important;
        display: none !important;
    }

    /* Grille produit : image + nom en haut, puis les lignes prix pleine largeur dessous */
    .hikashop_checkout_cart .hikashop_cart_product_image_value,
    .hikashop_cart_page .hikashop_cart_product_image_value {
        grid-row: 1 !important;
        grid-column: 1 !important;
        align-self: start;
    }
    .hikashop_checkout_cart .hikashop_cart_product_image_value img,
    .hikashop_cart_page .hikashop_cart_product_image_value img {
        width: 72px !important;
        height: 72px !important;
        object-fit: cover;
        border-radius: 10px;
        display: block;
    }
    .hikashop_checkout_cart .hikashop_cart_product_name_value,
    .hikashop_cart_page .hikashop_cart_product_name_value {
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center;
        font-weight: 600;
        color: var(--color-text);
        font-size: 1rem !important;
        line-height: 1.3;
    }

    /* Ligne prix unitaire : pleine largeur, label gauche / valeur flush-right */
    .hikashop_checkout_cart .hikashop_cart_product_price_value,
    .hikashop_cart_page .hikashop_cart_product_price_value {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        display: flex !important;
        justify-content: space-between;
        align-items: baseline;
        gap: 1rem;
        font-size: .9rem !important;
        color: var(--color-text) !important;
        padding-top: .35rem !important;
        border-top: 1px dashed var(--color-border) !important;
    }
    .hikashop_checkout_cart table tbody td.hikashop_cart_product_price_value::before,
    .hikashop_cart_page table tbody td.hikashop_cart_product_price_value::before {
        content: "Prix à l’unité" !important;
        display: inline-block !important;
        position: static !important;
        top: auto !important; right: auto !important; bottom: auto !important; left: auto !important;
        font-size: .72rem !important;
        text-transform: uppercase;
        letter-spacing: .5px;
        color: var(--color-text-light) !important;
        font-weight: 500;
        flex: 0 0 auto;
        padding: 0 !important;
        margin: 0 !important;
        width: auto !important;
        height: auto !important;
    }

    /* Ligne total : pleine largeur, label gauche / valeur flush-right, mis en valeur */
    .hikashop_checkout_cart .hikashop_cart_product_total_value,
    .hikashop_cart_page .hikashop_cart_product_total_value {
        grid-column: 1 / -1 !important;
        grid-row: 3 !important;
        display: flex !important;
        justify-content: space-between;
        align-items: baseline;
        gap: 1rem;
        font-weight: 700;
        color: var(--color-primary);
        font-size: 1rem !important;
    }
    .hikashop_checkout_cart table tbody td.hikashop_cart_product_total_value::before,
    .hikashop_cart_page table tbody td.hikashop_cart_product_total_value::before {
        content: "Total" !important;
        display: inline-block !important;
        position: static !important;
        top: auto !important; right: auto !important; bottom: auto !important; left: auto !important;
        font-size: .72rem !important;
        text-transform: uppercase;
        letter-spacing: .5px;
        color: var(--color-text-light) !important;
        font-weight: 500;
        flex: 0 0 auto;
        padding: 0 !important;
        margin: 0 !important;
        width: auto !important;
        height: auto !important;
    }

    /* Quantité : pleine largeur, stepper + poubelle alignés à droite */
    .hikashop_checkout_cart .hikashop_cart_product_quantity_value,
    .hikashop_cart_page .hikashop_cart_product_quantity_value {
        grid-column: 1 / -1 !important;
        grid-row: 4 !important;
        display: flex !important;
        justify-content: flex-end;
        align-items: center;
        gap: .5rem;
        flex-wrap: wrap;
        padding-top: .35rem !important;
        border-top: 1px dashed var(--color-border) !important;
    }

    /* Lignes totaux (sous-total, frais, TVA, total final) : deux colonnes label/valeur */
    .hikashop_checkout_cart table tbody tr:has(.hikashop_cart_subtotal_title),
    .hikashop_checkout_cart table tbody tr:has(.hikashop_cart_coupon_title),
    .hikashop_checkout_cart table tbody tr:has(.hikashop_cart_shipping_title),
    .hikashop_checkout_cart table tbody tr:has(.hikashop_cart_payment_title),
    .hikashop_checkout_cart table tbody tr:has(.hikashop_cart_tax_title),
    .hikashop_checkout_cart table tbody tr:has(.hikashop_cart_additional_title),
    .hikashop_checkout_cart table tbody tr:has(.hikashop_cart_total_title) {
        grid-template-columns: 1fr auto !important;
        grid-template-rows: auto !important;
        padding: .5rem 1rem !important;
        margin: 0 !important;
        background: transparent !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
    .hikashop_checkout_cart table tbody tr:has(.hikashop_cart_total_title) {
        padding: 1rem !important;
        margin-top: .5rem !important;
        background: var(--color-cream, #fdf8f2) !important;
        border: 1px solid var(--color-primary-pale, var(--color-border)) !important;
        border-radius: 12px !important;
        font-weight: 700;
    }
    .hikashop_cart_empty_footer { display: none !important; }
    .hikashop_cart_subtotal_title, .hikashop_cart_coupon_title, .hikashop_cart_shipping_title,
    .hikashop_cart_payment_title, .hikashop_cart_tax_title, .hikashop_cart_additional_title,
    .hikashop_cart_total_title { grid-column: 1; text-align: left !important; }
    .hikashop_cart_subtotal_value, .hikashop_cart_coupon_value, .hikashop_cart_shipping_value,
    .hikashop_cart_payment_value, .hikashop_cart_tax_value, .hikashop_cart_additional_value,
    .hikashop_cart_total_value { grid-column: 2; text-align: right !important; }

    /* Boutons checkout empilés en bas */
    .hikashop_checkout_buttons { flex-direction: column; align-items: stretch; }
    .hikashop_checkout_buttons .buttons_left,
    .hikashop_checkout_buttons .buttons_right { width: 100%; }
    .hikabtn_checkout_continue,
    .hikabtn_checkout_next,
    #hikabtn_checkout_next { width: 100%; justify-content: center; }
}

/* Fallback navigateurs sans :has() — neutraliser bordures/fond spacer */
@supports not selector(:has(*)) {
    .hikashop_cart_empty_footer { border: none !important; background: transparent !important; }
}

/* Pages HikaShop user */
.hikashop_user_cpanel, .hikashop_user_addresses_main,
.hikashop_order_page_user, .hikashop_order_main {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    padding: 2rem;
    box-shadow: 0 4px 16px rgba(42, 38, 34, .04);
    margin: 0 0 1.5rem;
}
.hikashop_user_cpanel a {
    display: inline-block;
    padding: .6rem 1.1rem;
    border: 2px solid var(--color-primary);
    color: var(--color-primary);
    border-radius: 10px;
    font-weight: 600;
    text-decoration: none;
    margin: .25rem;
    transition: background var(--transition), color var(--transition);
}
.hikashop_user_cpanel a:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

/* Alerts */
.com-users-login .alert, .com-users-registration .alert, .com-users-remind .alert,
.com-users-reset .alert, .hikashop_checkout_page .alert,
.hikashop_info_page .hikashop_success, .hikashop_info_page .hikashop_error {
    padding: 1rem 1.25rem;
    border-radius: 10px;
    margin: 0 0 1.25rem;
    font-size: .95rem;
    line-height: 1.5;
    border-left: 4px solid;
}
.alert-success, .hikashop_success {
    background: #e8f5ee; color: #1f6a42; border-color: #2e9e63;
}
.alert-danger, .alert-error, .hikashop_error {
    background: #fdecea; color: #8a2b1f; border-color: #d64531;
}
.alert-info {
    background: var(--color-cream); color: var(--color-charcoal); border-color: var(--color-primary);
}

/* --- Print --- */
@media print {
    .topbar, .site-header, .hero, .breadcrumbs-wrapper,
    .services-section, .cta-section, .site-footer,
    .back-to-top, .menu-toggle, .sidebar { display: none; }
    .site-main { padding: 0; }
    .content-layout.with-sidebar { grid-template-columns: 1fr; }
    body { font-size: 12pt; color: #000; background: #fff; }
}

/* ========================================================
   Pages légales — CGV, Mentions légales, Politique de conf.
   ======================================================== */
.cgv-page {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 1rem;
}
.cgv-page .cgv-intro {
    font-size: 1rem;
    line-height: 1.75;
    color: var(--color-text-light);
    background: var(--color-cream);
    border-left: 4px solid var(--color-primary);
    padding: 1.1rem 1.4rem;
    border-radius: 0 10px 10px 0;
    margin-bottom: 2.5rem;
}
.cgv-page h2 {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--color-charcoal);
    margin: 2.2rem 0 .6rem;
    padding-bottom: .4rem;
    border-bottom: 1px solid var(--color-border);
}
.cgv-page h3 {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-primary);
    margin: 1.2rem 0 .4rem;
}
.cgv-page p {
    margin: 0 0 .85rem;
    line-height: 1.7;
    color: var(--color-charcoal);
}
.cgv-page ul, .cgv-page ol {
    margin: 0 0 1rem 1.4rem;
    line-height: 1.7;
    color: var(--color-charcoal);
}
.cgv-page li { margin-bottom: .35rem; }
.cgv-page a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.cgv-page a:hover { color: var(--color-primary-dark); }
.cgv-page .cgv-date {
    margin-top: 2.5rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--color-border);
    font-size: .82rem;
    color: var(--color-text-light);
    text-align: right;
}


/* ========== Tableau des horaires (page Contact) ========== */
.horaires-table {
    display: grid;
    grid-template-columns: max-content max-content 1fr;
    gap: .35rem 1.5rem;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
    box-shadow: 0 2px 8px rgba(42, 38, 34, .06);
    margin: 1rem 0 1.25rem;
}
.horaires-table .horaires-row { display: contents; }
.horaires-table .horaires-row > div {
    padding: .55rem 0;
    border-bottom: 1px solid var(--color-border);
}
.horaires-table .horaires-row:last-child > div { border-bottom: 0; }
.horaires-table .horaires-day {
    font-weight: 600;
    color: var(--color-charcoal);
}
.horaires-table .horaires-time {
    color: var(--color-primary);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.horaires-table .horaires-note {
    color: #6b635b;
    font-size: .92rem;
}
.horaires-table .horaires-note em {
    font-style: normal;
    color: var(--color-primary);
    font-weight: 500;
}
.horaires-table .horaires-closed .horaires-time,
.horaires-table .horaires-closed .horaires-day { color: #9a9189; }
@media (max-width: 640px) {
    .horaires-table {
        display: block;
        padding: 1rem 1.25rem;
    }
    .horaires-table .horaires-row {
        display: block;
        padding: .65rem 0;
        border-bottom: 1px solid var(--color-border);
    }
    .horaires-table .horaires-row > div {
        padding: .15rem 0;
        border-bottom: 0;
    }
    .horaires-table .horaires-row:last-child { border-bottom: 0; }
    .horaires-table .horaires-day { font-size: 1.05rem; }
}

/* ===== Contenances en pastilles (listing produits) - ajout 2026-05-25 ===== */
.hikashop_product_characteristic_on_listing{margin:8px 0 12px;text-align:center}
.hikashop_product_characteristic_name_on_listing{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:#a89589;margin-bottom:8px}
.hikashop_product_characteristic_values_on_listing{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}
.hikashop_product_characteristic_value_on_listing{display:inline-block;padding:3px 13px;font-size:.8rem;line-height:1.55;color:#cd6c3c;background:#fbf3ee;border:1px solid #e7c3ad;border-radius:999px;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease}
.hikashop_product_characteristic_value_on_listing:hover{background:#cd6c3c;color:#fff;border-color:#cd6c3c}

/* ===== Fiche produit a variantes : pas de double titre ni bande blanche (2026-05-25) ===== */
[id^="hikashop_product_name_"] .hikashop_product_variant_subname{display:none !important}
.hikashop_product_main_image_subdiv img{margin-top:0 !important}

/* FontAwesome : @font-face manquants + styles (fix icones solid/regular/brands) 2026-05-25 */
@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url("/media/vendor/fontawesome-free/webfonts/fa-solid-900.woff2") format("woff2"),url("/media/vendor/fontawesome-free/webfonts/fa-solid-900.ttf") format("truetype")}
@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url("/media/vendor/fontawesome-free/webfonts/fa-regular-400.woff2") format("woff2")}
@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url("/media/vendor/fontawesome-free/webfonts/fa-brands-400.woff2") format("woff2")}
.fa,.fas,.fa-solid{font-family:"Font Awesome 6 Free";font-weight:900}
.far,.fa-regular{font-family:"Font Awesome 6 Free";font-weight:400}
.fab,.fa-brands{font-family:"Font Awesome 6 Brands";font-weight:400}

/* Adresse checkout : Prenom|Nom et Code postal|Ville sur 2 colonnes (flex v2 2026-05-25) */
.hika_address_field .hkform-horizontal{display:flex !important;flex-wrap:wrap;column-gap:24px;row-gap:0}
.hika_address_field .hkform-horizontal > .hkform-group{float:none !important;width:auto !important;margin-right:0 !important;flex:1 1 100%}
.hika_address_field .hkform-horizontal > .hikashop_address_address_firstname,
.hika_address_field .hkform-horizontal > .hikashop_address_address_lastname,
.hika_address_field .hkform-horizontal > .hikashop_address_address_post_code,
.hika_address_field .hkform-horizontal > .hikashop_address_address_city{flex:1 1 0;min-width:0}
@media(max-width:480px){.hika_address_field .hkform-horizontal > .hkform-group{flex:1 1 100%}}

/* Masquer le bouton "modifier" (popup iframe Hikashop non stylable) - garde quantite +/- et supprimer - 2026-05-25 */
a.edit_cart_product{display:none !important}

/* Pas de soulignement sous les liens contenant une icone FontAwesome - 2026-05-25 */
a:has(i[class*="fa-"]),a:has(i.fa),a:has(i.fas),a:has(i.far),a:has(i.fab){text-decoration:none !important}
a:has(i[class*="fa-"]):hover,a:has(i.fa):hover,a:has(i.fas):hover,a:has(i.far):hover,a:has(i.fab):hover{text-decoration:none !important}

/* Masquer bouton "Ajouter a vos favoris" (wishlist non souhaitee) - 2026-05-25 */
.hikawishlist{display:none !important}

/* Pictogrammes de danger sur fiche produit - inline, taille 55px - 2026-05-28 */
.produit-pictos{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.produit-picto{width:55px;height:55px;object-fit:contain;display:inline-block}
