
.fipec-filters {
    width: 100%;
    background: #061c2b;
    color: #fff;
    border-radius: 4px;
    overflow: hidden;
}

.fipec-filter-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:18px 16px;
    border-bottom:1px solid rgba(255,255,255,.12);
}

.fipec-filter-head strong {
    font-size:16px;
}

.fipec-reset {
    padding:0;
    border:0;
    background:none;
    color:#16a9e7;
    font-size:11px;
    cursor:pointer;
}

.fipec-filter-group {
    border-bottom:1px solid rgba(255,255,255,.12);
}

.fipec-filter-title {
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:15px 16px;
    border:0;
    background:transparent;
    color:#fff;
    font-size:12px;
    font-weight:700;
    text-align:left;
    cursor:pointer;
}

.fipec-filter-title[aria-expanded="false"] .fipec-chevron {
    transform:rotate(180deg);
}

.fipec-filter-options {
    padding:0 16px 16px;
}

.fipec-filter-options.is-collapsed {
    display:none;
}

.fipec-check {
    display:flex;
    align-items:center;
    gap:8px;
    padding:5px 0;
    color:#fff;
    font-size:12px;
    cursor:pointer;
}

.fipec-check input {
    margin:0;
}

.fipec-check span {
    flex:1;
}

.fipec-check small {
    opacity:.55;
}

.fipec-price-values {
    display:flex;
    justify-content:space-between;
    margin-bottom:10px;
    font-size:11px;
}

.fipec-range-wrap {
    position:relative;
    height:30px;
}

.fipec-range {
    position:absolute;
    left:0;
    top:5px;
    width:100%;
    pointer-events:none;
    background:transparent;
}

.fipec-range::-webkit-slider-thumb {
    pointer-events:auto;
}

.fipec-range::-moz-range-thumb {
    pointer-events:auto;
}

.fipec-products {
    width:100%;
}

.fipec-results-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin-bottom:18px;
}

.fipec-count-number {
    font-size:14px;
}

.fipec-sort {
    font-size:12px;
}

.fipec-order {
    margin-left:5px;
    padding:9px 28px 9px 10px;
    border:1px solid #ddd;
    border-radius:3px;
    background:#fff;
}

.fipec-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.fipec-product-card {
    overflow:hidden;
    border:1px solid #e3e6e8;
    border-radius:4px;
    background:#fff;
}

.fipec-product-image {
    display:flex;
    align-items:center;
    justify-content:center;
    height:250px;
    padding:15px;
}

.fipec-product-image img {
    max-width:100%;
    height:100%;
    object-fit:contain;
}

.fipec-product-info {
    padding:12px 13px 14px;
}

.fipec-product-card h2 {
    margin:0 0 7px;
    font-size:14px;
    line-height:1.35;
}

.fipec-product-card h2 a {
    color:#142331;
    text-decoration:none;
}

.fipec-product-description {
    min-height:32px;
    color:#59636b;
    font-size:11px;
    line-height:1.45;
}

.fipec-product-price {
    margin:11px 0;
    color:#142331;
    font-size:17px;
    font-weight:800;
}

.fipec-product-buy form.cart {
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    width:100%;
}

.fipec-qty {
    display:flex;
    align-items:center;
    height:40px;
    flex:0 0 auto;
}

.fipec-qty button,
.fipec-qty input {
    box-sizing:border-box;
    height:40px;
    margin:0;
    border:1px solid #d9dee2;
    background:#fff;
    color:#142331;
    text-align:center;
    box-shadow:none;
}

.fipec-qty button {
    width:38px;
    padding:0;
    font-size:19px;
    font-weight:500;
    line-height:38px;
    cursor:pointer;
}

.fipec-qty button:first-child {
    border-radius:5px 0 0 5px;
}

.fipec-qty button:last-child {
    border-radius:0 5px 5px 0;
}

.fipec-qty button:hover {
    background:#f3f5f7;
}

.fipec-qty input {
    width:42px;
    padding:0 3px;
    border-left:0;
    border-right:0;
    border-radius:0;
    font-size:14px;
    line-height:40px;
    -moz-appearance:textfield;
}

.fipec-qty input::-webkit-outer-spin-button,
.fipec-qty input::-webkit-inner-spin-button {
    -webkit-appearance:none;
    margin:0;
}

.fipec-add-cart {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:1 1 auto;
    min-width:0;
    height:40px;
    min-height:40px;
    padding:0 14px;
    border:0;
    border-radius:5px;
    background:#126bc1;
    color:#fff!important;
    font-size:10px;
    font-weight:700;
    line-height:1;
    text-decoration:none!important;
    text-transform:uppercase;
    cursor:pointer;
}

.fipec-loading {
    display:none;
    padding:35px;
    text-align:center;
    font-size:13px;
}

.fipec-products.is-loading .fipec-loading {
    display:block;
}

.fipec-products.is-loading .fipec-grid {
    opacity:.45;
    pointer-events:none;
}

.fipec-no-results {
    grid-column:1/-1;
    padding:60px 30px;
    border:1px dashed #ccc;
    text-align:center;
}

@media(max-width:1000px) {
    .fipec-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:700px) {
    .fipec-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;
    }

    .fipec-results-top {
        flex-wrap:wrap;
    }

    .fipec-product-image {
        height:190px;
    }

    .fipec-product-buy form.cart {
        display:block;
    }

    .fipec-add-cart {
        width:100%;
        margin-top:6px;
    }
}

@media(max-width:480px) {
    .fipec-grid {
        grid-template-columns:1fr;
    }

    .fipec-product-image {
        height:240px;
    }
}


@media (max-width:480px) {
    .fipec-product-buy form.cart {
        gap:6px;
    }

    .fipec-qty button {
        width:34px;
    }

    .fipec-qty input {
        width:38px;
    }

    .fipec-add-cart {
        padding:0 10px;
        font-size:9px;
    }
}


/* FIPEC — choix des variations */
.fipec-variations-form {
    width:100%;
}

.fipec-variation-fields {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
    margin-bottom:10px;
}

.fipec-variation-field {
    min-width:0;
}

.fipec-variation-field label {
    display:block;
    margin:0 0 4px;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
}

.fipec-variation-field select {
    width:100%;
    height:38px;
    margin:0;
    padding:0 30px 0 10px;
    border:1px solid #d9dee2;
    border-radius:5px;
    background:#fff;
    color:#142331;
    font-size:13px;
}

.fipec-variation-buy {
    display:flex;
    align-items:center;
    gap:8px;
}

.fipec-variation-buy .fipec-qty {
    flex:0 0 auto;
}

.fipec-variation-buy .fipec-add-cart {
    flex:1 1 auto;
}

.fipec-variation-buy .fipec-add-cart.disabled,
.fipec-variation-buy .fipec-add-cart:disabled {
    opacity:.55;
    cursor:not-allowed;
}

.fipec-variation-result {
    min-height:18px;
    margin:3px 0 7px;
    font-size:11px;
}

@media (max-width:480px) {
    .fipec-variation-fields {
        grid-template-columns:1fr;
    }
}


.fipec-variation-field select option {
    color:#142331;
}


/* FIPEC V3.4.2 — quantité des produits variables */
.fipec-products .fipec-variations-form .fipec-variation-buy {
    display:flex !important;
    align-items:center !important;
    flex-wrap:nowrap !important;
    gap:8px !important;
    width:100% !important;
    clear:both !important;
    position:relative !important;
    z-index:2 !important;
}

.fipec-products .fipec-variations-form .fipec-qty {
    display:flex !important;
    align-items:center !important;
    flex:0 0 auto !important;
    width:auto !important;
    height:40px !important;
    position:relative !important;
    z-index:3 !important;
}

.fipec-products .fipec-variations-form .fipec-qty button,
.fipec-products .fipec-variations-form .fipec-qty input.qty,
.fipec-products .fipec-variations-form .fipec-qty input[type="number"] {
    position:relative !important;
    z-index:4 !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
}

.fipec-products .fipec-variations-form .fipec-qty input[type="number"] {
    width:42px !important;
    min-width:42px !important;
    height:40px !important;
    padding:0 3px !important;
    margin:0 !important;
    text-align:center !important;
}

.fipec-products .fipec-variations-form .fipec-add-cart {
    flex:1 1 auto !important;
    width:auto !important;
    min-width:0 !important;
    position:relative !important;
    z-index:3 !important;
}

/* The variation selectors must remain above surrounding card elements. */
.fipec-products .fipec-variations-form .fipec-variation-fields {
    position:relative !important;
    z-index:5 !important;
}

.fipec-products .fipec-variations-form .fipec-variation-field {
    position:relative !important;
    z-index:6 !important;
}

.fipec-products .fipec-variations-form .fipec-variation-field select {
    position:relative !important;
    z-index:7 !important;
    pointer-events:auto !important;
}


/* FIPEC V3.4.3 — variations au-dessus de la quantité */
.fipec-products .fipec-variations-form {
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
}

.fipec-products .fipec-variations-form .fipec-variation-fields {
    order:1 !important;
    display:grid !important;
    width:100% !important;
    margin:0 0 10px !important;
}

.fipec-products .fipec-variations-form .fipec-variation-result {
    order:2 !important;
    width:100% !important;
}

.fipec-products .fipec-variations-form .fipec-variation-buy {
    order:3 !important;
    display:flex !important;
    width:100% !important;
    margin-top:4px !important;
}

.fipec-products .fipec-variations-form .fipec-variation-field {
    align-self:start !important;
}


/* FIPEC V3.4.4 — bouton variation */
.fipec-products .fipec-variations-form .fipec-add-cart:not(:disabled) {
    opacity:1 !important;
    pointer-events:auto !important;
    cursor:pointer !important;
}

.fipec-products .fipec-variations-form .fipec-add-cart:disabled {
    pointer-events:none !important;
}


/* FIPEC V3.5 — état du bouton variation */
.fipec-products .fipec-variations-form .fipec-add-cart.disabled,
.fipec-products .fipec-variations-form .fipec-add-cart:disabled {
    opacity:.55 !important;
    cursor:not-allowed !important;
}

.fipec-products .fipec-variations-form .fipec-add-cart:not(:disabled) {
    opacity:1 !important;
    pointer-events:auto !important;
    cursor:pointer !important;
}


/* FIPEC V3.5.1 — quantité toujours cliquable */
.fipec-products .fipec-qty {
    position:relative !important;
    z-index:20 !important;
    pointer-events:auto !important;
}

.fipec-products .fipec-qty button {
    position:relative !important;
    z-index:21 !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
}

.fipec-products .fipec-qty input {
    position:relative !important;
    z-index:21 !important;
    pointer-events:auto !important;
}

.fipec-products .fipec-qty button:focus,
.fipec-products .fipec-qty input:focus {
    outline:none !important;
}


/* FIPEC V3.5.2 — quantité : priorité de clic */
.fipec-products .fipec-qty,
.fipec-products .fipec-qty button,
.fipec-products .fipec-qty input[name="quantity"] {
    pointer-events:auto !important;
}

.fipec-products .fipec-qty button {
    user-select:none !important;
    -webkit-user-select:none !important;
}


/* FIPEC V3.5.3 — quantité initiale 2 */
.fipec-products .fipec-variations-form input[name="quantity"] {
    pointer-events:auto !important;
    user-select:text !important;
}


/* FIPEC V3.5.4 — quantité par incrément de 1 */
.fipec-products .fipec-qty input[name="quantity"] {
    step:1 !important;
}


/* FIPEC V3.5.9 — disponibilité de la variation */
.fipec-products .fipec-stock-status {
    margin: 4px 0 8px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

.fipec-products .fipec-stock-status:empty {
    display:none;
}

.fipec-stock-message{
    display:block;
    margin:8px 0 10px;
    padding:7px 10px;
    font-size:13px;
    font-weight:600;
    line-height:1.3;
    border-radius:5px;
}
.fipec-stock-message.is-in{
    background:#eef8f0;
}
.fipec-stock-message.is-out{
    background:#fff0f0;
}


/* Category description excerpt + modal (optional shortcode: [fipec_description]) */
.fipec-category-description { margin: 0 0 24px; color: inherit; }
.fipec-category-description-excerpt { line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.fipec-description-open { margin-top: 10px; padding: 0; border: 0; background: transparent; color: #035564; font-weight: 700; cursor: pointer; }
.fipec-description-open:hover { text-decoration: underline; }
.fipec-description-modal[hidden] { display: none !important; }
.fipec-description-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 20px; }
.fipec-description-modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.58); }
.fipec-description-modal-panel { position: relative; z-index: 1; width: min(760px, 100%); max-height: min(80vh, 720px); overflow: auto; background: #fff; border-radius: 10px; padding: 30px; box-shadow: 0 15px 60px rgba(0,0,0,.25); color: #222; }
.fipec-description-modal-panel h2 { margin: 0 35px 18px 0; }
.fipec-description-close { position: absolute; top: 8px; right: 12px; border: 0; background: transparent; font-size: 30px; line-height: 1; cursor: pointer; color: #555; }
.fipec-description-close:hover { color: #035564; }
.fipec-description-modal-content p:last-child { margin-bottom: 0; }
body.fipec-description-modal-open { overflow: hidden; }
@media (max-width: 600px) { .fipec-description-modal-panel { padding: 24px 20px; } }
