/* ==========================================================
   Fiche produit EC14
========================================================== */

body.single-product {
    --ec14-border: #e2e2e2;
}

body.single-product .content-area {
    margin-top: 0;
    padding-top: 30px;
}

body.single-product .site-main {
    width: min(100% - 40px, 1280px);
    margin: 0 auto 72px;
}

body.single-product .woocommerce-breadcrumb {
    margin: 0 0 30px;
    color: var(--ec14-muted);
    font-size: 13px;
    line-height: 1.5;
}

body.single-product .woocommerce-breadcrumb a {
    color: #4f5661;
    text-decoration: none;
}

body.single-product .woocommerce-breadcrumb a:hover {
    color: var(--ec14-red);
}

body.single-product div.product {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);
    gap: 52px 64px;
    align-items: start;
}

body.single-product .ec14-catalog-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 3;
    display: inline-flex;
    width: auto;
    max-width: calc(100% - 16px);
    padding: 7px 10px;
    overflow: hidden;
    border-radius: 6px;
    color: #fff;
    font-size: 10px;
    font-weight: 750;
    line-height: 1;
    letter-spacing: .055em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow: 0 3px 10px rgba(0, 0, 0, .14);
}

body.single-product .ec14-catalog-badge--red {
    background: #a6192e;
}

body.single-product .ec14-catalog-badge--gold {
    background: var(--ec14-gold);
    color: var(--ec14-text);
}

body.single-product .ec14-catalog-badge--white {
    background: #fff;
    border: 1px solid #a6192e;
    color: #a6192e;
}

body.single-product div.product > .onsale {
    top: 14px;
    right: auto;
    left: 14px;
    z-index: 4;
    min-width: 0;
    min-height: 0;
    padding: 8px 11px;
    background: var(--ec14-red);
    border-radius: 999px;
    color: #fff;
    font-size: 11px;
    line-height: 1;
}

body.single-product div.product::before,
body.single-product div.product::after {
    display: none;
}

body.single-product div.product .woocommerce-product-gallery,
body.single-product div.product .summary {
    float: none;
    width: 100%;
    margin: 0;
}

body.single-product div.product .woocommerce-product-gallery {
    padding: 22px;
    background: var(--ec14-surface);
    border: 1px solid var(--ec14-border);
    border-radius: 6px;
}

body.single-product .woocommerce-product-gallery__wrapper,
body.single-product .woocommerce-product-gallery__image {
    margin: 0;
}

body.single-product .woocommerce-product-gallery__image a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 520px;
    background: #fff;
    border: 1px solid #e7e7e7;
    border-radius: 4px;
}

body.single-product .woocommerce-product-gallery__image img {
    display: block;
    width: 100%;
    max-height: 540px;
    margin: 0;
    object-fit: contain;
    transition: transform .25s ease;
}

@media (hover: hover) {
    body.single-product .woocommerce-product-gallery__image a:hover img {
        transform: scale(1.012);
    }
}

body.single-product .woocommerce-product-gallery__trigger {
    top: 34px;
    right: 34px;
    background: rgba(255, 255, 255, .94);
    border: 1px solid #dedede;
    box-shadow: none;
}

body.single-product .flex-control-thumbs {
    display: flex;
    gap: 10px;
    margin: 14px 0 0;
}

body.single-product .flex-control-thumbs li {
    float: none;
    width: 58px;
}

body.single-product .flex-control-thumbs img {
    padding: 3px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 3px;
    opacity: .72;
}

body.single-product .flex-control-thumbs img.flex-active {
    border-color: var(--ec14-gold);
    opacity: 1;
}

body.single-product div.product .summary {
    position: static;
    padding: 24px 0 0;
}

body.single-product .summary .ec14-catalog-badge {
    position: static;
    display: inline-flex;
    width: auto;
    max-width: 100%;
    margin: 0 0 16px;
    box-shadow: none;
}

body.single-product .product_title {
    margin: 0;
    color: var(--ec14-text);
    font-size: clamp(36px, 4vw, 52px);
    font-weight: 700;
    line-height: 1.06;
    letter-spacing: -.035em;
    text-wrap: balance;
}

body.single-product .product_title::after {
    display: block;
    width: 54px;
    height: 2px;
    margin: 22px 0 0;
    background: var(--ec14-gold);
    content: "";
}

body.single-product .ec14-single-description {
    max-width: 580px;
    margin: 22px 0 0;
    color: #4f5661;
    font-size: 16px;
    line-height: 1.7;
}

body.single-product .ec14-single-description > :first-child {
    margin-top: 0;
}

body.single-product .ec14-single-description > :last-child {
    margin-bottom: 0;
}

body.single-product .summary .price {
    margin: 28px 0 18px;
    color: var(--ec14-text);
    font-size: 27px;
    font-weight: 650;
    line-height: 1.2;
}

body.single-product .summary .price del {
    color: #858585;
    font-size: .72em;
    opacity: 1;
}

body.single-product .summary .price ins {
    color: var(--ec14-red);
    text-decoration: none;
}

body.single-product .woocommerce-product-details__short-description {
    max-width: 560px;
    margin: 0 0 24px;
    color: #4f5661;
    font-size: 16px;
    line-height: 1.7;
}

body.single-product .summary .stock {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 20px;
    color: var(--ec14-success);
    font-size: 14px;
    font-weight: 650;
}

body.single-product .summary .stock::before {
    width: 7px;
    height: 7px;
    background: currentColor;
    border-radius: 50%;
    content: "";
}

body.single-product .summary .stock.out-of-stock {
    color: var(--ec14-red);
}

body.single-product .summary form.cart {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: stretch;
    width: 100%;
    max-width: 380px;
    margin: 0 0 28px;
}

body.single-product .summary form.cart .quantity.hidden,
body.single-product .summary form.cart .quantity:has(input[type="hidden"]) {
    display: none !important;
}

body.single-product .summary .quantity .qty {
    width: 70px;
    height: 46px;
    padding: 8px;
    background: #fff;
    border: 1px solid #d8d8d8;
    border-radius: 3px;
    color: var(--ec14-text);
    text-align: center;
}

body.single-product .summary .single_add_to_cart_button {
    flex: 1 1 auto;
    width: auto;
    min-width: 180px;
    min-height: 46px;
    padding: 11px 26px;
    background: var(--ec14-red) !important;
    border: 1px solid var(--ec14-red) !important;
    border-radius: 3px !important;
    color: #fff !important;
    font-size: 14px;
    font-weight: 650;
    text-transform: none;
    box-shadow: none !important;
    transition: background-color .18s ease, border-color .18s ease;
}

body.single-product .summary .single_add_to_cart_button:hover {
    background: var(--ec14-red-dark) !important;
    border-color: var(--ec14-red-dark) !important;
}

body.single-product .summary .ec14-product-unavailable-message {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin: 8px 0 18px;
    padding: 11px 15px;
    background: #f2f3f4;
    border-left: 3px solid #c6a15b;
    border-radius: 3px;
    color: #4f555e;
    font-size: 14px;
    font-weight: 650;
}

body.single-product .product_meta {
    margin-top: 0;
    padding-top: 20px;
    border-top: 1px solid var(--ec14-border);
    color: var(--ec14-muted);
    font-size: 13px;
}

body.single-product .product_meta a {
    color: #454c56;
    font-weight: 600;
    text-decoration-color: #c7c7c7;
    text-underline-offset: 3px;
}

body.single-product div.product .woocommerce-tabs,
body.single-product div.product .related.products,
body.single-product div.product .up-sells {
    grid-column: 1 / -1;
    width: 100%;
    margin: 0;
}

body.single-product div.product .woocommerce-tabs {
    padding-top: 10px;
}

body.single-product .woocommerce-tabs ul.tabs {
    display: none;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
    display: block !important;
    margin: 0 0 18px;
    padding: 30px 34px;
    background: var(--ec14-surface);
    border: 1px solid var(--ec14-border);
    border-radius: 6px;
    color: #454b54;
    font-size: 16px;
    line-height: 1.75;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel > h2:first-child {
    margin: 0 0 18px;
    color: var(--ec14-text);
    font-size: 25px;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
}

body.single-product .woocommerce-product-attributes {
    margin: 0;
    border: 0;
}

body.single-product .woocommerce-product-attributes-item--weight {
    display: none;
}

body.single-product .woocommerce-product-attributes th,
body.single-product .woocommerce-product-attributes td {
    padding: 12px 8px;
    background: transparent;
    border-color: #dedede;
}

body.single-product .related.products,
body.single-product .up-sells {
    padding-top: 12px;
}

body.single-product .related.products > h2,
body.single-product .up-sells > h2 {
    margin: 0 0 26px;
    color: var(--ec14-text);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.02em;
}

body.single-product .related ul.products,
body.single-product .up-sells ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
}

body.single-product .related ul.products::before,
body.single-product .related ul.products::after,
body.single-product .up-sells ul.products::before,
body.single-product .up-sells ul.products::after {
    display: none;
}

body.single-product .related ul.products li.product,
body.single-product .up-sells ul.products li.product {
    position: relative;
    display: flex;
    float: none;
    flex-direction: column;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 6px 6px 14px;
    overflow: hidden;
    background: var(--ec14-surface);
    border: 1px solid var(--ec14-border);
    border-radius: 5px;
    transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

body.single-product .related li.product > a,
body.single-product .up-sells li.product > a {
    display: flex;
    flex: 1;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
}

body.single-product .related .ec14-product-image,
body.single-product .up-sells .ec14-product-image {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 1 / 1;
    padding: 6px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 4px;
}

body.single-product .related .ec14-product-image img,
body.single-product .up-sells .ec14-product-image img {
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: contain;
    transition: transform .25s ease;
}

body.single-product .related .ec14-product-details,
body.single-product .up-sells .ec14-product-details {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 15px 8px 10px;
}

body.single-product .related .woocommerce-loop-product__title,
body.single-product .up-sells .woocommerce-loop-product__title {
    display: -webkit-box;
    height: 44px;
    margin: 0;
    overflow: hidden;
    color: var(--ec14-text);
    font-size: 14px;
    font-weight: 650;
    line-height: 1.4;
    letter-spacing: 0 !important;
    text-transform: none !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.single-product .related .price,
body.single-product .up-sells .price {
    margin: 10px 0 0;
    color: #333;
    font-size: 16px;
    font-weight: 650;
}

body.single-product .related li.product > .button,
body.single-product .up-sells li.product > .button,
body.single-product .related li.product > .product-action-wrap,
body.single-product .up-sells li.product > .product-action-wrap {
    width: calc(100% - 16px);
    margin: auto 8px 0;
}

body.single-product .related li.product .button,
body.single-product .up-sells li.product .button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 38px;
    padding: 9px 12px;
    background: var(--ec14-red) !important;
    border: 1px solid var(--ec14-red) !important;
    border-radius: 3px !important;
    color: #fff !important;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.25;
    text-transform: none;
    box-shadow: none !important;
}

body.single-product .related .added_to_cart,
body.single-product .up-sells .added_to_cart {
    display: none !important;
}

@media (hover: hover) and (min-width: 1025px) {
    body.single-product .related ul.products li.product:hover,
    body.single-product .up-sells ul.products li.product:hover {
        border-color: #c7c7c7;
        box-shadow: 0 9px 24px rgba(24, 24, 24, .09);
        transform: translateY(-3px);
    }

    body.single-product .related li.product:hover .ec14-product-image img,
    body.single-product .up-sells li.product:hover .ec14-product-image img {
        transform: scale(1.018);
    }
}

body.single-product .related li.product .onsale,
body.single-product .up-sells li.product .onsale {
    top: 14px;
    right: 14px;
    left: auto;
    min-width: 0;
    min-height: 0;
    padding: 7px 10px;
    background: var(--ec14-red);
    border-radius: 999px;
    color: #fff;
    font-size: 10px;
    line-height: 1;
}

@media (max-width: 1024px) {
    body.single-product .site-main {
        width: min(100% - 32px, 980px);
    }

    body.single-product div.product {
        gap: 42px 38px;
    }

    body.single-product .woocommerce-product-gallery__image a {
        min-height: 420px;
    }
}

@media (max-width: 767px) {
    body.single-product .content-area {
        padding-top: 18px;
    }

    body.single-product .site-main {
        width: min(100% - 20px, 620px);
        margin-bottom: 46px;
    }

    body.single-product .woocommerce-breadcrumb {
        margin: 0 0 20px;
        font-size: 11px;
    }

    body.single-product div.product {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }

    body.single-product div.product .woocommerce-product-gallery {
        padding: 8px;
    }

    body.single-product .woocommerce-product-gallery__image a {
        min-height: 0;
        aspect-ratio: 1 / 1;
    }

    body.single-product .woocommerce-product-gallery__image img {
        max-height: none;
    }

    body.single-product div.product .summary {
        padding-top: 0;
    }

    body.single-product .product_title {
        font-size: clamp(31px, 10vw, 40px);
    }

    body.single-product .product_title::after {
        margin-top: 16px;
    }

    body.single-product .summary .price {
        margin: 20px 0 15px;
        font-size: 23px;
    }

    body.single-product .summary form.cart {
        display: flex;
        flex-wrap: nowrap;
        width: 100%;
        max-width: none;
    }

    body.single-product .summary form.cart .quantity {
        flex: 0 0 64px;
    }

    body.single-product .summary .quantity .qty {
        width: 64px;
    }

    body.single-product .summary form.cart .single_add_to_cart_button {
        flex: 1 1 auto;
        width: 100%;
        min-width: 0;
        padding-right: 10px;
        padding-left: 10px;
        white-space: nowrap;
    }

    body.single-product .ec14-single-description {
        margin-top: 18px;
        font-size: 14px;
        line-height: 1.58;
    }

    body.single-product .ec14-single-description p {
        margin: 0 0 14px;
    }

    body.single-product .ec14-single-description p:last-child {
        margin-bottom: 0;
    }

    body.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
        padding: 22px 18px;
        font-size: 15px;
    }

    body.single-product .woocommerce-tabs .woocommerce-Tabs-panel > h2:first-child {
        margin-bottom: 14px;
        font-size: 19px;
        line-height: 1.25;
        letter-spacing: 0;
        text-transform: none;
    }

    body.single-product .related.products > h2,
    body.single-product .up-sells > h2 {
        margin-bottom: 20px;
        font-size: 24px;
    }

    body.single-product .related ul.products,
    body.single-product .up-sells ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px 10px;
    }

    body.single-product .related ul.products li.product,
    body.single-product .up-sells ul.products li.product {
        padding: 4px 4px 10px;
    }

    body.single-product .related .ec14-product-details,
    body.single-product .up-sells .ec14-product-details {
        padding: 10px 6px 7px;
    }

    body.single-product .related .woocommerce-loop-product__title,
    body.single-product .up-sells .woocommerce-loop-product__title {
        height: 36px;
        font-size: 12px;
        font-weight: 650;
        line-height: 1.35;
        letter-spacing: 0;
        text-transform: none;
    }

    body.single-product .related .price,
    body.single-product .up-sells .price {
        font-size: 14px;
    }

    body.single-product .related li.product .button,
    body.single-product .up-sells li.product .button {
        min-height: 36px;
        padding: 8px 4px;
        font-size: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.single-product .woocommerce-product-gallery__image img,
    body.single-product .related ul.products li.product,
    body.single-product .up-sells ul.products li.product,
    body.single-product .related .ec14-product-image img,
    body.single-product .up-sells .ec14-product-image img {
        transition: none;
    }
}
