/* =========================================================
   EWS MODERN SHOP – SINGLE PRODUCT
   Záměrně izolováno pod .ews-product, aby se nerozbíjel katalog.
========================================================= */

.ews-product {
    --ews-product-dark: #3e4a5e;
    --ews-product-deep: #303b4d;
    --ews-product-text: #687486;
    --ews-product-muted: #8b97a8;
    --ews-product-teal: #16707a;
    --ews-product-teal-dark: #105c65;
    --ews-product-green: #9abd32;
    --ews-product-green-light: #c8df70;
    --ews-product-line: rgba(62,74,94,.10);

    width: 100%;
    margin: 0;

    background:
        linear-gradient(
            180deg,
            #fbfdfc 0%,
            #ffffff 28%,
            #ffffff 100%
        );

    color:
        var(--ews-product-dark);

    font-family:
        "Noto Sans",
        Arial,
        sans-serif;
}


.ews-product *,
.ews-product *::before,
.ews-product *::after {
    box-sizing: border-box;
}


.ews-product a {
    text-decoration: none !important;
}


.ews-product__shell {
    width: min(1180px, calc(100% - 44px));
    margin: 0 auto;
}


/* =========================================================
   HERO
========================================================= */

.ews-product__hero {
    position: relative;
    padding: 142px 0 48px;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 86% 12%,
            rgba(200,223,112,.15),
            transparent 25%
        ),
        linear-gradient(
            180deg,
            #ffffff,
            #f8fbfa
        );
}


.ews-product__hero::after {
    content: "";

    position: absolute;

    right: -170px;
    top: 70px;

    width: 470px;
    height: 470px;

    border-radius: 50%;

    border:
        1px solid rgba(22,112,122,.05);

    box-shadow:
        0 0 0 70px rgba(22,112,122,.012);

    pointer-events: none;
}


.ews-product__breadcrumbs {
    position: relative;
    z-index: 2;

    display: flex;
    flex-wrap: wrap;
    align-items: center;

    gap: 7px;

    margin-bottom: 19px;

    color:
        var(--ews-product-muted);

    font-size:
        10px;

    line-height:
        1.4;
}


.ews-product__breadcrumbs a {
    color:
        var(--ews-product-teal-dark) !important;
}


.ews-product__breadcrumbs strong {
    color:
        var(--ews-product-dark);

    font-weight:
        750;
}


.ews-product__grid {
    position: relative;
    z-index: 2;

    display: grid;

    grid-template-columns:
        minmax(0, .92fr)
        minmax(0, 1.08fr);

    gap:
        46px;

    align-items:
        start;
}


/* =========================================================
   GALLERY
========================================================= */

.ews-product-gallery__main {
    position: relative;

    display: flex;

    align-items: center;
    justify-content: center;

    min-height: 500px;

    padding: 38px;

    overflow: hidden;

    border:
        1px solid rgba(62,74,94,.08);

    border-radius:
        24px;

    background:
        radial-gradient(
            circle at center,
            #ffffff 0%,
            #fafcfc 55%,
            #f2f7f5 100%
        );

    box-shadow:
        0 20px 44px rgba(62,74,94,.07);
}


.ews-product-gallery__main img {
    display: block;

    width: 100%;
    height: 420px;

    object-fit: contain;
}


.ews-product-gallery__badge {
    position: absolute;

    top: 17px;
    left: 17px;

    z-index: 2;

    display: inline-flex;

    align-items: center;

    min-height: 26px;

    padding:
        0 10px;

    border:
        1px solid rgba(22,112,122,.12);

    border-radius:
        999px;

    background:
        rgba(255,255,255,.92);

    color:
        var(--ews-product-teal-dark);

    box-shadow:
        0 6px 16px rgba(62,74,94,.05);

    font-size:
        8px;

    font-weight:
        850;

    line-height:
        1;

    letter-spacing:
        .055em;

    text-transform:
        uppercase;
}


.ews-product-gallery__thumbs {
    display: flex;

    flex-wrap: wrap;

    gap: 9px;

    margin-top: 11px;
}


.ews-product-gallery__thumb {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 75px;
    height: 75px;

    padding: 6px;

    border:
        1px solid rgba(62,74,94,.09);

    border-radius:
        12px;

    background:
        #ffffff;

    cursor:
        pointer;
}


.ews-product-gallery__thumb.is-active {
    border-color:
        var(--ews-product-green);

    box-shadow:
        0 0 0 2px rgba(154,189,50,.11);
}


.ews-product-gallery__thumb img {
    width: 100%;
    height: 100%;

    object-fit: contain;
}


/* =========================================================
   SUMMARY
========================================================= */

.ews-product-summary {
    padding-top:
        10px;
}


.ews-product-summary__category {
    margin-bottom:
        12px;

    color:
        var(--ews-product-teal);

    font-size:
        10px;

    font-weight:
        850;

    letter-spacing:
        .07em;

    text-transform:
        uppercase;
}


.ews-product-summary h1 {
    max-width:
        610px;

    margin:
        0;

    color:
        var(--ews-product-dark);

    font-size:
        46px;

    font-weight:
        760;

    line-height:
        1.05;

    letter-spacing:
        -.04em;
}


.ews-product-summary__lead {
    max-width:
        590px;

    margin-top:
        18px;

    color:
        var(--ews-product-text);

    font-size:
        15px;

    line-height:
        1.7;
}


.ews-product-summary__lead p {
    margin:
        0 0 9px;
}


.ews-product-summary__price {
    margin-top:
        20px;

    color:
        var(--ews-product-dark);

    font-size:
        28px;

    font-weight:
        850;

    line-height:
        1.2;
}


.ews-product-summary__price del {
    margin-right:
        5px;

    color:
        var(--ews-product-muted);

    font-size:
        15px;

    opacity:
        .7;
}


.ews-product-summary__price ins {
    text-decoration:
        none;
}


.ews-product-summary__stock {
    margin-top:
        7px;

    color:
        var(--ews-product-teal-dark);

    font-size:
        11px;

    font-weight:
        700;
}


/* =========================================================
   CART – pouze uvnitř single produktu
========================================================= */

.ews-product-summary__buy {
    margin-top:
        21px;

    padding:
        16px;

    border:
        1px solid rgba(62,74,94,.09);

    border-radius:
        17px;

    background:
        rgba(255,255,255,.90);

    box-shadow:
        0 12px 28px rgba(62,74,94,.055);
}


.ews-product-summary__buy form.cart {
    margin:
        0 !important;
}


.ews-product-summary__buy form.cart:not(.variations_form) {
    display: flex;

    align-items: center;

    gap:
        10px;
}


.ews-product-summary__buy .quantity {
    margin:
        0 !important;
}


.ews-product-summary__buy .qty {
    width:
        72px !important;

    height:
        48px !important;

    margin:
        0 !important;

    border:
        1px solid rgba(62,74,94,.12) !important;

    border-radius:
        12px !important;

    background:
        #ffffff !important;

    color:
        var(--ews-product-dark) !important;
}


.ews-product-summary__buy .single_add_to_cart_button {
    min-height:
        48px !important;

    margin:
        0 !important;

    padding:
        0 21px !important;

    border:
        0 !important;

    border-radius:
        12px !important;

    background:
        linear-gradient(
            135deg,
            var(--ews-product-green-light),
            var(--ews-product-green)
        ) !important;

    color:
        var(--ews-product-dark) !important;

    box-shadow:
        0 11px 24px rgba(154,189,50,.18) !important;

    font-family:
        inherit !important;

    font-size:
        12px !important;

    font-weight:
        850 !important;

    text-transform:
        none !important;
}


.ews-product-summary__buy table.variations {
    width:
        100% !important;

    margin:
        0 0 13px !important;

    border:
        0 !important;
}


.ews-product-summary__buy table.variations th,
.ews-product-summary__buy table.variations td {
    padding:
        0 0 8px !important;

    border:
        0 !important;

    text-align:
        left !important;
}


.ews-product-summary__buy table.variations label {
    color:
        var(--ews-product-dark);

    font-size:
        11px;

    font-weight:
        800;
}


.ews-product-summary__buy table.variations select {
    width:
        100% !important;

    min-height:
        45px;

    padding:
        0 12px;

    border:
        1px solid rgba(62,74,94,.12);

    border-radius:
        11px;

    background:
        #ffffff;

    color:
        var(--ews-product-dark);

    font-family:
        inherit;
}


.ews-product-summary__buy .woocommerce-variation-add-to-cart {
    display: flex;

    gap:
        10px;

    align-items:
        center;

    margin-top:
        11px;
}


/* =========================================================
   TRUST
========================================================= */

.ews-product-summary__trust {
    display: grid;

    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap:
        9px;

    margin-top:
        17px;
}


.ews-product-summary__trust > div {
    display: grid;

    grid-template-columns:
        24px minmax(0,1fr);

    gap:
        8px;

    align-items:
        start;

    padding:
        11px;

    border:
        1px solid rgba(62,74,94,.07);

    border-radius:
        12px;

    background:
        rgba(255,255,255,.68);
}


.ews-product-summary__trust-icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 24px;
    height: 24px;

    border-radius:
        8px;

    background:
        rgba(154,189,50,.16);

    color:
        var(--ews-product-teal-dark);

    font-size:
        11px;

    font-weight:
        900;
}


.ews-product-summary__trust p {
    margin:
        0;

    color:
        var(--ews-product-muted);

    font-size:
        9px;

    line-height:
        1.45;
}


.ews-product-summary__trust strong {
    display: block;

    margin-bottom:
        2px;

    color:
        var(--ews-product-dark);

    font-size:
        9.5px;
}


/* =========================================================
   BENEFITS
========================================================= */

.ews-product-benefits {
    padding:
        0 0 56px;
}


.ews-product-benefits__grid {
    display: grid;

    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap:
        13px;
}


.ews-product-benefits article {
    padding:
        20px;

    border:
        1px solid rgba(62,74,94,.08);

    border-radius:
        17px;

    background:
        #ffffff;

    box-shadow:
        0 10px 26px rgba(62,74,94,.04);
}


.ews-product-benefits__icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;

    margin-bottom:
        13px;

    border-radius:
        11px;

    background:
        linear-gradient(
            145deg,
            rgba(154,189,50,.19),
            rgba(22,112,122,.07)
        );

    color:
        var(--ews-product-teal);

    font-size:
        9px;

    font-weight:
        900;
}


.ews-product-benefits h2 {
    margin:
        0 0 7px;

    color:
        var(--ews-product-dark);

    font-size:
        17px;

    line-height:
        1.25;
}


.ews-product-benefits p {
    margin:
        0;

    color:
        var(--ews-product-text);

    font-size:
        11px;

    line-height:
        1.6;
}


/* =========================================================
   DETAILS
========================================================= */

.ews-product-details {
    padding:
        56px 0;

    background:
        linear-gradient(
            180deg,
            #f8fbfa,
            #ffffff
        );
}


.ews-product-details__grid {
    display: grid;

    grid-template-columns:
        minmax(0,1.15fr)
        minmax(330px,.65fr);

    gap:
        34px;

    align-items:
        start;
}


.ews-product-details__content,
.ews-product-details__aside {
    min-width:
        0;
}


.ews-product-heading span {
    display: block;

    margin-bottom:
        7px;

    color:
        var(--ews-product-teal);

    font-size:
        9px;

    font-weight:
        850;

    letter-spacing:
        .07em;

    text-transform:
        uppercase;
}


.ews-product-heading h2 {
    max-width:
        620px;

    margin:
        0;

    color:
        var(--ews-product-dark);

    font-size:
        31px;

    font-weight:
        760;

    line-height:
        1.12;

    letter-spacing:
        -.025em;
}


.ews-product-wysiwyg {
    margin-top:
        22px;

    color:
        var(--ews-product-text);

    font-size:
        14px;

    line-height:
        1.75;
}


.ews-product-wysiwyg h2,
.ews-product-wysiwyg h3,
.ews-product-wysiwyg h4 {
    color:
        var(--ews-product-dark);

    line-height:
        1.25;
}


.ews-product-wysiwyg img {
    max-width:
        100%;

    height:
        auto;

    border-radius:
        16px;
}


.ews-product-specs {
    margin-top:
        18px;

    overflow:
        hidden;

    border:
        1px solid rgba(62,74,94,.08);

    border-radius:
        15px;

    background:
        #ffffff;

    box-shadow:
        0 10px 26px rgba(62,74,94,.035);
}


.ews-product-specs__row {
    display: grid;

    grid-template-columns:
        minmax(100px,.75fr)
        minmax(0,1.25fr);

    gap:
        16px;

    padding:
        13px 15px;

    border-bottom:
        1px solid rgba(62,74,94,.07);
}


.ews-product-specs__row:last-child {
    border-bottom:
        0;
}


.ews-product-specs__row span {
    color:
        var(--ews-product-muted);

    font-size:
        10px;
}


.ews-product-specs__row strong {
    color:
        var(--ews-product-dark);

    font-size:
        10px;

    font-weight:
        750;

    text-align:
        right;
}


.ews-product-note {
    margin-top:
        14px;

    padding:
        17px;

    border:
        1px solid rgba(62,74,94,.08);

    border-radius:
        14px;

    background:
        #ffffff;

    color:
        var(--ews-product-text);

    font-size:
        11px;

    line-height:
        1.55;
}


.ews-product-note--dark {
    display: grid;

    gap:
        7px;

    background:
        linear-gradient(
            135deg,
            var(--ews-product-dark),
            #315f66
        );

    color:
        rgba(255,255,255,.82);
}


.ews-product-note--dark strong {
    color:
        #ffffff;

    font-size:
        14px;
}


.ews-product-note--dark a {
    color:
        var(--ews-product-green-light) !important;

    font-size:
        10px;

    font-weight:
        850;
}


/* =========================================================
   RELATED
========================================================= */

.ews-product-related {
    padding:
        56px 0 72px;
}


.ews-product-heading--row {
    display: flex;

    align-items:
        end;

    justify-content:
        space-between;

    gap:
        20px;

    margin-bottom:
        22px;
}


.ews-product-heading--row > a {
    color:
        var(--ews-product-teal-dark) !important;

    font-size:
        11px;

    font-weight:
        800;
}


.ews-product-related__grid {
    display: grid;

    grid-template-columns:
        repeat(4,minmax(0,1fr));

    gap:
        14px;
}


/* related cards from the original shop plugin stay compact */

.ews-product-related .ews-shop-card__image {
    aspect-ratio:
        1 / .88;
}


.ews-product-related .ews-shop-card__description {
    display:
        none;
}


.ews-product-related .ews-shop-card__title {
    font-size:
        14px;
}


.ews-product-related .ews-shop-card__price {
    font-size:
        15px;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 980px) {

    .ews-product__grid {
        grid-template-columns:
            1fr;

        gap:
            28px;
    }


    .ews-product-gallery {
        max-width:
            670px;
    }


    .ews-product-summary {
        max-width:
            700px;
    }


    .ews-product-summary h1 {
        font-size:
            42px;
    }


    .ews-product-details__grid {
        grid-template-columns:
            1fr;
    }


    .ews-product-related__grid {
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 620px) {

    .ews-product__shell {
        width:
            min(100% - 28px,1180px);
    }


    .ews-product__hero {
        padding:
            108px 0 34px;
    }


    .ews-product__breadcrumbs {
        display:
            none;
    }


    .ews-product__grid {
        gap:
            21px;
    }


    .ews-product-gallery__main {
        min-height:
            0;

        padding:
            22px;

        border-radius:
            18px;
    }


    .ews-product-gallery__main img {
        height:
            310px;
    }


    .ews-product-gallery__thumb {
        width:
            62px;

        height:
            62px;
    }


    .ews-product-summary {
        padding-top:
            0;
    }


    .ews-product-summary h1 {
        font-size:
            34px;

        line-height:
            1.08;
    }


    .ews-product-summary__lead {
        font-size:
            14px;
    }


    .ews-product-summary__price {
        font-size:
            24px;
    }


    .ews-product-summary__buy form.cart:not(.variations_form),
    .ews-product-summary__buy .woocommerce-variation-add-to-cart {
        align-items:
            stretch;

        flex-direction:
            column;
    }


    .ews-product-summary__buy .qty,
    .ews-product-summary__buy .single_add_to_cart_button {
        width:
            100% !important;
    }


    .ews-product-summary__trust {
        grid-template-columns:
            1fr;
    }


    .ews-product-benefits {
        padding-bottom:
            40px;
    }


    .ews-product-benefits__grid {
        grid-template-columns:
            1fr;
    }


    .ews-product-details {
        padding:
            42px 0;
    }


    .ews-product-heading h2 {
        font-size:
            27px;
    }


    .ews-product-heading--row {
        align-items:
            flex-start;

        flex-direction:
            column;
    }


    .ews-product-related {
        padding:
            44px 0 58px;
    }


    .ews-product-related__grid {
        grid-template-columns:
            repeat(2,minmax(0,1fr));

        gap:
            10px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 390px) {

    .ews-product-summary h1 {
        font-size:
            31px;
    }


    .ews-product-related__grid {
        grid-template-columns:
            1fr;
    }

}

/* =========================================================
   EWS MODERN SHOP 1.3 – SINGLE PRODUCT REFINEMENT
========================================================= */

.ews-product__shell {
    width: min(var(--ews-shop-shell-width, 1300px), calc(100% - 44px));
}

.ews-product__hero,
.ews-product-details {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

@media (min-width: 981px) {

    .ews-product__hero {
        padding-top: 146px;
        padding-bottom: 42px;
    }

    .ews-product__grid {
        grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
        gap: 52px;
        align-items: center;
    }

    .ews-product-gallery__main {
        min-height: 540px;
        padding: 34px;
        border-radius: 26px;
    }

    .ews-product-gallery__main img {
        height: 470px;
    }

    .ews-product-gallery__badge {
        top: 19px;
        left: 19px;
        min-height: 29px;
        padding: 0 12px;
        font-size: 9px;
    }

    .ews-product-gallery__thumb {
        width: 82px;
        height: 82px;
    }

    .ews-product-summary {
        padding-top: 0;
    }

    .ews-product-summary__category {
        margin-bottom: 11px;
        font-size: 11px;
    }

    .ews-product-summary h1 {
        max-width: 620px;
        font-size: 46px;
        line-height: 1.06;
    }

    .ews-product-summary__lead {
        max-width: 610px;
        margin-top: 18px;
        font-size: 16px;
        line-height: 1.68;
    }

    .ews-product-summary__price-row {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 14px;
        margin-top: 21px;
    }

    .ews-product-summary__price {
        margin-top: 0;
        font-size: 30px;
    }

    .ews-product-summary__stock-badge {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        min-height: 34px;
        padding: 0 12px;
        border-radius: 999px;
        background: rgba(154,189,50,.13);
        color: var(--ews-product-teal-dark);
        font-size: 11px;
        font-weight: 800;
    }

    .ews-product-summary__stock-badge > span {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: var(--ews-product-green);
        box-shadow: 0 0 0 4px rgba(154,189,50,.12);
    }

    .ews-product-summary__stock-badge .stock {
        margin: 0 !important;
        padding: 0 !important;
        color: inherit !important;
        font-size: inherit !important;
    }

    .ews-product-summary__buy {
        margin-top: 22px;
        padding: 18px;
        border-radius: 18px;
    }

    .ews-product-summary__buy form.cart:not(.variations_form) {
        display: grid;
        grid-template-columns: 94px minmax(220px, 1fr);
        gap: 12px;
        align-items: center;
    }

    .ews-product-summary__buy .qty {
        width: 94px !important;
        height: 52px !important;
    }

    .ews-product-summary__buy .single_add_to_cart_button {
        width: 100% !important;
        min-height: 52px !important;
        font-size: 13px !important;
    }

    .ews-product-summary__buy table.variations label {
        font-size: 12px;
    }

    .ews-product-summary__buy table.variations select {
        min-height: 48px;
        font-size: 13px;
    }

    .ews-product-summary__buy .woocommerce-variation-add-to-cart {
        display: grid;
        grid-template-columns: 94px minmax(220px, 1fr);
        gap: 12px;
        align-items: center;
    }

    .ews-product-summary__trust {
        grid-template-columns: repeat(3, minmax(0,1fr));
        gap: 10px;
        margin-top: 15px;
    }

    .ews-product-summary__trust > div {
        grid-template-columns: 30px minmax(0,1fr);
        gap: 9px;
        min-height: 88px;
        padding: 13px;
    }

    .ews-product-summary__trust-icon {
        width: 30px;
        height: 30px;
        border-radius: 9px;
    }

    .ews-product-summary__trust-icon svg {
        width: 17px;
        height: 17px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .ews-product-summary__trust p {
        font-size: 10.5px;
        line-height: 1.45;
    }

    .ews-product-summary__trust strong {
        margin-bottom: 3px;
        font-size: 11px;
    }

    .ews-product-benefits {
        padding: 0 0 58px;
    }

    .ews-product-benefits__grid {
        grid-template-columns: repeat(4,minmax(0,1fr));
        gap: 14px;
    }

    .ews-product-benefits article {
        min-height: 190px;
        padding: 24px;
        border-radius: 18px;
        text-align: center;
    }

    .ews-product-benefits__icon {
        width: 48px;
        height: 48px;
        margin: 0 auto 15px;
        border-radius: 14px;
    }

    .ews-product-benefits__icon svg {
        width: 24px;
        height: 24px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .ews-product-benefits h2 {
        margin-bottom: 8px;
        font-size: 18px;
    }

    .ews-product-benefits p {
        font-size: 13px;
        line-height: 1.58;
    }

    .ews-product-details__grid {
        grid-template-columns: minmax(0,1.05fr) minmax(370px,.72fr);
        gap: 42px;
    }
}

@media (max-width: 980px) {
    .ews-product-summary__price-row {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 12px;
        margin-top: 18px;
    }

    .ews-product-summary__stock-badge {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        padding: 7px 11px;
        border-radius: 999px;
        background: rgba(154,189,50,.13);
        color: var(--ews-product-teal-dark);
        font-size: 11px;
        font-weight: 800;
    }

    .ews-product-summary__stock-badge > span {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: var(--ews-product-green);
    }

    .ews-product-summary__stock-badge .stock {
        margin: 0 !important;
    }

    .ews-product-benefits__grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width: 620px) {
    .ews-product__shell {
        width: min(100% - 28px, var(--ews-shop-shell-width, 1300px));
    }

    .ews-product__hero,
    .ews-product-details {
        width: 100vw;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
    }

    .ews-product-benefits__grid {
        grid-template-columns: 1fr;
    }

    .ews-product-benefits article {
        text-align: left;
    }

    .ews-product-benefits__icon {
        margin-left: 0;
    }
}
