/* =============================================================================
   INSTALL COMMUNICATION 33 — FICHE PRODUIT
   Design IC33 / version 2026
============================================================================= */

.ic33-single-product{
    padding:12px 0 100px;
    background:#fff;
}

.ic33-single-product__container{
    width:calc(100% - 40px);
    max-width:none;
    margin-inline:20px;
}

/* ==========================================================================
   01 — FIL D'ARIANE
========================================================================== */

.ic33-product-breadcrumb{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 20px;
    color:#7A8794;
    font-size:12px;
    line-height:1.4;
}

.ic33-product-breadcrumb a{
    color:#536474;
    text-decoration:none;
    transition:color .18s ease;
}

.ic33-product-breadcrumb a:hover{
    color:var(--ic33-primary);
}

.ic33-product-breadcrumb__sep{
    color:#AAB5BF;
    font-size:17px;
    line-height:1;
}

.ic33-product-breadcrumb__current{
    max-width:420px;
    overflow:hidden;
    color:#152C43;
    font-weight:700;
    text-overflow:ellipsis;
    white-space:nowrap;
}

/* ==========================================================================
   02 — HERO PRODUIT
========================================================================== */

.ic33-single-product__grid{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(430px,.95fr);
    gap:64px;
    align-items:start;
}

/* ==========================================================================
   03 — GALERIE : MINIATURES À GAUCHE
========================================================================== */

.ic33-single-product__gallery{
    min-width:0;
}

.ic33-product-gallery{
    position:relative;
    width:100%;
}

.woocommerce-product-gallery{
    display:grid!important;
    grid-template-columns:92px minmax(0,1fr);
    grid-template-rows:auto;
    column-gap:14px;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
}

.woocommerce-product-gallery__wrapper{
    grid-column:2;
    grid-row:1;
    width:100%;
    min-width:0;
    margin:0!important;
}

.woocommerce-product-gallery__image{
    width:100%;
    margin:0!important;
    border:1px solid #E0E7EE;
    border-radius:18px;
    background:#fff;
    overflow:hidden;
}

.woocommerce-product-gallery__image a{
    display:flex!important;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:520px;
    padding:30px;
    background:#fff;
}

.woocommerce-product-gallery__image img{
    display:block!important;
    width:auto!important;
    max-width:100%!important;
    max-height:520px!important;
    height:auto!important;
    margin:0 auto!important;
    padding:0!important;
    object-fit:contain;
}

/* Miniatures verticales */
.flex-control-thumbs{
    grid-column:1;
    grid-row:1;
    display:flex!important;
    flex-direction:column;
    gap:12px;
    align-self:start;
    width:92px!important;
    height:auto;
    margin:0!important;
    padding:0!important;
    list-style:none!important;
}

.flex-control-thumbs li{
    width:92px!important;
    height:92px!important;
    margin:0!important;
    padding:0!important;
}

.flex-control-thumbs img{
    display:block!important;
    width:92px!important;
    height:92px!important;
    margin:0!important;
    padding:8px!important;
    border:2px solid #E1E7ED!important;
    border-radius:12px!important;
    background:#fff!important;
    object-fit:contain!important;
    opacity:1!important;
    cursor:pointer;
    transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease;
}

.flex-control-thumbs img:hover{
    border-color:#8AAECC!important;
    transform:translateY(-1px);
}

.flex-control-thumbs .flex-active{
    border-color:var(--ic33-primary)!important;
    box-shadow:0 0 0 1px var(--ic33-primary);
}

/* Zoom */
.woocommerce-product-gallery__trigger{
    position:absolute!important;
    top:12px!important;
    right:12px!important;
    z-index:30!important;
    display:grid!important;
    width:42px!important;
    height:42px!important;
    place-items:center;
    margin:0!important;
    border:1px solid #E0E7EE!important;
    border-radius:50%!important;
    background:#fff!important;
    box-shadow:0 6px 18px rgba(9,35,58,.10)!important;
    font-size:0!important;
}

.woocommerce-product-gallery__trigger::before{
    font-size:18px!important;
}

.woocommerce-product-gallery .onsale{
    position:absolute!important;
    top:14px!important;
    left:14px!important;
    z-index:35!important;
    min-width:0!important;
    margin:0!important;
    padding:8px 13px!important;
    border:0!important;
    border-radius:999px!important;
    background:var(--ic33-secondary)!important;
    color:#fff!important;
    font-size:11px!important;
    line-height:1!important;
    font-weight:800!important;
}

/* ==========================================================================
   04 — COLONNE PRODUIT
========================================================================== */

.ic33-single-product__summary{
    min-width:0;
    padding-top:2px;
}

.ic33-product-summary{
    width:100%;
    min-width:0;
}

.ic33-product-summary .summary{
    width:100%!important;
    float:none!important;
    margin:0!important;
    padding:0!important;
}

.ic33-product-summary__brand{
    margin:0 0 8px;
    color:#657384;
    font-size:13px;
    line-height:1.3;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}

/* Titre */
.ic33-product-summary .product_title{
    margin:0 0 14px!important;
    color:#101D2E!important;
    font-family:var(--ic33-font-heading,"Inter","Segoe UI",sans-serif);
    font-size:clamp(34px,3.1vw,50px)!important;
    line-height:1.04!important;
    font-weight:850!important;
    letter-spacing:-.045em!important;
}

/* Prix */
.ic33-product-summary .price{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:11px;
    margin:0 0 20px!important;
    color:#075FA8!important;
    font-family:var(--ic33-font-heading,"Inter","Segoe UI",sans-serif);
    font-size:31px!important;
    line-height:1.1!important;
    font-weight:850!important;
}

.ic33-product-summary .price del{
    color:#A6AFB8!important;
    font-size:15px!important;
    font-weight:500!important;
}

.ic33-product-summary .price ins{
    color:inherit!important;
    background:none!important;
    text-decoration:none!important;
}

/* Description courte — cadre bleu */
.ic33-product-summary .woocommerce-product-details__short-description{
    position:relative;
    margin:0 0 24px!important;
    padding:17px 18px 17px 20px!important;
    border:1px solid #9CC8F1!important;
    border-left:4px solid var(--ic33-primary)!important;
    border-radius:12px!important;
    background:#EAF5FF!important;
    color:#31516B!important;
    font-size:14px!important;
    line-height:1.65!important;
}

.ic33-product-summary .woocommerce-product-details__short-description p{
    margin:0 0 8px!important;
}

.ic33-product-summary .woocommerce-product-details__short-description p:last-child{
    margin-bottom:0!important;
}

/* ==========================================================================
   05 — VARIATIONS
========================================================================== */

.ic33-product-summary .variations_form{
    margin:0!important;
}

.ic33-product-summary .variations{
    width:100%!important;
    margin:0 0 15px!important;
    border:0!important;
    border-collapse:separate!important;
    border-spacing:0 13px!important;
}

.ic33-product-summary .variations tr,
.ic33-product-summary .variations th,
.ic33-product-summary .variations td{
    display:block!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    text-align:left!important;
}

.ic33-product-summary .variations label{
    display:block;
    margin:0 0 7px;
    color:#172C40;
    font-size:13px;
    line-height:1.35;
    font-weight:800;
}

.ic33-product-summary .variations select{
    width:100%;
    min-height:50px;
    padding:0 15px;
    border:1px solid #D7E0E8;
    border-radius:10px;
    background:#fff;
    color:#20364B;
    font-size:14px;
    box-shadow:none;
}

.ic33-product-summary .variations select:focus{
    border-color:var(--ic33-primary);
    outline:none;
    box-shadow:0 0 0 3px rgba(0,87,164,.10);
}

.ic33-product-summary .reset_variations{
    display:inline-block;
    margin:5px 0 0;
    color:var(--ic33-primary);
    font-size:12px;
    font-weight:750;
    text-decoration:none;
}

.ic33-product-summary .single_variation_wrap{
    width:100%;
}

.ic33-product-summary .single_variation{
    margin:0 0 12px;
}

.ic33-product-summary .single_variation .price{
    margin:0 0 12px!important;
}

/* ==========================================================================
   06 — QUANTITÉ + PANIER
========================================================================== */

.ic33-product-summary form.cart{
    display:flex;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:28px;
    width:100%;
    margin:0!important;
    padding:18px 0 0!important;
    border-top:1px solid #E3E9EF;
}

.ic33-product-summary .quantity{
    position:relative;
    display:flex;
    flex:0 0 132px;
    align-items:center;
    width:132px;
    height:58px;
    margin:0!important;
    padding:0 38px;
    border:1px solid #D6DFE7;
    border-radius:11px;
    background:#fff;
    overflow:hidden;
}

.ic33-quantity__label{
    display:block;
    flex:0 0 auto;
    margin:0 0 1px 0;
    color:#172C40;
    font-size:12px;
    line-height:1;
    font-weight:800;
    white-space:nowrap;
}

.ic33-product-summary .quantity input.qty{
    width:100%!important;
    height:56px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:#172C40!important;
    font-size:14px!important;
    font-weight:800!important;
    text-align:center!important;
    box-shadow:none!important;
    -moz-appearance:textfield;
}

.ic33-product-summary .quantity input.qty::-webkit-inner-spin-button,
.ic33-product-summary .quantity input.qty::-webkit-outer-spin-button{
    margin:0;
    -webkit-appearance:none;
}

.ic33-quantity__button{
    position:absolute;
    top:0;
    display:grid;
    width:38px;
    height:56px;
    place-items:center;
    padding:0;
    border:0;
    background:#fff;
    color:#145B91;
    font-size:22px;
    line-height:1;
    font-weight:500;
    cursor:pointer;
}

.ic33-quantity__minus{
    left:0;
    border-right:1px solid #E0E6EB;
}

.ic33-quantity__plus{
    right:0;
    border-left:1px solid #E0E6EB;
}

.ic33-quantity__button:hover{
    background:#F2F7FB;
    color:var(--ic33-primary);
}

.ic33-product-summary .single_add_to_cart_button{
    display:flex!important;
    flex:1 1 0;
    width:auto;
    min-width:0;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:58px!important;
    margin:0!important;
    padding:0 30px!important;
    border:0!important;
    border-radius:11px!important;
    background:var(--ic33-secondary)!important;
    color:#fff!important;
    font-size:15px!important;
    line-height:1!important;
    font-weight:850!important;
    box-shadow:0 9px 22px rgba(245,130,32,.20);
    transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}

.ic33-product-summary .single_add_to_cart_button:hover{
    background:#E86F0A!important;
    color:#fff!important;
    transform:translateY(-2px);
    box-shadow:0 12px 26px rgba(245,130,32,.26);
}

.ic33-cart-button__icon{
    width:22px;
    height:22px;
    flex:0 0 22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.ic33-cart-button__label{
    display:inline-flex;
    align-items:center;
}

/* ==========================================================================
   07 — MÉTADONNÉES / STOCK
========================================================================== */

.ic33-product-summary .stock{
    display:inline-flex!important;
    align-items:center;
    width:max-content;
    margin:0 0 16px!important;
    padding:0!important;
    background:none!important;
    color:#168146!important;
    font-size:12px!important;
    font-weight:750!important;
}

.ic33-product-summary .stock::before{
    content:"";
    width:7px;
    height:7px;
    margin-right:7px;
    border-radius:50%;
    background:#18A558;
}

.ic33-product-summary .product_meta{
    display:flex;
    flex-direction:column;
    gap:4px;
    margin:17px 0 0!important;
    padding:15px 0 0!important;
    border-top:1px solid #E5EAEF;
    color:#7A8793;
    font-size:11px;
}

.ic33-product-summary .product_meta a{
    color:var(--ic33-primary);
    text-decoration:none;
}

/* ==========================================================================
   08 — RÉASSURANCE
========================================================================== */

.ic33-product-reassurance{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;
    width:100%;
    margin-top:42px;
    border:1px solid #DCE5EE;
    border-radius:15px;
    background:#fff;
    overflow:hidden;
}

.ic33-product-reassurance__item{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:78px;
    padding:14px 18px;
    border-right:1px solid #DCE5EE;
    background:#fff;
}

.ic33-product-reassurance__item:last-child{
    border-right:0;
}

.ic33-product-reassurance__icon{
    display:grid;
    flex:0 0 32px;
    width:32px;
    height:32px;
    place-items:center;
    border-radius:50%;
    background:#EAF4FD;
    color:var(--ic33-primary);
}

.ic33-product-reassurance__icon svg{
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.ic33-product-reassurance__item strong{
    display:block;
    margin-bottom:3px;
    color:#132A40;
    font-size:11px;
    line-height:1.25;
    font-weight:850;
}

.ic33-product-reassurance__item small{
    display:block;
    color:#7B8794;
    font-size:9.5px;
    line-height:1.35;
}

/* ==========================================================================
   09 — DESCRIPTION + CARACTÉRISTIQUES CÔTE À CÔTE
========================================================================== */

.ic33-single-product__tabs{
    margin-top:66px;
}

.ic33-product-information{
    width:100%;
}

.ic33-product-information__grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:56px;
    align-items:start;
}

.ic33-product-information__description,
.ic33-product-information__specs{
    min-width:0;
}

.ic33-section-heading{
    position:relative;
    margin:0 0 25px;
    padding:0 0 15px;
    border-bottom:1px solid #DCE4EB;
}

.ic33-section-heading__eyebrow{
    display:block;
    margin-bottom:6px;
    color:var(--ic33-primary);
    font-size:10px;
    line-height:1;
    font-weight:850;
    letter-spacing:.15em;
}

.ic33-section-heading h2{
    margin:0!important;
    color:#102A43!important;
    font-family:var(--ic33-font-heading,"Inter","Segoe UI",sans-serif);
    font-size:24px!important;
    line-height:1.15!important;
    font-weight:850!important;
    letter-spacing:-.025em;
}

.ic33-section-heading__line{
    display:block;
    width:42px;
    height:3px;
    margin-top:11px;
    border-radius:99px;
    background:var(--ic33-secondary);
}

.ic33-product-description{
    color:#465565;
    font-size:14px;
    line-height:1.8;
}

.ic33-product-description p{
    margin:0 0 12px;
}

.ic33-product-description ul,
.ic33-product-description ol{
    margin:0 0 14px;
    padding-left:20px;
}

.ic33-product-description li{
    margin-bottom:7px;
}

.ic33-product-information__empty{
    margin:0;
    color:#7D8995;
    font-size:14px;
}

.ic33-specifications{
    width:100%;
    border:1px solid #9CC8F1;
    border-left:4px solid var(--ic33-primary);
    border-radius:12px;
    overflow:hidden;
    background:#EAF5FF;
}

.ic33-specification{
    display:grid;
    grid-template-columns:minmax(130px,.75fr) minmax(0,1.25fr);
    border-bottom:1px solid rgba(156,200,241,.65);
    background:transparent;
}

.ic33-specification:last-child{
    border-bottom:0;
}

.ic33-specification__name{
    padding:13px 14px;
    background:rgba(255,255,255,.28);
    color:#18314A;
    font-size:12px;
    line-height:1.4;
    font-weight:800;
}

.ic33-specification__value{
    padding:13px 14px;
    background:transparent;
    color:#31516B;
    font-size:12px;
    line-height:1.4;
}


/* ==========================================================================
   10A — SÉLECTEUR D'ÉTOILES
========================================================================== */

.ic33-product-reviews #review_form .comment-form-rating{
    margin:0 0 22px!important;
}

.ic33-product-reviews #review_form .comment-form-rating label{
    margin-bottom:10px!important;
    font-size:14px!important;
}

.ic33-product-reviews #review_form .stars{
    display:flex!important;
    align-items:center;
    gap:6px;
    width:max-content;
    min-height:44px;
    margin:0!important;
}

.ic33-product-reviews #review_form .stars a{
    position:relative;
    display:block!important;
    width:42px!important;
    height:42px!important;
    margin:0!important;
    padding:0!important;
    background:none!important;
    color:#D8E0E7!important;
    font-size:0!important;
    text-decoration:none!important;
}

.ic33-product-reviews #review_form .stars a::before{
    content:"★";
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    color:#D8E0E7;
    font-family:Arial,sans-serif;
    font-size:34px;
    line-height:1;
    -webkit-text-fill-color:#D8E0E7;
}

.ic33-product-reviews #review_form .stars a:hover::before,
.ic33-product-reviews #review_form .stars a:focus-visible::before,
.ic33-product-reviews #review_form .stars a.active::before{
    color:var(--ic33-secondary);
    -webkit-text-fill-color:var(--ic33-secondary);
}

.ic33-product-reviews #review_form .stars a:hover ~ a::before{
    color:#D8E0E7;
    -webkit-text-fill-color:#D8E0E7;
}

/* ==========================================================================
   10 — AVIS MODERNES
========================================================================== */

.ic33-product-reviews{
    margin-top:70px;
    padding-top:42px;
    border-top:1px solid #E1E7ED;
}

.ic33-product-reviews .ic33-section-heading{
    margin-bottom:28px;
}

.ic33-product-reviews #reviews{
    margin:0!important;
}

.ic33-product-reviews .woocommerce-noreviews{
    margin:0 0 24px!important;
    padding:15px 18px!important;
    border:1px solid #CFE1F0!important;
    border-left:4px solid var(--ic33-primary)!important;
    border-radius:10px!important;
    background:#F1F8FE!important;
    color:#36536B!important;
    font-size:13px!important;
}

.ic33-product-reviews #comments{
    margin:0;
}

.ic33-product-reviews #comments h2{
    display:none;
}

.ic33-product-reviews .commentlist{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin:0;
    padding:0;
    list-style:none;
}

.ic33-product-reviews .commentlist li{
    margin:0!important;
    padding:22px!important;
    border:1px solid #DFE6ED!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 7px 24px rgba(13,39,63,.05)!important;
}

.ic33-product-reviews .comment-text{
    margin:0!important;
    padding:0!important;
    border:0!important;
}

.ic33-product-reviews .meta{
    color:#7A8794!important;
    font-size:11px!important;
}

.ic33-product-reviews .description{
    color:#465565;
    font-size:14px;
    line-height:1.7;
}

.ic33-product-reviews #review_form_wrapper{
    margin-top:28px;
}

.ic33-product-reviews #review_form{
    margin:0!important;
    padding:26px!important;
    border:1px solid #DDE5EC!important;
    border-radius:16px!important;
    background:#F8FAFC!important;
}

.ic33-product-reviews #review_form h3{
    margin:0 0 18px!important;
    color:#102A43!important;
    font-size:18px!important;
    font-weight:850!important;
}

.ic33-product-reviews #review_form .comment-form{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.ic33-product-reviews #review_form .comment-form-rating,
.ic33-product-reviews #review_form .comment-form-comment,
.ic33-product-reviews #review_form .form-submit,
.ic33-product-reviews #review_form .comment-notes{
    grid-column:1 / -1;
}

.ic33-product-reviews #review_form label{
    display:block;
    margin-bottom:7px;
    color:#263B4F;
    font-size:12px;
    font-weight:800;
}

.ic33-product-reviews #review_form input[type="text"],
.ic33-product-reviews #review_form input[type="email"],
.ic33-product-reviews #review_form textarea{
    width:100%;
    border:1px solid #D4DEE7;
    border-radius:10px;
    background:#fff;
    color:#263B4F;
    box-shadow:none;
}

.ic33-product-reviews #review_form input[type="text"],
.ic33-product-reviews #review_form input[type="email"]{
    min-height:48px;
    padding:0 13px;
}

.ic33-product-reviews #review_form textarea{
    min-height:150px;
    padding:13px;
    resize:vertical;
}

.ic33-product-reviews #review_form input:focus,
.ic33-product-reviews #review_form textarea:focus{
    border-color:var(--ic33-primary);
    outline:none;
    box-shadow:0 0 0 3px rgba(0,87,164,.08);
}

.ic33-product-reviews #review_form .form-submit{
    margin:0!important;
}

.ic33-product-reviews #review_form .submit{
    min-height:48px;
    padding:0 24px;
    border:0;
    border-radius:9px;
    background:var(--ic33-secondary);
    color:#fff;
    font-size:13px;
    font-weight:850;
    cursor:pointer;
}

/* ==========================================================================
   11 — PRODUITS COMPLÉMENTAIRES
========================================================================== */

.ic33-single-product__upsells{
    margin-top:78px;
}

.ic33-upsells__header{
    margin:0 0 26px;
    padding:0 0 14px;
    border-bottom:1px solid #DDE5EC;
}

.ic33-upsells__title{
    margin:0;
    color:#102A43;
    font-size:28px;
    line-height:1.1;
    font-weight:850;
    letter-spacing:-.025em;
}

.ic33-upsells__title::after{
    content:"";
    display:block;
    width:44px;
    height:3px;
    margin-top:11px;
    border-radius:99px;
    background:var(--ic33-secondary);
}

.ic33-upsells .products{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:24px;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    list-style:none!important;
}

.ic33-upsells .products::before,
.ic33-upsells .products::after{
    display:none!important;
    content:none!important;
}

.ic33-upsells .products li.product{
    width:100%!important;
    max-width:none!important;
    float:none!important;
    margin:0!important;
    padding:0!important;
}

/* ==========================================================================
   12 — RESPONSIVE
========================================================================== */

@media (max-width:1280px){

    .ic33-single-product__grid{
        grid-template-columns:minmax(0,1fr) minmax(400px,.86fr);
        gap:42px;
    }

    .woocommerce-product-gallery__image a{
        min-height:480px;
    }

    .woocommerce-product-gallery__image img{
        max-height:480px!important;
    }

    .ic33-product-reassurance{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .ic33-product-reassurance__item:nth-child(2){
        border-right:0;
    }

    .ic33-product-reassurance__item:nth-child(-n+2){
        border-bottom:1px solid #DCE5EE;
    }

    .ic33-upsells .products{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media (max-width:960px){

    .ic33-single-product{
        padding:26px 0 76px;
    }

    .ic33-single-product__container{
        width:calc(100% - 40px);
        max-width:none;
        margin-inline:20px;
    }

    .ic33-single-product__grid{
        grid-template-columns:1fr;
        gap:40px;
    }

    .ic33-product-information__grid{
        grid-template-columns:1fr;
        gap:44px;
    }

    .ic33-product-reviews{
        margin-top:52px;
    }

    .ic33-upsells .products{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width:640px){

    .ic33-single-product{
        padding:20px 0 62px;
    }

    .ic33-single-product__container{
        width:calc(100% - 32px);
        max-width:none;
        margin-inline:16px;
    }

    .ic33-product-breadcrumb{
        margin-bottom:20px;
        font-size:11px;
    }

    .ic33-single-product__grid{
        gap:28px;
    }

    .woocommerce-product-gallery{
        grid-template-columns:1fr!important;
        gap:10px;
    }

    .woocommerce-product-gallery__wrapper{
        grid-column:1;
        grid-row:1;
    }

    .flex-control-thumbs{
        grid-column:1;
        grid-row:2;
        flex-direction:row;
        width:100%!important;
        overflow-x:auto;
        padding-bottom:2px!important;
    }

    .flex-control-thumbs li,
    .flex-control-thumbs img{
        flex:0 0 72px;
        width:72px!important;
        height:72px!important;
    }

    .woocommerce-product-gallery__image a{
        min-height:330px;
        padding:20px;
    }

    .woocommerce-product-gallery__image img{
        max-height:330px!important;
    }

    .ic33-product-summary .product_title{
        font-size:31px!important;
    }

    .ic33-product-summary .price{
        font-size:27px!important;
    }

    .ic33-product-summary form.cart{
        gap:12px;
    }

    .ic33-product-summary .quantity{
        flex:0 0 100%;
        width:100%;
    }

    .ic33-product-summary .single_add_to_cart_button{
        flex-basis:100%;
    }

    .ic33-product-reassurance{
        grid-template-columns:1fr;
    }

    .ic33-product-reassurance__item{
        border-right:0;
        border-bottom:1px solid #DCE5EE;
    }

    .ic33-product-reassurance__item:last-child{
        border-bottom:0;
    }

    .ic33-specification{
        grid-template-columns:1fr;
    }

    .ic33-specification__name{
        border-bottom:1px solid #E5EAF0;
    }

    .ic33-product-reviews .commentlist{
        grid-template-columns:1fr;
    }

    .ic33-product-reviews #review_form .comment-form{
        grid-template-columns:1fr;
    }

    .ic33-product-reviews #review_form .comment-form-rating,
    .ic33-product-reviews #review_form .comment-form-comment,
    .ic33-product-reviews #review_form .form-submit,
    .ic33-product-reviews #review_form .comment-notes{
        grid-column:auto;
    }

    .ic33-upsells .products{
        grid-template-columns:1fr;
    }
}

@media (prefers-reduced-motion:reduce){

    *,
    *::before,
    *::after{
        animation:none!important;
        transition:none!important;
        scroll-behavior:auto!important;
    }
}

/* ==========================================================================
   IC33 — FORÇAGE LARGEUR FICHE PRODUIT
   Surcharge volontaire des contraintes Storefront / WooCommerce.
   Objectif : 20px de marge à gauche et à droite.
========================================================================== */

body.single-product #content .col-full,
body.single-product #content .site-main,
body.single-product #content #primary,
body.single-product #content .content-area,
body.single-product .ic33-single-product,
body.single-product .ic33-single-product__container{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

body.single-product #content .col-full{
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
}

body.single-product .ic33-single-product{
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
}

body.single-product .ic33-single-product__container{
    width:calc(100% - 40px) !important;
    max-width:none !important;
    margin-left:20px !important;
    margin-right:20px !important;
}


/* ==========================================================================
   IC33 — PANIER PLEINE LARGEUR
   Quantité séparée + bouton panier pleine largeur de la zone paiement.
   ========================================================================== */

.ic33-product-summary form.cart{
    display:grid !important;
    grid-template-columns:132px minmax(0,1fr) !important;
    align-items:end !important;
    column-gap:0 !important;
    row-gap:18px !important;
    width:100% !important;
    margin:0 !important;
    padding:18px 0 0 !important;
}

.ic33-product-summary form.cart .quantity{
    grid-column:1 !important;
    grid-row:1 !important;
    width:132px !important;
    flex:none !important;
    margin:0 !important;
}

.ic33-product-summary form.cart .single_add_to_cart_button{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    min-width:100% !important;
    flex:none !important;
    min-height:58px !important;
    margin:0 !important;
}

/* Sur mobile, on conserve l'empilement vertical. */
@media (max-width:640px){
    .ic33-product-summary form.cart{
        grid-template-columns:1fr !important;
        row-gap:14px !important;
    }

    .ic33-product-summary form.cart .quantity{
        grid-column:1 !important;
        grid-row:1 !important;
        width:100% !important;
    }

    .ic33-product-summary form.cart .single_add_to_cart_button{
        grid-column:1 !important;
        grid-row:2 !important;
        width:100% !important;
        min-width:100% !important;
    }
}

/* ==========================================================================
   IC33 — PANIER : LARGEUR IDENTIQUE AUX MOYENS DE PAIEMENT EXPRESS
   IMPORTANT : surcharge finale. Ne pas supprimer.
   ========================================================================== */

/* Le formulaire et tous ses wrappers WooCommerce occupent toute la largeur. */
body.single-product .ic33-product-summary form.cart,
body.single-product .ic33-product-summary form.variations_form.cart,
body.single-product .ic33-product-summary .single_variation_wrap,
body.single-product .ic33-product-summary .woocommerce-variation-add-to-cart{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

/* Les wrappers de variation ne doivent plus enfermer le bouton dans une
   petite largeur : leurs enfants deviennent directement exploitables
   par la grille du panier. */
body.single-product .ic33-product-summary form.variations_form.cart .single_variation_wrap,
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart{
    display:contents !important;
}

/* Quantité : reste seule sur la première ligne. */
body.single-product .ic33-product-summary form.cart .quantity,
body.single-product .ic33-product-summary form.cart .woocommerce-variation-add-to-cart .quantity{
    grid-column:1 !important;
    grid-row:auto !important;
    justify-self:start !important;
    align-self:start !important;
    width:132px !important;
    min-width:132px !important;
    max-width:132px !important;
    flex:0 0 132px !important;
    margin:0 !important;
}

/* Bouton panier : pleine largeur réelle de la zone de paiement. */
body.single-product .ic33-product-summary form.cart .single_add_to_cart_button,
body.single-product .ic33-product-summary form.cart button.single_add_to_cart_button,
body.single-product .ic33-product-summary form.cart .woocommerce-variation-add-to-cart .single_add_to_cart_button{
    grid-column:1 / -1 !important;
    grid-row:auto !important;
    justify-self:stretch !important;
    align-self:stretch !important;
    display:flex !important;
    width:100% !important;
    min-width:100% !important;
    max-width:none !important;
    flex:0 0 100% !important;
    box-sizing:border-box !important;
    min-height:58px !important;
    margin:0 !important;
}

/* Espace net entre quantité et bouton panier. */
body.single-product .ic33-product-summary form.cart{
    row-gap:18px !important;
    column-gap:0 !important;
}

/* Sur mobile : pleine largeur également. */
@media (max-width:640px){
    body.single-product .ic33-product-summary form.cart{
        grid-template-columns:1fr !important;
        row-gap:14px !important;
    }

    body.single-product .ic33-product-summary form.cart .quantity,
    body.single-product .ic33-product-summary form.cart .woocommerce-variation-add-to-cart .quantity{
        width:100% !important;
        min-width:100% !important;
        max-width:none !important;
        flex:0 0 100% !important;
        grid-column:1 !important;
    }

    body.single-product .ic33-product-summary form.cart .single_add_to_cart_button,
    body.single-product .ic33-product-summary form.cart button.single_add_to_cart_button,
    body.single-product .ic33-product-summary form.cart .woocommerce-variation-add-to-cart .single_add_to_cart_button{
        width:100% !important;
        min-width:100% !important;
        max-width:none !important;
        flex:0 0 100% !important;
        grid-column:1 !important;
    }
}
/* ==========================================================================\n   IC33 — CORRECTIF FINAL PANIER PLEINE LARGEUR\n   Le bouton doit avoir EXACTEMENT la largeur totale de la zone des 4\n   moyens de paiement express, depuis le bord gauche jusqu'au bord droit.\n   NE PAS SUPPRIMER.\n   ========================================================================== */

/* Produit variable WooCommerce : on donne la pleine largeur au wrapper
   qui contient réellement la quantité et le bouton. */
body.single-product .ic33-product-summary form.variations_form.cart .single_variation_wrap{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
}

body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart{
    display:grid !important;
    grid-template-columns:132px minmax(0,1fr) !important;
    grid-template-rows:auto auto !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:18px 0 0 !important;
    gap:18px 0 !important;
    align-items:end !important;
    box-sizing:border-box !important;
}

/* Quantité = petite ligne en haut à gauche. */
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart .quantity{
    grid-column:1 !important;
    grid-row:1 !important;
    width:132px !important;
    min-width:132px !important;
    max-width:132px !important;
    margin:0 !important;
    justify-self:start !important;
}

/* BOUTON = toute la largeur de la colonne produit,
   exactement comme les 4 cartes de paiement réunies. */
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart .single_add_to_cart_button,
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart button.single_add_to_cart_button{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    display:flex !important;
    width:100% !important;
    min-width:100% !important;
    max-width:none !important;
    flex:none !important;
    justify-self:stretch !important;
    align-self:stretch !important;
    box-sizing:border-box !important;
    min-height:58px !important;
    margin:0 !important;
}

/* Produit simple : même résultat. */
body.single-product .ic33-product-summary form.cart:not(.variations_form){
    display:grid !important;
    grid-template-columns:132px minmax(0,1fr) !important;
    grid-template-rows:auto auto !important;
    width:100% !important;
    gap:18px 0 !important;
    align-items:end !important;
}

body.single-product .ic33-product-summary form.cart:not(.variations_form) .quantity{
    grid-column:1 !important;
    grid-row:1 !important;
}

body.single-product .ic33-product-summary form.cart:not(.variations_form) .single_add_to_cart_button{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    min-width:100% !important;
    max-width:none !important;
    flex:none !important;
    justify-self:stretch !important;
    box-sizing:border-box !important;
}

/* Mobile : une seule colonne. */
@media (max-width:640px){
    body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart,
    body.single-product .ic33-product-summary form.cart:not(.variations_form){
        grid-template-columns:1fr !important;
        grid-template-rows:auto auto !important;
        gap:14px 0 !important;
    }

    body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart .quantity,
    body.single-product .ic33-product-summary form.cart:not(.variations_form) .quantity{
        grid-column:1 !important;
        grid-row:1 !important;
        width:100% !important;
        min-width:100% !important;
        max-width:none !important;
    }

    body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart .single_add_to_cart_button,
    body.single-product .ic33-product-summary form.cart:not(.variations_form) .single_add_to_cart_button{
        grid-column:1 !important;
        grid-row:2 !important;
        width:100% !important;
        min-width:100% !important;
    }
}


/* ============================================================================
   IC33 — MASTER FINAL CART OVERRIDE
   IMPORTANT — NE PAS SUPPRIMER
   Objectif : le bouton « Ajouter au panier » doit avoir EXACTEMENT la largeur
   de toute la zone des 4 paiements express.
   La quantité reste à 132px et un espace de 18px est conservé avant le bouton.
   Les règles de pleine largeur (20px de marge) et de zoom sont conservées.
   ============================================================================ */

/* La colonne résumé est la référence de largeur. */
body.single-product .ic33-single-product__summary,
body.single-product .ic33-product-summary,
body.single-product .ic33-product-summary .summary{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

/* FORMULAIRE VARIABLE : on évite display:contents qui rendait le calcul
   de largeur du bouton dépendant du navigateur / du thème. */
body.single-product .ic33-product-summary form.variations_form.cart{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:18px 0 0 !important;
    box-sizing:border-box !important;
}

body.single-product .ic33-product-summary form.variations_form.cart .single_variation_wrap{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
}

body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart,
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart-enabled{
    display:grid !important;
    grid-template-columns:132px minmax(0,1fr) !important;
    grid-template-rows:58px 58px !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    gap:18px 0 !important;
    box-sizing:border-box !important;
    align-items:stretch !important;
}

/* Quantité : uniquement la première cellule. */
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart > .quantity,
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart-enabled > .quantity{
    grid-column:1 !important;
    grid-row:1 !important;
    width:132px !important;
    min-width:132px !important;
    max-width:132px !important;
    height:58px !important;
    margin:0 !important;
    flex:none !important;
    justify-self:start !important;
    align-self:start !important;
    box-sizing:border-box !important;
}

/* BOUTON PANIER — FORCE ABSOLUE : toute la largeur du wrapper. */
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart > .single_add_to_cart_button,
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart-enabled > .single_add_to_cart_button,
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart > button.single_add_to_cart_button,
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart-enabled > button.single_add_to_cart_button{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    display:flex !important;
    position:relative !important;
    left:0 !important;
    right:auto !important;
    width:100% !important;
    min-width:100% !important;
    max-width:100% !important;
    height:58px !important;
    min-height:58px !important;
    max-height:58px !important;
    margin:0 !important;
    padding:0 30px !important;
    flex:none !important;
    justify-self:stretch !important;
    align-self:stretch !important;
    box-sizing:border-box !important;
}

/* Produit simple : même architecture. */
body.single-product .ic33-product-summary form.cart:not(.variations_form){
    display:grid !important;
    grid-template-columns:132px minmax(0,1fr) !important;
    grid-template-rows:58px 58px !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:18px 0 0 !important;
    gap:18px 0 !important;
    box-sizing:border-box !important;
    align-items:stretch !important;
}

body.single-product .ic33-product-summary form.cart:not(.variations_form) > .quantity{
    grid-column:1 !important;
    grid-row:1 !important;
    width:132px !important;
    min-width:132px !important;
    max-width:132px !important;
    height:58px !important;
    margin:0 !important;
}

body.single-product .ic33-product-summary form.cart:not(.variations_form) > .single_add_to_cart_button,
body.single-product .ic33-product-summary form.cart:not(.variations_form) > button.single_add_to_cart_button{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    display:flex !important;
    width:100% !important;
    min-width:100% !important;
    max-width:100% !important;
    height:58px !important;
    min-height:58px !important;
    max-height:58px !important;
    margin:0 !important;
    padding:0 30px !important;
    flex:none !important;
    justify-self:stretch !important;
    align-self:stretch !important;
    box-sizing:border-box !important;
}

/* Filets / éléments auxiliaires du formulaire : ils ne doivent jamais
   réduire la largeur disponible du bouton. */
body.single-product .ic33-product-summary form.cart .quantity ~ .single_add_to_cart_button,
body.single-product .ic33-product-summary form.cart .quantity ~ button.single_add_to_cart_button{
    box-sizing:border-box !important;
}

/* Mobile : empilement propre. */
@media (max-width:640px){
    body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart,
    body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart-enabled,
    body.single-product .ic33-product-summary form.cart:not(.variations_form){
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-rows:58px 58px !important;
        gap:14px 0 !important;
        width:100% !important;
    }

    body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart > .quantity,
    body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart-enabled > .quantity,
    body.single-product .ic33-product-summary form.cart:not(.variations_form) > .quantity{
        grid-column:1 !important;
        grid-row:1 !important;
        width:100% !important;
        min-width:100% !important;
        max-width:100% !important;
    }

    body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart > .single_add_to_cart_button,
    body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart-enabled > .single_add_to_cart_button,
    body.single-product .ic33-product-summary form.cart:not(.variations_form) > .single_add_to_cart_button{
        grid-column:1 !important;
        grid-row:2 !important;
        width:100% !important;
        min-width:100% !important;
        max-width:100% !important;
    }
}

/* ============================================================================
   IC33 — LARGEUR FICHE PRODUIT : FIXE ET NON NÉGOCIABLE
   20px à gauche + 20px à droite.
   ============================================================================ */
body.single-product #content .col-full,
body.single-product #content .site-main,
body.single-product #content #primary,
body.single-product #content .content-area,
body.single-product .ic33-single-product,
body.single-product .ic33-single-product__container{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

body.single-product #content .col-full,
body.single-product .ic33-single-product{
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
}

body.single-product .ic33-single-product__container{
    width:calc(100% - 40px) !important;
    max-width:none !important;
    margin-left:20px !important;
    margin-right:20px !important;
    box-sizing:border-box !important;
}

/* ==========================================================================
   IC33 — LIBELLÉ QUANTITÉ
   Ajout uniquement du texte « Quantité » à gauche du sélecteur.
   Aucune autre règle du fichier n'est modifiée.
   ========================================================================== */

body.single-product .ic33-product-summary form.cart .quantity::before{
    content:"Quantité" !important;
    position:absolute !important;
    left:0 !important;
    top:50% !important;
    transform:translate(-100%,-50%) !important;
    margin-left:-12px !important;
    color:#172C40 !important;
    font-size:12px !important;
    line-height:1 !important;
    font-weight:800 !important;
    white-space:nowrap !important;
}

@media (max-width:640px){
    body.single-product .ic33-product-summary form.cart .quantity::before{
        position:absolute !important;
        left:12px !important;
        top:-23px !important;
        transform:none !important;
        margin-left:0 !important;
    }
}

/* ==========================================================================
   IC33 — CORRECTIF FINAL QUANTITÉ
   IMPORTANT — NE PAS SUPPRIMER
   Objectif :
   « Quantité » doit être À GAUCHE du sélecteur - / 1 / +.
   La largeur 20px, le zoom et le bouton panier pleine largeur sont conservés.
   ========================================================================== */

body.single-product .ic33-product-summary form.cart .quantity{
    position:relative !important;

    /* On conserve exactement la taille du sélecteur */
    display:flex !important;
    flex:0 0 132px !important;
    width:132px !important;
    min-width:132px !important;
    max-width:132px !important;

    height:58px !important;
    margin:0 !important;

    /* Le texte est placé à l'extérieur : il ne peut donc plus passer à droite */
    overflow:visible !important;
}

/* Le seul libellé Quantité : position absolue à GAUCHE du sélecteur */
body.single-product .ic33-product-summary form.cart .quantity::before{
    content:"Quantité" !important;

    position:absolute !important;
    left:-72px !important;
    top:50% !important;

    display:block !important;
    width:auto !important;
    height:auto !important;

    margin:0 !important;
    padding:0 !important;

    transform:translateY(-50%) !important;

    color:#172C40 !important;
    font-size:15px !important;
    line-height:1 !important;
    font-weight:800 !important;

    white-space:nowrap !important;
    pointer-events:none !important;
    z-index:20 !important;
}

/* Empêche l'ancien pseudo-élément / ancien positionnement de revenir */
body.single-product .ic33-product-summary form.cart .quantity::after{
    content:none !important;
    display:none !important;
}

/* Les éléments internes restent exactement dans le sélecteur */
body.single-product .ic33-product-summary form.cart .quantity input.qty{
    width:100% !important;
    height:56px !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
}

/* ==========================================================================
   IC33 — CORRECTIF FINAL QUANTITÉ : BOUTONS + / -
   Le libellé réel injecté dans le HTML est masqué : le seul texte visible
   est le libellé CSS placé à gauche du sélecteur.
   Les boutons + et - passent au-dessus du champ input pour rester cliquables.
   ========================================================================== */

/* Supprime le petit « Quantité » injecté dans le HTML/PHP/JS. */
body.single-product .ic33-product-summary form.cart .quantity .ic33-quantity__label{
    display:none !important;
    visibility:hidden !important;
}

/* Le sélecteur garde sa structure et ses dimensions. */
body.single-product .ic33-product-summary form.cart .quantity{
    position:relative !important;
    overflow:visible !important;
}

/* Champ numérique derrière les boutons. */
body.single-product .ic33-product-summary form.cart .quantity input.qty{
    position:relative !important;
    z-index:1 !important;
}

/* Boutons - et + : toujours visibles et cliquables au-dessus du champ. */
body.single-product .ic33-product-summary form.cart .quantity .ic33-quantity__button{
    position:absolute !important;
    top:0 !important;
    z-index:10 !important;
    display:grid !important;
    width:38px !important;
    height:56px !important;
    padding:0 !important;
    margin:0 !important;
    place-items:center !important;
    cursor:pointer !important;
    pointer-events:auto !important;
}

body.single-product .ic33-product-summary form.cart .quantity .ic33-quantity__minus{
    left:0 !important;
    right:auto !important;
}

body.single-product .ic33-product-summary form.cart .quantity .ic33-quantity__plus{
    right:0 !important;
    left:auto !important;
}

/* La grille du panier reste inchangée */
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart,
body.single-product .ic33-product-summary form.variations_form.cart .woocommerce-variation-add-to-cart-enabled{
    grid-template-columns:132px minmax(0,1fr) !important;
}

/* Bouton panier : pleine largeur absolue */
body.single-product .ic33-product-summary form.cart .single_add_to_cart_button{
    grid-column:1 / -1 !important;
    width:100% !important;
    min-width:100% !important;
    max-width:100% !important;
}

/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width:640px){

    body.single-product .ic33-product-summary form.cart .quantity{
        width:132px !important;
        min-width:132px !important;
        max-width:132px !important;
        flex:0 0 132px !important;
    }

    /* Sur mobile, on garde le texte à gauche du sélecteur */
    body.single-product .ic33-product-summary form.cart .quantity::before{
        left:-72px !important;
        top:50% !important;
        transform:translateY(-50%) !important;
        margin:0 !important;
        font-size:14px !important;
    }

    body.single-product .ic33-product-summary form.cart .single_add_to_cart_button{
        width:100% !important;
        min-width:100% !important;
        max-width:100% !important;
    }
}


/* ==========================================================================
   IC33 — SURCHARGE ABSOLUE DU LIBELLÉ QUANTITÉ
   IMPORTANT — le texte injecté dans le HTML ne doit jamais apparaître.
   ========================================================================== */
body.single-product .ic33-product-summary form.cart .quantity .ic33-quantity__label{
    display:none !important;
    visibility:hidden !important;
    width:0 !important;
    height:0 !important;
    margin:0 !important;
    padding:0 !important;
}

/* Le libellé visible reste uniquement celui placé à gauche par ::before. */
body.single-product .ic33-product-summary form.cart .quantity::before{
    content:"Quantité" !important;
    position:absolute !important;
    left:-72px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    margin:0 !important;
    padding:0 !important;
    color:#172C40 !important;
    font-size:15px !important;
    line-height:1 !important;
    font-weight:800 !important;
    white-space:nowrap !important;
    pointer-events:none !important;
    z-index:20 !important;
}

/* Les boutons doivent rester au-dessus du champ. */
body.single-product .ic33-product-summary form.cart .quantity .ic33-quantity__button{
    z-index:50 !important;
}


/* ==========================================================================
   IC33 — CORRECTIF DÉFINITIF : UN SEUL « Quantité »
   Le petit libellé visible au-dessus du sélecteur est un .ic33-quantity__label
   qui peut être généré hors du conteneur .quantity.
   ========================================================================== */

/* Masque le libellé HTML/JS partout où il est généré. */
body.single-product .ic33-quantity__label{
    display:none !important;
    visibility:hidden !important;
    width:0 !important;
    height:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
}

/* Le seul « Quantité » visible est celui généré à gauche par ::before. */
body.single-product .ic33-product-summary form.cart .quantity::before{
    content:"Quantité" !important;
    position:absolute !important;
    left:-72px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    margin:0 !important;
    padding:0 !important;
    color:#172C40 !important;
    font-size:15px !important;
    line-height:1 !important;
    font-weight:800 !important;
    white-space:nowrap !important;
    pointer-events:none !important;
    z-index:20 !important;
}

/* Les boutons restent parfaitement cliquables. */
body.single-product .ic33-product-summary form.cart .quantity{
    position:relative !important;
    overflow:visible !important;
}

body.single-product .ic33-product-summary form.cart .quantity .ic33-quantity__button{
    position:absolute !important;
    top:0 !important;
    z-index:50 !important;
    pointer-events:auto !important;
}

body.single-product .ic33-product-summary form.cart .quantity .ic33-quantity__minus{
    left:0 !important;
    right:auto !important;
}

body.single-product .ic33-product-summary form.cart .quantity .ic33-quantity__plus{
    right:0 !important;
    left:auto !important;
}


/* ==========================================================================
   IC33 — ALIGNEMENT FINAL DU BLOC QUANTITÉ
   Le libellé « Quantité » doit rester dans la colonne produit.
   Le bloc complet est décalé de 60px vers la droite sur desktop.
   ========================================================================== */

@media (min-width:641px){
    body.single-product .ic33-product-summary form.cart .quantity{
        transform:translateX(60px) !important;
    }
}

/* Sur mobile, aucun décalage horizontal. */
@media (max-width:640px){
    body.single-product .ic33-product-summary form.cart .quantity{
        transform:none !important;
    }
}


/* ==========================================================================
   IC33 — RÉASSURANCE : ICÔNES + TEXTES AGRANDIS ET CENTRÉS
   Les 4 cases peuvent augmenter en hauteur.
   ========================================================================== */

.ic33-product-reassurance{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

.ic33-product-reassurance__item{
    min-height:112px !important;
    padding:22px 24px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:10px !important;
    text-align:center !important;
    box-sizing:border-box !important;
}

.ic33-product-reassurance__icon{
    flex:0 0 46px !important;
    width:46px !important;
    height:46px !important;
    margin:0 !important;
}

.ic33-product-reassurance__icon svg{
    width:25px !important;
    height:25px !important;
    stroke-width:1.8 !important;
}

.ic33-product-reassurance__item strong{
    margin:0 0 4px !important;
    font-size:14px !important;
    line-height:1.25 !important;
    font-weight:850 !important;
    text-align:center !important;
}

.ic33-product-reassurance__item small{
    font-size:11px !important;
    line-height:1.4 !important;
    text-align:center !important;
}

/* Le bloc texte reste centré dans toute la case. */
.ic33-product-reassurance__item > div:last-child{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    text-align:center;
}

/* Tablette : deux cases par ligne */
@media (max-width:1280px){
    .ic33-product-reassurance__item{
        min-height:120px !important;
    }
}

/* Mobile : une case par ligne */
@media (max-width:640px){
    .ic33-product-reassurance__item{
        min-height:125px !important;
        padding:22px 20px !important;
    }

    .ic33-product-reassurance__icon{
        flex-basis:46px !important;
        width:46px !important;
        height:46px !important;
    }

    .ic33-product-reassurance__icon svg{
        width:25px !important;
        height:25px !important;
    }

    .ic33-product-reassurance__item strong{
        font-size:14px !important;
    }

    .ic33-product-reassurance__item small{
        font-size:11px !important;
    }
}


/* ==========================================================================
   IC33 — VARIATION : BLOC PLUS PRÉSENT / INTÉGRÉ AU THÈME
   Objectif :
   - rendre le bloc de choix de variation plus gros et plus lisible
   - l'intégrer visuellement à la charte IC33 bleu / bleu clair
   - renforcer le contour et les libellés
   - agrandir les zones de sélection
   - ne pas modifier le panier, la quantité ni les paiements
   ========================================================================== */

/* Le formulaire de variation devient un véritable bloc visuel. */
body.single-product .ic33-product-summary form.variations_form.cart{
    margin:0 0 22px !important;
}

/* Zone contenant les attributs : carte bleue très légère. */
body.single-product .ic33-product-summary form.variations_form.cart .variations{
    width:100% !important;
    margin:0 0 18px !important;
    padding:20px 22px !important;
    border:2px solid var(--ic33-secondary) !important;
    border-left:6px solid var(--ic33-secondary) !important;
    border-radius:14px !important;
    border-collapse:separate !important;
    border-spacing:0 !important;
    background:#F5FAFE !important;
    box-shadow:0 5px 18px rgba(9,52,84,.06) !important;
    box-sizing:border-box !important;
}

/* Chaque variation respire davantage. */
body.single-product .ic33-product-summary form.variations_form.cart .variations tr{
    margin:0 0 16px !important;
}

body.single-product .ic33-product-summary form.variations_form.cart .variations tr:last-child{
    margin-bottom:0 !important;
}

/* Libellé de l'attribut. */
body.single-product .ic33-product-summary form.variations_form.cart .variations label{
    display:block !important;
    margin:0 0 10px !important;
    color:#102A43 !important;
    font-size:20px !important;
    line-height:1.3 !important;
    font-weight:850 !important;
}

/* Quand WooCommerce affiche un select classique. */
body.single-product .ic33-product-summary form.variations_form.cart .variations select{
    width:100% !important;
    min-height:58px !important;
    padding:0 18px !important;
    border:2px solid #B9D3E8 !important;
    border-radius:11px !important;
    background:#fff !important;
    color:#12304A !important;
    font-size:16px !important;
    line-height:1.2 !important;
    font-weight:750 !important;
    box-shadow:0 2px 8px rgba(9,52,84,.05) !important;
    cursor:pointer !important;
}

body.single-product .ic33-product-summary form.variations_form.cart .variations select:hover{
    border-color:#78A9CF !important;
}

body.single-product .ic33-product-summary form.variations_form.cart .variations select:focus{
    border-color:var(--ic33-primary) !important;
    outline:none !important;
    box-shadow:0 0 0 4px rgba(0,87,164,.12) !important;
}

/* Reset plus lisible et intégré. */
body.single-product .ic33-product-summary form.variations_form.cart .reset_variations{
    margin:8px 0 0 !important;
    color:var(--ic33-primary) !important;
    font-size:13px !important;
    font-weight:800 !important;
}

/* --------------------------------------------------------------------------
   Compatibilité avec les sélecteurs de variations affichés sous forme
   de pastilles / boutons (comme VHF / UHF sur la capture).
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary form.variations_form.cart .variable-items-wrapper,
body.single-product .ic33-product-summary form.variations_form.cart .variation-items,
body.single-product .ic33-product-summary form.variations_form.cart .value .variable-items-wrapper{
    display:flex !important;
    align-items:center !important;
    flex-wrap:wrap !important;
    gap:10px !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
}

/* Boutons/pastilles de variation : plus grands et aux couleurs IC33. */
body.single-product .ic33-product-summary form.variations_form.cart .variable-item,
body.single-product .ic33-product-summary form.variations_form.cart .variable-items-wrapper .variable-item,
body.single-product .ic33-product-summary form.variations_form.cart .value .button{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-width:64px !important;
    min-height:52px !important;
    margin:0 !important;
    padding:8px 18px !important;
    border:2px solid var(--ic33-secondary) !important;
    border-radius:10px !important;
    background:#fff !important;
    color:#145B91 !important;
    font-size:16px !important;
    line-height:1 !important;
    font-weight:850 !important;
    box-shadow:0 2px 7px rgba(9,52,84,.05) !important;
    transition:border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease !important;
    cursor:pointer !important;
}

/* Survol. */
body.single-product .ic33-product-summary form.variations_form.cart .variable-item:hover,
body.single-product .ic33-product-summary form.variations_form.cart .variable-items-wrapper .variable-item:hover,
body.single-product .ic33-product-summary form.variations_form.cart .value .button:hover{
    border-color:var(--ic33-secondary) !important;
    background:#FFF7EF !important;
    color:#C96308 !important;
    box-shadow:0 4px 12px rgba(0,87,164,.10) !important;
    transform:translateY(-1px) !important;
}

/* État sélectionné : bleu IC33 bien visible. */
body.single-product .ic33-product-summary form.variations_form.cart .variable-item.selected,
body.single-product .ic33-product-summary form.variations_form.cart .variable-item.active,
body.single-product .ic33-product-summary form.variations_form.cart .variable-item.button-variable-item.selected,
body.single-product .ic33-product-summary form.variations_form.cart .value .button.selected,
body.single-product .ic33-product-summary form.variations_form.cart .value .button.active{
    border-color:var(--ic33-secondary) !important;
    background:var(--ic33-primary) !important;
    color:#fff !important;
    box-shadow:0 0 0 3px rgba(245,130,32,.16) !important;
}

/* Certains systèmes utilisent aria-checked pour l'état actif. */
body.single-product .ic33-product-summary form.variations_form.cart [aria-checked="true"]{
    border-color:var(--ic33-secondary) !important;
    background:var(--ic33-primary) !important;
    color:#fff !important;
}

/* Petit texte éventuel sous l'attribut. */
body.single-product .ic33-product-summary form.variations_form.cart .value .description,
body.single-product .ic33-product-summary form.variations_form.cart .value small{
    color:#62778A !important;
    font-size:12px !important;
}

/* Sur mobile : conserver le bloc généreux sans l'étouffer. */
@media (max-width:640px){
    body.single-product .ic33-product-summary form.variations_form.cart .variations{
        padding:18px !important;
        border-left-width:4px !important;
    }

    body.single-product .ic33-product-summary form.variations_form.cart .variations label{
        font-size:18px !important;
    }

    body.single-product .ic33-product-summary form.variations_form.cart .variations select{
        min-height:54px !important;
        font-size:15px !important;
    }

    body.single-product .ic33-product-summary form.variations_form.cart .variable-item,
    body.single-product .ic33-product-summary form.variations_form.cart .variable-items-wrapper .variable-item,
    body.single-product .ic33-product-summary form.variations_form.cart .value .button{
        min-height:50px !important;
        min-width:60px !important;
        font-size:15px !important;
    }
}


/* ==========================================================================
   IC33 — DESCRIPTION + CARACTÉRISTIQUES : TEXTE RENFORCÉ
   Basé sur le dernier CSS "single-product-variation-theme-orange.css".
   Modification volontairement limitée à la lisibilité du contenu.
   ========================================================================== */

/* Description : texte plus présent et mieux exploité dans toute la colonne. */
body.single-product .ic33-product-description{
    color:#334B60 !important;
    font-size:16.5px !important;
    line-height:1.85 !important;
    font-weight:500 !important;
    letter-spacing:.005em !important;
}

body.single-product .ic33-product-description p{
    margin:0 0 15px !important;
}

body.single-product .ic33-product-description ul,
body.single-product .ic33-product-description ol{
    margin:0 0 17px !important;
    padding-left:24px !important;
}

body.single-product .ic33-product-description li{
    margin-bottom:9px !important;
}

/* Si la description contient du texte directement dans des éléments courants. */
body.single-product .ic33-product-description strong,
body.single-product .ic33-product-description b{
    color:#172C40 !important;
    font-weight:800 !important;
}

/* Tableau des caractéristiques : lignes plus imposantes et plus lisibles. */
body.single-product .ic33-specification{
    min-height:58px !important;
}

body.single-product .ic33-specification__name{
    display:flex !important;
    align-items:center !important;
    padding:16px 18px !important;
    color:#17324B !important;
    font-size:15px !important;
    line-height:1.45 !important;
    font-weight:850 !important;
}

body.single-product .ic33-specification__value{
    display:flex !important;
    align-items:center !important;
    padding:16px 20px !important;
    color:#31516B !important;
    font-size:15px !important;
    line-height:1.5 !important;
    font-weight:550 !important;
}

/* Les caractéristiques restent bien réparties sur toute la largeur disponible. */
body.single-product .ic33-specifications{
    width:100% !important;
    box-sizing:border-box !important;
}

/* Texte "aucune information" également cohérent avec la nouvelle échelle. */
body.single-product .ic33-product-information__empty{
    font-size:16px !important;
    line-height:1.7 !important;
}

/* Sur petit écran : on conserve une taille confortable sans surcharger. */
@media (max-width:640px){
    body.single-product .ic33-product-description{
        font-size:15.5px !important;
        line-height:1.75 !important;
    }

    body.single-product .ic33-specification__name,
    body.single-product .ic33-specification__value{
        padding:14px 15px !important;
        font-size:14px !important;
    }
}


/* ==========================================================================
   IC33 — AVIS : ÉTOILES HORIZONTALES + CONTRASTE
   ========================================================================== */

/* Les étoiles doivent toujours rester sur une seule ligne. */
body.single-product .comment-form-rating .stars,
body.single-product .woocommerce-product-rating .star-rating,
body.single-product .stars{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:4px !important;
    width:max-content !important;
    height:auto !important;
}

/* Chaque étoile reste côte à côte et ne peut pas passer en bloc vertical. */
body.single-product .comment-form-rating .stars a,
body.single-product .stars a{
    display:inline-flex !important;
    flex:0 0 auto !important;
    width:22px !important;
    height:22px !important;
    align-items:center !important;
    justify-content:center !important;
    margin:0 !important;
    padding:0 !important;
    color:#F58220 !important;
}

/* Étoiles réellement visibles avec un contraste fort sur le fond gris. */
body.single-product .comment-form-rating .stars a::before,
body.single-product .stars a::before,
body.single-product .star-rating::before,
body.single-product .star-rating span::before{
    color:#F58220 !important;
}

/* État sélectionné / survolé : orange plus soutenu. */
body.single-product .comment-form-rating .stars a:hover,
body.single-product .comment-form-rating .stars a.active,
body.single-product .stars a:hover{
    color:#D96508 !important;
}

/* Évite qu'un style WooCommerce transforme les étoiles en éléments verticaux. */
body.single-product .comment-form-rating .stars::before,
body.single-product .comment-form-rating .stars::after{
    display:none !important;
}


/* ==========================================================================
   IC33 — CORRECTION DÉFINITIVE DU SÉLECTEUR D'ÉTOILES
   WooCommerce place généralement les <a> dans un <span> intermédiaire.
   Le flex doit donc être appliqué au span, pas uniquement au conteneur .stars.
   ========================================================================== */

body.single-product .ic33-product-reviews #review_form .comment-form-rating .stars,
body.single-product .ic33-product-reviews #review_form p.stars{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    width:max-content !important;
    max-width:100% !important;
    min-height:48px !important;
    gap:0 !important;
    white-space:nowrap !important;
}

/* C'est ce span intermédiaire qui provoque généralement l'empilement vertical. */
body.single-product .ic33-product-reviews #review_form .comment-form-rating .stars > span,
body.single-product .ic33-product-reviews #review_form p.stars > span{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:6px !important;
    width:max-content !important;
    max-width:none !important;
    height:auto !important;
    white-space:nowrap !important;
}

/* Les 5 boutons sont de vrais éléments flex côte à côte. */
body.single-product .ic33-product-reviews #review_form .comment-form-rating .stars > span > a,
body.single-product .ic33-product-reviews #review_form p.stars > span > a{
    position:relative !important;
    display:flex !important;
    flex:0 0 42px !important;
    width:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    height:42px !important;
    margin:0 !important;
    padding:0 !important;
    align-items:center !important;
    justify-content:center !important;
    float:none !important;
    clear:none !important;
    color:#F58220 !important;
    background:transparent !important;
    font-size:0 !important;
    line-height:1 !important;
}

/* Étoile visible : orange contrasté sur le fond gris. */
body.single-product .ic33-product-reviews #review_form .comment-form-rating .stars > span > a::before,
body.single-product .ic33-product-reviews #review_form p.stars > span > a::before{
    content:"★" !important;
    position:absolute !important;
    inset:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:42px !important;
    height:42px !important;
    margin:0 !important;
    color:#F58220 !important;
    -webkit-text-fill-color:#F58220 !important;
    font-family:Arial,sans-serif !important;
    font-size:34px !important;
    line-height:42px !important;
}

/* Survol : orange foncé, tout en conservant les 5 étoiles sur une ligne. */
body.single-product .ic33-product-reviews #review_form .comment-form-rating .stars > span > a:hover::before,
body.single-product .ic33-product-reviews #review_form .comment-form-rating .stars > span > a:focus-visible::before,
body.single-product .ic33-product-reviews #review_form .comment-form-rating .stars > span > a.active::before{
    color:#D96508 !important;
    -webkit-text-fill-color:#D96508 !important;
}

/* Neutralisation des anciennes règles qui pouvaient forcer un comportement de bloc. */
body.single-product .ic33-product-reviews #review_form .stars a{
    float:none !important;
    clear:none !important;
}

/* ==========================================================================
   IC33 — CORRECTIF FINAL VARIATIONS
   - Boutons texte correctement dimensionnés
   - Suppression du comportement "swatch image/cercle"
   - Variations affichées côte à côte
   - NE PAS SUPPRIMER
   ========================================================================== */


/* --------------------------------------------------------------------------
   01 — CONTENEUR DES VARIATIONS
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations{
    width:100% !important;
    margin:0 0 22px !important;
    border:0 !important;
    border-collapse:separate !important;
    border-spacing:0 !important;
}


/* --------------------------------------------------------------------------
   02 — LES DIFFÉRENTS GROUPES DE VARIATIONS CÔTE À CÔTE
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations tbody{
    display:grid !important;

    grid-template-columns:
        repeat(2, minmax(0, 1fr)) !important;

    column-gap:28px !important;
    row-gap:24px !important;

    width:100% !important;
}


/* Chaque variation devient une cellule de la grille */

body.single-product .ic33-product-summary
.variations_form .variations tbody tr{
    display:block !important;

    width:100% !important;
    min-width:0 !important;

    margin:0 !important;
    padding:0 !important;

    border:0 !important;

    background:transparent !important;
}


/* --------------------------------------------------------------------------
   03 — LABEL DES VARIATIONS
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations tr th.label,
body.single-product .ic33-product-summary
.variations_form .variations tr th.label label{

    display:block !important;

    width:auto !important;

    margin:0 0 12px !important;
    padding:0 !important;

    color:#172C40 !important;

    font-size:17px !important;
    line-height:1.25 !important;

    font-weight:850 !important;

    text-align:left !important;
}


/* --------------------------------------------------------------------------
   04 — CELLULE DE VALEURS
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations tr td.value{

    display:block !important;

    width:100% !important;
    min-width:0 !important;

    margin:0 !important;
    padding:0 !important;

    border:0 !important;

    background:transparent !important;

    text-align:left !important;
}


/* --------------------------------------------------------------------------
   05 — CONTENEUR DES BOUTONS DE VARIATION
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper{

    display:flex !important;

    flex-direction:row !important;
    flex-wrap:wrap !important;

    align-items:center !important;

    justify-content:flex-start !important;

    gap:10px !important;

    width:100% !important;

    margin:0 !important;
    padding:0 !important;

    list-style:none !important;
}


/* --------------------------------------------------------------------------
   06 — BOUTONS TEXTE
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item{

    position:relative !important;

    display:flex !important;

    flex:0 0 auto !important;

    align-items:center !important;
    justify-content:center !important;

    width:auto !important;

    min-width:64px !important;
    max-width:none !important;

    height:52px !important;
    min-height:52px !important;

    margin:0 !important;
    padding:0 16px !important;

    border:2px solid var(--ic33-secondary) !important;

    border-radius:10px !important;

    background:#fff !important;

    background-image:none !important;

    box-shadow:none !important;

    color:#075FA8 !important;

    font-size:14px !important;
    line-height:1.15 !important;

    font-weight:850 !important;

    text-align:center !important;

    white-space:nowrap !important;

    overflow:visible !important;

    text-indent:0 !important;

    transform:none !important;

    cursor:pointer !important;

    transition:
        background .18s ease,
        color .18s ease,
        border-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease !important;
}


/* --------------------------------------------------------------------------
   07 — TEXTE À L'INTÉRIEUR DES BOUTONS
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item
.variable-item-span,
body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item
.variable-item-span-button{

    display:block !important;

    width:auto !important;
    max-width:none !important;

    margin:0 !important;
    padding:0 !important;

    color:inherit !important;

    font-size:14px !important;
    line-height:1.15 !important;

    font-weight:850 !important;

    text-align:center !important;

    white-space:nowrap !important;

    overflow:visible !important;

    text-overflow:clip !important;
}


/* --------------------------------------------------------------------------
   08 — SUPPRESSION DU COMPORTEMENT IMAGE / CERCLE
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item::before,
body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item::after{

    display:none !important;

    content:none !important;
}


body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item
.variable-item-contents{

    display:flex !important;

    align-items:center !important;
    justify-content:center !important;

    width:auto !important;
    min-width:0 !important;

    height:100% !important;

    margin:0 !important;
    padding:0 !important;

    background:none !important;
}


/* --------------------------------------------------------------------------
   09 — ÉTAT NORMAL / HOVER
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item:hover{

    border-color:var(--ic33-secondary) !important;

    background:#FFF4E9 !important;

    color:#075FA8 !important;

    box-shadow:
        0 4px 12px rgba(245,130,32,.16) !important;

    transform:translateY(-1px) !important;
}


/* --------------------------------------------------------------------------
   10 — VARIATION SÉLECTIONNÉE
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item.selected,
body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item.selected:hover{

    border-color:var(--ic33-secondary) !important;

    background:var(--ic33-secondary) !important;

    color:#fff !important;

    box-shadow:
        0 5px 14px rgba(245,130,32,.22) !important;
}


body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item.selected
.variable-item-span,
body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item.selected
.variable-item-span-button{

    color:#fff !important;
}


/* --------------------------------------------------------------------------
   11 — CAS DES BOUTONS TRÈS LONGS
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item[title*="GPS et Bluetooth"]{

    min-width:120px !important;
}


body.single-product .ic33-product-summary
.variations_form .variations
.variable-items-wrapper
.variable-item[title*="Numérique"]{

    min-width:90px !important;
}


/* --------------------------------------------------------------------------
   12 — RESET VARIATIONS
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .reset_variations{

    display:inline-block !important;

    margin:10px 0 0 !important;

    color:var(--ic33-primary) !important;

    font-size:12px !important;

    font-weight:750 !important;

    text-decoration:none !important;
}


/* ==========================================================================
   IC33 — MOBILE
   ========================================================================== */

@media (max-width:640px){

    body.single-product .ic33-product-summary
    .variations_form .variations tbody{

        grid-template-columns:1fr !important;

        row-gap:20px !important;

    }


    body.single-product .ic33-product-summary
    .variations_form .variations
    .variable-items-wrapper{

        gap:8px !important;

    }


    body.single-product .ic33-product-summary
    .variations_form .variations
    .variable-items-wrapper
    .variable-item{

        min-width:58px !important;

        height:48px !important;
        min-height:48px !important;

        padding:0 13px !important;

        font-size:13px !important;

    }


    body.single-product .ic33-product-summary
    .variations_form .variations tr th.label,
    body.single-product .ic33-product-summary
    .variations_form .variations tr th.label label{

        font-size:16px !important;

    }

}

/* ==========================================================================
   IC33 — DISPOSITION FINALE DES VARIATIONS
   - 4 variations par ligne sur grand écran
   - 3 variations par ligne sur écran intermédiaire
   - séparateurs verticaux bleu foncé très légers
   - espace réduit entre le titre et les boutons
   - NE MODIFIE PAS LE STYLE / LA TAILLE DES BOUTONS
   ========================================================================== */


/* --------------------------------------------------------------------------
   01 — GRILLE DES VARIATIONS
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations tbody{

    display:grid !important;

    grid-template-columns:
        repeat(4, minmax(0, 1fr)) !important;

    column-gap:0 !important;
    row-gap:18px !important;

    width:100% !important;
}


/* --------------------------------------------------------------------------
   02 — CHAQUE BLOC DE VARIATION
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations tbody tr{

    display:block !important;

    width:100% !important;
    min-width:0 !important;

    margin:0 !important;

    padding:0 20px !important;

    border:0 !important;

    background:transparent !important;

    box-sizing:border-box !important;
}


/* --------------------------------------------------------------------------
   03 — SÉPARATEURS VERTICAUX
   -------------------------------------------------------------------------- */

/* 1er, 2e et 3e blocs de chaque ligne */
body.single-product .ic33-product-summary
.variations_form .variations tbody tr:not(:nth-child(4n)){

    border-right:
        1px solid rgba(32,74,105,.28) !important;
}


/* --------------------------------------------------------------------------
   04 — PREMIER BLOC : PAS DE PADDING GAUCHE SUPPLÉMENTAIRE
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations tbody tr:nth-child(4n+1){

    padding-left:0 !important;
}


/* --------------------------------------------------------------------------
   05 — DERNIER BLOC DE CHAQUE LIGNE
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations tbody tr:nth-child(4n){

    padding-right:0 !important;
}


/* --------------------------------------------------------------------------
   06 — ESPACE ENTRE LE NOM ET LES BOUTONS
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations tr th.label,
body.single-product .ic33-product-summary
.variations_form .variations tr th.label label{

    margin-bottom:5px !important;
}


/* --------------------------------------------------------------------------
   07 — LE CONTENU DU BLOC PREND TOUTE SA LARGEUR
   -------------------------------------------------------------------------- */

body.single-product .ic33-product-summary
.variations_form .variations tr td.value{

    width:100% !important;
    min-width:0 !important;

    margin:0 !important;
    padding:0 !important;
}


/* --------------------------------------------------------------------------
   08 — 3 VARIATIONS PAR LIGNE
   -------------------------------------------------------------------------- */

@media (max-width:1100px){

    body.single-product .ic33-product-summary
    .variations_form .variations tbody{

        grid-template-columns:
            repeat(3, minmax(0, 1fr)) !important;

    }


    /* Séparateurs pour une grille de 3 colonnes */
    body.single-product .ic33-product-summary
    .variations_form .variations tbody tr{

        border-right:0 !important;

    }


    body.single-product .ic33-product-summary
    .variations_form .variations tbody tr:not(:nth-child(3n)){

        border-right:
            1px solid rgba(32,74,105,.28) !important;

    }


    body.single-product .ic33-product-summary
    .variations_form .variations tbody tr:nth-child(3n+1){

        padding-left:0 !important;

    }


    body.single-product .ic33-product-summary
    .variations_form .variations tbody tr:nth-child(3n){

        padding-right:0 !important;

    }

}


/* --------------------------------------------------------------------------
   09 — 2 COLONNES TABLETTE
   -------------------------------------------------------------------------- */

@media (max-width:800px){

    body.single-product .ic33-product-summary
    .variations_form .variations tbody{

        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        row-gap:18px !important;

    }


    body.single-product .ic33-product-summary
    .variations_form .variations tbody tr{

        border-right:0 !important;

        padding-left:0 !important;
        padding-right:20px !important;

    }


    body.single-product .ic33-product-summary
    .variations_form .variations tbody tr:nth-child(2n){

        padding-right:0 !important;

    }


    body.single-product .ic33-product-summary
    .variations_form .variations tbody tr:nth-child(2n+1){

        border-right:
            1px solid rgba(32,74,105,.28) !important;

    }

}


/* --------------------------------------------------------------------------
   10 — MOBILE
   -------------------------------------------------------------------------- */

@media (max-width:640px){

    body.single-product .ic33-product-summary
    .variations_form .variations tbody{

        grid-template-columns:1fr !important;

        row-gap:18px !important;

    }


    body.single-product .ic33-product-summary
    .variations_form .variations tbody tr{

        padding:0 !important;

        border-right:0 !important;

    }

}