/* ==========================================================
   IXOB DESKTOP V2 - couche visuelle légère
   Ne remplace pas global.css, surcharge uniquement le desktop
   ========================================================== */

:root {
    --ixob-blue: #1FA9E5;
    --ixob-blue-dark: #168FC5;
    --ixob-blue-soft: #EAF8FF;
    --ixob-yellow: #f6b21a;
    --ixob-red: #ef1941;
    --ixob-text: #263238;
    --ixob-muted: #667085;
    --ixob-border: #d9e2ef;
    --ixob-bg: #F5F7F9;
}

body {
    background: var(--ixob-bg);
    color: var(--ixob-text);
}

#page.ixob-v2-page {
    min-width: 1020px;
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: 18px !important;
    padding-right: 18px !important;
    box-sizing: border-box;
}

.ixob-v2-wrap,
#header.ixob-v2-header,
#ixob_v2_menu,
.ixob-v2-reassurance,
#footer.ixob-v2-footer {
    min-width: 1020px;
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
}

#columns {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
}

/* Bandeau haut */
#ixob_top_promo {
    height: 38px;
    background: #ffffff;
    border: 1px solid var(--ixob-border);
    border-radius: 0 0 10px 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    font-size: 13px;
    color: var(--ixob-muted);
    box-shadow: 0 2px 8px rgba(47, 111, 143, 0.05);
}

#ixob_top_promo .ixob-promo-red {
    color: var(--ixob-red);
    font-weight: bold;
}

#ixob_top_promo iframe {
    display: block;
}

/* Header principal */
#header.ixob-v2-header {
    float: none !important;
    position: relative;
    min-height: 126px !important;
    height: auto !important;
    margin-top: 10px;
    padding: 18px 24px;
    background: #ffffff;
    border: 1px solid var(--ixob-border);
    border-bottom: 0;
    border-radius: 12px 12px 0 0;
    box-shadow: 0 4px 15px rgba(16, 24, 40, 0.06);
    overflow: visible;
    display: flex;
    align-items: center;
    gap: 26px;
}

#header_logo.ixob-v2-logo {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    z-index: 4;
    flex: 0 0 270px;
    width: 270px;
    color: var(--ixob-muted) !important;
    text-decoration: none !important;
    font-size: 13px !important;
    line-height: 17px;
    text-align: left;
}

#header_logo.ixob-v2-logo img.logo {
    display: block !important;
    width: 255px;
    max-width: 100%;
    height: auto;
    margin: 0 0 6px 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
}

#header_logo.ixob-v2-logo span {
    display: block;
    padding-left: 4px;
}

#header_right.ixob-v2-header-right {
    position: relative;
    width: auto !important;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0 !important;
    display: flex;
    align-items: center;
    gap: 18px;
}

/* Recherche header existante : conserve #searchid et #result */
#search_block_top {
    float: none !important;
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: auto !important;
    flex: 1 1 auto;
    min-width: 340px;
    margin: 0 !important;
    z-index: 6;
}

#search_block_top form {
    margin: 0;
    padding: 0;
    width: 100%;
}

.ixob-v2-search-shell {
    display: flex;
    align-items: stretch;
    width: 100%;
}

#searchid {
    width: calc(100% - 58px) !important;
    min-width: 260px;
    height: 44px !important;
    padding: 0 16px !important;
    margin: 0 !important;
    border: 2px solid var(--ixob-blue) !important;
    border-right: 0 !important;
    border-radius: 9px 0 0 9px !important;
    background: #fff !important;
    color: var(--ixob-text);
    font-size: 15px !important;
    line-height: 44px !important;
    box-sizing: border-box;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

#search_block_top input[type="image"] {
    width: 58px !important;
    height: 44px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 9px 9px 0 !important;
    background: var(--ixob-blue) !important;
    cursor: pointer;
}

#search_block_top div[style*="blocsrarch_03"],
#search_block_top div[style*="blocsrarch_04"] {
    background: none !important;
    height: auto !important;
}

#search_block_top div[style*="width:470px"],
#search_block_top div[style*="width:500px"] {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
}

#result {
    position: absolute !important;
    top: 52px !important;
    left: 0 !important;
    width: calc(100% - 15px) !important;
    min-width: 320px;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 0 0 10px 10px;
    background: #fff !important;
    box-shadow: 0 12px 28px rgba(16, 24, 40, 0.15);
    z-index: 99999 !important;
    overflow: hidden;
}

.show {
    padding: 10px 12px !important;
    border-bottom: 1px solid #eef2f7 !important;
    font-size: 13px !important;
    line-height: 16px !important;
    height: auto !important;
    min-height: 42px;
    color: var(--ixob-text);
}

.show:hover {
    background: var(--ixob-blue) !important;
    color: #fff !important;
}

/* Compte / contact */
#header_user {
    position: relative;
    right: auto;
    top: auto;
    width: 180px;
    flex: 0 0 180px;
    z-index: 5;
}

#header_user ul,
#header_user li {
    list-style: none;
    margin: 0;
    padding: 0;
}

#header_user a {
    color: var(--ixob-text) !important;
    font-size: 13px !important;
    text-decoration: none !important;
}

#header_user a:hover {
    color: var(--ixob-blue) !important;
    text-decoration: none !important;
}

/* Panier */
#cart_block {
    position: relative !important;
    right: auto;
    top: auto;
    width: 170px !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    z-index: 10;
}

#cart_block .title_block,
#cart_block h4.title_block {
    display: none !important;
}

#cart_block_summary {
    display: block !important;
    padding: 11px 13px !important;
    border-radius: 10px;
    background: var(--ixob-blue) !important;
    color: #fff !important;
    font-size: 13px;
    font-weight: bold;
    line-height: 18px;
    box-shadow: 0 6px 16px rgba(47, 111, 143, 0.20);
    cursor: pointer;
}

#cart_block_summary:before {
    content: "Panier";
    display: block;
    font-size: 12px;
    font-weight: normal;
    opacity: 0.9;
}

#cart_block_summary span {
    color: #fff !important;
}

#cart_block_summary .ajax_cart_quantity {
    display: inline-block !important;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    margin-right: 4px;
    border-radius: 20px;
    background: var(--ixob-yellow);
    color: #111 !important;
    text-align: center;
    line-height: 18px;
    font-weight: bold;
}

#cart_block_list {
    position: absolute;
    right: 0;
    top: 58px;
    width: 315px !important;
    background: #fff;
    border: 1px solid var(--ixob-border);
    border-radius: 10px;
    box-shadow: 0 16px 38px rgba(16, 24, 40, 0.18);
    padding: 10px;
    z-index: 9999;
}

#cart_block_list.collapsed {
    display: none;
}

#cart_block:hover #cart_block_list {
    display: block;
}

#cart_block_list dt {
    padding: 8px 0 !important;
    border-bottom: 1px solid #eef2f7 !important;
}

#cart_block_list a {
    color: var(--ixob-blue) !important;
    text-decoration: none !important;
}

#cart-prices {
    border-top: 1px solid #eef2f7 !important;
    margin-top: 8px;
    padding-top: 8px !important;
}

#cart-buttons a,
#button_order_cart {
    border-radius: 6px !important;
}

/* Menu */
#ixob_v2_menu {
    clear: both;
    float: none;
    height: 44px;
    background: #ffffff;
    border: 1px solid var(--ixob-border);
    border-top: 0;
    display: flex;
    align-items: stretch;
    padding: 0 14px;
    box-shadow: 0 4px 15px rgba(16, 24, 40, 0.04);
}

#ixob_v2_menu a {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 0 14px;
    color: var(--ixob-text);
    font-size: 14px;
    text-decoration: none;
    border-bottom: 3px solid transparent;
    box-sizing: border-box;
    white-space: nowrap;
}

#ixob_v2_menu a:hover {
    color: var(--ixob-blue);
    border-bottom-color: var(--ixob-blue);
    text-decoration: none;
    background: var(--ixob-blue-soft);
}

/* Réassurance */
.ixob-v2-reassurance {
    height: 38px;
    background: #ffffff;
    border: 1px solid var(--ixob-border);
    border-top: 0;
    border-radius: 0 0 12px 12px;
    display: flex;
    align-items: center;
    justify-content: space-around;
    font-size: 13px;
    color: var(--ixob-muted);
    margin-bottom: 12px;
}

.ixob-v2-reassurance span {
    position: relative;
    padding-left: 18px;
}

.ixob-v2-reassurance span:before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--ixob-blue);
    font-weight: bold;
}

/* Sticky léger */
.ixob-v2-sticky {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 58px;
    background: rgba(255,255,255,0.98);
    border-bottom: 1px solid var(--ixob-border);
    box-shadow: 0 8px 24px rgba(16, 24, 40, 0.12);
    z-index: 99998;
    display: none;
}

.ixob-v2-sticky-inner {
    width: 100%;
    min-width: 1020px;
    max-width: none;
    height: 58px;
    margin: 0;
    padding-left: 18px;
    padding-right: 18px;
    display: flex;
    align-items: center;
    gap: 18px;
    box-sizing: border-box;
}

.ixob-v2-sticky-logo img {
    width: 118px;
    height: auto;
    display: block;
}

.ixob-v2-sticky-search-link {
    flex: 1;
    height: 38px;
    line-height: 38px;
    padding: 0 15px;
    border: 2px solid var(--ixob-blue);
    border-radius: 8px;
    color: var(--ixob-muted) !important;
    background: #fff;
    font-size: 14px;
    text-decoration: none !important;
}

.ixob-v2-sticky-search-link:hover {
    text-decoration: none !important;
    color: var(--ixob-blue) !important;
}

.ixob-v2-sticky-cart {
    width: 130px;
    height: 38px;
    line-height: 38px;
    text-align: center;
    border-radius: 8px;
    background: var(--ixob-blue);
    color: #fff !important;
    font-weight: bold;
    text-decoration: none !important;
}

.ixob-v2-sticky-cart span {
    display: inline-block;
    min-width: 18px;
    height: 18px;
    margin-left: 5px;
    border-radius: 20px;
    background: var(--ixob-yellow);
    color: #111;
    line-height: 18px;
}

body.ixob-sticky-on .ixob-v2-sticky {
    display: block;
}

#columns {
    box-sizing: border-box;
}

/* Footer */
#footer.ixob-v2-footer {
    float: none !important;
    clear: both;
    margin-top: 22px;
    padding: 0 !important;
    background: #263238 !important;
    color: #fff;
    border-radius: 12px 12px 0 0;
    overflow: hidden;
    font-size: 12px;
}

.ixob-v2-footer-top {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 22px;
    background: #2f3d45;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}

.ixob-v2-footer-top div {
    flex: 1;
}

.ixob-v2-footer-top strong {
    display: block;
    margin-bottom: 4px;
    font-size: 13px;
    color: #fff;
}

.ixob-v2-footer-top span {
    display: block;
    color: rgba(255,255,255,0.75);
    line-height: 16px;
}

#footer .ixob-v2-footer-links {
    margin: 0;
    padding: 14px 18px 8px 18px;
    color: rgba(255,255,255,0.75);
}

#footer .ixob-v2-footer-links a {
    color: #fff !important;
    text-decoration: none;
}

#footer .ixob-v2-footer-links a:hover {
    text-decoration: underline;
}

.ixob-v2-copyright {
    display: inline-block;
    margin-left: 20px;
    color: rgba(255,255,255,0.75);
}

.ixob-v2-footer-small {
    margin: 0;
    padding: 0 18px 16px 18px;
    font-size: 11px;
    color: rgba(255,255,255,0.65);
    text-align: center;
}

.ixob-v2-footer-small a {
    color: #fff !important;
}

@media screen and (max-width: 1020px) {
    .ixob-v2-sticky {
        display: none !important;
    }
}


/* ==========================================================
   IXOB DESKTOP V2.3 - correction header test
   Objectif : ne plus dépendre de HOOK_TOP dans le thème V2
   ========================================================== */

#header.ixob-v2-header {
    height: 108px !important;
    min-height: 108px !important;
    overflow: visible !important;
}

#header_right.ixob-v2-header-right {
    height: 108px !important;
    min-height: 108px !important;
    overflow: visible !important;
}

#search_block_top.ixob-v2-search {
    float: none !important;
    position: absolute !important;
    left: 300px !important;
    right: 370px !important;
    top: 30px !important;
    width: auto !important;
    margin: 0 !important;
    z-index: 60 !important;
}

#search_block_top.ixob-v2-search form {
    display: block;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

#search_block_top .ixob-v2-search-shell {
    display: flex;
    width: 100%;
    max-width: 680px;
    height: 46px;
    border-radius: 9px;
    box-shadow: 0 3px 12px rgba(47, 111, 143, 0.12);
}

#search_block_top.ixob-v2-search #searchid {
    flex: 1 1 auto;
    width: auto !important;
    min-width: 0;
    height: 46px !important;
    padding: 0 17px !important;
    border: 2px solid var(--ixob-blue) !important;
    border-right: 0 !important;
    border-radius: 9px 0 0 9px !important;
    background: #fff !important;
    font-size: 15px !important;
    color: var(--ixob-text) !important;
    box-sizing: border-box;
}

#search_block_top .ixob-v2-search-submit {
    flex: 0 0 62px;
    width: 62px;
    height: 46px;
    border: 0;
    border-radius: 0 9px 9px 0;
    background: var(--ixob-blue);
    color: #fff;
    font-size: 28px;
    line-height: 46px;
    cursor: pointer;
    text-align: center;
    font-family: Arial, Verdana, sans-serif;
}

#search_block_top .ixob-v2-search-submit:hover {
    background: var(--ixob-blue-dark);
}

#search_block_top.ixob-v2-search #result {
    top: 52px !important;
    left: 0 !important;
    width: 100% !important;
    max-width: 680px;
    box-sizing: border-box;
}

#header_user.ixob-v2-account-links {
    position: absolute !important;
    right: 190px !important;
    top: 22px !important;
    width: 145px !important;
    height: auto !important;
    display: block !important;
    z-index: 55 !important;
    margin: 0 !important;
    clear: none !important;
    float: none !important;
}

#header_user.ixob-v2-account-links a {
    display: block;
    height: 28px;
    line-height: 28px;
    margin-bottom: 7px;
    padding: 0 10px;
    border: 1px solid var(--ixob-border);
    border-radius: 8px;
    background: #fff;
    color: var(--ixob-text) !important;
    font-size: 13px !important;
    font-weight: bold;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 2px 6px rgba(16, 24, 40, 0.04);
}

#header_user.ixob-v2-account-links a:hover {
    border-color: var(--ixob-blue);
    color: var(--ixob-blue) !important;
    background: var(--ixob-blue-soft);
}

#ixob_v2_cart.ixob-v2-cart-button {
    position: absolute;
    right: 18px;
    top: 22px;
    width: 150px;
    min-height: 57px;
    padding: 9px 10px 8px 48px;
    border-radius: 10px;
    background: var(--ixob-blue);
    color: #fff !important;
    text-decoration: none !important;
    box-shadow: 0 6px 16px rgba(47, 111, 143, 0.20);
    box-sizing: border-box;
    z-index: 55;
}

#ixob_v2_cart .ixob-v2-cart-icon {
    position: absolute;
    left: 12px;
    top: 16px;
    font-size: 23px;
    line-height: 24px;
}

#ixob_v2_cart .ixob-v2-cart-label {
    display: block;
    font-size: 12px;
    line-height: 15px;
    opacity: 0.95;
}

#ixob_v2_cart strong {
    display: block;
    font-size: 14px;
    line-height: 18px;
    color: #fff;
}

#ixob_v2_cart .ajax_cart_quantity {
    display: inline-block;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 20px;
    background: var(--ixob-yellow);
    color: #111 !important;
    text-align: center;
    line-height: 18px;
    font-weight: bold;
}

#ixob_v2_menu.ixob-v2-menu {
    height: 46px;
    align-items: center;
}

#ixob_v2_menu.ixob-v2-menu a {
    height: 46px;
    font-size: 15px;
}

.ixob-v2-reassurance {
    height: 40px;
    margin-bottom: 12px;
}

/* Le contenu central de la page d'accueil reste plus propre pendant le test */
body#index #columns {
    background: #fff !important;
    border-radius: 0;
    padding-top: 16px;
}

/* ==========================================================
   IXOB DESKTOP V2.4 - page accueil / index
   ========================================================== */

body#index #columns {
    width: 100% !important;
    min-width: 1020px !important;
    margin: 0 !important;
    padding: 18px 0 0 0 !important;
    background: transparent !important;
    box-sizing: border-box;
}

body#index #left_column {
    display: none !important;
}

body#index #center_column {
    float: none !important;
    width: 100% !important;
    min-width: 1020px !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
}

.ixob-home-v2 {
    width: 100%;
    box-sizing: border-box;
    font-family: Arial, Verdana, sans-serif;
    color: var(--ixob-text);
}

.ixob-home-v2 * {
    box-sizing: border-box;
}

.ixob-home-hero {
    display: flex;
    gap: 22px;
    align-items: stretch;
    min-height: 250px;
    padding: 36px 38px;
    border: 1px solid var(--ixob-border);
    border-radius: 16px;
    background: linear-gradient(135deg, #f8fbff 0%, #edf4ff 52%, #ffffff 100%);
    box-shadow: 0 8px 26px rgba(16, 24, 40, 0.08);
}

.ixob-home-hero-main {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
}

.ixob-home-kicker {
    display: inline-block;
    margin-bottom: 10px;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--ixob-blue-soft);
    color: var(--ixob-blue);
    font-size: 13px;
    font-weight: bold;
}

.ixob-home-hero h1 {
    margin: 0 0 14px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    color: #111827 !important;
    font-size: 34px !important;
    line-height: 40px !important;
    font-weight: 800;
}

.ixob-home-hero p {
    max-width: 850px;
    margin: 0;
    padding: 0;
    color: #3f4652;
    font-size: 17px;
    line-height: 28px;
}

.ixob-home-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}

.ixob-home-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 17px;
    border: 1px solid var(--ixob-border);
    border-radius: 9px;
    background: #fff;
    color: var(--ixob-blue) !important;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none !important;
    box-shadow: 0 3px 10px rgba(16, 24, 40, 0.05);
}

.ixob-home-btn:hover {
    border-color: var(--ixob-blue);
    background: var(--ixob-blue-soft);
    text-decoration: none !important;
}

.ixob-home-btn-primary {
    border-color: var(--ixob-blue);
    background: var(--ixob-blue);
    color: #fff !important;
}

.ixob-home-btn-primary:hover {
    background: var(--ixob-blue-dark);
    color: #fff !important;
}

.ixob-home-hero-side {
    flex: 0 0 310px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.ixob-home-tip {
    flex: 1;
    padding: 20px;
    border: 1px solid var(--ixob-border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(16, 24, 40, 0.06);
}

.ixob-home-tip strong,
.ixob-home-benefit-card strong {
    display: block;
    margin-bottom: 7px;
    color: #111827;
    font-size: 16px;
    line-height: 20px;
}

.ixob-home-tip span,
.ixob-home-benefit-card span {
    display: block;
    color: var(--ixob-muted);
    font-size: 13px;
    line-height: 20px;
}

.ixob-home-tip-blue {
    border-color: rgba(47, 111, 143, 0.18);
    background: var(--ixob-blue-soft);
}

.ixob-home-categories,
.ixob-home-brands {
    margin-top: 22px;
    padding: 26px;
    border: 1px solid var(--ixob-border);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(16, 24, 40, 0.05);
}

.ixob-home-section-title {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.ixob-home-section-title h2 {
    margin: 0 !important;
    padding: 0 !important;
    color: #111827;
    font-size: 22px !important;
    line-height: 28px !important;
}

.ixob-home-section-title p {
    margin: 0;
    padding: 0;
    color: var(--ixob-muted);
    font-size: 13px;
}

.ixob-home-category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.ixob-home-category-card {
    display: block;
    min-height: 82px;
    padding: 17px 18px;
    border: 1px solid var(--ixob-border);
    border-radius: 12px;
    background: #fbfdff;
    color: var(--ixob-text) !important;
    text-decoration: none !important;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.ixob-home-category-card:hover {
    border-color: var(--ixob-blue);
    box-shadow: 0 8px 18px rgba(47, 111, 143, 0.09);
    transform: translateY(-1px);
    text-decoration: none !important;
}

.ixob-home-category-card span {
    display: block;
    margin-bottom: 5px;
    color: var(--ixob-blue);
    font-size: 15px;
    font-weight: bold;
}

.ixob-home-category-card small {
    display: block;
    color: var(--ixob-muted);
    font-size: 12px;
    line-height: 17px;
}

.ixob-home-benefits-main {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 22px;
}

.ixob-home-benefit-card {
    padding: 22px;
    border: 1px solid var(--ixob-border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(16, 24, 40, 0.05);
}

.ixob-home-brand-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
}

.ixob-home-brand-grid a {
    display: block;
    min-height: 38px;
    padding: 0 10px;
    border: 1px solid var(--ixob-border);
    border-radius: 9px;
    background: #fbfdff;
    color: var(--ixob-text) !important;
    font-size: 13px;
    font-weight: bold;
    line-height: 38px;
    text-align: center;
    text-decoration: none !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ixob-home-brand-grid a:hover {
    border-color: var(--ixob-blue);
    background: var(--ixob-blue-soft);
    color: var(--ixob-blue) !important;
    text-decoration: none !important;
}


/* ==========================================================
   IXOB DESKTOP V2.6 - header pleine largeur + logo fondu
   Objectifs :
   - header/menu/réassurance vraiment à 100% de la largeur
   - éviter l'effet logo dans un carré blanc
   - bleu ciel proche du logo ixob
   ========================================================== */

:root {
    --ixob-blue: #1FA9E5;
    --ixob-blue-dark: #168FC5;
    --ixob-blue-soft: #EAF8FF;
    --ixob-border: #D9E2EA;
    --ixob-bg: #F4F7FA;
}

body {
    margin: 0 !important;
    background: var(--ixob-bg) !important;
}

#page.ixob-v2-page {
    width: 100% !important;
    max-width: none !important;
    min-width: 1020px !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
}

#ixob_top_promo,
#header.ixob-v2-header,
#ixob_v2_menu.ixob-v2-menu,
.ixob-v2-reassurance,
#footer.ixob-v2-footer {
    width: 100% !important;
    max-width: none !important;
    min-width: 1020px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
}

#ixob_top_promo {
    height: 36px !important;
    border-top: 0 !important;
    background: #fff !important;
}

#header.ixob-v2-header {
    height: 118px !important;
    min-height: 118px !important;
    margin-top: 0 !important;
    background: #fff !important;
    border-top: 0 !important;
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.06) !important;
}

#header_right.ixob-v2-header-right {
    height: 118px !important;
    min-height: 118px !important;
}

#header_logo.ixob-v2-logo {
    left: 32px !important;
    top: 18px !important;
    width: 245px !important;
    background: transparent !important;
}

#header_logo.ixob-v2-logo img.logo {
    max-width: 225px !important;
    background: transparent !important;
    mix-blend-mode: multiply;
}

#header_logo.ixob-v2-logo span {
    padding-left: 4px !important;
    color: #5F6B78 !important;
}

#search_block_top.ixob-v2-search {
    left: 330px !important;
    right: 520px !important;
    top: 34px !important;
}

#search_block_top .ixob-v2-search-shell {
    max-width: none !important;
    height: 46px !important;
    box-shadow: 0 3px 12px rgba(47, 111, 143, 0.10) !important;
}

#search_block_top.ixob-v2-search #searchid {
    border: 1px solid var(--ixob-blue) !important;
    border-right: 0 !important;
    height: 46px !important;
    line-height: 46px !important;
}

#search_block_top .ixob-v2-search-submit {
    background: var(--ixob-blue) !important;
    height: 46px !important;
    line-height: 46px !important;
}

#search_block_top .ixob-v2-search-submit:hover {
    background: var(--ixob-blue-dark) !important;
}

#header_user.ixob-v2-account-links {
    right: 288px !important;
    top: 28px !important;
}

#ixob_v2_cart.ixob-v2-cart-button {
    right: 32px !important;
    top: 28px !important;
    background: var(--ixob-blue) !important;
    box-shadow: 0 8px 18px rgba(47, 111, 143, 0.18) !important;
}

#ixob_v2_menu.ixob-v2-menu {
    height: 46px !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
    background: #fff !important;
    justify-content: flex-start !important;
}

#ixob_v2_menu.ixob-v2-menu a {
    height: 46px !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
}

#ixob_v2_menu.ixob-v2-menu a:first-child {
    padding-left: 0 !important;
}

#ixob_v2_menu.ixob-v2-menu a:hover {
    color: var(--ixob-blue) !important;
    border-bottom-color: var(--ixob-blue) !important;
    background: var(--ixob-blue-soft) !important;
}

.ixob-v2-reassurance {
    height: 40px !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
    background: #fff !important;
    justify-content: space-between !important;
    margin-bottom: 16px !important;
}

.ixob-v2-reassurance span:before {
    color: var(--ixob-blue) !important;
}

#columns {
    width: calc(100% - 52px) !important;
    max-width: none !important;
    margin-left: 26px !important;
    margin-right: 26px !important;
    box-sizing: border-box !important;
}

body#index #columns {
    width: calc(100% - 52px) !important;
    min-width: 0 !important;
    margin: 18px 26px 0 26px !important;
    padding: 0 !important;
}

body#index #center_column {
    min-width: 0 !important;
}

body#index .ixob-home-v2 {
    max-width: 1380px;
    margin-left: auto;
    margin-right: auto;
}

.ixob-v2-sticky-inner {
    width: 100% !important;
    max-width: none !important;
    min-width: 1020px !important;
    margin: 0 !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
}

.ixob-v2-sticky-search-link,
.ixob-v2-sticky-cart {
    border-color: var(--ixob-blue) !important;
}

.ixob-v2-sticky-cart {
    background: var(--ixob-blue) !important;
}


/* ==========================================================
   IXOB DESKTOP V2.7 - correction logo + bleu ciel logo
   ========================================================== */
:root {
    --ixob-blue: #1FA9E5;
    --ixob-blue-dark: #168FC5;
    --ixob-blue-soft: #EAF8FF;
    --ixob-border: #D8E7F0;
    --ixob-bg: #F5F8FB;
}

/* Header fond blanc continu : le logo ne doit plus apparaître dans un carré isolé */
#ixob_top_promo,
#header.ixob-v2-header,
#ixob_v2_menu.ixob-v2-menu,
.ixob-v2-reassurance {
    background: #fff !important;
}

#header.ixob-v2-header {
    height: 120px !important;
    min-height: 120px !important;
    overflow: visible !important;
}

#header_logo.ixob-v2-logo {
    display: block !important;
    position: absolute !important;
    left: 32px !important;
    top: 18px !important;
    width: 245px !important;
    height: 92px !important;
    z-index: 20 !important;
    overflow: visible !important;
    background: transparent !important;
    color: #5F6B78 !important;
    text-decoration: none !important;
}

#header_logo.ixob-v2-logo img,
#header_logo.ixob-v2-logo img.logo {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 225px !important;
    max-width: 225px !important;
    height: auto !important;
    margin: 0 0 6px 0 !important;
    padding: 0 !important;
    position: static !important;
    float: none !important;
    background: transparent !important;
    mix-blend-mode: normal !important;
    filter: none !important;
}

#header_logo.ixob-v2-logo span {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    padding-left: 4px !important;
    color: #5F6B78 !important;
    font-size: 13px !important;
    line-height: 18px !important;
}

/* Bleu ciel logo : recherche, panier, hover, sticky */
#search_block_top.ixob-v2-search #searchid {
    border-color: var(--ixob-blue) !important;
}

#search_block_top .ixob-v2-search-submit,
#ixob_v2_cart.ixob-v2-cart-button,
.ixob-v2-sticky-cart {
    background: var(--ixob-blue) !important;
}

#search_block_top .ixob-v2-search-submit:hover,
#ixob_v2_cart.ixob-v2-cart-button:hover,
.ixob-v2-sticky-cart:hover {
    background: var(--ixob-blue-dark) !important;
}

#ixob_v2_menu.ixob-v2-menu a:hover,
#header_user.ixob-v2-account-links a:hover,
.ixob-v2-sticky-search-link:hover {
    color: var(--ixob-blue) !important;
}

#ixob_v2_menu.ixob-v2-menu a:hover {
    border-bottom-color: var(--ixob-blue) !important;
    background: var(--ixob-blue-soft) !important;
}

.ixob-v2-reassurance span:before {
    color: var(--ixob-blue) !important;
}

.ixob-v2-sticky-search-link {
    border-color: var(--ixob-blue) !important;
}

/* ==========================================================
   IXOB DESKTOP V2.8 - logo sécurisé + recherche flexible
   ========================================================== */
:root {
    --ixob-blue: #20A9E6;
    --ixob-blue-dark: #178FC8;
    --ixob-blue-soft: #EAF8FF;
}

/* Header en vraie ligne flexible : le bloc recherche prend l'espace disponible */
#header.ixob-v2-header {
    display: flex !important;
    align-items: center !important;
    gap: 26px !important;
    height: 124px !important;
    min-height: 124px !important;
    padding: 0 34px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    overflow: visible !important;
}

#header_logo.ixob-v2-logo {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    flex: 0 0 255px !important;
    width: 255px !important;
    height: auto !important;
    z-index: 80 !important;
    display: block !important;
    text-decoration: none !important;
    background: transparent !important;
    overflow: visible !important;
}

/* On garde l'image dans le HTML, mais on affiche surtout un logo texte fiable pour éviter le carré blanc / logo absent. */
#header_logo.ixob-v2-logo img.logo {
    display: none !important;
}

#header_logo.ixob-v2-logo .ixob-v2-wordmark {
    display: flex !important;
    align-items: baseline !important;
    height: 70px !important;
    line-height: 70px !important;
    letter-spacing: -5px !important;
    white-space: nowrap !important;
}

#header_logo.ixob-v2-logo .ixob-v2-wordmark-main {
    display: inline-block !important;
    color: #20A9E6 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 76px !important;
    font-weight: 900 !important;
    line-height: 70px !important;
}

#header_logo.ixob-v2-logo .ixob-v2-wordmark-fr {
    display: inline-block !important;
    margin-left: 4px !important;
    color: #F6B21A !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 34px !important;
    font-weight: 900 !important;
    line-height: 34px !important;
    letter-spacing: -2px !important;
}

#header_logo.ixob-v2-logo .ixob-v2-logo-subtitle {
    display: block !important;
    margin-top: 4px !important;
    padding-left: 0 !important;
    color: #5F6B78 !important;
    font-size: 13px !important;
    line-height: 18px !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
}

#header_right.ixob-v2-header-right {
    position: relative !important;
    flex: 1 1 auto !important;
    width: auto !important;
    height: 124px !important;
    min-height: 124px !important;
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
    margin: 0 !important;
    overflow: visible !important;
}

#search_block_top.ixob-v2-search {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 420px !important;
    max-width: none !important;
    margin: 0 10px 0 0 !important;
    z-index: 75 !important;
}

#search_block_top.ixob-v2-search form,
#search_block_top .ixob-v2-search-shell {
    width: 100% !important;
    max-width: none !important;
}

#search_block_top .ixob-v2-search-shell {
    display: flex !important;
    height: 48px !important;
    border-radius: 10px !important;
    box-shadow: 0 4px 13px rgba(32, 169, 230, 0.12) !important;
}

#search_block_top.ixob-v2-search #searchid {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    height: 48px !important;
    line-height: 48px !important;
    padding: 0 18px !important;
    border: 2px solid var(--ixob-blue) !important;
    border-right: 0 !important;
    border-radius: 10px 0 0 10px !important;
    font-size: 16px !important;
}

#search_block_top .ixob-v2-search-submit {
    flex: 0 0 70px !important;
    width: 70px !important;
    height: 48px !important;
    line-height: 48px !important;
    border-radius: 0 10px 10px 0 !important;
    background: var(--ixob-blue) !important;
    color: #fff !important;
}

#search_block_top.ixob-v2-search #result {
    width: 100% !important;
    max-width: none !important;
    top: 55px !important;
}

#header_user.ixob-v2-account-links {
    position: relative !important;
    right: auto !important;
    top: auto !important;
    flex: 0 0 150px !important;
    width: 150px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    z-index: 70 !important;
}

#header_user.ixob-v2-account-links a {
    display: block !important;
    height: 34px !important;
    line-height: 34px !important;
    padding: 0 12px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 8px !important;
    background: #fff !important;
    text-align: center !important;
    color: var(--ixob-text) !important;
    font-size: 13px !important;
    font-weight: bold !important;
    text-decoration: none !important;
    box-shadow: 0 3px 10px rgba(16, 24, 40, 0.05) !important;
}

#ixob_v2_cart.ixob-v2-cart-button {
    position: relative !important;
    right: auto !important;
    top: auto !important;
    flex: 0 0 170px !important;
    width: 170px !important;
    height: 66px !important;
    box-sizing: border-box !important;
    z-index: 70 !important;
    background: var(--ixob-blue) !important;
    box-shadow: 0 9px 19px rgba(32, 169, 230, 0.20) !important;
}

/* Si l'écran desktop est un peu étroit, on réduit les marges sans faire un vrai responsive mobile. */
@media screen and (max-width: 1180px) {
    #header.ixob-v2-header { padding-left: 22px !important; padding-right: 22px !important; gap: 18px !important; }
    #header_logo.ixob-v2-logo { flex-basis: 220px !important; width: 220px !important; }
    #header_logo.ixob-v2-logo .ixob-v2-wordmark-main { font-size: 66px !important; }
    #header_logo.ixob-v2-logo .ixob-v2-wordmark-fr { font-size: 30px !important; }
    #search_block_top.ixob-v2-search { min-width: 360px !important; }
    #header_user.ixob-v2-account-links { flex-basis: 135px !important; width: 135px !important; }
    #ixob_v2_cart.ixob-v2-cart-button { flex-basis: 150px !important; width: 150px !important; }
}


#ixob_v2_cart.ixob-v2-cart-button {
    flex: 0 0 185px;
}

#ixob_v2_cart {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 66px;
    padding: 0 16px;
    border-radius: 14px;
    background: var(--ixob-blue) !important;
    color: #fff !important;
    text-decoration: none !important;
    box-shadow: 0 8px 22px rgba(31, 169, 229, 0.28);
}
#ixob_v2_cart .ixob-v2-cart-icon{font-size:26px;line-height:1;}
#ixob_v2_cart .ixob-v2-cart-label{display:block;font-size:14px;line-height:1.1;opacity:.95;}
#ixob_v2_cart strong{display:block;font-size:18px;line-height:1.1;color:#fff;}
#ixob_v2_cart .ajax_cart_quantity{display:inline-block;min-width:26px;height:26px;border-radius:50%;background:var(--ixob-yellow);color:#1a1a1a;line-height:26px;text-align:center;font-weight:700;margin-right:4px;}

.ixob-v2-account-links {display:flex;flex-direction:column;gap:10px;}
.ixob-v2-account-links a {
    display:block;
    padding:13px 12px;
    border:1px solid #d8dee8;
    border-radius:12px;
    background:#fff;
    text-align:center;
    font-size:13px;
    font-weight:700;
    box-shadow:0 2px 4px rgba(16,24,40,.03);
}
.ixob-v2-account-links a:hover {border-color: var(--ixob-blue);}

.ixob-v2-logo-subtitle { color: var(--ixob-muted); }

.ixob-v2-sticky-logo img {
    width: 118px;
    height: auto;
    display: block;
    visibility: visible !important;
    opacity: 1 !important;
}

@media screen and (max-width: 1280px) {
    #header.ixob-v2-header { gap: 18px; padding: 16px 18px; }
    #header_logo.ixob-v2-logo { flex-basis: 230px; width: 230px; }
    #header_logo.ixob-v2-logo img.logo { width: 215px; }
    #header_user { flex-basis: 165px; width: 165px; }
    #ixob_v2_cart.ixob-v2-cart-button { flex-basis: 175px; }
    #search_block_top { min-width: 260px; }
}


/* ==========================================================
   V2-13 : boutons compte plus petits + panier mieux structuré
   ========================================================== */

#header_user.ixob-v2-account-links,
#header_user {
    width: 128px !important;
    flex: 0 0 128px !important;
    gap: 6px !important;
}

#header_user.ixob-v2-account-links a,
.ixob-v2-account-links a {
    height: 30px !important;
    line-height: 30px !important;
    padding: 0 8px !important;
    font-size: 11.5px !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 6px rgba(16, 24, 40, 0.04) !important;
}

#ixob_v2_cart.ixob-v2-cart-button,
#ixob_v2_cart {
    width: 190px !important;
    flex: 0 0 190px !important;
    min-height: 62px !important;
    height: 62px !important;
    padding: 10px 14px !important;
    border-radius: 14px !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: 26px 1fr !important;
    grid-template-areas:
        "icon label"
        "icon qty" !important;
    align-items: center !important;
    column-gap: 10px !important;
    row-gap: 2px !important;
    justify-items: start !important;
}

#ixob_v2_cart .ixob-v2-cart-icon {
    grid-area: icon !important;
    font-size: 24px !important;
    line-height: 1 !important;
    margin: 0 !important;
}

#ixob_v2_cart .ixob-v2-cart-label {
    grid-area: label !important;
    display: block !important;
    font-size: 12px !important;
    line-height: 1.05 !important;
    opacity: 0.95 !important;
    margin: 0 !important;
}

#ixob_v2_cart strong {
    grid-area: qty !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 14px !important;
    line-height: 1.05 !important;
    color: #fff !important;
    margin: 0 !important;
    white-space: nowrap !important;
}

#ixob_v2_cart .ajax_cart_quantity {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 22px !important;
    height: 22px !important;
    line-height: 22px !important;
    padding: 0 5px !important;
    margin: 0 !important;
    border-radius: 999px !important;
    background: var(--ixob-yellow) !important;
    color: #1b1b1b !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

@media screen and (max-width: 1280px) {
    #header_user.ixob-v2-account-links,
    #header_user {
        width: 118px !important;
        flex-basis: 118px !important;
    }

    #header_user.ixob-v2-account-links a,
    .ixob-v2-account-links a {
        font-size: 11px !important;
        padding: 0 6px !important;
    }

    #ixob_v2_cart.ixob-v2-cart-button,
    #ixob_v2_cart {
        width: 176px !important;
        flex-basis: 176px !important;
        padding: 9px 12px !important;
    }

    #ixob_v2_cart strong {
        font-size: 13px !important;
    }
}


/* ==========================================================
   V2-14 : boutons compte/contact encore plus discrets
          + panier mieux espacé
   ========================================================== */

#header_user.ixob-v2-account-links,
#header_user {
    width: 116px !important;
    flex: 0 0 116px !important;
    gap: 5px !important;
}

#header_user.ixob-v2-account-links a,
.ixob-v2-account-links a {
    height: 27px !important;
    line-height: 27px !important;
    padding: 0 7px !important;
    font-size: 10.8px !important;
    border-radius: 7px !important;
}

/* Panier : on espace davantage l'icône du texte et on aligne mieux la quantité */
#ixob_v2_cart.ixob-v2-cart-button,
#ixob_v2_cart {
    width: 196px !important;
    flex: 0 0 196px !important;
    min-height: 60px !important;
    height: 60px !important;
    padding: 9px 16px !important;
    grid-template-columns: 34px 1fr !important;
    column-gap: 15px !important;
    row-gap: 4px !important;
}

#ixob_v2_cart .ixob-v2-cart-icon {
    font-size: 24px !important;
    justify-self: center !important;
}

#ixob_v2_cart .ixob-v2-cart-label {
    font-size: 12px !important;
    padding-left: 1px !important;
}

#ixob_v2_cart strong {
    gap: 8px !important;
    font-size: 13.5px !important;
}

#ixob_v2_cart .ajax_cart_quantity {
    min-width: 24px !important;
    height: 24px !important;
    line-height: 24px !important;
    font-size: 13px !important;
}

@media screen and (max-width: 1280px) {
    #header_user.ixob-v2-account-links,
    #header_user {
        width: 108px !important;
        flex-basis: 108px !important;
    }

    #header_user.ixob-v2-account-links a,
    .ixob-v2-account-links a {
        height: 26px !important;
        line-height: 26px !important;
        font-size: 10.5px !important;
        padding: 0 5px !important;
    }

    #ixob_v2_cart.ixob-v2-cart-button,
    #ixob_v2_cart {
        width: 186px !important;
        flex-basis: 186px !important;
        column-gap: 13px !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
}


/* ==========================================================
   V2-15 : correction logo réel ixob
   ========================================================== */

/* Annule les anciennes règles de test qui masquaient le logo image */
#header_logo.ixob-v2-logo img.logo,
#header_logo img.logo,
.ixob-v2-logo img.logo {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 255px !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 0 6px 0 !important;
}

/* On masque uniquement l'ancien logo texte de secours, pas le vrai logo image */
#header_logo.ixob-v2-logo .ixob-v2-wordmark {
    display: none !important;
}


/* ==========================================================
   V2-16 : moteur de recherche par appareil sur l'accueil
   ========================================================== */

.ixob-device-finder-side {
    flex: 0 0 360px !important;
}

.ixob-device-finder {
    height: 100%;
    padding: 22px;
    border: 1px solid rgba(31, 169, 229, 0.25);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 8px 22px rgba(16, 24, 40, 0.07);
}

.ixob-device-finder-title {
    margin-bottom: 16px;
}

.ixob-device-finder-title strong {
    display: block;
    margin-bottom: 5px;
    color: #111827;
    font-size: 18px;
    line-height: 22px;
}

.ixob-device-finder-title span {
    display: block;
    color: var(--ixob-muted);
    font-size: 13px;
    line-height: 18px;
}

.ixob-device-finder-field {
    width: 100% !important;
    float: none !important;
    clear: both;
    margin: 0 0 11px 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

.ixob-device-finder-field select,
.ixob-device-finder select,
#champs2 select,
#champs3 select {
    width: 100% !important;
    height: 43px !important;
    padding: 0 12px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--ixob-text) !important;
    font-size: 14px !important;
    line-height: 43px !important;
    box-sizing: border-box !important;
    outline: none !important;
}

.ixob-device-finder-field select:focus,
.ixob-device-finder select:focus {
    border-color: var(--ixob-blue) !important;
    box-shadow: 0 0 0 3px rgba(31, 169, 229, 0.12) !important;
}

.ixob-device-finder-hidden {
    display: none;
}

#champs3 {
    display: none;
}

@media screen and (max-width: 1280px) {
    .ixob-device-finder-side {
        flex-basis: 320px !important;
    }

    .ixob-device-finder {
        padding: 18px;
    }

    .ixob-device-finder-title strong {
        font-size: 16px;
    }

    .ixob-device-finder-field select,
    .ixob-device-finder select,
    #champs2 select,
    #champs3 select {
        height: 40px !important;
        line-height: 40px !important;
        font-size: 13px !important;
    }
}


/* ==========================================================
   V2-20 : moteur appareil avec IDs originaux champs2/champs3
   ========================================================== */

/* Important : on garde les IDs originaux car /data/champs2.php et /data/champs3.php
   renvoient du HTML prévu pour ce fonctionnement historique. */

.ixob-device-finder #champs2,
.ixob-device-finder #champs3 {
    width: 100% !important;
    float: none !important;
    clear: both !important;
}

.ixob-device-finder #champs2 select,
.ixob-device-finder #champs3 select {
    width: 100% !important;
    height: 43px !important;
    padding: 0 12px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--ixob-text) !important;
    font-size: 14px !important;
    line-height: 43px !important;
    box-sizing: border-box !important;
}


/* ==========================================================
   V2-22 : moteur appareil - 3e champ corrigé
   ========================================================== */

.ixob-device-finder #champs2,
.ixob-device-finder #champs3 {
    width: 100% !important;
    float: none !important;
    clear: both !important;
    overflow: visible !important;
}

.ixob-device-finder #champs2 select,
.ixob-device-finder #champs3 select {
    display: block !important;
    width: 100% !important;
    height: 43px !important;
    padding: 0 12px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--ixob-text) !important;
    font-size: 14px !important;
    line-height: 43px !important;
    box-sizing: border-box !important;
}

/* Le 3e champ ne doit pas rester grisé : il est simplement absent tant qu'aucune marque n'est choisie. */
.ixob-device-finder #champs3:empty {
    display: none !important;
}


/* ==========================================================
   V2-23 : champs3 toujours visible dans le moteur appareil
   ========================================================== */

/* On annule les anciens tests où champs3 était caché/grisé.
   Le 3e select reste visible avec "Modèle", puis l'AJAX remplace son contenu. */

body#index .ixob-device-finder #champs3,
body#index .ixob-device-finder #champs3:empty {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    min-height: 43px !important;
    float: none !important;
    clear: both !important;
    overflow: visible !important;
}

body#index .ixob-device-finder #champs3 select {
    display: block !important;
    width: 100% !important;
    height: 43px !important;
    padding: 0 12px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--ixob-text) !important;
    font-size: 14px !important;
    line-height: 43px !important;
    box-sizing: border-box !important;
}

body#index .ixob-device-finder #champs3 select[disabled] {
    color: var(--ixob-text) !important;
    background: #fff !important;
}


/* ==========================================================
   V2-24 : états inactifs du moteur appareil
   ========================================================== */

body#index .ixob-device-finder #champs2 select[disabled],
body#index .ixob-device-finder #champs3 select[disabled],
.ixob-device-finder #champs2 select[disabled],
.ixob-device-finder #champs3 select[disabled] {
    background: #f3f6f9 !important;
    color: #98a2b3 !important;
    border-color: #e1e7ef !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

body#index .ixob-device-finder #champs2 select[disabled] option,
body#index .ixob-device-finder #champs3 select[disabled] option,
.ixob-device-finder #champs2 select[disabled] option,
.ixob-device-finder #champs3 select[disabled] option {
    color: #98a2b3 !important;
}


/* ==========================================================
   V2-26 : fiche produit épurée
   ========================================================== */

body#product #columns {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

body#product #center_column {
    float: none !important;
    width: 100% !important;
    min-width: 1020px !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ixob-product-page,
.ixob-cross-products,
.ixob-product-more {
    width: calc(100% - 36px);
    margin: 18px auto 0 auto;
    box-sizing: border-box;
    font-family: Arial, Verdana, sans-serif;
    color: var(--ixob-text);
}

.ixob-product-breadcrumb {
    margin-bottom: 12px;
    color: var(--ixob-muted);
    font-size: 12px;
}

.ixob-product-breadcrumb .breadcrumb2 {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.ixob-product-breadcrumb a {
    color: var(--ixob-blue) !important;
    text-decoration: none !important;
}

.ixob-product-title {
    margin: 0 0 18px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #111827 !important;
    font-size: 30px !important;
    line-height: 38px !important;
    font-weight: 800 !important;
}

.ixob-product-main {
    display: grid;
    grid-template-columns: minmax(360px, 34%) minmax(620px, 1fr);
    gap: 24px;
    align-items: start;
}

.ixob-product-media,
.ixob-product-info {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ixob-product-image-card,
.ixob-product-info-inner,
.ixob-cross-products,
.ixob-product-detail-card {
    border: 1px solid var(--ixob-border);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.06);
    box-sizing: border-box;
}

.ixob-product-image-card {
    padding: 28px;
    min-height: 440px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#image-block #view_full_size,
.ixob-product-image-card #view_full_size {
    display: block;
    width: 100%;
    text-align: center;
}

.ixob-product-image-card #bigpic {
    width: auto !important;
    max-width: 100% !important;
    max-height: 520px;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    object-fit: contain;
}

.ixob-product-image-card .span_link {
    display: none !important;
}

.ixob-product-thumbs {
    margin-top: 14px !important;
    width: 100% !important;
    overflow: visible !important;
}

.ixob-product-thumbs #thumbs_list {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    overflow: visible !important;
}

.ixob-product-thumbs #thumbs_list_frame {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}

.ixob-product-thumbs #thumbs_list li {
    float: none !important;
    width: 62px !important;
    height: 62px !important;
}

.ixob-product-thumbs #thumbs_list img {
    width: 58px !important;
    height: 58px !important;
    object-fit: contain;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 10px;
    background: #fff;
    margin: 0 !important;
    padding: 2px;
}

.ixob-product-extra-photos {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.ixob-product-extra-photo {
    display: block;
    width: 86px;
    height: 86px;
    border: 1px solid var(--ixob-border);
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.ixob-product-extra-photo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.ixob-product-info-inner {
    padding: 28px;
}

.ixob-product-rating {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    color: var(--ixob-text) !important;
    text-decoration: none !important;
    font-size: 13px;
    font-weight: 700;
}

.ixob-product-rating img {
    width: 110px;
    height: auto;
}

.ixob-product-short {
    color: #1f2937;
    font-size: 15px;
    line-height: 22px;
}

.ixob-product-short p {
    margin: 0 0 12px 0;
    padding: 0;
}

.ixob-product-note,
.ixob-product-compatible,
.ixob-product-ref {
    margin-top: 12px !important;
}

.ixob-product-compatible a {
    color: #111827 !important;
    text-decoration: underline !important;
}

.ixob-product-buy-block {
    margin-top: 22px !important;
    border-top: 1px solid #eef2f7;
    padding-top: 22px;
}

.ixob-product-attributes {
    margin-bottom: 18px;
}

.ixob-product-attributes fieldset {
    border: 0 !important;
    padding: 0 0 12px 0 !important;
    margin: 0 !important;
}

.ixob-product-attributes label,
#pb-left-column #buy_block label {
    width: auto !important;
    display: block !important;
    margin-bottom: 6px;
    text-align: left !important;
    color: var(--ixob-muted);
    font-size: 13px;
    font-weight: 700;
}

.ixob-product-attributes select {
    width: 100% !important;
    height: 40px;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 10px;
    padding: 0 12px;
    background: #fff;
}

.ixob-product-price-card {
    margin-top: 10px !important;
    padding: 22px !important;
    border-radius: 16px;
    background: var(--ixob-blue-soft);
    border: 1px solid rgba(31, 169, 229, 0.20);
    text-align: left !important;
}

.ixob-product-price-card .price,
.ixob-product-price-card .our_price_display {
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
}

#our_price_display {
    color: var(--ixob-red) !important;
    font-size: 38px !important;
    line-height: 42px !important;
    font-weight: 800 !important;
}

#old_price_display {
    margin-left: 10px;
    color: #98a2b3 !important;
    text-decoration: line-through;
    font-size: 17px !important;
}

#reduction_percent_off,
#reduction_amount {
    float: none !important;
    display: inline-block;
    margin: 10px 0 0 0 !important;
    padding: 5px 9px !important;
    background: #fff !important;
    border-radius: 999px;
    color: var(--ixob-red) !important;
    font-size: 12px !important;
}

.ixob-product-cart-line {
    display: flex;
    align-items: flex-end;
    gap: 14px;
    margin-top: 20px;
}

#quantity_wanted_p {
    margin: 0 !important;
    padding: 0 !important;
}

#quantity_wanted {
    width: 62px !important;
    height: 46px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 10px;
    padding: 0 !important;
    text-align: center;
    font-size: 18px !important;
    background: #fff !important;
}

#add_to_cart {
    margin: 0 !important;
    padding: 0 !important;
}

#add_to_cart input.ajax_add_to_cart_button,
#add_to_cart input.exclusive {
    width: 220px !important;
    height: 48px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: var(--ixob-blue) !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    text-align: center !important;
    cursor: pointer !important;
    box-shadow: 0 8px 18px rgba(31, 169, 229, 0.25);
    text-decoration: none !important;
    padding: 0 !important;
}

#add_to_cart input.ajax_add_to_cart_button:hover {
    background: var(--ixob-blue-dark) !important;
}

.ixob-product-service-card {
    margin-top: 18px;
    border: 1px solid var(--ixob-border);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}

.ixob-product-service-row {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 13px 16px;
    border-bottom: 1px solid #eef2f7;
    font-size: 13px;
}

.ixob-product-service-row:last-child {
    border-bottom: 0;
}

.ixob-product-service-row strong {
    color: #111827;
}

.ixob-product-service-row span {
    color: var(--ixob-muted);
    text-align: right;
}

.ixob-product-warning,
.ixob-product-unavailable strong {
    color: #f97316 !important;
}

.ixob-product-question {
    margin-top: 18px;
    padding: 14px 16px;
    border-radius: 14px;
    background: #fff;
    border: 1px dashed var(--ixob-border);
    font-size: 14px;
}

.ixob-product-question a {
    color: var(--ixob-text) !important;
    text-decoration: none !important;
}

.ixob-product-question strong {
    color: var(--ixob-blue);
    text-decoration: underline;
}

.ixob-cross-products {
    padding: 26px;
}

.ixob-cross-products-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    margin-bottom: 20px;
}

.ixob-cross-products-title h2 {
    margin: 0 !important;
    padding: 0 !important;
    color: #111827;
    font-size: 23px !important;
    line-height: 28px !important;
}

.ixob-cross-products-title h2 span {
    color: var(--ixob-blue);
}

.ixob-cross-products-title p {
    margin: 0;
    color: var(--ixob-muted);
    font-size: 13px;
}

.ixob-cross-products-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}

.ixob-cross-card {
    display: block;
    min-height: 220px;
    padding: 14px;
    border: 1px solid var(--ixob-border);
    border-radius: 14px;
    background: #fff;
    color: var(--ixob-text) !important;
    text-decoration: none !important;
    transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}

.ixob-cross-card:hover {
    border-color: rgba(31, 169, 229, .45);
    box-shadow: 0 8px 20px rgba(16, 24, 40, 0.08);
    transform: translateY(-1px);
}

.ixob-cross-img {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 105px;
    margin-bottom: 12px;
}

.ixob-cross-img img {
    max-width: 100%;
    max-height: 100px;
    object-fit: contain;
}

.ixob-cross-price {
    display: block;
    margin-bottom: 7px;
    color: var(--ixob-red);
    font-size: 16px;
    font-weight: 800;
    text-align: center;
}

.ixob-cross-name {
    display: block;
    color: #374151;
    font-size: 12px;
    line-height: 16px;
    text-align: center;
}

.ixob-product-more {
    display: grid;
    gap: 18px;
}

.ixob-product-detail-card {
    padding: 26px;
}

.ixob-product-detail-card h2 {
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
    color: #111827;
    font-size: 23px !important;
    line-height: 28px !important;
    background: transparent !important;
    border: 0 !important;
}

.ixob-qty-table,
.ixob-product-detail-card table.std {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #eef2f7;
    background: #fff;
}

.ixob-qty-table td,
.ixob-product-detail-card table.std td {
    padding: 14px 16px;
    border-bottom: 1px solid #eef2f7;
    font-size: 14px;
}

.ixob-product-description .rte {
    color: #1f2937;
    font-size: 15px;
    line-height: 24px;
}

.ixob-product-description .rte h2,
.ixob-product-description .rte h3,
.ixob-product-description .rte strong {
    color: #111827;
}

.ixob-product-description .rte a {
    color: var(--ixob-blue) !important;
}

#availability_statut,
#availability_date,
#pQuantityAvailable,
#minimal_quantity_wanted_p,
#last_quantities {
    margin: 10px 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f8fafc;
    color: var(--ixob-muted);
    font-size: 13px;
}

#availability_value {
    display: inline-block;
    margin-left: 8px;
    padding: 3px 8px;
    border-radius: 999px;
    background: #dcfce7;
    color: #15803d;
    font-weight: 800;
    text-transform: uppercase;
    font-size: 11px;
}

#availability_value.warning_inline {
    background: #fee2e2;
    color: #b91c1c;
}

@media screen and (max-width: 1280px) {
    .ixob-product-main {
        grid-template-columns: minmax(320px, 34%) minmax(560px, 1fr);
        gap: 18px;
    }

    .ixob-product-info-inner,
    .ixob-product-image-card,
    .ixob-cross-products,
    .ixob-product-detail-card {
        padding: 22px;
    }

    .ixob-cross-products-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    #our_price_display {
        font-size: 34px !important;
    }
}


/* ==========================================================
   V2-27 : fiche produit - correction layout / prix / produits croisés
   ========================================================== */

/* Stoppe les anciennes largeurs/floats de product.css/global.css qui faisaient déborder le bloc achat */
body#product #primary_block.ixob-product-page {
    clear: both !important;
    overflow: visible !important;
}

body#product #primary_block.ixob-product-page #pb-right-column.ixob-product-media,
body#product #primary_block.ixob-product-page #pb-left-column.ixob-product-info {
    float: none !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
}

body#product .ixob-product-main {
    display: grid !important;
    grid-template-columns: minmax(330px, 0.72fr) minmax(560px, 1fr) !important;
    gap: 26px !important;
    align-items: start !important;
    overflow: visible !important;
}

body#product .ixob-product-info-inner {
    overflow: visible !important;
    max-width: 100% !important;
}

body#product .content_prices.ixob-product-price-card,
body#product #buy_block .content_prices.ixob-product-price-card {
    float: none !important;
    clear: both !important;
    position: static !important;
    width: 100% !important;
    max-width: 430px !important;
    min-width: 0 !important;
    margin: 22px auto 0 auto !important;
    padding: 22px !important;
    box-sizing: border-box !important;
    text-align: center !important;
    overflow: hidden !important;
}

body#product .ixob-product-price-card .price,
body#product .ixob-product-price-card .our_price_display {
    float: none !important;
    width: 100% !important;
    text-align: center !important;
}

body#product #our_price_display {
    display: block !important;
    text-align: center !important;
}

body#product .ixob-product-cart-line {
    justify-content: center !important;
    align-items: flex-end !important;
    gap: 14px !important;
    width: 100% !important;
    margin-top: 18px !important;
}

body#product #quantity_wanted_p {
    float: none !important;
    width: auto !important;
    text-align: center !important;
}

body#product #add_to_cart {
    float: none !important;
    width: auto !important;
    text-align: center !important;
}

body#product #add_to_cart input.ajax_add_to_cart_button,
body#product #add_to_cart input.exclusive {
    display: block !important;
    width: 210px !important;
    max-width: 210px !important;
}

/* L'ancien bloc produits croisés est restauré côté tpl : on le rend plus lisible sans casser son HTML inline */
body#product .ixob-cross-products {
    clear: both !important;
}

body#product #more_info_block.ixob-product-more {
    clear: both !important;
    display: block !important;
    float: none !important;
    width: calc(100% - 36px) !important;
    margin: 22px auto 0 auto !important;
    overflow: visible !important;
}

/* Quand l'ancien PHP sort directement ses cartes inline, on évite qu'elles se collent au reste. */
body#product #primary_block + div[style],
body#product div[style*="Tous les produits pour"] {
    clear: both !important;
}

/* Conteneur titre produits croisés généré par l'ancien bloc */
body#product div[style*="Tous les produits pour"] {
    box-sizing: border-box !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 16px !important;
    background: #fff !important;
    color: #111827 !important;
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.06) !important;
}

/* Cartes old inline produits croisés */
body#product div[style*="width:210px"][style*="height:240px"] {
    border: 1px solid var(--ixob-border) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 14px rgba(16, 24, 40, 0.04) !important;
    margin: 6px !important;
}

body#product div[style*="width:210px"][style*="height:240px"] img {
    max-width: 180px !important;
    max-height: 105px !important;
    object-fit: contain !important;
}

@media screen and (max-width: 1280px) {
    body#product .ixob-product-main {
        grid-template-columns: minmax(300px, 0.65fr) minmax(520px, 1fr) !important;
        gap: 20px !important;
    }

    body#product .content_prices.ixob-product-price-card,
    body#product #buy_block .content_prices.ixob-product-price-card {
        max-width: 405px !important;
        padding: 18px !important;
    }

    body#product #add_to_cart input.ajax_add_to_cart_button,
    body#product #add_to_cart input.exclusive {
        width: 195px !important;
    }
}


/* ==========================================================
   V2-28 : H1 bleu + correction bouton ajouter panier
   ========================================================== */

body#product .ixob-product-title {
    color: var(--ixob-blue-dark) !important;
}

/* Couleur un peu plus douce pour rester proche du logo */
body#product .ixob-product-title strong {
    color: var(--ixob-blue) !important;
}

/* Bloc prix/panier vraiment centré dans sa colonne, sans déborder vers la photo */
body#product .content_prices.ixob-product-price-card,
body#product #buy_block .content_prices.ixob-product-price-card {
    max-width: 390px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    overflow: visible !important;
}

body#product .ixob-product-cart-line {
    display: flex !important;
    justify-content: center !important;
    align-items: flex-end !important;
    flex-wrap: nowrap !important;
}

body#product #add_to_cart input.ajax_add_to_cart_button,
body#product #add_to_cart input.exclusive {
    position: relative !important;
    z-index: 10 !important;
    pointer-events: auto !important;
}


/* ==========================================================
   V2-29 : bloc prix / quantité / panier sur une seule ligne
   ========================================================== */

body#product .content_prices.ixob-product-price-card,
body#product #buy_block .content_prices.ixob-product-price-card {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 28px !important;
    width: 100% !important;
    max-width: 760px !important;
    min-width: 0 !important;
    margin: 22px auto 0 auto !important;
    padding: 20px 26px !important;
    box-sizing: border-box !important;
    text-align: left !important;
    overflow: visible !important;
}

body#product .ixob-product-price-card .price,
body#product .ixob-product-price-card .our_price_display {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 205px !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
}

body#product #our_price_display {
    display: block !important;
    text-align: left !important;
    font-size: 40px !important;
    line-height: 44px !important;
}

body#product .ixob-product-cart-line {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 14px !important;
    flex: 0 0 auto !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

body#product #quantity_wanted_p {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
}

body#product #quantity_wanted_p label {
    display: inline-block !important;
    margin: 0 !important;
    color: var(--ixob-muted) !important;
    font-size: 13px !important;
    line-height: 16px !important;
    font-weight: 700 !important;
}

body#product #quantity_wanted {
    width: 58px !important;
    height: 44px !important;
    margin: 0 !important;
}

body#product #add_to_cart {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

body#product #add_to_cart input.ajax_add_to_cart_button,
body#product #add_to_cart input.exclusive {
    display: block !important;
    width: 220px !important;
    max-width: 220px !important;
    height: 46px !important;
    line-height: 46px !important;
}

@media screen and (max-width: 1280px) {
    body#product .content_prices.ixob-product-price-card,
    body#product #buy_block .content_prices.ixob-product-price-card {
        max-width: 690px !important;
        gap: 20px !important;
        padding: 18px 20px !important;
    }

    body#product #our_price_display {
        font-size: 36px !important;
        line-height: 40px !important;
    }

    body#product .ixob-product-price-card .price,
    body#product .ixob-product-price-card .our_price_display {
        min-width: 175px !important;
    }

    body#product #add_to_cart input.ajax_add_to_cart_button,
    body#product #add_to_cart input.exclusive {
        width: 200px !important;
        max-width: 200px !important;
    }
}


/* ==========================================================
   V2-30 : panier produit - retour animation Ajax native
   ========================================================== */

/* On garde le bouton natif PrestaShop : pas de onclick manuel,
   sinon l'ajout peut se faire deux fois et l'animation native ne se lance pas. */
body#product #add_to_cart input.ajax_add_to_cart_button {
    cursor: pointer !important;
    pointer-events: auto !important;
}


/* ==========================================================
   V2-31 : popup ajout panier / produits complémentaires footer
   ========================================================== */

.ixob-popup-trigger-hidden {
    display: none !important;
}

.c-modal__dialog {
    border-radius: 18px !important;
    border: 1px solid var(--ixob-border) !important;
    box-shadow: 0 24px 70px rgba(16, 24, 40, 0.28) !important;
}

.c-modal__dialog h2#popup-title {
    color: var(--ixob-blue-dark) !important;
    font-size: 24px !important;
    line-height: 30px !important;
}

.c-modal__dialog a {
    text-decoration: none;
}

.c-modal__close {
    color: #667085 !important;
}

.c-modal__close:hover {
    color: var(--ixob-blue-dark) !important;
}

/* Les cartes produits dans cette popup sont générées en inline par l'ancien footer :
   on les calme visuellement sans modifier le PHP historique. */
.c-modal__dialog div[style*="width:390px"] {
    box-sizing: border-box !important;
    border-color: var(--ixob-border) !important;
    border-radius: 12px !important;
    background: #fff !important;
    box-shadow: 0 4px 12px rgba(16, 24, 40, 0.05) !important;
}

.c-modal__dialog div[style*="width:390px"] img {
    max-width: 78px !important;
    max-height: 58px !important;
    object-fit: contain !important;
}

.c-modal__dialog a.btn[data-close="true"] {
    border-radius: 12px !important;
    background: #f2f4f7 !important;
    color: #344054 !important;
}

.c-modal__dialog a[href*="commande?panier=onaff"] {
    border-radius: 12px !important;
    background: var(--ixob-blue) !important;
    color: #fff !important;
}


/* ==========================================================
   V2-32 : fond primary_block supprimé + prix aligné panier
   ========================================================== */

/* Le bloc produit ne doit plus avoir de grande carte blanche autour :
   seules les cartes image / infos / prix restent visibles. */
body#product #primary_block,
body#product #primary_block.ixob-product-page {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* Si l'ancien CSS Presta applique un fond blanc via #center_column ou #columns */
body#product #columns,
body#product #center_column {
    background: transparent !important;
}

/* Alignement horizontal : prix légèrement plus bas, au niveau quantité / bouton */
body#product .content_prices.ixob-product-price-card,
body#product #buy_block .content_prices.ixob-product-price-card {
    align-items: center !important;
}

body#product .ixob-product-price-card .price,
body#product .ixob-product-price-card .our_price_display {
    padding-top: 8px !important;
    align-self: center !important;
}

body#product #our_price_display {
    line-height: 46px !important;
}

/* Sur écran un peu plus étroit, on descend un peu moins pour éviter l'effet trop bas */
@media screen and (max-width: 1280px) {
    body#product .ixob-product-price-card .price,
    body#product .ixob-product-price-card .our_price_display {
        padding-top: 5px !important;
    }
}


/* ==========================================================
   V2-33 : logo header à 200px
   ========================================================== */

#header_logo.ixob-v2-logo {
    flex: 0 0 215px !important;
    width: 215px !important;
}

#header_logo.ixob-v2-logo img.logo,
#header_logo img.logo,
.ixob-v2-logo img.logo {
    width: 200px !important;
    max-width: 200px !important;
    height: auto !important;
}

@media screen and (max-width: 1280px) {
    #header_logo.ixob-v2-logo {
        flex-basis: 205px !important;
        width: 205px !important;
    }

    #header_logo.ixob-v2-logo img.logo,
    #header_logo img.logo,
    .ixob-v2-logo img.logo {
        width: 200px !important;
        max-width: 200px !important;
    }
}


/* ==========================================================
   V2-34 : zone photo produit - vignettes + photos complémentaires
   ========================================================== */

/* Ancienne logique conservée : on n'affiche pas les vignettes PrestaShop standards,
   notamment la vignette de la photo principale déjà visible en grand. */
body#product .ixob-product-standard-thumbs-hidden,
body#product #views_block.ixob-product-standard-thumbs-hidden,
body#product .ixob-product-thumbs.ixob-product-standard-thumbs-hidden {
    display: none !important;
}

/* Photos complémentaires issues de ix_references_photos */
body#product .ixob-product-extra-photos {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-top: 14px !important;
    justify-content: center !important;
}

body#product .ixob-product-extra-photo {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 96px !important;
    height: 96px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 12px !important;
    background: #fff !important;
    overflow: hidden !important;
    box-shadow: 0 2px 8px rgba(16, 24, 40, 0.04) !important;
}

body#product .ixob-product-extra-photo img {
    width: 100% !important;
    height: 100% !important;
    max-width: 90px !important;
    max-height: 90px !important;
    object-fit: contain !important;
    padding: 4px !important;
}


/* ==========================================================
   V2-36 : panier AJAX direct + bordure uniquement sur IMG
   ========================================================== */

/* On garde la carte photo. On enlève seulement la bordure appliquée directement à l'image. */
body#product .ixob-product-image-card {
    background: #fff !important;
    border: 1px solid var(--ixob-border) !important;
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.06) !important;
}

body#product .ixob-product-image-card #bigpic,
body#product #image-block #bigpic,
body#product #view_full_size img#bigpic {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

body#product #add_to_cart input.ajax_add_to_cart_button[type="button"] {
    cursor: pointer !important;
    pointer-events: auto !important;
    transition: transform .12s ease, background .12s ease, opacity .12s ease;
}

body#product #add_to_cart input.ajax_add_to_cart_button.ixob-adding {
    opacity: .82 !important;
}

body#product #ixob_v2_cart.ixob-cart-pulse,
body#product .ixob-v2-sticky-cart.ixob-cart-pulse {
    animation: ixobCartPulse .75s ease;
}

@keyframes ixobCartPulse {
    0% { transform: scale(1); }
    35% { transform: scale(1.06); }
    100% { transform: scale(1); }
}


/* ==========================================================
   V2-37 : panier - bouton ne disparaît plus / un seul ajout
   ========================================================== */

/* Nouveau bouton : il ne porte plus la classe native ajax_add_to_cart_button.
   Le script natif PrestaShop ne peut donc plus le cacher ni lancer un second ajout. */
body#product #add_to_cart button.ixob_ajax_add_to_cart_button,
body#product #ixob_add_to_cart_button {
    display: block !important;
    width: 220px !important;
    max-width: 220px !important;
    height: 46px !important;
    line-height: 46px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: var(--ixob-blue) !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    text-align: center !important;
    cursor: pointer !important;
    box-shadow: 0 8px 18px rgba(31, 169, 229, 0.25);
    text-decoration: none !important;
    padding: 0 !important;
    pointer-events: auto !important;
}

body#product #add_to_cart button.ixob_ajax_add_to_cart_button:hover,
body#product #ixob_add_to_cart_button:hover {
    background: var(--ixob-blue-dark) !important;
}

body#product #add_to_cart button.ixob_ajax_add_to_cart_button.ixob-adding,
body#product #ixob_add_to_cart_button.ixob-adding {
    opacity: .82 !important;
}

/* Au cas où product.js masque #add_to_cart pendant la mise à jour, on le garde visible. */
body#product #add_to_cart {
    display: block !important;
    visibility: visible !important;
}

@media screen and (max-width: 1280px) {
    body#product #add_to_cart button.ixob_ajax_add_to_cart_button,
    body#product #ixob_add_to_cart_button {
        width: 200px !important;
        max-width: 200px !important;
    }
}


/* ==========================================================
   V2-40 : fusion top_promo + reassurance sur une seule ligne
   ========================================================== */

#ixob_top_promo.ixob-topline-mix {
    min-width: 1020px !important;
    width: 100% !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 32px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 22px !important;
    background: #ffffff !important;
    border: 0 !important;
    border-bottom: 1px solid var(--ixob-border) !important;
    border-radius: 0 !important;
    box-shadow: 0 2px 10px rgba(16, 24, 40, 0.04) !important;
    color: #5f6b78 !important;
    font-size: 13px !important;
    line-height: 36px !important;
    overflow: hidden !important;
}

#ixob_top_promo.ixob-topline-mix .ixob-topline-item {
    display: inline-flex !important;
    align-items: center !important;
    white-space: nowrap !important;
    color: #5f6b78 !important;
    font-weight: 600 !important;
}

#ixob_top_promo.ixob-topline-mix .ixob-topline-item:before {
    content: "✓";
    margin-right: 6px;
    color: var(--ixob-blue);
    font-weight: 900;
}

#ixob_top_promo.ixob-topline-mix .ixob-topline-red {
    color: var(--ixob-red) !important;
    font-weight: 800 !important;
}

#ixob_top_promo.ixob-topline-mix .ixob-topline-red:before {
    content: "★";
    color: var(--ixob-red);
}

#ixob_top_promo.ixob-topline-mix strong {
    font-weight: 800 !important;
}

#ixob_top_promo.ixob-topline-mix .ixob-topline-trust {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 32px !important;
    max-width: 410px !important;
    overflow: hidden !important;
}

#ixob_top_promo.ixob-topline-mix iframe {
    display: block !important;
    height: 28px !important;
    width: 410px !important;
    max-width: 410px !important;
    border: 0 !important;
}

/* L'ancien bandeau reassurance sous le menu est supprimé côté tpl.
   Ce filet évite tout affichage résiduel en cache ou si une autre page le ressort. */
.ixob-v2-reassurance {
    display: none !important;
}

/* Comme la reassurance n'occupe plus de hauteur sous le menu, on garde l'espacement avant les colonnes. */
#ixob_v2_menu {
    margin-bottom: 14px !important;
}

@media screen and (max-width: 1280px) {
    #ixob_top_promo.ixob-topline-mix {
        gap: 14px !important;
        padding-left: 22px !important;
        padding-right: 22px !important;
        font-size: 12px !important;
    }

    #ixob_top_promo.ixob-topline-mix .ixob-topline-trust {
        max-width: 330px !important;
    }

    #ixob_top_promo.ixob-topline-mix iframe {
        width: 330px !important;
        max-width: 330px !important;
    }
}


/* ==========================================================
   V2-41 : alignement Trustpilot bandeau haut
   ========================================================== */

#ixob_top_promo.ixob-topline-mix .ixob-topline-trust {
    position: relative !important;
    top: -3px !important;
}

#ixob_top_promo.ixob-topline-mix .ixob-topline-trust iframe {
    position: relative !important;
    top: -2px !important;
}


/* ==========================================================
   V2-42 : bloc Trustpilot à droite des infos livraison produit
   ========================================================== */

body#product .ixob-product-after-price-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 235px !important;
    gap: 14px !important;
    align-items: stretch !important;
    margin-top: 18px !important;
}

body#product .ixob-product-after-price-left {
    min-width: 0 !important;
}

body#product .ixob-product-after-price-grid .ixob-product-service-card {
    margin-top: 0 !important;
}

body#product .ixob-product-after-price-grid .ixob-product-question {
    margin-top: 12px !important;
}

body#product .ixob-product-trust-card {
    box-sizing: border-box !important;
    min-height: 100% !important;
    padding: 15px 14px !important;
    border: 1px solid rgba(0, 182, 122, .22) !important;
    border-radius: 14px !important;
    background: linear-gradient(180deg, #ffffff 0%, #f4fffb 100%) !important;
    box-shadow: 0 4px 14px rgba(16, 24, 40, 0.05) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

body#product .ixob-product-trust-top {
    display: flex !important;
    align-items: baseline !important;
    justify-content: space-between !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
}

body#product .ixob-product-trust-label {
    color: #111827 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
}

body#product .ixob-product-trust-score {
    color: #00b67a !important;
    font-size: 26px !important;
    line-height: 28px !important;
    font-weight: 900 !important;
}

body#product .ixob-product-trust-score span {
    color: #667085 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

body#product .ixob-product-trust-stars {
    display: inline-block !important;
    margin-bottom: 8px !important;
    color: #00b67a !important;
    letter-spacing: 1px !important;
    font-size: 20px !important;
    line-height: 22px !important;
}

body#product .ixob-product-trust-card p {
    margin: 0 0 10px 0 !important;
    color: #475467 !important;
    font-size: 13px !important;
    line-height: 18px !important;
}

body#product .ixob-product-trust-card p strong {
    color: #111827 !important;
}

body#product .ixob-product-trust-mini {
    height: 28px !important;
    overflow: hidden !important;
    opacity: .95 !important;
}

body#product .ixob-product-trust-mini iframe {
    display: block !important;
    width: 230px !important;
    height: 28px !important;
    border: 0 !important;
}

@media screen and (max-width: 1280px) {
    body#product .ixob-product-after-price-grid {
        grid-template-columns: minmax(0, 1fr) 210px !important;
        gap: 12px !important;
    }

    body#product .ixob-product-trust-card {
        padding: 13px 12px !important;
    }

    body#product .ixob-product-trust-score {
        font-size: 23px !important;
    }

    body#product .ixob-product-trust-mini iframe {
        width: 205px !important;
    }
}


/* ==========================================================
   V2-43 : Trustpilot produit - étoiles proportionnelles 4,2/5
   ========================================================== */

body#product .ixob-product-trust-stars {
    position: relative !important;
    display: inline-block !important;
    margin-bottom: 8px !important;
    color: #d0d5dd !important;
    letter-spacing: 1px !important;
    font-size: 20px !important;
    line-height: 22px !important;
    overflow: hidden !important;
}

body#product .ixob-product-trust-stars:before {
    content: "★★★★★";
    position: absolute;
    left: 0;
    top: 0;
    width: 84%;
    overflow: hidden;
    white-space: nowrap;
    color: #00b67a;
    letter-spacing: 1px;
}


/* ==========================================================
   V2-44 : description détaillée sous la photo produit
   ========================================================== */

body#product .ixob-product-description-under-photo {
    margin-top: 18px !important;
    padding: 22px 24px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.05) !important;
    box-sizing: border-box !important;
}

body#product .ixob-product-description-under-photo h2 {
    margin: 0 0 14px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--ixob-blue-dark) !important;
    font-size: 24px !important;
    line-height: 30px !important;
    font-weight: 800 !important;
}

body#product .ixob-product-description-under-photo .rte,
body#product .ixob-product-description-under-photo-content {
    color: #1f2937 !important;
    font-size: 15px !important;
    line-height: 25px !important;
}

body#product .ixob-product-description-under-photo .rte p {
    margin: 0 0 14px 0 !important;
}

body#product .ixob-product-description-under-photo .rte p:last-child {
    margin-bottom: 0 !important;
}

body#product .ixob-product-description-under-photo .rte strong,
body#product .ixob-product-description-under-photo .rte b {
    color: #111827 !important;
}

/* L'ancien bloc description du bas est masqué pour éviter le doublon.
   Les autres blocs du bas restent disponibles : caractéristiques, accessoires, hooks, etc. */
body#product #more_info_block .ixob-product-description {
    display: none !important;
}

body#product #more_info_block.ixob-product-more {
    margin-top: 18px !important;
}


/* ==========================================================
   V2-46 : produits croisés réellement dans la colonne droite
   ========================================================== */

body#product .ixob-product-cross-under-cart {
    clear: both !important;
    float: none !important;
    width: 100% !important;
    margin: 18px 0 0 0 !important;
    padding: 18px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.05) !important;
    box-sizing: border-box !important;
}

body#product .ixob-product-cross-under-cart:empty {
    display: none !important;
}

body#product .ixob-cross-under-cart-title {
    margin: 0 0 14px 0 !important;
    padding: 0 0 12px 0 !important;
    border-bottom: 1px solid #eef2f7 !important;
    color: #111827 !important;
    font-size: 17px !important;
    line-height: 22px !important;
}

body#product .ixob-cross-under-cart-title span {
    color: var(--ixob-red) !important;
}

body#product .ixob-cross-under-cart-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
}

body#product .ixob-cross-under-cart-card {
    display: grid !important;
    grid-template-columns: 62px minmax(0, 1fr) !important;
    gap: 10px !important;
    min-height: 84px !important;
    padding: 10px !important;
    border: 1px solid #eef2f7 !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: #344054 !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
}

body#product .ixob-cross-under-cart-card:hover {
    border-color: rgba(31, 169, 229, .45) !important;
    box-shadow: 0 6px 16px rgba(16, 24, 40, 0.07) !important;
}

body#product .ixob-cross-under-cart-img {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 62px !important;
    height: 62px !important;
}

body#product .ixob-cross-under-cart-img img {
    max-width: 62px !important;
    max-height: 62px !important;
    object-fit: contain !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

body#product .ixob-cross-under-cart-info {
    display: block !important;
    min-width: 0 !important;
    padding-top: 2px !important;
}

body#product .ixob-cross-under-cart-info strong {
    display: block !important;
    margin-bottom: 5px !important;
    color: var(--ixob-red) !important;
    font-size: 15px !important;
    line-height: 18px !important;
    font-weight: 900 !important;
}

body#product .ixob-cross-under-cart-info em {
    display: block !important;
    max-height: 45px !important;
    overflow: hidden !important;
    color: #475467 !important;
    font-size: 12px !important;
    line-height: 15px !important;
    font-style: normal !important;
}

/* Filet de sécurité : on masque uniquement l'ancien gros bloc inline pleine largeur s'il ressort du cache,
   pas le nouveau bloc de droite. */
body#product #primary_block + div[style*="width:97%"],
body#product div[style*="margin-left:8px"][style*="background: #F1F1F1"] {
    display: none !important;
}

@media screen and (max-width: 1280px) {
    body#product .ixob-cross-under-cart-grid {
        grid-template-columns: 1fr !important;
    }
}


/* ==========================================================
   V2-47 : blocs photo / infos même hauteur + description dessous
   ========================================================== */

/* Les deux colonnes hautes doivent travailler ensemble */
body#product .ixob-product-main {
    align-items: stretch !important;
}

/* Les deux gros blocs gardent le même esprit visuel et la même hauteur */
body#product .ixob-product-media,
body#product .ixob-product-info {
    display: flex !important;
    flex-direction: column !important;
    min-height: 100% !important;
}

body#product .ixob-product-info-inner {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
}

/* La carte photo prend la hauteur disponible pour s'aligner visuellement sur le bloc de droite */
body#product .ixob-product-image-card {
    flex: 1 1 auto !important;
    min-height: 620px !important;
    height: auto !important;
}

/* L'image reste centrée et propre dans son cadre */
body#product .ixob-product-image-card #bigpic,
body#product #image-block #bigpic,
body#product #view_full_size img#bigpic {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* On retire la description qui avait été mise sous la photo dans le test précédent */
body#product .ixob-product-description-under-photo {
    display: none !important;
}

/* Et on réaffiche la description détaillée sous les deux blocs photo + infos */
body#product #more_info_block .ixob-product-description {
    display: block !important;
}

body#product #more_info_block.ixob-product-more {
    clear: both !important;
    margin-top: 24px !important;
}

/* Style de la description du bas, conservé proprement mais plus léger */
body#product #more_info_block .ixob-product-description {
    padding: 26px 28px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.05) !important;
}

body#product #more_info_block .ixob-product-description h2 {
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    color: var(--ixob-blue-dark) !important;
    font-size: 26px !important;
    line-height: 32px !important;
    font-weight: 800 !important;
}

body#product #more_info_block .ixob-product-description .rte {
    color: #1f2937 !important;
    font-size: 15px !important;
    line-height: 25px !important;
}

/* Les produits croisés à droite peuvent pousser le bloc de droite :
   la photo suit grâce à la hauteur stretch. */
body#product .ixob-product-cross-under-cart {
    margin-top: 18px !important;
}

/* Si la fiche a peu de contenu à droite, on garde un minimum équilibré */
body#product .ixob-product-info-inner {
    min-height: 620px !important;
}

@media screen and (max-width: 1280px) {
    body#product .ixob-product-image-card,
    body#product .ixob-product-info-inner {
        min-height: 560px !important;
    }
}


/* ==========================================================
   V2-48 : photo remontée + prix dégressifs dans le bloc photo
   ========================================================== */

/* La photo ne doit plus être centrée verticalement trop bas dans la grande carte */
body#product .ixob-product-image-card {
    justify-content: flex-start !important;
    align-items: center !important;
    padding-top: 28px !important;
    min-height: 520px !important;
}

body#product .ixob-product-image-card #view_full_size {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    width: 100% !important;
}

body#product .ixob-product-image-card #bigpic,
body#product #image-block #bigpic,
body#product #view_full_size img#bigpic {
    object-fit: contain !important;
    object-position: center top !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Prix dégressifs dans la colonne photo */
body#product .ixob-photo-qty-discounts {
    margin-top: 16px !important;
    padding: 16px 18px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.04) !important;
    box-sizing: border-box !important;
}

body#product .ixob-photo-qty-discounts h3 {
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--ixob-blue-dark) !important;
    font-size: 17px !important;
    line-height: 22px !important;
    font-weight: 800 !important;
}

body#product .ixob-photo-qty-table {
    width: 100% !important;
    border-collapse: collapse !important;
    border: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}

body#product .ixob-photo-qty-table td {
    padding: 8px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #eef2f7 !important;
    font-size: 13px !important;
    color: #344054 !important;
}

body#product .ixob-photo-qty-table tr:last-child td {
    border-bottom: 0 !important;
}

body#product .ixob-photo-qty-table td:last-child {
    text-align: right !important;
    color: var(--ixob-red) !important;
    font-weight: 800 !important;
}

body#product .ixob-photo-qty-table td:last-child span {
    color: #667085 !important;
    font-weight: 600 !important;
    margin-left: 3px !important;
}

/* Le gros bloc prix dégressifs du bas est masqué : il est maintenant dans la colonne photo */
body#product #more_info_block #quantityDiscount,
body#product #more_info_block .ixob-product-detail-card#quantityDiscount {
    display: none !important;
}

/* On évite que le minimum de hauteur force encore la photo trop bas */
body#product .ixob-product-info-inner,
body#product .ixob-product-image-card {
    min-height: 520px !important;
}

@media screen and (max-width: 1280px) {
    body#product .ixob-product-image-card,
    body#product .ixob-product-info-inner {
        min-height: 500px !important;
    }

    body#product .ixob-product-image-card {
        padding-top: 22px !important;
    }
}


/* ==========================================================
   V2-49 : photo haute + prix dégressifs qui s'étire
   ========================================================== */

/* La colonne gauche garde la même hauteur que la droite,
   mais ce n'est plus la photo qui s'étire : c'est le bloc prix dégressifs. */
body#product .ixob-product-media {
    display: flex !important;
    flex-direction: column !important;
    align-self: stretch !important;
}

/* Photo en haut, hauteur naturelle, sans grand vide vertical */
body#product .ixob-product-image-card {
    flex: 0 0 auto !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 24px !important;
    justify-content: flex-start !important;
    align-items: center !important;
}

body#product .ixob-product-image-card #view_full_size {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    width: 100% !important;
}

body#product .ixob-product-image-card #bigpic,
body#product #image-block #bigpic,
body#product #view_full_size img#bigpic {
    display: block !important;
    object-fit: contain !important;
    object-position: center top !important;
    max-height: 560px !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* C'est ce bloc qui prend la hauteur restante */
body#product .ixob-photo-qty-discounts {
    flex: 1 1 auto !important;
    min-height: 135px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
}

/* Le tableau reste compact en haut du bloc étiré */
body#product .ixob-photo-qty-discounts .ixob-photo-qty-table {
    flex: 0 0 auto !important;
}

/* On annule l'ancien minimum de hauteur qui recentrait visuellement la photo */
body#product .ixob-product-image-card {
    min-height: 0 !important;
}

@media screen and (max-width: 1280px) {
    body#product .ixob-product-image-card {
        padding: 20px !important;
    }

    body#product .ixob-product-image-card #bigpic,
    body#product #image-block #bigpic,
    body#product #view_full_size img#bigpic {
        max-height: 500px !important;
    }
}


/* ==========================================================
   V2-50 : blocs bas restaurés
   - Produits complémentaires
   - Modèles utilisant ce produit
   - Même catégorie
   ========================================================== */

body#product .ixob-product-bottom-blocks {
    width: calc(100% - 36px) !important;
    margin: 22px auto 0 auto !important;
    display: grid !important;
    gap: 18px !important;
    box-sizing: border-box !important;
}

body#product .ixob-bottom-section {
    padding: 24px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.05) !important;
    box-sizing: border-box !important;
}

body#product .ixob-bottom-section-title {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-end !important;
    gap: 18px !important;
    margin-bottom: 18px !important;
    padding-bottom: 14px !important;
    border-bottom: 1px solid #eef2f7 !important;
}

body#product .ixob-bottom-section-title h2 {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--ixob-blue-dark) !important;
    font-size: 23px !important;
    line-height: 29px !important;
    font-weight: 800 !important;
}

body#product .ixob-bottom-section-title p {
    margin: 0 !important;
    color: #667085 !important;
    font-size: 13px !important;
    line-height: 18px !important;
    text-align: right !important;
}

body#product .ixob-bottom-product-grid {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 14px !important;
}

body#product .ixob-bottom-product-card {
    display: block !important;
    min-height: 230px !important;
    padding: 14px !important;
    border: 1px solid #eef2f7 !important;
    border-radius: 14px !important;
    background: #fff !important;
    color: #344054 !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    transition: box-shadow .15s ease, border-color .15s ease, transform .15s ease !important;
}

body#product .ixob-bottom-product-card:hover {
    border-color: rgba(31, 169, 229, .45) !important;
    box-shadow: 0 8px 20px rgba(16, 24, 40, 0.08) !important;
    transform: translateY(-1px) !important;
}

body#product .ixob-bottom-product-img {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 118px !important;
    margin-bottom: 10px !important;
}

body#product .ixob-bottom-product-img img {
    max-width: 100% !important;
    max-height: 112px !important;
    object-fit: contain !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

body#product .ixob-bottom-product-name {
    display: block !important;
    height: 52px !important;
    overflow: hidden !important;
    color: #344054 !important;
    font-size: 13px !important;
    line-height: 17px !important;
    text-align: center !important;
}

body#product .ixob-bottom-product-price {
    display: block !important;
    margin-top: 8px !important;
    color: var(--ixob-red) !important;
    font-size: 16px !important;
    line-height: 20px !important;
    text-align: center !important;
}

body#product .ixob-model-brand {
    display: grid !important;
    grid-template-columns: 180px minmax(0, 1fr) !important;
    gap: 14px !important;
    padding: 13px 0 !important;
    border-bottom: 1px solid #eef2f7 !important;
}

body#product .ixob-model-brand:last-child {
    border-bottom: 0 !important;
}

body#product .ixob-model-brand-name {
    color: var(--ixob-blue-dark) !important;
    font-size: 15px !important;
    line-height: 22px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

body#product .ixob-model-list {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 7px !important;
}

body#product .ixob-model-chip {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 28px !important;
    padding: 5px 9px !important;
    border: 1px solid #dbe8f3 !important;
    border-radius: 999px !important;
    background: #f8fbfd !important;
    color: #344054 !important;
    font-size: 12px !important;
    line-height: 16px !important;
    text-decoration: none !important;
}

body#product .ixob-model-chip:hover {
    border-color: rgba(31, 169, 229, .45) !important;
    color: var(--ixob-blue-dark) !important;
    background: var(--ixob-blue-soft) !important;
}

@media screen and (max-width: 1280px) {
    body#product .ixob-bottom-product-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    body#product .ixob-model-brand {
        grid-template-columns: 150px minmax(0, 1fr) !important;
    }
}


/* ==========================================================
   V2-51 : masque le bloc hooks produit s'il est vide
   ========================================================== */

body#product .ixob-product-hooks:empty {
    display: none !important;
}

/* En cas de contenu hook réellement vide mais avec espace/retour ligne,
   la capture Smarty du product.tpl empêche déjà son rendu. */


/* ==========================================================
   V2-52 : remplace "Dans la même catégorie" par recherche appareil
   ========================================================== */

body#product .ixob-bottom-device-finder {
    padding: 24px !important;
}

body#product .ixob-bottom-device-finder .ixob-bottom-section-title {
    margin-bottom: 18px !important;
}

body#product .ixob-device-finder-bottom {
    height: auto !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

body#product .ixob-device-finder-bottom-fields {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px !important;
    align-items: start !important;
}

body#product .ixob-device-finder-bottom .ixob-device-finder-field {
    margin: 0 !important;
}

body#product .ixob-device-finder-bottom select,
body#product .ixob-device-finder-bottom #champs2 select,
body#product .ixob-device-finder-bottom #champs3 select {
    height: 48px !important;
    line-height: 48px !important;
    border-radius: 12px !important;
    font-size: 15px !important;
}

body#product .ixob-device-finder-bottom #champs3 {
    display: block !important;
}

body#product .ixob-device-finder-bottom #champs2 select[disabled],
body#product .ixob-device-finder-bottom #champs3 select[disabled] {
    background: #f3f6f9 !important;
    color: #98a2b3 !important;
    border-color: #e1e7ef !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

@media screen and (max-width: 1280px) {
    body#product .ixob-device-finder-bottom-fields {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
}


/* ==========================================================
   V2-53 : derniers produits consultés
   ========================================================== */

body#product .ixob-bottom-recent-products {
    display: none;
    padding: 24px !important;
}

body#product .ixob-recent-product-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

body#product .ixob-recent-card {
    min-height: 205px !important;
}

body#product .ixob-recent-card .ixob-bottom-product-img {
    height: 96px !important;
}

body#product .ixob-recent-card .ixob-bottom-product-img img {
    max-height: 90px !important;
    border: 0 !important;
}

@media screen and (max-width: 1280px) {
    body#product .ixob-recent-product-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}


/* ==========================================================
   V2-54 : produits croisés droite masqués si aucun résultat
   ========================================================== */

/* Le product.tpl ne génère plus le conteneur .ixob-product-cross-under-cart
   tant qu'aucun produit croisé n'est trouvé. Ce fallback couvre aussi un éventuel vieux cache. */
body#product .ixob-product-cross-under-cart:empty {
    display: none !important;
}


/* ==========================================================
   V2-55 : suppression du texte sous le logo
   ========================================================== */

#header_logo.ixob-v2-logo .ixob-v2-logo-subtitle,
#header_logo.ixob-v2-logo span.ixob-v2-logo-subtitle {
    display: none !important;
}


/* ==========================================================
   V2-56 : popup ajout panier compacte
   ========================================================== */

.ixob-popup-trigger-hidden {
    display: none !important;
}

.c-modal.ixob-addcart-modal {
    position: fixed !important;
    inset: 0 !important;
    display: none;
    z-index: 2147483647 !important;
}

.c-modal.ixob-addcart-modal.is-open {
    display: block !important;
}

.ixob-addcart-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(15, 23, 42, .48) !important;
}

.ixob-addcart-dialog {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: min(92vw, 820px) !important;
    max-height: min(86vh, 720px) !important;
    overflow: auto !important;
    padding: 22px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: 0 28px 80px rgba(16, 24, 40, .32) !important;
    box-sizing: border-box !important;
    font-family: Arial, Verdana, sans-serif !important;
    color: var(--ixob-text) !important;
}

.ixob-addcart-close {
    position: absolute !important;
    right: 12px !important;
    top: 10px !important;
    width: 34px !important;
    height: 34px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #f2f4f7 !important;
    color: #667085 !important;
    font-size: 25px !important;
    line-height: 30px !important;
    cursor: pointer !important;
}

.ixob-addcart-close:hover {
    color: var(--ixob-blue-dark) !important;
    background: #eaf8ff !important;
}

.ixob-addcart-head {
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) !important;
    gap: 14px !important;
    align-items: center !important;
    padding-right: 38px !important;
    margin-bottom: 18px !important;
}

.ixob-addcart-check {
    width: 48px !important;
    height: 48px !important;
    border-radius: 999px !important;
    background: #dcfce7 !important;
    color: #16a34a !important;
    font-size: 30px !important;
    line-height: 48px !important;
    text-align: center !important;
    font-weight: 900 !important;
}

.ixob-addcart-head h2 {
    margin: 0 0 4px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    color: #111827 !important;
    font-size: 25px !important;
    line-height: 31px !important;
    font-weight: 900 !important;
    background: transparent !important;
}

.ixob-addcart-head p {
    margin: 0 !important;
    color: #667085 !important;
    font-size: 14px !important;
    line-height: 19px !important;
}

.ixob-addcart-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    margin-bottom: 20px !important;
}

.ixob-addcart-btn {
    display: block !important;
    height: 46px !important;
    line-height: 46px !important;
    border-radius: 12px !important;
    text-align: center !important;
    text-decoration: none !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    box-sizing: border-box !important;
}

.ixob-addcart-btn-light {
    background: #f2f4f7 !important;
    color: #344054 !important;
    border: 1px solid #e4e7ec !important;
}

.ixob-addcart-btn-primary {
    background: var(--ixob-blue) !important;
    color: #fff !important;
    border: 1px solid var(--ixob-blue) !important;
    box-shadow: 0 8px 18px rgba(31, 169, 229, .22) !important;
}

.ixob-addcart-suggestions {
    padding-top: 18px !important;
    border-top: 1px solid #eef2f7 !important;
}

.ixob-addcart-suggestions-title {
    display: flex !important;
    justify-content: space-between !important;
    gap: 16px !important;
    align-items: baseline !important;
    margin-bottom: 14px !important;
}

.ixob-addcart-suggestions-title strong {
    color: var(--ixob-blue-dark) !important;
    font-size: 18px !important;
    line-height: 24px !important;
}

.ixob-addcart-suggestions-title span {
    color: #667085 !important;
    font-size: 13px !important;
    line-height: 18px !important;
    text-align: right !important;
}

.ixob-addcart-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
}

.ixob-addcart-card {
    display: grid !important;
    grid-template-columns: 68px minmax(0, 1fr) !important;
    gap: 11px !important;
    min-height: 88px !important;
    padding: 10px !important;
    border: 1px solid #eef2f7 !important;
    border-radius: 13px !important;
    background: #fff !important;
    color: #344054 !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    transition: border-color .12s ease, box-shadow .12s ease, transform .12s ease;
}

.ixob-addcart-card:hover {
    border-color: rgba(31, 169, 229, .45) !important;
    box-shadow: 0 6px 16px rgba(16, 24, 40, .07) !important;
    transform: translateY(-1px);
}

.ixob-addcart-card-img {
    display: flex !important;
    width: 68px !important;
    height: 68px !important;
    align-items: center !important;
    justify-content: center !important;
    background: #fff !important;
}

.ixob-addcart-card-img img {
    max-width: 66px !important;
    max-height: 66px !important;
    object-fit: contain !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

.ixob-addcart-card-info {
    display: block !important;
    min-width: 0 !important;
    padding-top: 2px !important;
}

.ixob-addcart-card-info strong {
    display: block !important;
    max-height: 38px !important;
    overflow: hidden !important;
    margin-bottom: 6px !important;
    color: #344054 !important;
    font-size: 13px !important;
    line-height: 19px !important;
    font-weight: 700 !important;
}

.ixob-addcart-card-info em {
    display: block !important;
    color: var(--ixob-red) !important;
    font-style: normal !important;
    font-size: 15px !important;
    line-height: 18px !important;
    font-weight: 900 !important;
}

.ixob-addcart-empty {
    grid-column: 1 / -1;
    padding: 18px;
    border-radius: 12px;
    background: #f8fafc;
    color: #667085;
    text-align: center;
    font-size: 14px;
}

body.modal-open {
    overflow: hidden !important;
}

@media screen and (max-width: 1280px) {
    .ixob-addcart-dialog {
        width: min(94vw, 760px) !important;
        padding: 20px !important;
    }

    .ixob-addcart-grid {
        grid-template-columns: 1fr 1fr !important;
    }

    .ixob-addcart-suggestions-title {
        display: block !important;
    }

    .ixob-addcart-suggestions-title span {
        display: block !important;
        margin-top: 4px !important;
        text-align: left !important;
    }
}


/* ==========================================================
   V2-CART-01 : page panier desktop
   ========================================================== */

.ixob-cart-page {
    width: min(100%, 1380px);
    margin: 0 auto 42px auto;
    padding: 0 18px;
    box-sizing: border-box;
}

.ixob-cart-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 24px;
    align-items: center;
    margin: 14px 0 20px 0;
    padding: 26px 30px;
    border: 1px solid rgba(31, 169, 229, .22);
    border-radius: 22px;
    background:
        radial-gradient(circle at top right, rgba(31,169,229,.14), transparent 34%),
        linear-gradient(135deg, #ffffff 0%, #f5fbff 100%);
    box-shadow: 0 14px 36px rgba(16, 24, 40, .07);
}

.ixob-cart-hero-copy span,
.ixob-cart-section-head span {
    display: inline-block;
    margin-bottom: 8px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #eaf8ff;
    color: var(--ixob-blue-dark);
    font-size: 12px;
    line-height: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.ixob-cart-hero h1 {
    margin: 0 0 7px 0 !important;
    padding: 0 !important;
    color: #111827 !important;
    font-size: 34px !important;
    line-height: 40px !important;
    font-weight: 900 !important;
    background: transparent !important;
    border: 0 !important;
}

.ixob-cart-hero p {
    margin: 0;
    color: #667085;
    font-size: 15px;
    line-height: 22px;
}

.ixob-cart-hero-actions {
    text-align: right;
}

.ixob-cart-main-checkout {
    display: block !important;
    height: 50px !important;
    line-height: 50px !important;
    border-radius: 14px !important;
    background: var(--ixob-red) !important;
    color: #fff !important;
    text-align: center !important;
    text-decoration: none !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    box-shadow: 0 10px 22px rgba(239, 25, 65, .22) !important;
}

.ixob-cart-hero-actions span {
    display: block;
    margin-top: 9px;
    color: #667085;
    font-size: 12px;
    line-height: 16px;
}

.ixob-cart-steps {
    margin-bottom: 18px;
}

.ixob-cart-products-card {
    margin-top: 10px;
    padding: 0;
    border: 0;
    background: transparent;
}

#cart_summary.ixob-cart-table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 10px !important;
    background: transparent !important;
    border: 0 !important;
}

#cart_summary.ixob-cart-table thead th {
    padding: 8px 12px !important;
    border: 0 !important;
    background: transparent !important;
    color: #667085 !important;
    font-size: 12px !important;
    line-height: 16px !important;
    text-transform: uppercase;
    letter-spacing: .04em;
}

#cart_summary.ixob-cart-table tbody tr.cart_item {
    background: #fff !important;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .06);
}

#cart_summary.ixob-cart-table tbody tr.cart_item td {
    padding: 14px 12px !important;
    border-top: 1px solid #eef2f7 !important;
    border-bottom: 1px solid #eef2f7 !important;
    background: #fff !important;
    vertical-align: middle !important;
}

#cart_summary.ixob-cart-table tbody tr.cart_item td:first-child {
    border-left: 1px solid #eef2f7 !important;
    border-radius: 16px 0 0 16px;
}

#cart_summary.ixob-cart-table tbody tr.cart_item td:last-child {
    border-right: 1px solid #eef2f7 !important;
    border-radius: 0 16px 16px 0;
}

#cart_summary.ixob-cart-table .ixob-cart-product-photo {
    width: 105px !important;
    text-align: center !important;
}

#cart_summary.ixob-cart-table .ixob-cart-product-photo img {
    max-width: 82px !important;
    max-height: 82px !important;
    width: auto !important;
    height: auto !important;
    border: 0 !important;
    object-fit: contain !important;
}

#cart_summary.ixob-cart-table .s_title_block {
    margin: 0 0 6px 0 !important;
}

#cart_summary.ixob-cart-table .s_title_block a {
    color: #111827 !important;
    font-size: 15px !important;
    line-height: 20px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

#cart_summary.ixob-cart-table .cart_ref,
#cart_summary.ixob-cart-table .ixob-cart-product-ref {
    color: #667085 !important;
    font-size: 12px !important;
}

#cart_summary.ixob-cart-table .cart_unit .price,
#cart_summary.ixob-cart-table .cart_total .price {
    color: #111827 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
}

#cart_summary.ixob-cart-table .cart_total .price {
    color: var(--ixob-red) !important;
    font-size: 17px !important;
}

#cart_summary.ixob-cart-table .cart_quantity {
    width: 118px !important;
    text-align: center !important;
}

#cart_summary.ixob-cart-table .cart_quantity_input {
    width: 42px !important;
    height: 34px !important;
    margin: 0 6px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 10px !important;
    text-align: center !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

#cart_summary.ixob-cart-table .cart_quantity_button {
    display: inline-block !important;
    vertical-align: middle !important;
}

#cart_summary.ixob-cart-table .cart_quantity_up,
#cart_summary.ixob-cart-table .cart_quantity_down {
    display: inline-flex !important;
    width: 24px !important;
    height: 18px !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 6px !important;
    background: #f2f4f7 !important;
}

#cart_summary.ixob-cart-table .cart_delete a {
    display: inline-flex !important;
    width: 34px !important;
    height: 34px !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    background: #fff1f3 !important;
    color: var(--ixob-red) !important;
    text-decoration: none !important;
    font-size: 0 !important;
}

#cart_summary.ixob-cart-table .cart_delete a:before {
    content: "×";
    font-size: 24px;
    line-height: 1;
    font-weight: 700;
}

#cart_summary.ixob-cart-table tfoot tr {
    background: transparent !important;
}

#cart_summary.ixob-cart-table tfoot td {
    padding: 8px 12px !important;
    border: 0 !important;
    background: transparent !important;
    color: #667085 !important;
    font-size: 14px !important;
}

#cart_summary.ixob-cart-table tfoot .price,
#cart_summary.ixob-cart-table tfoot #total_shipping {
    color: #111827 !important;
    font-weight: 800 !important;
}

#cart_summary.ixob-cart-table #total_price_container {
    padding: 18px !important;
    border-radius: 18px !important;
    background: #fff7f8 !important;
    border: 1px solid #ffdce3 !important;
}

#cart_summary.ixob-cart-table #total_price_container p {
    margin: 0 0 4px 0 !important;
    color: #667085 !important;
    font-size: 13px !important;
    text-transform: uppercase;
    letter-spacing: .04em;
}

#cart_summary.ixob-cart-table #total_price {
    color: var(--ixob-red) !important;
    font-size: 30px !important;
    line-height: 34px !important;
    font-weight: 900 !important;
}

#cart_voucher fieldset {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
    justify-content: flex-end !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

#cart_voucher .title_block {
    margin: 0 8px 0 0 !important;
    color: #344054 !important;
    font-weight: 700 !important;
}

#discount_name {
    height: 36px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 10px !important;
    padding: 0 10px !important;
}

#cart_voucher .button {
    height: 36px !important;
    border-radius: 10px !important;
    border: 0 !important;
    background: var(--ixob-blue) !important;
    color: #fff !important;
    font-weight: 800 !important;
}

.cart_navigation {
    clear: both !important;
    margin: 24px 0 !important;
    padding: 18px !important;
    border: 1px solid #eef2f7 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 8px 22px rgba(16, 24, 40, .05);
}

.cart_navigation .standard-checkout,
.cart_navigation .exclusive.standard-checkout {
    float: right !important;
    display: inline-block !important;
    min-width: 240px !important;
    height: 48px !important;
    line-height: 48px !important;
    border-radius: 13px !important;
    background: var(--ixob-red) !important;
    color: #fff !important;
    text-align: center !important;
    text-decoration: none !important;
    font-size: 16px !important;
    font-weight: 900 !important;
}

.cart_navigation .button-exclusive {
    display: inline-block !important;
    height: 48px !important;
    line-height: 48px !important;
    color: #667085 !important;
    text-decoration: none !important;
}

.ixob-cart-hook {
    clear: both;
}

.ixob-cart-bottom {
    clear: both;
    margin: 28px 0 0 0;
    padding: 26px;
    border: 1px solid #eef2f7;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(16, 24, 40, .06);
}

.ixob-cart-section-head {
    margin-bottom: 18px;
}

.ixob-cart-section-head h2 {
    margin: 0 0 5px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #111827 !important;
    font-size: 24px !important;
    line-height: 30px !important;
    font-weight: 900 !important;
}

.ixob-cart-section-head p {
    margin: 0;
    color: #667085;
    font-size: 14px;
    line-height: 20px;
}

.ixob-cart-related-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.ixob-cart-related-card {
    display: grid;
    grid-template-rows: 118px minmax(0, 1fr);
    gap: 10px;
    padding: 14px;
    border: 1px solid #eef2f7;
    border-radius: 16px;
    background: #fff;
    color: #344054;
    text-align: center;
    text-decoration: none;
    transition: border-color .12s ease, box-shadow .12s ease, transform .12s ease;
}

.ixob-cart-related-card:hover {
    border-color: rgba(31, 169, 229, .45);
    box-shadow: 0 8px 20px rgba(16, 24, 40, .08);
    transform: translateY(-1px);
}

.ixob-cart-related-img {
    display: flex;
    align-items: center;
    justify-content: center;
}

.ixob-cart-related-img img {
    max-width: 100%;
    max-height: 112px;
    object-fit: contain;
    border: 0 !important;
}

.ixob-cart-related-info strong {
    display: block;
    height: 40px;
    overflow: hidden;
    color: #344054;
    font-size: 13px;
    line-height: 20px;
    font-weight: 700;
}

.ixob-cart-related-stars {
    display: flex;
    height: 20px;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin: 5px 0;
    color: #667085;
    font-size: 11px;
}

.ixob-cart-related-stars img {
    max-width: 88px;
}

.ixob-cart-related-info b {
    display: block;
    margin-top: 6px;
    color: var(--ixob-red);
    font-size: 17px;
    line-height: 22px;
    font-weight: 900;
}

.ixob-cart-review-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.ixob-cart-review-card {
    padding: 16px;
    border: 1px solid #eef2f7;
    border-radius: 16px;
    background: #f8fbfe;
    min-height: 190px;
    box-sizing: border-box;
}

.ixob-cart-review-top {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
}

.ixob-cart-review-top img {
    max-width: 104px;
}

.ixob-cart-review-top span {
    color: #667085;
    font-size: 11px;
}

.ixob-cart-review-card strong {
    display: block;
    color: #111827;
    font-size: 14px;
    margin-bottom: 4px;
}

.ixob-cart-review-card em {
    display: block;
    height: 18px;
    overflow: hidden;
    color: var(--ixob-blue-dark);
    font-size: 12px;
    font-style: normal;
    margin-bottom: 10px;
}

.ixob-cart-review-card p {
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    color: #344054;
    font-size: 13px;
    line-height: 19px;
}

.cart_last_product {
    display: none !important;
}

@media screen and (max-width: 1280px) {
    .ixob-cart-page {
        padding: 0 12px;
    }

    .ixob-cart-hero {
        grid-template-columns: 1fr;
    }

    .ixob-cart-hero-actions {
        text-align: left;
    }

    .ixob-cart-related-grid,
    .ixob-cart-review-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}


/* ==========================================================
   V2-CART-02 : panier plus léger + header commande allégé
   ========================================================== */

/* Sur la page panier/commande : moins de distractions dans le header */
body#order #ixob_v2_menu,
body#order-opc #ixob_v2_menu {
    display: none !important;
}

body#order .ixob-v2-header,
body#order-opc .ixob-v2-header {
    min-height: 72px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    border-bottom: 1px solid #eef2f7 !important;
}

body#order #header_logo.ixob-v2-logo,
body#order-opc #header_logo.ixob-v2-logo {
    width: 170px !important;
    margin-top: 2px !important;
}

body#order #header_logo.ixob-v2-logo img,
body#order-opc #header_logo.ixob-v2-logo img {
    max-width: 170px !important;
}

body#order .ixob-v2-search,
body#order-opc .ixob-v2-search {
    max-width: 560px !important;
}

body#order #columns,
body#order-opc #columns {
    margin-top: 14px !important;
}

/* Remplace le gros bloc haut rouge par une entête discrète */
.ixob-cart-hero {
    display: none !important;
}

.ixob-cart-compact-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin: 12px 0 16px 0;
    padding: 18px 22px;
    border: 1px solid #eef2f7;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(16, 24, 40, .045);
}

.ixob-cart-compact-title span {
    display: inline-block;
    margin-bottom: 6px;
    color: var(--ixob-blue-dark);
    font-size: 12px;
    line-height: 15px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.ixob-cart-compact-title h1 {
    margin: 0 0 3px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #111827 !important;
    font-size: 28px !important;
    line-height: 34px !important;
    font-weight: 900 !important;
}

.ixob-cart-compact-title p {
    margin: 0;
    color: #667085;
    font-size: 14px;
    line-height: 20px;
}

.ixob-cart-compact-trust {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    max-width: 520px;
}

.ixob-cart-compact-trust span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 11px;
    border: 1px solid #e6f4fb;
    border-radius: 999px;
    background: #f5fbff;
    color: #344054;
    font-size: 12px;
    line-height: 16px;
    font-weight: 700;
}

.ixob-cart-compact-trust strong {
    color: var(--ixob-blue-dark);
}

/* On garde les blocs produits/avis comme base visuelle réutilisable */
.ixob-cart-related-card,
.ixob-addcart-card,
.ixob-bottom-product-card {
    border-radius: 16px;
}

/* Les blocs aimés : un peu plus premium et utilisables comme base globale */
.ixob-cart-bottom {
    border-color: #e8eef5 !important;
}

.ixob-cart-related-card {
    min-height: 245px;
}

.ixob-cart-related-info strong {
    font-size: 13px !important;
}

.ixob-cart-review-card {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%) !important;
}

@media screen and (max-width: 1280px) {
    .ixob-cart-compact-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .ixob-cart-compact-trust {
        justify-content: flex-start;
    }
}


/* ==========================================================
   V2-CART-03 : panier compact, plus contrasté, sans colonne référence
   ========================================================== */

/* Haut panier encore plus discret */
.ixob-cart-page {
    margin-bottom: 34px !important;
}

.ixob-cart-compact-head {
    margin: 6px 0 10px 0 !important;
    padding: 12px 16px !important;
    border-radius: 14px !important;
    background: #f8fbfe !important;
    box-shadow: none !important;
    border-color: #e4edf6 !important;
}

.ixob-cart-compact-title span {
    margin-bottom: 3px !important;
    padding: 0 !important;
    background: transparent !important;
    font-size: 11px !important;
    line-height: 14px !important;
}

.ixob-cart-compact-title h1 {
    font-size: 23px !important;
    line-height: 28px !important;
    margin-bottom: 1px !important;
}

.ixob-cart-compact-title p {
    font-size: 12px !important;
    line-height: 17px !important;
}

.ixob-cart-compact-trust {
    gap: 6px !important;
}

.ixob-cart-compact-trust span {
    min-height: 25px !important;
    padding: 0 9px !important;
    background: #fff !important;
    border-color: #d8eaf4 !important;
    font-size: 11px !important;
}

/* Étapes moins hautes */
.ixob-cart-steps {
    margin-bottom: 8px !important;
    transform: scale(.96);
    transform-origin: left top;
}

/* Colonne référence supprimée / fallback si cache */
#cart_summary .cart_ref,
#cart_summary .ixob-cart-product-ref,
#cart_summary th.cart_ref,
#cart_summary th:nth-child(3),
#cart_summary td.cart_ref,
#cart_summary td.ixob-cart-product-ref {
    display: none !important;
}

/* Plus de contraste dans le tableau panier */
#cart_summary.ixob-cart-table {
    border-spacing: 0 8px !important;
}

#cart_summary.ixob-cart-table thead th {
    color: #344054 !important;
    font-weight: 900 !important;
}

#cart_summary.ixob-cart-table tbody tr.cart_item {
    box-shadow: 0 10px 26px rgba(16, 24, 40, .085) !important;
}

#cart_summary.ixob-cart-table tbody tr.cart_item td {
    border-top-color: #dde7f0 !important;
    border-bottom-color: #dde7f0 !important;
}

#cart_summary.ixob-cart-table tbody tr.cart_item td:first-child {
    border-left-color: #dde7f0 !important;
}

#cart_summary.ixob-cart-table tbody tr.cart_item td:last-child {
    border-right-color: #dde7f0 !important;
}

#cart_summary.ixob-cart-table tbody tr.cart_item:hover td {
    background: #fbfdff !important;
    border-color: rgba(31, 169, 229, .32) !important;
}

#cart_summary.ixob-cart-table .s_title_block a {
    color: #0f172a !important;
    font-size: 16px !important;
    line-height: 21px !important;
}

#cart_summary.ixob-cart-table .cart_unit .price {
    color: #344054 !important;
}

#cart_summary.ixob-cart-table .cart_total .price {
    font-size: 18px !important;
    color: var(--ixob-red) !important;
}

/* Total plus lisible et moins plat */
#cart_summary.ixob-cart-table #total_price_container {
    background: linear-gradient(135deg, #fff1f3 0%, #ffffff 100%) !important;
    border-color: #ffc7d1 !important;
    box-shadow: 0 8px 20px rgba(239, 25, 65, .08) !important;
}

#cart_summary.ixob-cart-table #total_price {
    font-size: 32px !important;
}

/* Navigation : contraste bouton sans énorme bloc haut */
.cart_navigation {
    margin: 18px 0 24px 0 !important;
    border-color: #dde7f0 !important;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .075) !important;
}

.cart_navigation .standard-checkout,
.cart_navigation .exclusive.standard-checkout {
    background: var(--ixob-red) !important;
    box-shadow: 0 10px 20px rgba(239, 25, 65, .2) !important;
}

/* Blocs produits/avis : contraste légèrement renforcé */
.ixob-cart-bottom {
    border-color: #dde7f0 !important;
    box-shadow: 0 14px 34px rgba(16, 24, 40, .085) !important;
}

.ixob-cart-section-head h2 {
    color: #0f172a !important;
}

.ixob-cart-related-card,
.ixob-cart-review-card {
    border-color: #dde7f0 !important;
    box-shadow: 0 6px 16px rgba(16, 24, 40, .045) !important;
}

.ixob-cart-related-card:hover {
    border-color: rgba(31, 169, 229, .55) !important;
    box-shadow: 0 10px 24px rgba(16, 24, 40, .10) !important;
}

@media screen and (max-width: 1280px) {
    .ixob-cart-compact-head {
        padding: 12px !important;
    }

    .ixob-cart-steps {
        transform: none;
    }
}


/* ==========================================================
   V2-CART-04 : order-steps séparé et modernisé
   ========================================================== */

.ixob-cart-steps {
    margin: 4px 0 12px 0 !important;
    transform: none !important;
}

#order_step.ixob-checkout-steps,
ul.step.ixob-checkout-steps {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 8px !important;
    border: 1px solid #e4edf6 !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 8px 20px rgba(16, 24, 40, .045) !important;
    list-style: none !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

#order_step.ixob-checkout-steps li,
ul.step.ixob-checkout-steps li {
    position: relative !important;
    float: none !important;
    width: auto !important;
    height: auto !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #f8fafc !important;
    list-style: none !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

#order_step.ixob-checkout-steps li:before,
#order_step.ixob-checkout-steps li:after,
ul.step.ixob-checkout-steps li:before,
ul.step.ixob-checkout-steps li:after {
    display: none !important;
    content: none !important;
}

#order_step.ixob-checkout-steps li a,
#order_step.ixob-checkout-steps li span,
ul.step.ixob-checkout-steps li a,
ul.step.ixob-checkout-steps li span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    min-height: 44px !important;
    padding: 0 8px !important;
    color: #667085 !important;
    text-decoration: none !important;
    font-size: 13px !important;
    line-height: 17px !important;
    font-weight: 800 !important;
    text-align: center !important;
    box-sizing: border-box !important;
    background: transparent !important;
    border: 0 !important;
}

#order_step.ixob-checkout-steps .ixob-step-number {
    flex: 0 0 auto !important;
    width: 24px !important;
    min-height: 24px !important;
    height: 24px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    background: #e4e7ec !important;
    color: #667085 !important;
    font-size: 12px !important;
    line-height: 24px !important;
    font-weight: 900 !important;
}

#order_step.ixob-checkout-steps .ixob-step-label {
    width: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
}

/* Étape active */
#order_step.ixob-checkout-steps li.ixob-step-current,
#order_step.ixob-checkout-steps li.step_current,
#order_step.ixob-checkout-steps li.step_current_end {
    background: linear-gradient(135deg, var(--ixob-blue) 0%, var(--ixob-blue-dark) 100%) !important;
    box-shadow: 0 8px 18px rgba(31, 169, 229, .22) !important;
}

#order_step.ixob-checkout-steps li.ixob-step-current a,
#order_step.ixob-checkout-steps li.ixob-step-current span,
#order_step.ixob-checkout-steps li.step_current a,
#order_step.ixob-checkout-steps li.step_current span,
#order_step.ixob-checkout-steps li.step_current_end a,
#order_step.ixob-checkout-steps li.step_current_end span {
    color: #fff !important;
}

#order_step.ixob-checkout-steps li.ixob-step-current .ixob-step-number,
#order_step.ixob-checkout-steps li.step_current .ixob-step-number,
#order_step.ixob-checkout-steps li.step_current_end .ixob-step-number {
    background: #fff !important;
    color: var(--ixob-blue-dark) !important;
}

/* Étapes déjà faites */
#order_step.ixob-checkout-steps li.ixob-step-done,
#order_step.ixob-checkout-steps li.step_done {
    background: #ecfdf3 !important;
}

#order_step.ixob-checkout-steps li.ixob-step-done a,
#order_step.ixob-checkout-steps li.step_done a {
    color: #15803d !important;
}

#order_step.ixob-checkout-steps li.ixob-step-done .ixob-step-number,
#order_step.ixob-checkout-steps li.step_done .ixob-step-number {
    background: #16a34a !important;
    color: #fff !important;
}

#order_step.ixob-checkout-steps li.ixob-step-done .ixob-step-number:before,
#order_step.ixob-checkout-steps li.step_done .ixob-step-number:before {
    content: "✓";
    font-size: 13px;
}

#order_step.ixob-checkout-steps li.ixob-step-done .ixob-step-number,
#order_step.ixob-checkout-steps li.step_done .ixob-step-number {
    font-size: 0 !important;
}

/* Étapes à venir */
#order_step.ixob-checkout-steps li.ixob-step-todo,
#order_step.ixob-checkout-steps li.step_todo {
    background: #f8fafc !important;
}

@media screen and (max-width: 1280px) {
    #order_step.ixob-checkout-steps,
    ul.step.ixob-checkout-steps {
        gap: 6px !important;
        padding: 6px !important;
    }

    #order_step.ixob-checkout-steps li a,
    #order_step.ixob-checkout-steps li span,
    ul.step.ixob-checkout-steps li a,
    ul.step.ixob-checkout-steps li span {
        gap: 5px !important;
        font-size: 12px !important;
    }

    #order_step.ixob-checkout-steps .ixob-step-number {
        width: 22px !important;
        height: 22px !important;
        min-height: 22px !important;
        line-height: 22px !important;
    }
}


/* ==========================================================
   V2-CART-05 : frais port, haut plus court, bouton navigation inclus
   ========================================================== */

/* Haut de panier plus discret : la réassurance à droite est supprimée du tpl */
.ixob-cart-compact-head {
    display: block !important;
    margin: 4px 0 10px 0 !important;
    padding: 10px 14px !important;
    border-radius: 12px !important;
    background: #fff !important;
    border-color: #dde7f0 !important;
    box-shadow: 0 6px 16px rgba(16, 24, 40, .045) !important;
}

.ixob-cart-compact-title {
    display: flex !important;
    align-items: baseline !important;
    gap: 12px !important;
}

.ixob-cart-compact-title span {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    color: var(--ixob-blue-dark) !important;
    font-size: 11px !important;
    line-height: 14px !important;
    font-weight: 900 !important;
}

.ixob-cart-compact-title h1 {
    margin: 0 !important;
    font-size: 22px !important;
    line-height: 27px !important;
}

.ixob-cart-compact-title p {
    margin: 0 !important;
    color: #667085 !important;
    font-size: 12px !important;
    line-height: 17px !important;
}

.ixob-cart-compact-trust {
    display: none !important;
}

/* Order step un peu plus près du haut */
.ixob-cart-steps {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
}

/* Frais de port : ne jamais donner l'impression que 0 € est un prix */
#cart_summary.ixob-cart-table #total_shipping {
    color: var(--ixob-blue-dark) !important;
    font-weight: 900 !important;
}

/* Bouton Suivant réellement dans son bloc */
.cart_navigation {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    min-height: 72px !important;
    margin: 18px 0 24px 0 !important;
    padding: 12px 18px !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}

.cart_navigation:after {
    display: none !important;
    content: none !important;
}

.cart_navigation .standard-checkout,
.cart_navigation .exclusive.standard-checkout {
    float: none !important;
    position: static !important;
    order: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 235px !important;
    height: 50px !important;
    line-height: 50px !important;
    margin: 0 !important;
    border-radius: 14px !important;
}

.cart_navigation .button-exclusive,
.cart_navigation > a:not(.standard-checkout):not(.multishipping-checkout) {
    float: none !important;
    position: static !important;
    order: 1 !important;
    height: auto !important;
    line-height: normal !important;
    margin: 0 !important;
    color: #344054 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

.cart_navigation .multishipping-button,
.cart_navigation .multishipping-checkout {
    display: none !important;
}

@media screen and (max-width: 1280px) {
    .ixob-cart-compact-title {
        flex-wrap: wrap !important;
        gap: 8px !important;
    }

    .cart_navigation {
        padding: 12px !important;
    }
}


/* ==========================================================
   V2-CART-06 : haut simplifié, spacing panier, code promo à droite
   ========================================================== */

/* Haut : uniquement "Votre panier" + texte dessous */
.ixob-cart-compact-head-simple,
.ixob-cart-compact-head {
    margin: 4px 0 10px 0 !important;
    padding: 12px 16px !important;
    border-radius: 12px !important;
    background: #fff !important;
    border-color: #dde7f0 !important;
    box-shadow: 0 6px 16px rgba(16, 24, 40, .045) !important;
}

.ixob-cart-compact-head-simple .ixob-cart-compact-title,
.ixob-cart-compact-head .ixob-cart-compact-title {
    display: block !important;
}

.ixob-cart-compact-head-simple .ixob-cart-compact-title span,
.ixob-cart-compact-head .ixob-cart-compact-title > span {
    display: none !important;
}

.ixob-cart-compact-head-simple .ixob-cart-compact-title h1,
.ixob-cart-compact-head .ixob-cart-compact-title h1 {
    display: block !important;
    margin: 0 0 4px 0 !important;
    padding: 0 !important;
    color: #0f172a !important;
    font-size: 25px !important;
    line-height: 30px !important;
    font-weight: 900 !important;
}

.ixob-cart-compact-head-simple .ixob-cart-compact-title p,
.ixob-cart-compact-head .ixob-cart-compact-title p {
    display: block !important;
    margin: 0 !important;
    color: #667085 !important;
    font-size: 13px !important;
    line-height: 18px !important;
}

/* Descend légèrement le détail du panier sous les étapes */
.ixob-cart-products-card {
    margin-top: 22px !important;
}

#cart_summary.ixob-cart-table thead th {
    padding-top: 4px !important;
    padding-bottom: 12px !important;
}

/* Le bloc total / code promo reste calé à droite */
#cart_summary.ixob-cart-table tfoot tr {
    width: 100% !important;
}

#cart_voucher {
    text-align: right !important;
}

#cart_voucher fieldset {
    justify-content: flex-end !important;
    margin-left: auto !important;
    width: 100% !important;
}

#cart_voucher .title_block {
    flex: 0 0 auto !important;
    min-width: 150px !important;
    text-align: right !important;
}

#discount_name {
    width: 230px !important;
    max-width: 230px !important;
}

/* Frais de port : largeur stable pour éviter les micro-décalages
   entre "3,90 €" et "Offert en point relais" */
#cart_summary.ixob-cart-table .cart_total_delivery td:first-child,
#cart_summary.ixob-cart-table .cart_total_delivery td[align="right"] {
    width: 74% !important;
}

#cart_summary.ixob-cart-table #total_shipping {
    display: inline-block !important;
    min-width: 190px !important;
    text-align: right !important;
    white-space: nowrap !important;
    color: var(--ixob-blue-dark) !important;
    font-weight: 900 !important;
}

/* Le total garde toujours la même largeur visuelle */
#cart_summary.ixob-cart-table #total_price_container {
    width: 230px !important;
    min-width: 230px !important;
    max-width: 230px !important;
    box-sizing: border-box !important;
}

#cart_summary.ixob-cart-table #total_price {
    display: block !important;
    text-align: center !important;
}

/* Navigation : garde le bouton bien dans le cadre, sans chevauchement */
.cart_navigation {
    margin-top: 22px !important;
}

/* Un peu plus d'air entre le tableau et la zone total */
#cart_summary.ixob-cart-table tfoot td {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}


/* ==========================================================
   V2-CART-07 : alignement colonnes + résumé panier plus fin
   ========================================================== */

/* Le bloc "Votre panier" n'est plus une carte : il respire sous le header */
.ixob-cart-page {
    margin-top: 0 !important;
    padding-top: 8px !important;
}

.ixob-cart-compact-head,
.ixob-cart-compact-head-simple {
    margin: 0 0 12px 0 !important;
    padding: 8px 2px 4px 2px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.ixob-cart-compact-head .ixob-cart-compact-title h1,
.ixob-cart-compact-head-simple .ixob-cart-compact-title h1 {
    font-size: 27px !important;
    line-height: 32px !important;
    margin-bottom: 4px !important;
}

.ixob-cart-compact-head .ixob-cart-compact-title p,
.ixob-cart-compact-head-simple .ixob-cart-compact-title p {
    font-size: 13px !important;
    line-height: 18px !important;
}

/* Un peu d'espace propre entre étapes et tableau */
.ixob-cart-steps {
    margin-bottom: 18px !important;
}

.ixob-cart-products-card {
    margin-top: 26px !important;
}

/* Colonnes parfaitement stabilisées */
#cart_summary.ixob-cart-table {
    table-layout: fixed !important;
}

#cart_summary.ixob-cart-table .ixob-col-product { width: 130px !important; }
#cart_summary.ixob-cart-table .ixob-col-desc { width: auto !important; }
#cart_summary.ixob-cart-table .ixob-col-unit { width: 135px !important; }
#cart_summary.ixob-cart-table .ixob-col-qty { width: 150px !important; }
#cart_summary.ixob-cart-table .ixob-col-total { width: 150px !important; }
#cart_summary.ixob-cart-table .ixob-col-delete { width: 76px !important; }

#cart_summary.ixob-cart-table thead th.cart_product,
#cart_summary.ixob-cart-table tbody td.cart_product {
    width: 130px !important;
    text-align: center !important;
}

#cart_summary.ixob-cart-table thead th.cart_description,
#cart_summary.ixob-cart-table tbody td.cart_description {
    text-align: left !important;
}

#cart_summary.ixob-cart-table thead th.cart_unit,
#cart_summary.ixob-cart-table tbody td.cart_unit {
    width: 135px !important;
    text-align: right !important;
}

#cart_summary.ixob-cart-table thead th.cart_quantity,
#cart_summary.ixob-cart-table tbody td.cart_quantity {
    width: 150px !important;
    text-align: center !important;
}

#cart_summary.ixob-cart-table thead th.cart_total,
#cart_summary.ixob-cart-table tbody td.cart_total {
    width: 150px !important;
    text-align: right !important;
}

#cart_summary.ixob-cart-table thead th.cart_delete,
#cart_summary.ixob-cart-table tbody td.cart_delete {
    width: 76px !important;
    text-align: center !important;
}

/* Les titres reviennent exactement au-dessus des bonnes colonnes */
#cart_summary.ixob-cart-table thead th {
    padding-left: 12px !important;
    padding-right: 12px !important;
    white-space: nowrap !important;
}

/* Résumé panier : labels et valeurs alignés à droite, sans saut visuel */
#cart_summary.ixob-cart-table tfoot td {
    border: 0 !important;
    background: transparent !important;
}

#cart_summary.ixob-cart-table tfoot tr.cart_total_price td:first-child,
#cart_summary.ixob-cart-table tfoot tr.cart_total_delivery td:first-child,
#cart_summary.ixob-cart-table tfoot tr.cart_total_voucher td:first-child,
#cart_summary.ixob-cart-table tfoot tr.cart_total_tax td:first-child {
    text-align: right !important;
    color: #667085 !important;
    font-weight: 800 !important;
}

#cart_summary.ixob-cart-table tfoot td.price,
#cart_summary.ixob-cart-table tfoot #total_product,
#cart_summary.ixob-cart-table tfoot #total_shipping,
#cart_summary.ixob-cart-table tfoot #total_discount,
#cart_summary.ixob-cart-table tfoot #total_tax,
#cart_summary.ixob-cart-table tfoot #total_price_without_tax {
    text-align: right !important;
    white-space: nowrap !important;
    color: #111827 !important;
    font-weight: 900 !important;
}

#cart_summary.ixob-cart-table #total_shipping {
    display: block !important;
    min-width: 0 !important;
    width: auto !important;
    text-align: right !important;
    color: var(--ixob-blue-dark) !important;
}

/* Code promo : plus à droite, mais avec de l'air avant le bloc total */
#cart_voucher {
    padding-right: 38px !important;
    text-align: right !important;
    vertical-align: middle !important;
}

#cart_voucher fieldset {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 10px !important;
    width: auto !important;
    margin-left: auto !important;
}

#cart_voucher .title_block {
    min-width: 140px !important;
    margin: 0 !important;
    text-align: right !important;
}

#cart_voucher .discount_name_block,
#cart_voucher .submit {
    margin: 0 !important;
}

#discount_name {
    width: 255px !important;
    max-width: 255px !important;
}

/* Bloc total moins massif */
#cart_summary.ixob-cart-table #total_price_container {
    width: 190px !important;
    min-width: 190px !important;
    max-width: 190px !important;
    padding: 12px 14px !important;
    border-radius: 15px !important;
    background: linear-gradient(135deg, #fff7f8 0%, #ffffff 100%) !important;
    border-color: #ffd5dd !important;
    box-shadow: 0 6px 16px rgba(239, 25, 65, .055) !important;
}

#cart_summary.ixob-cart-table #total_price_container p {
    margin: 0 0 3px 0 !important;
    padding: 0 !important;
    height: auto !important;
    background: transparent !important;
    color: #667085 !important;
    font-size: 12px !important;
    line-height: 15px !important;
    text-align: center !important;
    letter-spacing: .04em !important;
}

#cart_summary.ixob-cart-table #total_price {
    display: block !important;
    color: var(--ixob-red) !important;
    font-size: 26px !important;
    line-height: 31px !important;
    text-align: center !important;
}

/* Retire la barre noire héritée du thème dans le bloc total */
#cart_summary.ixob-cart-table #total_price_container p,
#cart_summary.ixob-cart-table #total_price_container .title {
    background: transparent !important;
}

/* Navigation un peu plus proche du résumé */
.cart_navigation {
    margin-top: 18px !important;
}

/* Largeur desktop un peu plus confortable */
@media screen and (min-width: 1281px) {
    .ixob-cart-page {
        width: min(100%, 1440px) !important;
    }
}


/* ==========================================================
   V2-CART-08 : colonnes réellement alignées + total distinct du bouton
   ========================================================== */

/* Annule l'ancien fallback th:nth-child(3) qui masquait par erreur la colonne Prix */
#cart_summary.ixob-cart-table th.cart_unit,
#cart_summary.ixob-cart-table td.cart_unit,
#cart_summary.ixob-cart-table th:nth-child(3).cart_unit,
#cart_summary.ixob-cart-table td:nth-child(3).cart_unit {
    display: table-cell !important;
}

/* On masque uniquement une vraie colonne référence si elle revient, jamais la 3e colonne au hasard */
#cart_summary.ixob-cart-table th.cart_ref,
#cart_summary.ixob-cart-table td.cart_ref,
#cart_summary.ixob-cart-table th.ixob-cart-product-ref,
#cart_summary.ixob-cart-table td.ixob-cart-product-ref {
    display: none !important;
}

/* Grille de colonnes stable : 6 colonnes visibles */
#cart_summary.ixob-cart-table {
    table-layout: fixed !important;
}

#cart_summary.ixob-cart-table .ixob-col-product { width: 150px !important; }
#cart_summary.ixob-cart-table .ixob-col-desc { width: auto !important; }
#cart_summary.ixob-cart-table .ixob-col-unit { width: 140px !important; }
#cart_summary.ixob-cart-table .ixob-col-qty { width: 145px !important; }
#cart_summary.ixob-cart-table .ixob-col-total { width: 155px !important; }
#cart_summary.ixob-cart-table .ixob-col-delete { width: 76px !important; }

#cart_summary.ixob-cart-table thead th.cart_product,
#cart_summary.ixob-cart-table tbody td.cart_product {
    width: 150px !important;
    text-align: center !important;
}

#cart_summary.ixob-cart-table thead th.cart_description,
#cart_summary.ixob-cart-table tbody td.cart_description {
    text-align: left !important;
}

#cart_summary.ixob-cart-table thead th.cart_unit,
#cart_summary.ixob-cart-table tbody td.cart_unit {
    width: 140px !important;
    text-align: right !important;
}

#cart_summary.ixob-cart-table thead th.cart_quantity,
#cart_summary.ixob-cart-table tbody td.cart_quantity {
    width: 145px !important;
    text-align: center !important;
}

#cart_summary.ixob-cart-table thead th.cart_total,
#cart_summary.ixob-cart-table tbody td.cart_total {
    width: 155px !important;
    text-align: right !important;
}

#cart_summary.ixob-cart-table thead th.cart_delete,
#cart_summary.ixob-cart-table tbody td.cart_delete {
    width: 76px !important;
    text-align: center !important;
}

#cart_summary.ixob-cart-table thead th {
    padding: 0 16px 14px 16px !important;
    color: #344054 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .035em !important;
}

#cart_summary.ixob-cart-table tbody td {
    padding-left: 16px !important;
    padding-right: 16px !important;
}

/* La quantité doit rester centrée dans sa vraie colonne */
#cart_summary.ixob-cart-table .cart_quantity {
    text-align: center !important;
}

#cart_summary.ixob-cart-table .cart_quantity .cart_quantity_button,
#cart_summary.ixob-cart-table .cart_quantity input.cart_quantity_input {
    vertical-align: middle !important;
}

/* Bloc total : plus net, moins proche visuellement du bouton rouge */
#cart_summary.ixob-cart-table #total_price_container {
    width: 205px !important;
    min-width: 205px !important;
    max-width: 205px !important;
    padding: 14px 16px !important;
    border: 1px solid rgba(31, 169, 229, .32) !important;
    border-radius: 16px !important;
    background: linear-gradient(135deg, #f5fbff 0%, #ffffff 100%) !important;
    box-shadow: 0 10px 24px rgba(31, 169, 229, .08) !important;
}

#cart_summary.ixob-cart-table #total_price_container p {
    display: inline-block !important;
    margin: 0 0 8px 0 !important;
    padding: 4px 9px !important;
    border-radius: 999px !important;
    background: #eaf8ff !important;
    color: var(--ixob-blue-dark) !important;
    font-size: 11px !important;
    line-height: 14px !important;
    font-weight: 900 !important;
    text-align: center !important;
    letter-spacing: .04em !important;
}

#cart_summary.ixob-cart-table #total_price {
    display: block !important;
    color: #0f172a !important;
    font-size: 28px !important;
    line-height: 34px !important;
    font-weight: 900 !important;
    text-align: center !important;
}

/* Le bouton suivant reste l'unique élément rouge principal */
.cart_navigation .standard-checkout,
.cart_navigation .exclusive.standard-checkout {
    background: var(--ixob-red) !important;
    border: 1px solid var(--ixob-red) !important;
    box-shadow: 0 12px 26px rgba(239, 25, 65, .26) !important;
}

/* Aligne proprement le résumé à droite */
#cart_summary.ixob-cart-table tfoot tr.cart_total_price td:first-child,
#cart_summary.ixob-cart-table tfoot tr.cart_total_delivery td:first-child {
    text-align: right !important;
}

#cart_summary.ixob-cart-table tfoot td.price,
#cart_summary.ixob-cart-table tfoot #total_product,
#cart_summary.ixob-cart-table tfoot #total_shipping {
    text-align: right !important;
}


/* ==========================================================
   V2-CART-09 : libellé livraison offerte uniformisé
   ========================================================== */

#cart_summary.ixob-cart-table #total_shipping {
    min-width: 235px !important;
    white-space: nowrap !important;
}


/* ==========================================================
   V2-CART-10 : ligne réduction alignée sur 6 colonnes
   ========================================================== */

/* Après suppression de la colonne Référence, la ligne réduction doit faire 6 colonnes :
   4 colonnes pour le libellé + 1 total + 1 suppression. */
#cart_summary.ixob-cart-table tbody.ixob-cart-discounts tr.cart_discount td,
#cart_summary.ixob-cart-table tr.cart_discount td {
    padding: 12px 16px !important;
    border-top: 1px solid #e8f8ec !important;
    border-bottom: 1px solid #e8f8ec !important;
    background: #fbfffc !important;
    vertical-align: middle !important;
}

#cart_summary.ixob-cart-table tr.cart_discount td:first-child {
    border-left: 1px solid #e8f8ec !important;
    border-radius: 12px 0 0 12px !important;
}

#cart_summary.ixob-cart-table tr.cart_discount td:last-child {
    border-right: 1px solid #e8f8ec !important;
    border-radius: 0 12px 12px 0 !important;
}

#cart_summary.ixob-cart-table tr.cart_discount .cart_discount_name {
    text-align: right !important;
    color: #16a34a !important;
    font-size: 14px !important;
    line-height: 18px !important;
    font-weight: 900 !important;
}

#cart_summary.ixob-cart-table tr.cart_discount .cart_discount_price {
    width: 155px !important;
    text-align: right !important;
    color: #16a34a !important;
    font-size: 14px !important;
    line-height: 18px !important;
    font-weight: 900 !important;
}

#cart_summary.ixob-cart-table tr.cart_discount .cart_discount_price .price,
#cart_summary.ixob-cart-table tr.cart_discount .price-discount {
    color: #16a34a !important;
    font-size: 14px !important;
    line-height: 18px !important;
    font-weight: 900 !important;
}

#cart_summary.ixob-cart-table tr.cart_discount .price_discount_del {
    width: 76px !important;
    text-align: center !important;
}

#cart_summary.ixob-cart-table tr.cart_discount .price_discount_delete {
    display: inline-flex !important;
    width: 28px !important;
    height: 28px !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    background: #ecfdf3 !important;
    color: #16a34a !important;
    text-decoration: none !important;
    font-size: 18px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
}

/* Sécurité : une ancienne cellule vide réduction ne doit plus créer une 7e colonne visible */
#cart_summary.ixob-cart-table tr.cart_discount .cart_discount_delete:empty {
    display: none !important;
}


/* ==========================================================
   V2-CART-12 : rollback résumé flex + alignement sûr tableau
   ========================================================== */

/*
   Important : ne pas passer tfoot/tr/td en display:block ou flex.
   Le tfoot est placé avant le tbody dans le template PrestaShop,
   et le navigateur le remet correctement en bas seulement si on garde
   le comportement table natif.
*/

#cart_summary.ixob-cart-table,
#cart_summary.ixob-cart-table thead,
#cart_summary.ixob-cart-table tbody,
#cart_summary.ixob-cart-table tfoot,
#cart_summary.ixob-cart-table tr,
#cart_summary.ixob-cart-table th,
#cart_summary.ixob-cart-table td {
    float: none !important;
}

#cart_summary.ixob-cart-table tfoot {
    display: table-footer-group !important;
    width: auto !important;
}

#cart_summary.ixob-cart-table tfoot tr {
    display: table-row !important;
    width: auto !important;
}

#cart_summary.ixob-cart-table tfoot td {
    display: table-cell !important;
    border: 0 !important;
    background: transparent !important;
    vertical-align: middle !important;
}

/* Libellés du résumé : alignés à droite */
#cart_summary.ixob-cart-table tfoot tr.cart_total_price td:first-child,
#cart_summary.ixob-cart-table tfoot tr.cart_total_delivery td:first-child,
#cart_summary.ixob-cart-table tfoot tr.cart_total_voucher td:first-child,
#cart_summary.ixob-cart-table tfoot tr.cart_total_tax td:first-child {
    text-align: right !important;
    color: #667085 !important;
    font-size: 15px !important;
    line-height: 22px !important;
    font-weight: 900 !important;
    padding: 8px 18px 8px 0 !important;
}

/* Valeurs du résumé : colonne droite stable */
#cart_summary.ixob-cart-table tfoot td.price,
#cart_summary.ixob-cart-table tfoot td.price-discount,
#cart_summary.ixob-cart-table tfoot #total_product,
#cart_summary.ixob-cart-table tfoot #total_shipping,
#cart_summary.ixob-cart-table tfoot #total_discount,
#cart_summary.ixob-cart-table tfoot #total_tax,
#cart_summary.ixob-cart-table tfoot #total_price_without_tax {
    text-align: right !important;
    color: #0f172a !important;
    font-size: 15px !important;
    line-height: 22px !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
    padding: 8px 18px 8px 0 !important;
}

/* Frais de port : libellé long sans décalage */
#cart_summary.ixob-cart-table tfoot #total_shipping {
    display: table-cell !important;
    min-width: 235px !important;
    color: var(--ixob-blue-dark) !important;
}

/* Total bons d'achat */
#cart_summary.ixob-cart-table tfoot #total_discount {
    color: #16a34a !important;
}

/* Code promo : aligné à droite dans sa grande cellule, sans empiéter sur le total */
#cart_summary.ixob-cart-table #cart_voucher {
    text-align: right !important;
    padding-right: 26px !important;
}

#cart_voucher fieldset {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 10px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

#cart_voucher .title_block {
    flex: 0 0 auto !important;
    min-width: 150px !important;
    margin: 0 !important;
    text-align: right !important;
    color: #344054 !important;
    font-size: 13px !important;
    line-height: 18px !important;
    font-weight: 900 !important;
}

#cart_voucher .discount_name_block,
#cart_voucher .submit {
    flex: 0 0 auto !important;
    margin: 0 !important;
}

#discount_name {
    width: 270px !important;
    max-width: 270px !important;
}

/* Bloc total : plus petit, propre, et reste en bas à droite du tableau */
#cart_summary.ixob-cart-table #total_price_container {
    width: 205px !important;
    min-width: 205px !important;
    max-width: 205px !important;
    padding: 14px 16px !important;
    border: 1px solid rgba(31, 169, 229, .32) !important;
    border-radius: 16px !important;
    background: linear-gradient(135deg, #f5fbff 0%, #ffffff 100%) !important;
    box-shadow: 0 10px 24px rgba(31, 169, 229, .08) !important;
    text-align: center !important;
}

#cart_summary.ixob-cart-table #total_price_container p {
    display: inline-block !important;
    margin: 0 0 8px 0 !important;
    padding: 4px 9px !important;
    border-radius: 999px !important;
    background: #eaf8ff !important;
    color: var(--ixob-blue-dark) !important;
    font-size: 11px !important;
    line-height: 14px !important;
    font-weight: 900 !important;
    letter-spacing: .04em !important;
    text-align: center !important;
}

#cart_summary.ixob-cart-table #total_price {
    display: block !important;
    color: #0f172a !important;
    font-size: 28px !important;
    line-height: 34px !important;
    font-weight: 900 !important;
    text-align: center !important;
}

/* Le bouton rouge reste le CTA principal */
.cart_navigation .standard-checkout,
.cart_navigation .exclusive.standard-checkout {
    background: var(--ixob-red) !important;
    color: #fff !important;
    border: 1px solid var(--ixob-red) !important;
    box-shadow: 0 12px 26px rgba(239, 25, 65, .26) !important;
}


/* ==========================================================
   V2-CART-13 : panier centré + suppression emballage cadeau
   ========================================================== */

/* Panier moins étiré sur grand écran */
body#order .ixob-cart-page,
body#order-opc .ixob-cart-page {
    width: min(100%, 1080px) !important;
    max-width: 1080px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
}

/* Colonnes adaptées à la largeur réduite */
#cart_summary.ixob-cart-table .ixob-col-product { width: 120px !important; }
#cart_summary.ixob-cart-table .ixob-col-unit { width: 120px !important; }
#cart_summary.ixob-cart-table .ixob-col-qty { width: 130px !important; }
#cart_summary.ixob-cart-table .ixob-col-total { width: 130px !important; }
#cart_summary.ixob-cart-table .ixob-col-delete { width: 64px !important; }

#cart_summary.ixob-cart-table thead th.cart_product,
#cart_summary.ixob-cart-table tbody td.cart_product {
    width: 120px !important;
}

#cart_summary.ixob-cart-table thead th.cart_unit,
#cart_summary.ixob-cart-table tbody td.cart_unit {
    width: 120px !important;
}

#cart_summary.ixob-cart-table thead th.cart_quantity,
#cart_summary.ixob-cart-table tbody td.cart_quantity {
    width: 130px !important;
}

#cart_summary.ixob-cart-table thead th.cart_total,
#cart_summary.ixob-cart-table tbody td.cart_total {
    width: 130px !important;
}

#cart_summary.ixob-cart-table thead th.cart_delete,
#cart_summary.ixob-cart-table tbody td.cart_delete {
    width: 64px !important;
}

#cart_summary.ixob-cart-table .ixob-cart-product-photo img {
    max-width: 72px !important;
    max-height: 72px !important;
}

#cart_summary.ixob-cart-table .s_title_block a {
    font-size: 15px !important;
    line-height: 20px !important;
}

/* Emballage cadeau totalement masqué si une ancienne version/cache le ressort */
#cart_summary.ixob-cart-table #total_wrapping,
#cart_summary.ixob-cart-table tr:has(#total_wrapping) {
    display: none !important;
}

/* Les lignes Presta cachées en inline doivent rester cachées malgré nos styles de tableau */
#cart_summary.ixob-cart-table tfoot tr[style*="display: none"],
#cart_summary.ixob-cart-table tfoot tr[style*="display:none"],
#cart_summary.ixob-cart-table tr.cart_total_voucher[style*="display:none"],
#cart_summary.ixob-cart-table tr.cart_total_voucher[style*="display: none"] {
    display: none !important;
}

/* Résumé plus compact dans une largeur 1080 */
#cart_voucher {
    padding-right: 18px !important;
}

#discount_name {
    width: 235px !important;
    max-width: 235px !important;
}

#cart_summary.ixob-cart-table #total_price_container {
    width: 190px !important;
    min-width: 190px !important;
    max-width: 190px !important;
}

#cart_summary.ixob-cart-table #total_price {
    font-size: 27px !important;
}

/* Les blocs du bas restent cohérents avec la largeur plus compacte */
.ixob-cart-related-grid,
.ixob-cart-review-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

@media screen and (max-width: 1280px) {
    body#order .ixob-cart-page,
    body#order-opc .ixob-cart-page {
        width: min(100%, 1040px) !important;
        max-width: 1040px !important;
    }
}


/* ==========================================================
   V2-CART-14 : alignement global des blocs panier
   ========================================================== */

/* On applique la largeur directement sur la classe, pas seulement body#order,
   pour éviter les écarts selon le page_name PrestaShop. */
.ixob-cart-page {
    width: min(100%, 1120px) !important;
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
}

/* Tous les gros blocs doivent démarrer et finir au même endroit */
.ixob-cart-compact-head,
.ixob-cart-steps,
.ixob-cart-products-card,
.cart_navigation,
.ixob-cart-bottom {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

/* Header panier encore plus propre dans cette largeur */
.ixob-cart-compact-head,
.ixob-cart-compact-head-simple {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Order step aligné avec le tableau, sans dépasser visuellement */
#order_step.ixob-checkout-steps,
ul.step.ixob-checkout-steps {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* Tableau vraiment calé dans le même axe que les steps */
#order-detail-content.ixob-cart-products-card,
#cart_summary.ixob-cart-table {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* Colonnes légèrement rééquilibrées pour la largeur 1120px */
#cart_summary.ixob-cart-table .ixob-col-product { width: 125px !important; }
#cart_summary.ixob-cart-table .ixob-col-unit { width: 120px !important; }
#cart_summary.ixob-cart-table .ixob-col-qty { width: 128px !important; }
#cart_summary.ixob-cart-table .ixob-col-total { width: 135px !important; }
#cart_summary.ixob-cart-table .ixob-col-delete { width: 58px !important; }

#cart_summary.ixob-cart-table thead th.cart_product,
#cart_summary.ixob-cart-table tbody td.cart_product {
    width: 125px !important;
}

#cart_summary.ixob-cart-table thead th.cart_unit,
#cart_summary.ixob-cart-table tbody td.cart_unit {
    width: 120px !important;
}

#cart_summary.ixob-cart-table thead th.cart_quantity,
#cart_summary.ixob-cart-table tbody td.cart_quantity {
    width: 128px !important;
}

#cart_summary.ixob-cart-table thead th.cart_total,
#cart_summary.ixob-cart-table tbody td.cart_total {
    width: 135px !important;
}

#cart_summary.ixob-cart-table thead th.cart_delete,
#cart_summary.ixob-cart-table tbody td.cart_delete {
    width: 58px !important;
}

/* Le bloc total se cale dans la colonne droite du tableau */
#cart_summary.ixob-cart-table #total_price_container {
    width: 180px !important;
    min-width: 180px !important;
    max-width: 180px !important;
    padding: 13px 14px !important;
    margin-left: auto !important;
    box-sizing: border-box !important;
}

#cart_summary.ixob-cart-table #total_price {
    font-size: 26px !important;
    line-height: 32px !important;
}

/* Code promo : plus compact pour ne pas tirer le total vers la gauche */
#cart_voucher {
    padding-right: 16px !important;
}

#discount_name {
    width: 220px !important;
    max-width: 220px !important;
}

/* Navigation : le bouton Suivant prend la même droite que le reste */
.cart_navigation {
    padding-left: 16px !important;
    padding-right: 16px !important;
}

.cart_navigation .standard-checkout,
.cart_navigation .exclusive.standard-checkout {
    min-width: 225px !important;
    margin-right: 0 !important;
}

/* Blocs produits similaires et avis alignés avec le panier */
.ixob-cart-related-grid,
.ixob-cart-review-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

@media screen and (max-width: 1280px) {
    .ixob-cart-page {
        width: min(100%, 1060px) !important;
        max-width: 1060px !important;
    }
}


/* ==========================================================
   V2-CART-15 : aération verticale + titres colonnes nets
   ========================================================== */

/* Plus d'air entre les étapes et le détail du panier */
.ixob-cart-steps {
    margin-bottom: 30px !important;
}

.ixob-cart-products-card {
    margin-top: 0 !important;
}

/* Titres de colonnes : suppression de l'effet flou / ombre héritée */
#cart_summary.ixob-cart-table thead th,
#cart_summary.ixob-cart-table thead th *,
#cart_summary.ixob-cart-table thead span,
#cart_summary.ixob-cart-table thead a {
    text-shadow: none !important;
    box-shadow: none !important;
    filter: none !important;
    -webkit-font-smoothing: antialiased !important;
    font-smoothing: antialiased !important;
}

#cart_summary.ixob-cart-table thead th {
    padding-top: 0 !important;
    padding-bottom: 18px !important;
    color: #1f2937 !important;
    font-size: 13px !important;
    line-height: 17px !important;
    font-weight: 900 !important;
    letter-spacing: .02em !important;
}

/* Un peu plus d'air entre les lignes produits et le récap */
#cart_summary.ixob-cart-table tbody tr.cart_item td {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
}

#cart_summary.ixob-cart-table tbody:last-of-type tr:last-child td {
    margin-bottom: 0 !important;
}

/* Séparation claire entre le détail panier et le récap prix */
#cart_summary.ixob-cart-table tfoot:before {
    content: "";
    display: block;
    height: 24px;
}

/* Récap prix : lignes plus proches entre elles */
#cart_summary.ixob-cart-table tfoot tr.cart_total_price td:first-child,
#cart_summary.ixob-cart-table tfoot tr.cart_total_delivery td:first-child,
#cart_summary.ixob-cart-table tfoot tr.cart_total_voucher td:first-child,
#cart_summary.ixob-cart-table tfoot tr.cart_total_tax td:first-child,
#cart_summary.ixob-cart-table tfoot td.price,
#cart_summary.ixob-cart-table tfoot td.price-discount,
#cart_summary.ixob-cart-table tfoot #total_product,
#cart_summary.ixob-cart-table tfoot #total_shipping,
#cart_summary.ixob-cart-table tfoot #total_discount,
#cart_summary.ixob-cart-table tfoot #total_tax,
#cart_summary.ixob-cart-table tfoot #total_price_without_tax {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
    line-height: 20px !important;
}

/* Petit séparateur avant le bloc code promo + total */
#cart_summary.ixob-cart-table tfoot tr.cart_total_price:last-child td {
    padding-top: 18px !important;
}

/* Le bloc total est séparé du détail, mais pas trop éloigné */
#cart_summary.ixob-cart-table #total_price_container {
    margin-top: 8px !important;
}

/* Code promo : plus d'air autour, sans casser l'alignement */
#cart_voucher {
    padding-top: 20px !important;
    padding-bottom: 8px !important;
}

/* Navigation sous le récap : respire davantage */
.cart_navigation {
    margin-top: 28px !important;
}

/* Blocs bas : aération générale */
.ixob-cart-bottom {
    margin-top: 34px !important;
}

/* En cas de réduction affichée : ligne bien séparée mais pas trop haute */
#cart_summary.ixob-cart-table tr.cart_discount td {
    padding-top: 13px !important;
    padding-bottom: 13px !important;
}


/* ==========================================================
   V2-CART-16 : espace sous livraison offerte + avis lisibles
   ========================================================== */

/* Plus d'espace sous la ligne "Livraison offerte..." avant le bloc total */
#cart_summary.ixob-cart-table tfoot tr.cart_total_delivery td {
    padding-bottom: 18px !important;
}

#cart_summary.ixob-cart-table tfoot tr.cart_total_delivery + tr.cart_total_voucher td,
#cart_summary.ixob-cart-table tfoot tr.cart_total_delivery + tr.cart_total_price td {
    padding-top: 14px !important;
}

/* Si la ligne suivante est le bloc code promo + total, on laisse respirer le total */
#cart_summary.ixob-cart-table #cart_voucher {
    padding-top: 26px !important;
}

#cart_summary.ixob-cart-table #total_price_container {
    margin-top: 14px !important;
}

/* Pour la phrase longue de livraison offerte : lisible sans coller au total */
#cart_summary.ixob-cart-table #total_shipping {
    display: inline-block !important;
    min-width: 250px !important;
    white-space: nowrap !important;
}

/* Avis clients : nom produit visible sur deux lignes */
.ixob-cart-review-card {
    min-height: 220px !important;
}

.ixob-cart-review-card em {
    display: -webkit-box !important;
    height: auto !important;
    min-height: 34px !important;
    max-height: 36px !important;
    overflow: hidden !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    color: var(--ixob-blue-dark) !important;
    font-size: 12px !important;
    line-height: 18px !important;
    font-style: normal !important;
    margin-bottom: 10px !important;
}

/* On réduit légèrement le commentaire pour compenser les deux lignes produit */
.ixob-cart-review-card p {
    -webkit-line-clamp: 4 !important;
}

/* Titre bloc avis : garde une bonne respiration */
.ixob-cart-reviews .ixob-cart-section-head {
    margin-bottom: 20px !important;
}


/* ==========================================================
   V2-CART-17 : aération forte du récap panier
   ========================================================== */

/* Espace plus net après la ligne frais de port */
#cart_summary.ixob-cart-table tfoot tr.cart_total_delivery td {
    padding-bottom: 30px !important;
}

/* La ligne code promo + total doit respirer davantage */
#cart_summary.ixob-cart-table #cart_voucher {
    padding-top: 42px !important;
    padding-bottom: 24px !important;
}

#cart_summary.ixob-cart-table #total_price_container {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
}

/* Séparation visuelle entre récap prix et navigation */
.cart_navigation {
    margin-top: 46px !important;
}

/* Le bouton suivant reste dans son bloc, avec un peu plus d'air vertical */
.cart_navigation {
    min-height: 88px !important;
    padding-top: 16px !important;
    padding-bottom: 16px !important;
}

/* Un peu plus d'air sous le bloc total */
#cart_summary.ixob-cart-table tfoot {
    padding-bottom: 10px !important;
}

/* Quand un bon de réduction est affiché, on garde aussi une séparation propre */
#cart_summary.ixob-cart-table tr.cart_discount + tr td,
#cart_summary.ixob-cart-table tbody.ixob-cart-discounts + tfoot tr:first-child td {
    padding-top: 24px !important;
}


/* ==========================================================
   V2-CART-18 : correction auto-suggestion recherche
   ========================================================== */

/*
   Le panier allège le header et limite la largeur de la recherche.
   Par contre la liste d'auto-suggestion historique a besoin de plus de place :
   modèles à gauche + produits à droite.
*/

body#order #search_block_top,
body#order-opc #search_block_top {
    z-index: 999999 !important;
    overflow: visible !important;
}

body#order .ixob-v2-search,
body#order-opc .ixob-v2-search {
    max-width: 680px !important;
    overflow: visible !important;
}

/* Le dropdown n'est plus limité à la largeur du champ */
body#order #search_block_top #result,
body#order-opc #search_block_top #result,
#search_block_top #result {
    width: 980px !important;
    min-width: 980px !important;
    max-width: calc(100vw - 340px) !important;
    top: 54px !important;
    left: 0 !important;
    overflow: auto !important;
    max-height: 72vh !important;
    z-index: 999999 !important;
    box-sizing: border-box !important;
}

/* On annule l'ancien correctif qui mettait les colonnes internes à 100%.
   Sinon "Les produits" passe sous "Les modèles". */
#search_block_top #result div[style*="width:470px"],
#search_block_top #result div[style*="width: 470px"] {
    width: 470px !important;
    max-width: 470px !important;
    float: left !important;
    box-sizing: border-box !important;
}

#search_block_top #result div[style*="width:500px"],
#search_block_top #result div[style*="width: 500px"] {
    width: 500px !important;
    max-width: 500px !important;
    float: left !important;
    box-sizing: border-box !important;
}

/* Si le module renvoie un conteneur très large en inline, on laisse respirer */
#search_block_top #result > div {
    max-width: none !important;
}

/* Lisibilité du résultat */
#search_block_top #result .show {
    min-height: 30px !important;
    padding: 6px 10px !important;
    line-height: 18px !important;
}

/* Evite que le header ou le panier masque la suggestion */
#header.ixob-v2-header,
#header_right.ixob-v2-header-right,
#page.ixob-v2-page {
    overflow: visible !important;
}


/* ==========================================================
   V2-CHECKOUT-19 : continuité visuelle commande après panier
   ========================================================== */

/* Même largeur et même axe pour toutes les étapes de commande */
body#order #columns,
body#order-opc #columns {
    background: transparent !important;
}

body#order #center_column,
body#order-opc #center_column,
body#order .ixob-cart-page,
body#order-opc .ixob-cart-page {
    width: min(100%, 1120px) !important;
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
}

/* Le order-step reste toujours aligné avec le panier, quelle que soit l'étape */
body#order .ixob-cart-steps,
body#order-opc .ixob-cart-steps,
body#order #order_step.ixob-checkout-steps,
body#order-opc #order_step.ixob-checkout-steps,
body#order ul.step.ixob-checkout-steps,
body#order-opc ul.step.ixob-checkout-steps {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* Les titres des étapes suivantes prennent la même logique que "Votre panier" */
body#order #center_column > h1,
body#order-opc #center_column > h1,
body#order .order-title,
body#order-opc .order-title {
    margin: 0 0 8px 0 !important;
    padding: 8px 0 4px 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #0f172a !important;
    font-size: 27px !important;
    line-height: 32px !important;
    font-weight: 900 !important;
    text-shadow: none !important;
}

/* Les blocs de contenu des étapes suivantes reprennent l'esprit carte propre */
body#order .address_add,
body#order .addresses,
body#order .address_delivery,
body#order .address_invoice,
body#order #opc_account,
body#order #login_form,
body#order #account-creation_form,
body#order #carrier_area,
body#order #HOOK_PAYMENT,
body#order-opc .address_add,
body#order-opc .addresses,
body#order-opc #opc_account,
body#order-opc #carrier_area,
body#order-opc #HOOK_PAYMENT {
    border-color: #dde7f0 !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .055) !important;
    box-sizing: border-box !important;
}

/* Les tableaux/listes de transport et paiement ne doivent pas s'étirer sur toute la page */
body#order table.std,
body#order-opc table.std,
body#order .delivery_options,
body#order-opc .delivery_options {
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 8px !important;
}

/* Bouton suivant identique au panier sur toutes les étapes */
body#order .cart_navigation,
body#order-opc .cart_navigation {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 88px !important;
    margin: 34px auto 30px auto !important;
    padding: 16px !important;
    border: 1px solid #dde7f0 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .075) !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    overflow: visible !important;
}

body#order .cart_navigation:after,
body#order-opc .cart_navigation:after {
    display: none !important;
    content: none !important;
}

body#order .cart_navigation .standard-checkout,
body#order .cart_navigation .exclusive.standard-checkout,
body#order-opc .cart_navigation .standard-checkout,
body#order-opc .cart_navigation .exclusive.standard-checkout,
body#order .cart_navigation input[type="submit"].exclusive,
body#order-opc .cart_navigation input[type="submit"].exclusive {
    float: none !important;
    position: static !important;
    order: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 225px !important;
    height: 50px !important;
    line-height: 50px !important;
    margin: 0 !important;
    padding: 0 28px !important;
    border: 1px solid var(--ixob-red) !important;
    border-radius: 14px !important;
    background: var(--ixob-red) !important;
    color: #fff !important;
    text-align: center !important;
    text-decoration: none !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    box-shadow: 0 12px 26px rgba(239, 25, 65, .26) !important;
    cursor: pointer !important;
}

body#order .cart_navigation .button-exclusive,
body#order .cart_navigation > a:not(.standard-checkout):not(.multishipping-checkout),
body#order-opc .cart_navigation .button-exclusive,
body#order-opc .cart_navigation > a:not(.standard-checkout):not(.multishipping-checkout) {
    float: none !important;
    position: static !important;
    order: 1 !important;
    height: auto !important;
    line-height: normal !important;
    margin: 0 !important;
    color: #344054 !important;
    text-decoration: none !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

/* Le header de commande reste allégé sur toutes les étapes */
body#order #ixob_v2_menu,
body#order-opc #ixob_v2_menu {
    display: none !important;
}


/* ==========================================================
   V2-AUTH-20 : page identification commande
   ========================================================== */

/* Header allégé aussi sur l'identification */
body#authentication #ixob_v2_menu {
    display: none !important;
}

body#authentication .ixob-v2-header {
    min-height: 72px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    border-bottom: 1px solid #eef2f7 !important;
}

body#authentication #header_logo.ixob-v2-logo {
    width: 170px !important;
    margin-top: 2px !important;
}

body#authentication #header_logo.ixob-v2-logo img {
    max-width: 170px !important;
}

body#authentication .ixob-v2-search {
    max-width: 680px !important;
    overflow: visible !important;
}

body#authentication #search_block_top {
    z-index: 999999 !important;
    overflow: visible !important;
}

body#authentication #columns {
    margin-top: 14px !important;
    background: transparent !important;
}

/* Même largeur et même axe que le panier */
.ixob-checkout-page,
.ixob-auth-page {
    width: min(100%, 1120px) !important;
    max-width: 1120px !important;
    margin: 0 auto 42px auto !important;
    padding: 8px 12px 0 12px !important;
    box-sizing: border-box !important;
}

.ixob-auth-head {
    margin: 0 0 12px 0 !important;
}

.ixob-auth-page .ixob-cart-steps {
    margin-bottom: 30px !important;
}

/* Grille initiale : Créer un compte / Déjà client */
.ixob-auth-choice-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
    margin: 0 0 28px 0 !important;
    clear: both !important;
}

.ixob-auth-card,
#account-creation_form,
#new_account_form {
    border: 1px solid #dde7f0 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .055) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.ixob-auth-card fieldset,
#account-creation_form fieldset,
#new_account_form fieldset {
    margin: 0 !important;
    padding: 22px !important;
    border: 0 !important;
    background: transparent !important;
}

.ixob-auth-card h3,
#account-creation_form h3,
#new_account_form h3 {
    margin: -22px -22px 20px -22px !important;
    padding: 16px 22px !important;
    border: 0 !important;
    background: linear-gradient(135deg, #f5fbff 0%, #ffffff 100%) !important;
    color: #0f172a !important;
    font-size: 21px !important;
    line-height: 26px !important;
    font-weight: 900 !important;
    text-shadow: none !important;
}

.ixob-auth-card-create h3 {
    color: var(--ixob-blue-dark) !important;
}

.ixob-auth-card-login h3 {
    color: #0f172a !important;
}

.ixob-auth-card .title_block {
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
    color: #667085 !important;
    font-size: 14px !important;
    line-height: 20px !important;
    font-weight: 600 !important;
}

/* Champs */
.ixob-auth-page p.text,
.ixob-auth-page p.password,
.ixob-auth-page p.select,
.ixob-auth-page p.textarea,
.ixob-auth-page p.radio,
.ixob-auth-page p.required {
    margin: 0 0 15px 0 !important;
    padding: 0 !important;
    clear: both !important;
}

.ixob-auth-page label,
.ixob-auth-page p.radio span {
    display: block !important;
    float: none !important;
    width: auto !important;
    margin: 0 0 7px 0 !important;
    padding: 0 !important;
    color: #344054 !important;
    font-size: 13px !important;
    line-height: 18px !important;
    font-weight: 800 !important;
    text-align: left !important;
}

.ixob-auth-page p.text span {
    display: block !important;
}

.ixob-auth-page input[type="text"],
.ixob-auth-page input[type="password"],
.ixob-auth-page select,
.ixob-auth-page textarea {
    width: 100% !important;
    max-width: none !important;
    height: 44px !important;
    padding: 0 13px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: #0f172a !important;
    font-size: 14px !important;
    line-height: 44px !important;
    box-sizing: border-box !important;
    outline: none !important;
    box-shadow: none !important;
}

.ixob-auth-page textarea {
    height: 92px !important;
    line-height: 18px !important;
    padding-top: 10px !important;
}

.ixob-auth-page input[type="text"]:focus,
.ixob-auth-page input[type="password"]:focus,
.ixob-auth-page select:focus,
.ixob-auth-page textarea:focus {
    border-color: var(--ixob-blue) !important;
    box-shadow: 0 0 0 3px rgba(31, 169, 229, .12) !important;
}

.ixob-auth-page .form_info {
    display: block !important;
    margin-top: 5px !important;
    color: #667085 !important;
    font-size: 12px !important;
}

/* Boutons */
.ixob-auth-page .submit {
    margin-top: 18px !important;
}

.ixob-auth-page input.button,
.ixob-auth-page input.button_large,
.ixob-auth-page input.exclusive,
.ixob-auth-page button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 190px !important;
    height: 46px !important;
    padding: 0 22px !important;
    border: 1px solid var(--ixob-blue) !important;
    border-radius: 13px !important;
    background: var(--ixob-blue) !important;
    color: #fff !important;
    font-size: 15px !important;
    line-height: 46px !important;
    font-weight: 900 !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    box-shadow: 0 9px 20px rgba(31, 169, 229, .20) !important;
}

#login_form input#SubmitLogin,
#account-creation_form input#submitAccount,
#new_account_form input#submitGuestAccount {
    border-color: var(--ixob-red) !important;
    background: var(--ixob-red) !important;
    box-shadow: 0 12px 26px rgba(239, 25, 65, .24) !important;
}

.ixob-auth-page .lost_password {
    margin: -4px 0 14px 0 !important;
    padding: 0 !important;
}

.ixob-auth-page .lost_password a {
    color: var(--ixob-blue-dark) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

/* Formulaire invité / création complet */
#new_account_form,
#account-creation_form {
    margin-top: 26px !important;
}

#new_account_form fieldset,
#account-creation_form fieldset {
    margin-bottom: 18px !important;
}

#new_account_form .cart_navigation,
#account-creation_form .cart_navigation {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 82px !important;
    margin: 28px 0 0 0 !important;
    padding: 16px !important;
    border: 1px solid #dde7f0 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .075) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
}

#new_account_form .cart_navigation span,
#account-creation_form .cart_navigation span {
    order: 1 !important;
    color: #667085 !important;
    font-size: 13px !important;
}

#new_account_form .cart_navigation input,
#account-creation_form .cart_navigation input {
    order: 2 !important;
}

/* Radios propres */
.ixob-auth-page input[type="radio"],
.ixob-auth-page input[type="checkbox"] {
    width: auto !important;
    height: auto !important;
    margin: 0 6px 0 0 !important;
    vertical-align: middle !important;
}

.ixob-auth-page label.top {
    display: inline-block !important;
    margin: 0 14px 0 0 !important;
    font-weight: 700 !important;
}

/* Erreurs */
.ixob-auth-page .error,
.ixob-auth-page #create_account_error {
    border-radius: 12px !important;
    border-color: #fecdd3 !important;
    background: #fff1f3 !important;
    color: #9f1239 !important;
    padding: 12px 14px !important;
    margin-bottom: 16px !important;
}

/* Auto-suggestion toujours correcte sur identification */
body#authentication #search_block_top #result {
    width: 980px !important;
    min-width: 980px !important;
    max-width: calc(100vw - 340px) !important;
    top: 54px !important;
    left: 0 !important;
    overflow: auto !important;
    max-height: 72vh !important;
    z-index: 999999 !important;
}

body#authentication #search_block_top #result div[style*="width:470px"],
body#authentication #search_block_top #result div[style*="width: 470px"] {
    width: 470px !important;
    max-width: 470px !important;
    float: left !important;
}

body#authentication #search_block_top #result div[style*="width:500px"],
body#authentication #search_block_top #result div[style*="width: 500px"] {
    width: 500px !important;
    max-width: 500px !important;
    float: left !important;
}

@media screen and (max-width: 1280px) {
    .ixob-auth-choice-grid {
        grid-template-columns: 1fr !important;
    }

    .ixob-checkout-page,
    .ixob-auth-page {
        width: min(100%, 1060px) !important;
        max-width: 1060px !important;
    }
}


/* ==========================================================
   V2-AUTH-21 : identification forcée même si l'ancien tpl ressort
   ========================================================== */

/*
   Version plus robuste : applique le style aussi aux anciens IDs natifs
   (#create-account_form / #login_form / #new_account_form / #account-creation_form),
   même si le wrapper ixob-auth-page du nouveau authentication.tpl ne ressort pas encore.
*/

/* Header allégé sur identification, order step login et OPC */
body#authentication #ixob_v2_menu,
body.authentication #ixob_v2_menu,
body#order #ixob_v2_menu,
body#order-opc #ixob_v2_menu {
    display: none !important;
}

body#authentication .ixob-v2-header,
body.authentication .ixob-v2-header,
body#order .ixob-v2-header,
body#order-opc .ixob-v2-header {
    min-height: 72px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    border-bottom: 1px solid #eef2f7 !important;
}

body#authentication #header_logo.ixob-v2-logo,
body.authentication #header_logo.ixob-v2-logo,
body#order #header_logo.ixob-v2-logo,
body#order-opc #header_logo.ixob-v2-logo {
    width: 170px !important;
    flex-basis: 170px !important;
    margin-top: 2px !important;
}

body#authentication #header_logo.ixob-v2-logo img,
body.authentication #header_logo.ixob-v2-logo img,
body#order #header_logo.ixob-v2-logo img,
body#order-opc #header_logo.ixob-v2-logo img {
    max-width: 170px !important;
}

body#authentication .ixob-v2-search,
body.authentication .ixob-v2-search,
body#order .ixob-v2-search,
body#order-opc .ixob-v2-search {
    max-width: 680px !important;
    overflow: visible !important;
}

/* Largeur checkout commune */
body#authentication #columns,
body.authentication #columns,
body#order #columns,
body#order-opc #columns {
    background: transparent !important;
}

body#authentication #center_column,
body.authentication #center_column,
body#order #center_column,
body#order-opc #center_column {
    width: min(100%, 1120px) !important;
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
}

/* Order step aligné, même quand il est inclus directement par l'ancien tpl */
body#authentication #order_step,
body.authentication #order_step,
body#order #order_step,
body#order-opc #order_step {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 30px 0 !important;
    box-sizing: border-box !important;
}

/* Si l'ancien tpl sort directement les deux formulaires, on les met en grille */
body#authentication #create-account_form,
body.authentication #create-account_form,
body#authentication #login_form,
body.authentication #login_form {
    width: calc(50% - 11px) !important;
    min-height: 275px !important;
    margin: 0 0 28px 0 !important;
    border: 1px solid #dde7f0 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .055) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

body#authentication #create-account_form,
body.authentication #create-account_form {
    float: left !important;
    clear: left !important;
}

body#authentication #login_form,
body.authentication #login_form {
    float: right !important;
    clear: right !important;
}

/* Cas où la page d'identification est rendue dans body#order */
body#order #create-account_form,
body#order #login_form,
body#order-opc #create-account_form,
body#order-opc #login_form {
    width: calc(50% - 11px) !important;
    min-height: 275px !important;
    margin: 0 0 28px 0 !important;
    border: 1px solid #dde7f0 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .055) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

body#order #create-account_form,
body#order-opc #create-account_form {
    float: left !important;
    clear: left !important;
}

body#order #login_form,
body#order-opc #login_form {
    float: right !important;
    clear: right !important;
}

/* Cartes / formulaires complets */
#create-account_form fieldset,
#login_form fieldset,
#new_account_form fieldset,
#account-creation_form fieldset {
    margin: 0 !important;
    padding: 22px !important;
    border: 0 !important;
    background: transparent !important;
}

#create-account_form h3,
#login_form h3,
#new_account_form h3,
#account-creation_form h3 {
    margin: -22px -22px 20px -22px !important;
    padding: 16px 22px !important;
    border: 0 !important;
    background: linear-gradient(135deg, #f5fbff 0%, #ffffff 100%) !important;
    color: #0f172a !important;
    font-size: 21px !important;
    line-height: 26px !important;
    font-weight: 900 !important;
    text-shadow: none !important;
}

/* Libellés en français plus beaux même si l'ancien texte reste */
#create-account_form .title_block {
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
    color: #667085 !important;
    font-size: 14px !important;
    line-height: 20px !important;
    font-weight: 600 !important;
}

/* Champs */
#create-account_form p,
#login_form p,
#new_account_form p,
#account-creation_form p {
    margin-bottom: 15px !important;
}

#create-account_form label,
#login_form label,
#new_account_form label,
#account-creation_form label,
#new_account_form p.radio span,
#account-creation_form p.radio span {
    display: block !important;
    float: none !important;
    width: auto !important;
    margin: 0 0 7px 0 !important;
    padding: 0 !important;
    color: #344054 !important;
    font-size: 13px !important;
    line-height: 18px !important;
    font-weight: 800 !important;
    text-align: left !important;
}

#create-account_form p.text span,
#login_form p.text span {
    display: block !important;
}

#create-account_form input[type="text"],
#login_form input[type="text"],
#login_form input[type="password"],
#new_account_form input[type="text"],
#new_account_form input[type="password"],
#new_account_form select,
#new_account_form textarea,
#account-creation_form input[type="text"],
#account-creation_form input[type="password"],
#account-creation_form select,
#account-creation_form textarea {
    width: 100% !important;
    max-width: none !important;
    height: 44px !important;
    padding: 0 13px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: #0f172a !important;
    font-size: 14px !important;
    line-height: 44px !important;
    box-sizing: border-box !important;
    outline: none !important;
    box-shadow: none !important;
}

#new_account_form textarea,
#account-creation_form textarea {
    height: 92px !important;
    line-height: 18px !important;
    padding-top: 10px !important;
}

/* Boutons */
#create-account_form input.button_large,
#login_form input.button,
#new_account_form input.exclusive,
#account-creation_form input.exclusive {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 190px !important;
    height: 46px !important;
    padding: 0 22px !important;
    border: 1px solid var(--ixob-blue) !important;
    border-radius: 13px !important;
    background: var(--ixob-blue) !important;
    color: #fff !important;
    font-size: 15px !important;
    line-height: 46px !important;
    font-weight: 900 !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    box-shadow: 0 9px 20px rgba(31, 169, 229, .20) !important;
}

#login_form input#SubmitLogin,
#new_account_form input#submitGuestAccount,
#account-creation_form input#submitAccount {
    border-color: var(--ixob-red) !important;
    background: var(--ixob-red) !important;
    box-shadow: 0 12px 26px rgba(239, 25, 65, .24) !important;
}

#login_form .lost_password a {
    color: var(--ixob-blue-dark) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

/* Formulaire invité ou création complet */
#new_account_form,
#account-creation_form {
    clear: both !important;
    width: 100% !important;
    margin-top: 26px !important;
    border: 1px solid #dde7f0 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .055) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

#new_account_form .cart_navigation,
#account-creation_form .cart_navigation {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 82px !important;
    margin: 28px 0 0 0 !important;
    padding: 16px !important;
    border: 1px solid #dde7f0 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .075) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
}

/* Clearfix après les deux cartes si l'ancien HTML continue après */
#login_form:after,
#create-account_form:after {
    content: "";
    display: table;
    clear: both;
}

@media screen and (max-width: 1280px) {
    body#authentication #create-account_form,
    body.authentication #create-account_form,
    body#authentication #login_form,
    body.authentication #login_form,
    body#order #create-account_form,
    body#order #login_form,
    body#order-opc #create-account_form,
    body#order-opc #login_form {
        width: 100% !important;
        float: none !important;
        clear: both !important;
    }
}


/* ==========================================================
   V2-AUTH-22 : blocs identification plus propres
   ========================================================== */

/* On reprend la largeur/alignement du panier proprement */
.ixob-auth-page,
.ixob-checkout-page {
    width: min(100%, 1120px) !important;
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
}

/* Le footer ne doit jamais remonter sous les cartes */
#footer,
.ixob-v2-footer {
    clear: both !important;
}

/* Grille des deux cartes : on annule les floats trop agressifs de la V21 */
.ixob-auth-choice-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 28px !important;
    align-items: stretch !important;
    margin: 32px 0 36px 0 !important;
    clear: both !important;
}

.ixob-auth-choice-grid:after {
    content: "";
    display: table;
    clear: both;
}

.ixob-auth-choice-grid #create-account_form,
.ixob-auth-choice-grid #login_form,
body#authentication .ixob-auth-choice-grid #create-account_form,
body#authentication .ixob-auth-choice-grid #login_form,
body#order .ixob-auth-choice-grid #create-account_form,
body#order .ixob-auth-choice-grid #login_form,
body#order-opc .ixob-auth-choice-grid #create-account_form,
body#order-opc .ixob-auth-choice-grid #login_form {
    float: none !important;
    clear: none !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    border: 1px solid #dbe8f2 !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: 0 14px 34px rgba(16, 24, 40, .075) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

/* Cartes plus lisibles et mieux proportionnées */
.ixob-auth-choice-grid #create-account_form fieldset,
.ixob-auth-choice-grid #login_form fieldset {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
}

.ixob-auth-choice-grid #create-account_form h3,
.ixob-auth-choice-grid #login_form h3 {
    margin: 0 !important;
    padding: 22px 26px 18px 26px !important;
    border: 0 !important;
    border-bottom: 1px solid #edf3f8 !important;
    background: linear-gradient(135deg, #f6fbff 0%, #ffffff 100%) !important;
    color: #0f172a !important;
    font-size: 24px !important;
    line-height: 30px !important;
    font-weight: 900 !important;
    letter-spacing: -.02em !important;
    text-shadow: none !important;
    text-transform: none !important;
}

.ixob-auth-choice-grid #create-account_form h3 {
    color: var(--ixob-blue-dark) !important;
}

.ixob-auth-choice-grid #create-account_form .form_content,
.ixob-auth-choice-grid #login_form .form_content {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 24px 26px 26px 26px !important;
    box-sizing: border-box !important;
}

.ixob-auth-choice-grid #create-account_form .title_block {
    margin: 0 0 22px 0 !important;
    color: #667085 !important;
    font-size: 15px !important;
    line-height: 22px !important;
    font-weight: 700 !important;
}

/* Les champs ne doivent pas coller au bord */
.ixob-auth-choice-grid #create-account_form p.text,
.ixob-auth-choice-grid #login_form p.text {
    margin: 0 0 18px 0 !important;
}

.ixob-auth-choice-grid #create-account_form label,
.ixob-auth-choice-grid #login_form label {
    margin-bottom: 8px !important;
    color: #344054 !important;
    font-size: 13px !important;
    line-height: 18px !important;
    font-weight: 900 !important;
}

.ixob-auth-choice-grid #create-account_form input[type="text"],
.ixob-auth-choice-grid #login_form input[type="text"],
.ixob-auth-choice-grid #login_form input[type="password"] {
    height: 48px !important;
    border-radius: 13px !important;
    font-size: 15px !important;
}

/* Boutons en bas des cartes pour équilibrer les hauteurs */
.ixob-auth-choice-grid #create-account_form p.submit,
.ixob-auth-choice-grid #login_form p.submit {
    margin-top: auto !important;
    padding-top: 12px !important;
}

.ixob-auth-choice-grid #create-account_form input#SubmitCreate,
.ixob-auth-choice-grid #login_form input#SubmitLogin {
    width: 100% !important;
    height: 50px !important;
    border-radius: 14px !important;
    font-size: 16px !important;
}

.ixob-auth-choice-grid #create-account_form input#SubmitCreate {
    border-color: var(--ixob-blue) !important;
    background: var(--ixob-blue) !important;
    box-shadow: 0 10px 22px rgba(31, 169, 229, .22) !important;
}

.ixob-auth-choice-grid #login_form input#SubmitLogin {
    border-color: var(--ixob-red) !important;
    background: var(--ixob-red) !important;
    box-shadow: 0 12px 26px rgba(239, 25, 65, .24) !important;
}

.ixob-auth-choice-grid #login_form .lost_password {
    margin: -4px 0 20px 0 !important;
}

.ixob-auth-choice-grid #login_form .lost_password a {
    color: var(--ixob-blue-dark) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

/* Petite réassurance sous les cartes, discrète */
.ixob-auth-choice-grid #create-account_form:after {
    content: "Création rapide · suivi de commande · historique conservé";
    display: block;
    padding: 13px 26px;
    border-top: 1px solid #edf3f8;
    background: #fbfdff;
    color: #667085;
    font-size: 12px;
    line-height: 17px;
    font-weight: 700;
}

.ixob-auth-choice-grid #login_form:after {
    content: "Connectez-vous pour retrouver vos adresses et vos commandes.";
    display: block;
    padding: 13px 26px;
    border-top: 1px solid #edf3f8;
    background: #fbfdff;
    color: #667085;
    font-size: 12px;
    line-height: 17px;
    font-weight: 700;
}

/* Si le formulaire invité ou création complète apparaît ensuite */
#new_account_form,
#account-creation_form {
    clear: both !important;
    margin-top: 30px !important;
}

/* Evite les cartes trop hautes et coupées par le footer */
.ixob-auth-page {
    padding-bottom: 46px !important;
}

/* Version desktop un peu plus élégante : cartes moins étirées */
@media screen and (min-width: 1281px) {
    .ixob-auth-choice-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    }
}

/* Fallback si pour une raison quelconque le wrapper grille n'est pas chargé */
body#authentication #create-account_form:not(.ixob-auth-card),
body#authentication #login_form:not(.ixob-auth-card),
body#order #create-account_form:not(.ixob-auth-card),
body#order #login_form:not(.ixob-auth-card),
body#order-opc #create-account_form:not(.ixob-auth-card),
body#order-opc #login_form:not(.ixob-auth-card) {
    max-width: none !important;
}

/* On garde une seule colonne sur écran moins large */
@media screen and (max-width: 1020px) {
    .ixob-auth-choice-grid {
        grid-template-columns: 1fr !important;
    }
}


/* ==========================================================
   V2-AUTH/CART-23 : centrage strict panier + identification
   ========================================================== */

/*
   Correction volontairement simple :
   - #center_column reprend toute la largeur disponible ;
   - les vrais blocs (.ixob-cart-page / .ixob-auth-page) sont centrés en 1120px.
   Cela évite que Presta/Dreamweaver/anciens floats déplacent la page.
*/

body#order #columns,
body#order-opc #columns,
body#authentication #columns,
body.authentication #columns {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    background: transparent !important;
    box-sizing: border-box !important;
}

body#order #center_column,
body#order-opc #center_column,
body#authentication #center_column,
body.authentication #center_column {
    float: none !important;
    clear: both !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

/* Panier + identification : même axe, même largeur */
body#order .ixob-cart-page,
body#order-opc .ixob-cart-page,
body#authentication .ixob-auth-page,
body.authentication .ixob-auth-page,
body#order .ixob-auth-page,
body#order-opc .ixob-auth-page,
.ixob-cart-page,
.ixob-auth-page {
    float: none !important;
    clear: both !important;
    display: block !important;
    width: min(100%, 1120px) !important;
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
}

/* Les éléments internes prennent la largeur exacte du bloc centré */
.ixob-cart-page .ixob-cart-compact-head,
.ixob-cart-page .ixob-cart-steps,
.ixob-cart-page #order-detail-content,
.ixob-cart-page #cart_summary,
.ixob-cart-page .cart_navigation,
.ixob-cart-page .ixob-cart-bottom,
.ixob-auth-page .ixob-auth-head,
.ixob-auth-page .ixob-cart-steps,
.ixob-auth-page .ixob-auth-choice-grid {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* Identification : centrage propre des deux cartes */
.ixob-auth-page .ixob-auth-choice-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 28px !important;
    align-items: stretch !important;
    margin-top: 32px !important;
    margin-bottom: 46px !important;
}

.ixob-auth-page #create-account_form,
.ixob-auth-page #login_form {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    clear: none !important;
}

/* Sécurité : les vieux floats des deux formulaires ne doivent plus pousser la page à gauche */
body#authentication #create-account_form,
body#authentication #login_form,
body#order #create-account_form,
body#order #login_form,
body#order-opc #create-account_form,
body#order-opc #login_form {
    box-sizing: border-box !important;
}

/* Le footer repasse toujours sous les cartes */
#footer,
.ixob-v2-footer {
    clear: both !important;
}

/* Les blocs panier restent centrés aussi après cette correction */
body#order .cart_navigation,
body#order-opc .cart_navigation {
    width: 100% !important;
    max-width: 100% !important;
}

/* Sur largeur plus serrée, une seule colonne d'identification */
@media screen and (max-width: 1020px) {
    .ixob-auth-page .ixob-auth-choice-grid {
        grid-template-columns: 1fr !important;
    }
}


/* ==========================================================
   V2-AUTH-24 : civilité supprimée, Monsieur par défaut
   ========================================================== */

/* Le champ radio civilité est retiré du tpl et remplacé par id_gender=1.
   Sécurité visuelle si un ancien cache AJAX ressort encore le bloc. */
.ixob-auth-page #new_account_form p.radio.required:first-of-type,
.ixob-auth-page #account-creation_form p.radio.required:first-of-type {
    display: none !important;
}


/* ==========================================================
   V2-AUTH-25 : informations complémentaires supprimées
   ========================================================== */

/* Le champ "Informations complémentaires" / textarea other est retiré du tpl.
   Sécurité visuelle si un ancien cache AJAX le ressort encore. */
.ixob-auth-page textarea#other,
.ixob-auth-page label[for="other"],
.ixob-auth-page p.textarea:has(textarea#other),
#new_account_form textarea#other,
#account-creation_form textarea#other {
    display: none !important;
}


/* ==========================================================
   V2-ORDER-ADDRESS-27 : choix adresse dans le tunnel commande
   ========================================================== */

/* Le wrapper order-address reprend exactement l'axe panier/authentification */
.ixob-order-address-page {
    float: none !important;
    clear: both !important;
    display: block !important;
    width: min(100%, 1120px) !important;
    max-width: 1120px !important;
    margin: 0 auto 46px auto !important;
    padding: 8px 12px 0 12px !important;
    box-sizing: border-box !important;
}

.ixob-order-address-page .ixob-order-address-head,
.ixob-order-address-page .ixob-cart-steps,
.ixob-order-address-page #order_step,
.ixob-order-address-page form,
.ixob-order-address-page .addresses,
.ixob-order-address-page .cart_navigation {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* Le vieux <br> / marges Presta ne doivent pas désaxer l'étape */
.ixob-order-address-page + br,
.ixob-order-address-page br:first-child {
    display: none !important;
}

/* Carte principale de choix adresse */
.ixob-order-address-page .addresses {
    margin: 30px 0 0 0 !important;
    padding: 0 !important;
    border: 1px solid #dbe8f2 !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: 0 14px 34px rgba(16, 24, 40, .075) !important;
    overflow: hidden !important;
    clear: both !important;
}

.ixob-order-address-page .addresses:before {
    content: "Vos adresses";
    display: block;
    padding: 18px 26px;
    border-bottom: 1px solid #edf3f8;
    background: linear-gradient(135deg, #f6fbff 0%, #ffffff 100%);
    color: var(--ixob-blue-dark);
    font-size: 23px;
    line-height: 29px;
    font-weight: 900;
}

/* Sélection livraison / facturation */
.ixob-order-address-page .address_delivery.select,
.ixob-order-address-page #address_invoice_form,
.ixob-order-address-page .addressesAreEquals {
    margin: 0 !important;
    padding: 20px 26px 0 26px !important;
    box-sizing: border-box !important;
}

.ixob-order-address-page .address_delivery.select {
    display: grid !important;
    grid-template-columns: minmax(220px, 310px) minmax(0, 1fr) !important;
    gap: 16px !important;
    align-items: center !important;
}

.ixob-order-address-page #address_invoice_form {
    display: grid !important;
    grid-template-columns: minmax(220px, 310px) minmax(0, 1fr) !important;
    gap: 16px !important;
    align-items: center !important;
}

.ixob-order-address-page .addressesAreEquals {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding-top: 14px !important;
}

.ixob-order-address-page label {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #344054 !important;
    font-size: 13px !important;
    line-height: 18px !important;
    font-weight: 900 !important;
    text-align: left !important;
}

.ixob-order-address-page select.address_select {
    width: 100% !important;
    max-width: none !important;
    height: 46px !important;
    padding: 0 13px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: #0f172a !important;
    font-size: 14px !important;
    line-height: 46px !important;
    box-sizing: border-box !important;
    outline: none !important;
    box-shadow: none !important;
}

.ixob-order-address-page select.address_select:focus {
    border-color: var(--ixob-blue) !important;
    box-shadow: 0 0 0 3px rgba(31, 169, 229, .12) !important;
}

.ixob-order-address-page .addressesAreEquals input[type="checkbox"] {
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
}

.ixob-order-address-page .addressesAreEquals label {
    font-weight: 800 !important;
    color: #475467 !important;
}

/* Affichage des deux adresses calculées par le JS Presta */
.ixob-order-address-page .addresses > .clearfix {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
    margin: 22px 26px 8px 26px !important;
    padding: 0 !important;
    clear: both !important;
}

.ixob-order-address-page ul.address {
    float: none !important;
    width: auto !important;
    min-height: 210px !important;
    margin: 0 !important;
    padding: 16px 20px !important;
    border: 1px solid #e2edf6 !important;
    border-radius: 18px !important;
    background: #fbfdff !important;
    list-style: none !important;
    box-sizing: border-box !important;
}

.ixob-order-address-page ul.address.full_width {
    grid-column: 1 / -1 !important;
}

.ixob-order-address-page ul.address li {
    margin: 0 !important;
    padding: 4px 0 !important;
    color: #344054 !important;
    font-size: 14px !important;
    line-height: 20px !important;
    list-style: none !important;
}

.ixob-order-address-page ul.address li.address_title {
    margin: -16px -20px 12px -20px !important;
    padding: 14px 20px !important;
    border-bottom: 1px solid #e2edf6 !important;
    background: #fff !important;
    color: #0f172a !important;
    font-size: 18px !important;
    line-height: 23px !important;
    font-weight: 900 !important;
}

.ixob-order-address-page .address_name {
    font-weight: 900 !important;
    color: #0f172a !important;
}

/* Ajouter une adresse */
.ixob-order-address-page .address_add {
    margin: 0 !important;
    padding: 18px 26px 24px 26px !important;
    text-align: right !important;
    clear: both !important;
}

.ixob-order-address-page .address_add a,
.ixob-order-address-page #address_invoice_form a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 185px !important;
    height: 42px !important;
    padding: 0 16px !important;
    border: 1px solid var(--ixob-blue) !important;
    border-radius: 12px !important;
    background: var(--ixob-blue) !important;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 13px !important;
    line-height: 42px !important;
    font-weight: 900 !important;
    box-shadow: 0 9px 20px rgba(31, 169, 229, .18) !important;
}

.ixob-order-address-page #address_invoice_form a {
    margin-left: 0 !important;
}

/* Bouton suivant : strictement cohérent avec le panier */
.ixob-order-address-page .cart_navigation {
    min-height: 88px !important;
    margin: 34px auto 30px auto !important;
    padding: 16px !important;
    border: 1px solid #dde7f0 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .075) !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    overflow: visible !important;
}

.ixob-order-address-page .cart_navigation:after {
    display: none !important;
    content: none !important;
}

.ixob-order-address-page .cart_navigation a.button {
    float: none !important;
    position: static !important;
    order: 1 !important;
    height: auto !important;
    line-height: normal !important;
    margin: 0 !important;
    color: #344054 !important;
    background: transparent !important;
    border: 0 !important;
    text-decoration: none !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    box-shadow: none !important;
}

.ixob-order-address-page .cart_navigation input.exclusive {
    float: none !important;
    position: static !important;
    order: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 225px !important;
    height: 50px !important;
    line-height: 50px !important;
    margin: 0 !important;
    padding: 0 28px !important;
    border: 1px solid var(--ixob-red) !important;
    border-radius: 14px !important;
    background: var(--ixob-red) !important;
    color: #fff !important;
    text-align: center !important;
    text-decoration: none !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    box-shadow: 0 12px 26px rgba(239, 25, 65, .26) !important;
    cursor: pointer !important;
}

/* Multishipping : on garde propre mais discret */
.ixob-order-address-page #multishipping_mode_box {
    margin: 0 0 24px 0 !important;
    padding: 16px 20px !important;
    border: 1px solid #e2edf6 !important;
    border-radius: 16px !important;
    background: #fbfdff !important;
    color: #475467 !important;
    box-sizing: border-box !important;
}

.ixob-order-address-page #multishipping_mode_box .title {
    color: #0f172a !important;
    font-weight: 900 !important;
}

/* order-address-product-line : table multishipping */
.ixob-order-address-page table.multishipping-cart,
.ixob-order-address-page #cart_summary {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 8px !important;
}

.ixob-order-address-page .cart_address_delivery {
    width: 100% !important;
    height: 40px !important;
    border: 1px solid var(--ixob-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

/* Si JS/ancien CSS ressort des éléments flottants */
.ixob-order-address-page .clear,
.ixob-order-address-page .clearfix {
    clear: none !important;
}

/* Auto-suggestion toujours correcte sur l'étape adresse */
body#order #search_block_top #result,
body#order-opc #search_block_top #result {
    z-index: 999999 !important;
}

@media screen and (max-width: 1020px) {
    .ixob-order-address-page .address_delivery.select,
    .ixob-order-address-page #address_invoice_form,
    .ixob-order-address-page .addresses > .clearfix {
        grid-template-columns: 1fr !important;
    }
}


/* ==========================================================
   V2-ORDER-ADDRESS-28 : correction alignement blocs adresse
   ========================================================== */

/*
   Correction du chevauchement :
   l'ancien thème flotte les blocs .address et le bouton "Ajouter".
   Ici on impose une structure verticale dans la carte,
   puis une grille stricte pour livraison / facturation.
*/

.ixob-order-address-page .addresses {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    overflow: visible !important;
}

/* Ordre fiable des éléments */
.ixob-order-address-page .address_delivery.select {
    order: 1 !important;
}

.ixob-order-address-page .addressesAreEquals {
    order: 2 !important;
}

.ixob-order-address-page #address_invoice_form {
    order: 3 !important;
}

.ixob-order-address-page .ixob-order-address-cards,
.ixob-order-address-page .addresses > div.clearfix {
    order: 4 !important;
}

.ixob-order-address-page .address_add {
    order: 5 !important;
}

/* Les deux cartes d'adresse doivent rester sur la même ligne */
.ixob-order-address-page .ixob-order-address-cards,
.ixob-order-address-page .addresses > div.clearfix {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;
    width: auto !important;
    max-width: none !important;
    margin: 24px 26px 8px 26px !important;
    padding: 0 !important;
    clear: both !important;
    float: none !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    box-sizing: border-box !important;
}

/* Annule tous les vieux floats / positions des blocs adresses */
.ixob-order-address-page .ixob-order-address-cards ul.address,
.ixob-order-address-page .addresses > div.clearfix ul.address,
.ixob-order-address-page ul#address_delivery,
.ixob-order-address-page ul#address_invoice {
    float: none !important;
    clear: none !important;
    display: block !important;
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 260px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 16px 20px !important;
    box-sizing: border-box !important;
    transform: none !important;
}

/* Le bloc facturation ne doit plus partir en dessous à gauche */
.ixob-order-address-page ul#address_delivery {
    grid-column: 1 !important;
    grid-row: 1 !important;
}

.ixob-order-address-page ul#address_invoice {
    grid-column: 2 !important;
    grid-row: 1 !important;
}

/* Si panier virtuel / pleine largeur, on garde une carte propre */
.ixob-order-address-page ul.address.full_width,
.ixob-order-address-page ul#address_invoice.full_width {
    grid-column: 1 / -1 !important;
}

/* Le bouton ajouter reste sous les cartes, pas au-dessus */
.ixob-order-address-page .address_add {
    float: none !important;
    clear: both !important;
    width: auto !important;
    margin: 0 !important;
    padding: 18px 26px 24px 26px !important;
    text-align: right !important;
    position: static !important;
    box-sizing: border-box !important;
}

/* Le header "Vos adresses" ne doit pas être coupé */
.ixob-order-address-page .addresses:before {
    flex: 0 0 auto !important;
    min-height: 29px !important;
    box-sizing: content-box !important;
}

/* Un peu plus compact en haut de la carte */
.ixob-order-address-page .address_delivery.select {
    padding-top: 22px !important;
}

/* Nettoyage visuel du lien "Mettre à jour" injecté dans les UL */
.ixob-order-address-page ul.address li.address_update,
.ixob-order-address-page ul.address li.address_delete {
    margin-top: 10px !important;
    padding-top: 10px !important;
}

.ixob-order-address-page ul.address li.address_update a,
.ixob-order-address-page ul.address li.address_delete a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 125px !important;
    height: 36px !important;
    padding: 0 13px !important;
    border-radius: 11px !important;
    text-decoration: none !important;
    font-size: 13px !important;
    line-height: 36px !important;
    font-weight: 900 !important;
}

.ixob-order-address-page ul.address li.address_update a {
    border: 1px solid var(--ixob-blue) !important;
    background: var(--ixob-blue) !important;
    color: #fff !important;
}

.ixob-order-address-page ul.address li.address_delete a {
    border: 1px solid #ffd5dd !important;
    background: #fff1f3 !important;
    color: var(--ixob-red) !important;
}

/* Sécurité : pas de chevauchement avec le bouton suivant */
.ixob-order-address-page .cart_navigation {
    clear: both !important;
    margin-top: 36px !important;
}

@media screen and (max-width: 1020px) {
    .ixob-order-address-page .ixob-order-address-cards,
    .ixob-order-address-page .addresses > div.clearfix {
        grid-template-columns: 1fr !important;
    }

    .ixob-order-address-page ul#address_delivery,
    .ixob-order-address-page ul#address_invoice {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
}


/* ==========================================================
   V2-ORDER-ADDRESS-29 : bouton ajouter adresse à gauche
   ========================================================== */

.ixob-order-address-page .address_add {
    text-align: left !important;
    padding: 18px 26px 26px 26px !important;
}

.ixob-order-address-page .address_add a {
    min-width: 245px !important;
    justify-content: center !important;
}

/* Espace visuel plus net avant le bloc Suivant */
.ixob-order-address-page .cart_navigation {
    margin-top: 44px !important;
}
