/* FlexiShop public styles. All storefront selectors are scoped under .flexishop. */
.flexishop {
    --fs-accent: #08bfd4;
    --fs-accent-dark: #0499ab;
    --fs-border: #e4e7ea;
    --fs-muted: #6d7378;
    --fs-text: inherit;
    --fs-shadow: 0 2px 9px rgba(28, 38, 48, .075);
    color: var(--fs-text);
    /* Match the typography used by the site's Cassiopeia customization.
       If Roboto is loaded by the template it will be used; otherwise we fall
       back to the same system sans-serif stack. */
    font-family: 'Roboto', sans-serif !important;
    font-size: 1.1rem !important;
    line-height: 1.5rem !important;
}

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

.flexishop__header { margin: 0 0 .85rem; }
.flexishop__title,
.flexishop-product__title {
    margin: 0 0 .4rem;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.22;
}
.flexishop__lead { margin: 0; color: var(--fs-muted); }
.flexishop__lead--content p:last-child { margin-bottom: 0; }

.flexishop-section { margin: 1.05rem 0; }
.flexishop-section__title {
    margin: 0 0 .65rem;
    padding: .34rem .52rem;
    background: #f4f5f6;
    border: 1px solid var(--fs-border);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
}

.flexishop-category-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}
.flexishop-category {
    display: flex;
    align-items: center;
    min-height: 62px;
    gap: .65rem;
    padding: .55rem;
    color: inherit;
    text-decoration: none;
    background: #fff;
    border: 1px solid var(--fs-border);
    border-radius: 6px;
    box-shadow: var(--fs-shadow);
}
.flexishop-category:hover { text-decoration: none; border-color: #cfd5d9; }
.flexishop-category img {
    width: 64px;
    height: 52px;
    object-fit: cover;
    border-radius: 4px;
    flex: 0 0 auto;
}
.flexishop-category span { font-weight: 700; }

/*
 * Catalogue: marketplace artwork is deliberately never cropped.
 * The source keeps its natural aspect ratio and is capped at 300px wide.
 */
.flexishop-product-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
    align-items: start;
}
.flexishop-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--fs-border);
    border-radius: 6px;
    box-shadow: var(--fs-shadow);
}
.flexishop-card__image-link {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    position: relative;
    min-height: 0;
    height: auto;
    overflow: visible;
    padding: .35rem .35rem 0;
    background: #fff;
    border-bottom: 0;
}
.flexishop-card__image {
    display: block;
    width: auto;
    max-width: min(100%, 300px);
    height: auto;
    max-height: none;
    object-fit: contain;
}
.flexishop-card__placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 180px;
    color: var(--fs-muted);
    font-size: 13px;
}
.flexishop-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: .65rem .72rem .72rem;
}
.flexishop-card__title {
    margin: 0 0 .4rem;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.22;
}
.flexishop-card__title a { color: inherit; text-decoration: none; }
.flexishop-card__title a:hover { text-decoration: underline; }
.flexishop-card__text {
    display: -webkit-box;
    overflow: hidden;
    margin-bottom: .55rem;
    color: var(--fs-muted);
    font-size: 13px;
    line-height: 1.42;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}
.flexishop-card__footer {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: .5rem;
    margin-top: auto;
}

.flexishop-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem; }
.flexishop-price strong { font-size: 16px; }
.flexishop-price__old { color: #888; text-decoration: line-through; font-size: 13px; }
.flexishop-product__price { margin: .42rem 0 .35rem; }
.flexishop-product__price strong { font-size: 18px; }

.flexishop-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 29px;
    padding: .33rem .62rem;
    border: 0;
    border-radius: 3px;
    background: var(--fs-accent);
    color: #fff !important;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    cursor: pointer;
}
.flexishop-btn:hover { background: var(--fs-accent-dark); }
.flexishop-btn:disabled { opacity: .55; cursor: not-allowed; }
.flexishop-btn--buy { width: 100%; min-height: 36px; margin-top: .65rem; font-size: 13px; }

.flexishop-pagination { margin-top: .9rem; }
.flexishop-back { margin-bottom: .65rem; font-size: 14px; }
.flexishop-back a { text-decoration: none; }

/* Product page: deliberately flatter and closer to a classic WooCommerce product layout. */
.flexishop-product-page > .flexishop-product__title {
    margin-bottom: .8rem;
}
.flexishop-product {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 1.15rem;
    align-items: start;
}
.flexishop-gallery { min-width: 0; }
.flexishop-gallery__stage {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    min-height: 0;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.flexishop-gallery__stage a {
    display: flex;
    width: 70%;
    max-width: 70%;
    margin-inline: auto;
    align-items: flex-start;
    justify-content: center;
    cursor: zoom-in;
}
.flexishop-gallery__stage img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
}
.flexishop-gallery__placeholder { color: var(--fs-muted); }
.flexishop-gallery__thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .35rem;
    width: 70%;
    margin: .42rem auto 0;
}
.flexishop-gallery__thumb {
    overflow: hidden;
    padding: 0;
    aspect-ratio: 1 / 1;
    border: 2px solid transparent;
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
}
.flexishop-gallery__thumb.is-active { border-color: var(--fs-accent); }
.flexishop-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.flexishop-product__info {
    padding: .15rem 0 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.flexishop-product__short { margin-top: .55rem; font-size: 14px; line-height: 1.5; }
.flexishop-product__note { margin-top: .35rem; color: var(--fs-muted); font-size: 12px; }
.flexishop-stock { margin-top: .18rem; font-size: 13px; font-weight: 700; }
.flexishop-stock.is-in-stock { color: #24833b; }
.flexishop-stock.is-out-of-stock { color: #9b3b3b; }

.flexishop-specs { margin: .72rem 0 0; border-top: 1px solid var(--fs-border); font-size: 14px; }
.flexishop-specs > div {
    display: grid;
    grid-template-columns: minmax(105px, .78fr) minmax(0, 1.22fr);
    gap: .5rem;
    padding: .34rem 0;
    border-bottom: 1px solid #eef0f1;
}
.flexishop-specs dt { color: var(--fs-muted); font-weight: 400; }
.flexishop-specs dd { margin: 0; font-weight: 600; }

.flexishop-product__description {
    padding: .72rem;
    background: #fff;
    border: 1px solid var(--fs-border);
    border-radius: 5px;
    box-shadow: 0 1px 5px rgba(28, 38, 48, .045);
    font-size: 14px;
    line-height: 1.5;
}
.flexishop-product__description .flexishop-section__title { margin: -.72rem -.72rem .72rem; }
.flexishop-product-grid--related { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.flexishop-category-description { margin: 0 0 .8rem; font-size: 14px; line-height: 1.5; }
.flexishop-card--compact .flexishop-card__title { font-size: 15px; }
.flexishop-card--compact .flexishop-card__body { padding: .45rem; }
.flexishop-card--compact .flexishop-card__image-link { height: auto; padding: .25rem .25rem 0; }
.flexishop-card--compact .flexishop-card__image { max-width: min(100%, 220px); height: auto; }

/* Product image lightbox. */
.flexishop-lightbox[hidden] { display: none !important; }
.flexishop-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: grid;
    place-items: center;
    padding: 2.2rem;
    background: rgba(10, 14, 18, .86);
    overscroll-behavior: contain;
}
.flexishop-lightbox__dialog {
    position: relative;
    width: min(900px, 88vw);
    height: min(760px, 86vh);
    overflow: hidden;
    border-radius: 5px;
    background: #161a1e;
    box-shadow: 0 12px 45px rgba(0, 0, 0, .45);
}
.flexishop-lightbox__viewport {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    overflow: hidden;
    touch-action: none;
    cursor: zoom-in;
    user-select: none;
}
.flexishop-lightbox__viewport.is-zoomed { cursor: grab; }
.flexishop-lightbox__viewport.is-dragging { cursor: grabbing; }
.flexishop-lightbox__image {
    display: block;
    max-width: 70%;
    max-height: 78%;
    width: auto;
    height: auto;
    transform: translate3d(0, 0, 0) scale(1);
    transform-origin: center center;
    transition: transform .08s ease-out;
    will-change: transform;
    pointer-events: none;
}
.flexishop-lightbox__close {
    position: absolute;
    top: .55rem;
    right: .55rem;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: #20252a;
    font-size: 1.55rem;
    line-height: 1;
    cursor: pointer;
}
.flexishop-lightbox__close:hover { background: #fff; }
.flexishop-lightbox__hint {
    position: absolute;
    left: 50%;
    bottom: .55rem;
    z-index: 2;
    transform: translateX(-50%);
    padding: .28rem .55rem;
    border-radius: 3px;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font-size: 12px;
    white-space: nowrap;
    pointer-events: none;
}
body.flexishop-lightbox-open { overflow: hidden; }

/* Match nikproject.com typography exactly.
 * These values mirror the custom Cassiopeia rules used by the site. */
.flexishop .flexishop__title,
.flexishop .flexishop-product__title,
.flexishop .flexishop-card__title,
.flexishop .flexishop-card--compact .flexishop-card__title,
.flexishop .flexishop-section__title {
    font-family: 'Roboto', sans-serif !important;
    font-size: 1.8rem !important;
    font-weight: 600 !important;
    line-height: 1.8rem !important;
}

.flexishop .flexishop__lead,
.flexishop .flexishop-category,
.flexishop .flexishop-card__text,
.flexishop .flexishop-back,
.flexishop .flexishop-product__short,
.flexishop .flexishop-product__note,
.flexishop .flexishop-stock,
.flexishop .flexishop-specs,
.flexishop .flexishop-product__description,
.flexishop .flexishop-category-description {
    font-family: 'Roboto', sans-serif !important;
    font-size: 1.1rem !important;
    line-height: 1.5rem !important;
}

/* Prices remain visually distinct without becoming oversized. */
.flexishop .flexishop-price strong,
.flexishop .flexishop-product__price strong {
    font-family: 'Roboto', sans-serif !important;
    font-size: 1.25rem !important;
    line-height: 1.5rem !important;
}
.flexishop .flexishop-price__old {
    font-family: 'Roboto', sans-serif !important;
    font-size: 1rem !important;
    line-height: 1.5rem !important;
}

@media (min-width: 680px) {
    .flexishop-category-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .flexishop-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .flexishop-product { grid-template-columns: 1fr; }
    .flexishop-product-grid--related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .flexishop-product__info { padding-top: .2rem; }
    .flexishop-gallery__stage a,
    .flexishop-gallery__thumbs { width: 82%; max-width: 82%; }
    .flexishop-lightbox { padding: .8rem; }
    .flexishop-lightbox__dialog { width: 94vw; height: 86vh; }
    .flexishop-lightbox__image { max-width: 84%; max-height: 82%; }
}

@media (max-width: 430px) {
    .flexishop-product-grid { gap: .55rem; }
    .flexishop-card__image-link { height: auto; min-height: 0; }
    .flexishop-card__image { width: 100%; max-width: 100%; height: auto; }
    .flexishop-card__body { padding: .48rem; }
    .flexishop-card__title { font-size: 15px; }
    .flexishop-card__text { display: none; }
    .flexishop-card__footer { display: block; }
    .flexishop-card__footer .flexishop-btn { width: 100%; margin-top: .4rem; }
    .flexishop-gallery__thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .flexishop-specs > div { grid-template-columns: 1fr; gap: .08rem; }
    .flexishop-lightbox__hint { display: none; }
}

/* FlexiShop 0.5 — cart and category pricing. */
.flexishop-add-form {
    display: flex;
    align-items: stretch;
    gap: .45rem;
    margin-top: .7rem;
}
.flexishop-add-form input[type="number"] {
    width: 4.4rem;
    min-height: 38px;
    padding: .35rem .45rem;
    border: 1px solid var(--fs-border);
    border-radius: 3px;
    font: inherit;
}
.flexishop-add-form .flexishop-btn--buy { width: auto; flex: 1; margin-top: 0; }
.flexishop-card-cart-form { margin: 0; }
.flexishop-cart-inline-message {
    min-height: 0;
    margin-top: .35rem;
    color: #24833b;
    font-size: 1rem;
    opacity: 0;
    transition: opacity .15s ease;
}
.flexishop-cart-inline-message.is-visible { opacity: 1; }
.flexishop-cart-inline-message.is-error { color: #a52c2c; }
.flexishop-cart-toast {
    position: fixed;
    right: 1.2rem;
    bottom: 1.2rem;
    z-index: 11000;
    max-width: min(360px, calc(100vw - 2rem));
    padding: .7rem 1rem;
    border-radius: 4px;
    background: #24833b;
    color: #fff;
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    box-shadow: 0 6px 22px rgba(0,0,0,.2);
    opacity: 0;
    transform: translateY(12px);
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
}
.flexishop-cart-toast.is-visible { opacity: 1; transform: translateY(0); }
.flexishop-cart-toast.is-error { background: #a52c2c; }

.flexishop-tier-prices { margin-top: .8rem; border-top: 1px solid var(--fs-border); padding-top: .55rem; }
.flexishop-tier-prices__title { font-weight: 600; margin-bottom: .3rem; }
.flexishop-tier-prices table { width: 100%; border-collapse: collapse; }
.flexishop-tier-prices th,
.flexishop-tier-prices td { padding: .25rem .35rem; border-bottom: 1px solid #eef0f1; text-align: left; font-weight: 400; }
.flexishop-tier-prices th { color: var(--fs-muted); width: 45%; }
.flexishop-tier-prices__shipping { margin-top: .35rem; color: #24833b; font-weight: 600; }
.flexishop-product-page .flexishop-tier-prices__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    min-height: 44px;
    padding: .35rem 0;
    font: inherit;
    font-weight: 600;
    color: inherit;
    cursor: pointer;
    list-style: none;
}
.flexishop-product-page .flexishop-tier-prices__summary::-webkit-details-marker { display: none; }
.flexishop-product-page .flexishop-tier-prices__summary::after {
    content: "\25BE";
    flex: 0 0 auto;
}
.flexishop-product-page .flexishop-tier-prices[open] > .flexishop-tier-prices__summary::after { transform: rotate(180deg); }
.flexishop-product-page .flexishop-tier-prices__summary:focus-visible { outline: 2px solid var(--fs-accent); outline-offset: 3px; border-radius: 3px; }
.flexishop-product-page .flexishop-tier-prices--collapsible > .flexishop-tier-prices__content { padding-top: .35rem; }


.flexishop-page-title {
    margin: 0 0 1rem;
    font-family: 'Roboto', sans-serif !important;
    font-size: 1.8rem !important;
    font-weight: 600 !important;
    line-height: 1.8rem !important;
}
.flexishop-cart-nudge {
    margin: 0 0 .8rem;
    padding: .65rem .8rem;
    border: 1px solid #bfe4e8;
    border-radius: 4px;
    background: #f0fbfc;
}
.flexishop-cart-nudge.is-success { border-color: #b9dfc3; background: #f1fbf4; color: #247338; }
.flexishop-cart-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, .8fr); gap: 1rem; align-items: start; }
.flexishop-cart-items { display: grid; gap: .6rem; }
.flexishop-cart-item {
    display: grid;
    grid-template-columns: 92px minmax(0,1fr) auto;
    gap: .75rem;
    align-items: center;
    padding: .65rem;
    border: 1px solid var(--fs-border);
    border-radius: 5px;
    background: #fff;
}
.flexishop-cart-item__image { width: 92px; }
.flexishop-cart-item__image img { display:block; width:100%; height:auto; max-height:120px; object-fit:contain; }
.flexishop-cart-item h2 { margin:0 0 .25rem; font-size:1.1rem; line-height:1.25; font-weight:600; }
.flexishop-cart-item__meta { color:var(--fs-muted); font-size:.95rem; }
.flexishop-cart-item__price { display:flex; flex-wrap:wrap; gap:.35rem; align-items:baseline; margin-top:.25rem; }
.flexishop-sale-note { color:#24833b; font-weight:600; }
.flexishop-cart-item__actions { min-width: 150px; }
.flexishop-cart-qty-form { display:flex; align-items:center; gap:.3rem; }
.flexishop-cart-qty-form input { width:58px; min-height:30px; padding:.25rem; border:1px solid var(--fs-border); border-radius:3px; font:inherit; }
.flexishop-link-button { margin-top:.35rem; padding:0; border:0; background:none; color:#9b3b3b; cursor:pointer; text-decoration:underline; }
.flexishop-cart-summary { padding:.8rem; border:1px solid var(--fs-border); border-radius:5px; background:#fff; box-shadow:var(--fs-shadow); }
.flexishop-cart-summary h2 { margin:0 0 .65rem; font-size:1.35rem; font-weight:600; }
.flexishop-cart-summary dl { margin:0; }
.flexishop-cart-summary dl > div { display:flex; justify-content:space-between; gap:.7rem; padding:.35rem 0; border-bottom:1px solid #eef0f1; }
.flexishop-cart-summary dt { font-weight:400; }
.flexishop-cart-summary dd { margin:0; text-align:right; font-weight:600; }
.flexishop-cart-summary .is-discount { color:#24833b; }
.flexishop-cart-total { margin-top:.25rem; font-size:1.2rem; }
.flexishop-shipping-old { color:#888; text-decoration:line-through; margin-right:.25rem; }
.flexishop-coupon-form { margin-top:.8rem; }
.flexishop-coupon-form label { display:block; margin-bottom:.25rem; font-weight:600; }
.flexishop-coupon-form > div { display:flex; gap:.35rem; }
.flexishop-coupon-form input { min-width:0; flex:1; padding:.35rem .45rem; border:1px solid var(--fs-border); border-radius:3px; font:inherit; text-transform:uppercase; }
.flexishop-coupon-message { margin-top:.35rem; color:#24833b; }
.flexishop-btn--checkout { width:100%; margin-top:.8rem; min-height:38px; }
.flexishop-cart-note { margin-top:.45rem; color:var(--fs-muted); font-size:.95rem; line-height:1.35; }
.flexishop-cart-empty { padding:1rem; border:1px solid var(--fs-border); background:#fff; border-radius:5px; }

@media (max-width: 760px) {
    .flexishop-cart-layout { grid-template-columns: 1fr; }
    .flexishop-cart-item { grid-template-columns: 72px minmax(0,1fr); }
    .flexishop-cart-item__image { width:72px; }
    .flexishop-cart-item__actions { grid-column:1 / -1; min-width:0; }
}

.flexishop-bundle-home{margin:0 0 1.5rem;padding:1.2rem;border:1px solid #e5e7eb;border-radius:.45rem;background:#fff}.flexishop-bundle-home__title,.flexishop-bundle-hero h1{font-size:1.8rem!important;line-height:1.8rem!important;font-weight:600!important}.flexishop-bundle-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;margin-top:1rem}.flexishop-bundle-rule-card{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border:1px solid #dfe4ea;border-radius:.45rem;text-decoration:none!important;color:inherit!important}.flexishop-bundle-rule-card em,.flexishop-bundle-shipping{font-style:normal;color:#218838;font-weight:600}.flexishop-bundle-hero__price{font-size:1.4rem;font-weight:700}.flexishop-bundle-progress{position:sticky;top:0;z-index:5;background:#fff;border:1px solid #ddd;padding:.7rem;margin-bottom:1rem}.flexishop-bundle-card{position:relative;cursor:pointer}.flexishop-bundle-checkbox{position:absolute;opacity:0}.flexishop-bundle-checkmark{display:none;position:absolute;z-index:3;top:.5rem;right:.5rem;width:2rem;height:2rem;border-radius:50%;background:#03b8cf;color:#fff;align-items:center;justify-content:center}.flexishop-bundle-card.is-selected{outline:3px solid #03b8cf;outline-offset:-3px}.flexishop-bundle-card.is-selected .flexishop-bundle-checkmark{display:flex}.flexishop-bundle-action{display:inline-block;margin-top:.5rem;color:#007c91;font-weight:600}.flexishop-bundle-sticky{position:sticky;bottom:0;z-index:6;display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:.9rem;background:#fff;border:1px solid #ddd;box-shadow:0 -3px 14px rgba(0,0,0,.08)}.flexishop-btn--bundle{background:#6b46c1!important;border-color:#6b46c1!important;color:#fff!important;text-decoration:none!important}.flexishop-cart-item--bundle{border-left:4px solid #6b46c1}.flexishop-bundle-badge{display:inline-block;padding:.15rem .45rem;border-radius:999px;background:#eee7ff;color:#5a36a5;font-weight:700}.flexishop-cart-bundle-products{margin:.4rem 0;padding-left:1.2rem}@media(max-width:700px){.flexishop-bundle-sticky{flex-direction:column;align-items:stretch}}

/* FlexiShop 0.6.4 — bundle builder usability and safety. */
.flexishop-bundle-edit-note {
    margin-top: .6rem;
    padding: .55rem .7rem;
    border: 1px solid #bfe4e8;
    border-radius: 4px;
    background: #f0fbfc;
}
.flexishop-bundle-tools {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: end;
    margin: 0 0 .9rem;
    padding: .7rem;
    border: 1px solid var(--fs-border);
    border-radius: 5px;
    background: #fff;
}
.flexishop-bundle-tools label {
    display: grid;
    gap: .18rem;
    min-width: 150px;
    color: var(--fs-muted);
    font-size: .95rem;
}
.flexishop-bundle-tools input,
.flexishop-bundle-tools select {
    min-height: 36px;
    padding: .35rem .45rem;
    border: 1px solid var(--fs-border);
    border-radius: 3px;
    background: #fff;
    font: inherit;
    color: inherit;
}
.flexishop-bundle-search { flex: 1 1 220px; }
.flexishop-bundle-clear { margin-left: auto; align-self: center; }
.flexishop-bundle-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 250px;
    gap: 1rem;
    align-items: start;
}
.flexishop-bundle-selection {
    position: sticky;
    top: 4.2rem;
    padding: .75rem;
    border: 1px solid var(--fs-border);
    border-radius: 5px;
    background: #fff;
    box-shadow: var(--fs-shadow);
}
.flexishop-bundle-selection h2 {
    margin: 0 0 .55rem;
    font-size: 1.2rem;
    font-weight: 600;
}
.flexishop-bundle-selection ol {
    display: grid;
    gap: .45rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.flexishop-bundle-selection li {
    display: flex;
    justify-content: space-between;
    gap: .55rem;
    align-items: start;
    padding-bottom: .35rem;
    border-bottom: 1px solid #eef0f1;
}
.flexishop-bundle-selection li .flexishop-link-button { margin-top: 0; flex: 0 0 auto; }
.flexishop-bundle-selection__empty { color: var(--fs-muted); }
.flexishop-bundle-card { cursor: default; }
.flexishop-bundle-card[hidden] { display: none !important; }
.flexishop-bundle-card.is-selected { outline: 3px solid #03b8cf; outline-offset: -3px; }
.flexishop-bundle-card.is-unavailable { opacity: .55; }
.flexishop-bundle-card__qty {
    position: absolute;
    z-index: 3;
    top: .45rem;
    right: .45rem;
    display: grid;
    place-items: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: #03b8cf;
    color: #fff;
    font-weight: 700;
}
.flexishop-bundle-card__actions {
    display: flex;
    gap: .5rem;
    align-items: center;
    margin-top: .55rem;
}
.flexishop-bundle-card__actions .flexishop-btn { width: auto; margin: 0; }
.flexishop-bundle-card__actions .flexishop-link-button { margin: 0; }
.flexishop-bundle-unavailable {
    display: inline-block;
    margin-top: .45rem;
    color: #9b3b3b;
    font-weight: 600;
}
.flexishop-btn--small {
    display: inline-block;
    width: auto;
    min-height: 30px;
    padding: .3rem .55rem;
    text-decoration: none !important;
}
@media (max-width: 900px) {
    .flexishop-bundle-layout { grid-template-columns: 1fr; }
    .flexishop-bundle-selection { position: static; order: -1; }
}
@media (max-width: 700px) {
    .flexishop-bundle-tools { align-items: stretch; }
    .flexishop-bundle-tools label { flex: 1 1 100%; }
    .flexishop-bundle-clear { margin-left: 0; align-self: auto; text-align: left; }
    .flexishop-bundle-sticky {
        position: fixed;
        left: .5rem;
        right: .5rem;
        bottom: .5rem;
        z-index: 1000;
        flex-direction: row;
        align-items: center;
        margin: 0;
        border-radius: 5px;
    }
    .flexishop-bundle-sticky .flexishop-btn--checkout { width: auto; margin: 0; }
    .flexishop-bundle-page { padding-bottom: 6.2rem; }
}

/* FlexiShop 0.6.5: выбор размера набора и баннер конструктора */
.flexishop-bundle-picker {
    position: relative;
    display: inline-block;
}
.flexishop-bundle-picker > summary {
    list-style: none;
    cursor: pointer;
    user-select: none;
}
.flexishop-bundle-picker > summary::-webkit-details-marker { display: none; }
.flexishop-bundle-picker__menu {
    position: absolute;
    z-index: 80;
    right: 0;
    top: calc(100% + .4rem);
    min-width: 260px;
    padding: .65rem;
    border: 1px solid var(--fs-border);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(0,0,0,.14);
}
.flexishop-bundle-picker__menu > strong {
    display: block;
    margin: 0 0 .45rem;
    font-size: 1rem;
}
.flexishop-bundle-picker__menu a {
    display: flex;
    flex-direction: column;
    gap: .08rem;
    padding: .5rem .55rem;
    border-radius: 4px;
    color: inherit !important;
    text-decoration: none !important;
}
.flexishop-bundle-picker__menu a:hover { background: #f5f2ff; }
.flexishop-bundle-picker__menu a span { font-weight: 600; }
.flexishop-bundle-picker__menu a small { color: var(--fs-muted); }
.flexishop-bundle-picker--product { margin-top: .55rem; }

.flexishop-category-bundle-banner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin: 0 0 1.2rem;
    padding: .9rem 1rem;
    border: 1px solid #ded5f4;
    border-left: 4px solid #6b46c1;
    border-radius: 5px;
    background: #faf8ff;
}
.flexishop-category-bundle-banner > div:first-child {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}
.flexishop-category-bundle-banner > div:first-child strong {
    font-size: 1.25rem;
    font-weight: 600;
}
.flexishop-category-bundle-banner__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .45rem;
}
.flexishop-category-bundle-banner__actions .flexishop-btn { width: auto; margin: 0; white-space: nowrap; }

@media (max-width: 700px) {
    .flexishop-category-bundle-banner { flex-direction: column; align-items: stretch; }
    .flexishop-category-bundle-banner__actions { justify-content: flex-start; }
    .flexishop-bundle-picker { display: block; width: 100%; }
    .flexishop-bundle-picker > summary { width: 100%; text-align: center; }
    .flexishop-bundle-picker__menu { position: static; min-width: 0; margin-top: .35rem; box-shadow: none; }
}
.flexishop-card__footer { flex-wrap: wrap; }
.flexishop-card__footer .flexishop-bundle-picker { margin-left: auto; }
@media (max-width: 430px) { .flexishop-card__footer .flexishop-bundle-picker { margin-left: 0; } }

/* FlexiShop 0.7.0: единая корзина и динамическое ценообразование */
.flexishop-pricing-banner {
    display: flex;
    gap: 1rem;
    margin: 0 0 1.2rem;
    padding: .95rem 1rem;
    border: 1px solid #cfe7ec;
    border-left: 4px solid #03b8cf;
    border-radius: 5px;
    background: #f5fcfd;
}
.flexishop-pricing-banner > div {
    display: flex;
    flex-direction: column;
    gap: .18rem;
}
.flexishop-pricing-banner strong {
    font-size: 1.25rem;
    font-weight: 600;
}
.flexishop-pricing-banner span { color: inherit; }
.flexishop-pricing-banner small { color: var(--fs-muted); }
.flexishop-pricing-banner--home { margin-bottom: 1.5rem; }
.flexishop-tier-prices table thead th { font-weight: 600; }

/* FlexiShop 0.7.1: автоматический пересчёт количества в корзине */
.flexishop-cart-qty-form {
    flex-wrap: wrap;
}
.flexishop-cart-qty-button {
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--fs-border);
    border-radius: 4px;
    background: #fff;
    color: inherit;
    font: inherit;
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
}
.flexishop-cart-qty-button:hover:not(:disabled) { background: #f3f6f7; }
.flexishop-cart-qty-button:disabled { opacity: .4; cursor: default; }
.flexishop-cart-qty-form.is-updating input,
.flexishop-cart-qty-form.is-updating .flexishop-cart-qty-button { opacity: .72; }
.flexishop-cart-qty-status {
    flex-basis: 100%;
    min-height: 1.1em;
    margin-top: .1rem;
    color: var(--fs-muted);
    font-size: .82rem;
    line-height: 1.1;
}
.flexishop-cart-qty-status.is-error { color: #a52c2c; }
.flexishop-cart-summary[aria-busy="true"] { opacity: .78; }


/* FlexiShop 0.8.0 — checkout */
.flexishop-checkout-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:24px;align-items:start}
.flexishop-checkout-form{display:grid;gap:18px}
.flexishop-checkout-card,.flexishop-checkout-summary,.flexishop-checkout-success{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:22px;box-shadow:0 6px 24px rgba(15,23,42,.05)}
.flexishop-checkout-card h2,.flexishop-checkout-summary h2{font-size:1.35rem;margin:0 0 16px}
.flexishop-checkout-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.flexishop-checkout-fields label{display:grid;gap:7px;font-weight:600}
.flexishop-checkout-fields label.is-wide{grid-column:1/-1}
.flexishop-field-help{font-size:.78rem;font-weight:400;color:#66757d;line-height:1.35}
.flexishop-checkout-fields input,.flexishop-checkout-fields textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:11px 12px;font:inherit;background:#fff}
.flexishop-checkout-fields input:focus,.flexishop-checkout-fields textarea:focus{outline:2px solid rgba(6,182,212,.22);border-color:#06b6d4}
.flexishop-checkout-hint{font-size:.92rem;color:#64748b;margin:12px 0 0}
.flexishop-checkout-summary{position:sticky;top:18px}
.flexishop-checkout-items{display:grid;gap:10px;padding-bottom:15px;margin-bottom:10px;border-bottom:1px solid #e5e7eb}
.flexishop-checkout-item{display:flex;justify-content:space-between;gap:14px;align-items:start}
.flexishop-checkout-item span{min-width:0}.flexishop-checkout-item small{display:block;color:#64748b;margin-top:2px}
.flexishop-checkout-summary dl{margin:0}.flexishop-checkout-summary dl>div{display:flex;justify-content:space-between;gap:15px;padding:7px 0}.flexishop-checkout-summary .flexishop-cart-total{border-top:1px solid #e5e7eb;margin-top:8px;padding-top:14px}
.flexishop-checkout-back{display:inline-block;margin-top:14px}
.flexishop-checkout-success{max-width:720px;margin:30px auto;text-align:center}.flexishop-checkout-success__mark{width:62px;height:62px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:#dcfce7;color:#166534;font-size:2rem;font-weight:700}.flexishop-order-confirmation{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.flexishop-order-confirmation>div{background:#f8fafc;border-radius:12px;padding:14px}.flexishop-order-confirmation span{display:block;color:#64748b;font-size:.9rem}.flexishop-order-confirmation strong{display:block;margin-top:5px}
@media(max-width:850px){.flexishop-checkout-layout{grid-template-columns:1fr}.flexishop-checkout-summary{position:static;order:-1}.flexishop-checkout-fields{grid-template-columns:1fr}.flexishop-checkout-fields label.is-wide{grid-column:auto}}
@media(max-width:520px){.flexishop-order-confirmation{grid-template-columns:1fr}.flexishop-checkout-card,.flexishop-checkout-summary,.flexishop-checkout-success{padding:16px}}

/* FlexiShop 0.9.0 — доставка в ПВЗ */
.flexishop-delivery-provider{display:flex;flex-direction:column;gap:.25rem;padding:.85rem 1rem;margin-bottom:1rem;border:1px solid #dfe7ea;border-radius:.65rem;background:#f8fbfc}
.flexishop-delivery-provider strong{font-size:1.05rem}
.flexishop-delivery-provider span{color:#5f6b72;font-size:.94rem}
.flexishop-yandex-pvz{width:100%;min-height:500px;border:1px solid #d8e1e5;border-radius:.65rem;overflow:hidden;background:#f5f7f8}
.flexishop-delivery-status{margin-top:.8rem;padding:.65rem .8rem;border-radius:.5rem;background:#f3f6f7;color:#44515a}
.flexishop-delivery-status.is-success{background:#eef8f2;color:#24633c}
.flexishop-delivery-status.is-error,.flexishop-delivery-error{background:#fff2f2;color:#9a2e2e;border:1px solid #f0c6c6;padding:.75rem .85rem;border-radius:.5rem}
.flexishop-selected-pvz{display:flex;flex-direction:column;gap:.2rem;margin-top:.8rem;padding:.85rem 1rem;border:1px solid #cfe6d8;border-radius:.65rem;background:#f4fbf6}
.flexishop-selected-pvz[hidden]{display:none!important}
.flexishop-selected-pvz span{font-size:1rem}
.flexishop-selected-pvz small{color:#617067}
.flexishop-selected-pvz--success{max-width:680px;margin:1rem auto}
.flexishop-checkout-comment{display:flex;flex-direction:column;gap:.35rem;margin-top:1rem}
.flexishop-checkout-comment textarea{width:100%}
.flexishop-carrier-cost{margin-top:.65rem;padding-top:.65rem;border-top:1px solid #e6ebed;color:#59666c;font-size:.92rem}
@media (max-width:700px){.flexishop-yandex-pvz{min-height:520px}.flexishop-delivery-provider{padding:.7rem .8rem}}

.flexishop-yandex-pvz-wrap[hidden]{display:none!important}
.flexishop-change-pvz{align-self:flex-start;margin-top:.35rem}


/* FlexiShop 0.10.23 — карта ПВЗ Ozon */
.flexishop-ozon-pvz{display:grid;gap:.8rem}
.flexishop-ozon-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:end}
.flexishop-ozon-search label{display:grid;gap:.4rem;font-weight:600}
.flexishop-ozon-search input{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:11px 12px;font:inherit;background:#fff}
.flexishop-ozon-map{width:100%;height:500px;border:1px solid #d8e1e5;border-radius:.65rem;overflow:hidden;background:#eef2f3;z-index:1}
.flexishop-ozon-popup{display:grid;gap:.45rem;min-width:210px}
.flexishop-ozon-popup strong{font-size:1rem}
.flexishop-ozon-popup .flexishop-link-button{justify-self:start}
.flexishop-ozon-results{display:grid;gap:.55rem;margin-top:.2rem}
.flexishop-ozon-results__title{font-weight:600}
.flexishop-ozon-results__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.flexishop-ozon-result{display:grid;gap:.2rem;text-align:left;padding:.7rem .8rem;border:1px solid #dfe7ea;border-radius:.55rem;background:#fff;color:inherit;font:inherit;cursor:pointer}
.flexishop-ozon-result:hover{border-color:#8fc5d1;background:#f6fbfc}
.flexishop-ozon-result span{font-size:.9rem;color:#5f6b72}
.flexishop-btn--compact{width:auto;white-space:nowrap;padding:.72rem 1rem}
@media(max-width:700px){
    .flexishop-ozon-search{grid-template-columns:1fr}
    .flexishop-ozon-map{height:520px}
    .flexishop-ozon-results__list{grid-template-columns:1fr}
    .flexishop-btn--compact{width:100%}
}


/* FlexiShop 0.10.23 — подсказки адресов Ozon */
.flexishop-ozon-searchbox{position:relative;width:100%}
.flexishop-ozon-searchbox>input{width:100%}
.flexishop-ozon-suggestions{position:absolute;z-index:1200;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #d8e1e7;border-radius:.55rem;box-shadow:0 10px 28px rgba(0,0,0,.14);max-height:320px;overflow:auto}
.flexishop-ozon-suggestion{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:.12rem;padding:.65rem .75rem;border:0;border-bottom:1px solid #edf1f4;background:#fff;color:inherit;text-align:left;font:inherit;cursor:pointer}
.flexishop-ozon-suggestion:last-child{border-bottom:0}
.flexishop-ozon-suggestion:hover,.flexishop-ozon-suggestion:focus{background:#f4fafb;outline:none}
.flexishop-ozon-suggestion strong{font-size:.92rem;font-weight:600}
.flexishop-ozon-suggestion span{font-size:.8rem;color:#66757d}

/* FlexiShop 0.10.32 — правовая информация */
.flexishop-legal-links{max-width:1180px;margin:32px auto 0;padding:20px 16px;border-top:1px solid #e5e7eb;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px;font-size:.9rem}
.flexishop-legal-links a{text-decoration:none}
.flexishop-legal-links a:hover{text-decoration:underline}
.flexishop-legal-page{max-width:960px;margin:0 auto;padding:12px 16px 40px}
.flexishop-legal-document{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:26px;box-shadow:0 6px 24px rgba(15,23,42,.05)}
.flexishop-legal-document h1{margin-top:0}
.flexishop-legal-document h2{font-size:1.2rem;margin:1.6rem 0 .6rem}
.flexishop-legal-document p{line-height:1.65}
.flexishop-legal-version{color:#64748b;font-size:.9rem}
.flexishop-legal-requisites{display:grid;gap:0;margin:18px 0}
.flexishop-legal-requisites>div{display:grid;grid-template-columns:minmax(150px,.4fr) minmax(0,1fr);gap:14px;padding:10px 0;border-bottom:1px solid #edf0f2}
.flexishop-legal-requisites dt{font-weight:700}.flexishop-legal-requisites dd{margin:0;overflow-wrap:anywhere}
.flexishop-legal-warning{margin-top:18px;padding:14px 16px;border:1px solid #f0d798;border-radius:10px;background:#fff8e5}
.flexishop-legal-consents{display:grid;gap:12px}
.flexishop-legal-consents h2{margin-bottom:2px}
.flexishop-consent-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-weight:400;line-height:1.45}
.flexishop-consent-row input{width:18px;height:18px;margin-top:2px}
.flexishop-cookie-notice{position:fixed;right:24px;left:auto;bottom:64px;z-index:1600;width:min(520px,calc(100vw - 48px));max-height:calc(100vh - 120px);overflow:auto;margin:0;padding:16px 48px 16px 16px;background:#fff;border:1px solid #d8e1e7;border-radius:14px;box-shadow:0 14px 40px rgba(15,23,42,.18);display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.flexishop-cookie-notice[hidden]{display:none!important}
.flexishop-cookie-notice__text{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 8px;line-height:1.45}
.flexishop-cookie-notice span{color:#475569}
.flexishop-cookie-notice__close{position:absolute;top:8px;right:10px;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:#475569;font-size:26px;line-height:30px;cursor:pointer}
.flexishop-cookie-notice__close:hover,.flexishop-cookie-notice__close:focus{background:#eef2f5;color:#111827;outline:none}
@media(max-width:700px){.flexishop-legal-document{padding:18px}.flexishop-legal-requisites>div{grid-template-columns:1fr;gap:3px}.flexishop-cookie-notice{right:16px;bottom:calc(36px + env(safe-area-inset-bottom,0px));width:calc(100vw - 32px);max-height:calc(100vh - 96px)}.flexishop-cookie-notice .flexishop-btn--compact{width:100%}}
@media print{.flexishop-legal-links,.flexishop-cookie-notice{display:none!important}.flexishop-legal-page{max-width:none;padding:0}.flexishop-legal-document{border:0;box-shadow:none;padding:0}}


/* FlexiShop 0.10.34 — modal legal documents */
.flexishop-modal-open{overflow:hidden}
.flexishop-legal-modal{position:fixed;inset:0;z-index:2200;display:grid;place-items:center;padding:20px}
.flexishop-legal-modal[hidden]{display:none!important}
.flexishop-legal-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.52);backdrop-filter:blur(2px)}
.flexishop-legal-modal__dialog{position:relative;z-index:1;width:min(960px,calc(100vw - 32px));height:min(84vh,900px);background:#fff;border-radius:16px;box-shadow:0 22px 70px rgba(15,23,42,.3);overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.flexishop-legal-modal__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid #e5e7eb;background:#fff}
.flexishop-legal-modal__title{font-size:1.05rem;line-height:1.25;margin:0}
.flexishop-legal-modal__close{width:38px;height:38px;flex:0 0 38px;border:0;border-radius:50%;background:#eef2f5;color:#334155;font-size:28px;line-height:36px;cursor:pointer}
.flexishop-legal-modal__close:hover,.flexishop-legal-modal__close:focus{background:#e2e8f0;color:#0f172a;outline:none}
.flexishop-legal-modal__frame{width:100%;height:100%;border:0;background:#f8fafc}
.flexishop-legal-page--modal{max-width:none;padding:14px;background:#f8fafc;min-height:100vh}
.flexishop-legal-page--modal .flexishop-legal-document{max-width:900px;margin:0 auto;box-shadow:none}
@media(max-width:700px){.flexishop-legal-modal{padding:8px}.flexishop-legal-modal__dialog{width:calc(100vw - 16px);height:92vh;border-radius:12px}.flexishop-legal-modal__header{padding:10px 12px}.flexishop-legal-page--modal{padding:8px}}

/* FlexiShop 0.10.39 — checkout + T-Bank */
.flexishop-payment-card{display:grid;gap:12px}
.flexishop-payment-card h2{margin-bottom:0}
.flexishop-payment-options{display:grid;gap:10px}
.flexishop-payment-option{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:14px 15px;border:1px solid #dbe3e8;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.flexishop-payment-option:hover{border-color:#8fc5d1;background:#f8fcfd}
.flexishop-payment-option.is-selected{border-color:#1da6b7;box-shadow:0 0 0 2px rgba(29,166,183,.1);background:#f5fcfd}
.flexishop-payment-option input{width:19px;height:19px;margin-top:2px}
.flexishop-payment-option__body{display:grid;gap:4px}
.flexishop-payment-option__body strong{font-size:1rem}
.flexishop-payment-option__body strong em{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:999px;background:#e8f8f2;color:#18734d;font-size:.72rem;font-style:normal;font-weight:700;vertical-align:middle}
.flexishop-payment-option__body small{color:#64748b;line-height:1.4}
.flexishop-payment-offline{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #dbe3e8;border-radius:10px;background:#f8fafc}
.flexishop-payment-offline span{color:#64748b;font-size:.92rem}
.flexishop-btn--checkout.is-submitting{position:relative;opacity:.88;cursor:wait}
.flexishop-btn--checkout.is-submitting::before{content:"";display:inline-block;width:15px;height:15px;margin-right:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:flexishop-spin .7s linear infinite}
@keyframes flexishop-spin{to{transform:rotate(360deg)}}
.flexishop-payment-result{max-width:680px;margin:20px auto;padding:18px;border:1px solid #dbe3e8;border-radius:14px;background:#f8fafc;text-align:left}
.flexishop-payment-result.is-paid{border-color:#b9dfc7;background:#f2fbf5}
.flexishop-payment-result.is-failed{border-color:#efc4c4;background:#fff7f7}
.flexishop-payment-result__head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.flexishop-payment-result__head h2{margin:2px 0 0;font-size:1.25rem}
.flexishop-payment-kicker{display:block;color:#64748b;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
.flexishop-payment-amount{font-size:1.25rem;white-space:nowrap}
.flexishop-payment-method-label{margin:10px 0 0;font-weight:700}
.flexishop-payment-note{margin:10px 0 0;line-height:1.5}
.flexishop-payment-live{display:block;margin-top:10px;color:#64748b}
.flexishop-sbp-payment{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:center;margin-top:16px}
.flexishop-sbp-qr{display:grid;place-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:12px}
.flexishop-sbp-qr img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain}
.flexishop-sbp-copy h3{margin:0 0 8px;font-size:1.15rem}
.flexishop-sbp-copy p{margin:0 0 14px;line-height:1.5}
.flexishop-sbp-pay-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin:0 0 14px}
.flexishop-sbp-mobile-first{display:none}
.flexishop-sbp-qr-mobile{display:none}
.flexishop-sbp-qr-mobile summary{cursor:pointer;font-weight:700;color:#0f172a}
.flexishop-sbp-qr-mobile .flexishop-sbp-qr{margin-top:12px}
.flexishop-sbp-qr-mobile p{margin-top:10px;color:#64748b;font-size:.92rem}
.flexishop-btn--secondary{background:#fff!important;color:#167987!important;border:1px solid #8fc5d1!important}
.flexishop-payment-retry{margin-top:14px}
.flexishop-success-items{max-width:680px;margin:20px auto;text-align:left;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff}
.flexishop-success-items h2{font-size:1.05rem;margin:0;padding:13px 15px;background:#f8fafc;border-bottom:1px solid #e5e7eb}
.flexishop-success-item{display:flex;justify-content:space-between;gap:16px;padding:11px 15px;border-bottom:1px solid #edf1f4}
.flexishop-success-item:last-child{border-bottom:0}
.flexishop-success-item span{min-width:0}.flexishop-success-item small{display:block;color:#64748b;margin-top:2px}
.flexishop-success-item strong{white-space:nowrap}
.flexishop-success-contact{max-width:680px;margin:14px auto;padding:10px 12px;border-radius:10px;background:#f8fafc;color:#475569;overflow-wrap:anywhere}
@media(max-width:620px){.flexishop-sbp-payment{grid-template-columns:1fr}.flexishop-sbp-qr--desktop{display:none}.flexishop-sbp-mobile-first{display:block}.flexishop-sbp-desktop-hint{display:none}.flexishop-sbp-pay-button{display:flex;width:100%;font-size:1.05rem}.flexishop-sbp-qr-mobile{display:block;margin-top:4px}.flexishop-sbp-qr{max-width:260px;margin:0 auto}.flexishop-payment-result__head{flex-direction:column}.flexishop-payment-amount{font-size:1.15rem}.flexishop-success-item{align-items:flex-start}}


/* FlexiShop 0.10.40 — возвращение к неоплаченному заказу */
.flexishop-payment-return { margin: 14px 0; padding: 14px 16px; border: 1px solid #dbe6ea; border-radius: 10px; background: #f7fbfc; text-align: left; }
.flexishop-payment-return > strong { display:block; margin-bottom:5px; font-size:15px; }
.flexishop-payment-return p { margin:0; color:#4b5b66; line-height:1.45; }
.flexishop-payment-return__actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:10px; }
.flexishop-payment-return__copied { color:#33725a; font-size:13px; }


/* FlexiShop 0.10.42 — payment method retry/fallback */
.flexishop-payment-retry-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}
.flexishop-payment-retry-actions .flexishop-payment-retry{margin-top:0}
@media(max-width:620px){.flexishop-payment-retry-actions{display:grid}.flexishop-payment-retry-actions .flexishop-btn{width:100%}}


/* FlexiShop 0.10.45 — mobile-first storefront UX. */
.flexishop-legal-footer{
    width:100vw;
    margin:32px calc(50% - 50vw) 0;
    background:#30353b;
    color:#fff;
}
.flexishop-legal-footer__inner{max-width:1180px;margin:0 auto;padding:22px 18px}
.flexishop-legal-footer__head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.flexishop-legal-footer__head strong{font-size:1rem}
.flexishop-legal-footer__head span{color:#cbd0d5;font-size:.88rem}
.flexishop-legal-footer .flexishop-legal-links{max-width:none;margin:0;padding:0;border:0;justify-content:flex-start;gap:8px 18px;font-size:.88rem}
.flexishop-legal-footer .flexishop-legal-links a{color:#f4f6f8!important}
.flexishop-legal-footer__site-link{display:inline-block;margin-top:14px;color:#bfeaf0!important;font-size:.86rem;text-decoration:none!important}
.flexishop-legal-footer__site-link:hover{text-decoration:underline!important}
.flexishop-checkout-steps{display:none}

@media(max-width:700px){
    .container-header .grid-child:first-child{padding:8px 14px!important;min-height:0!important}
    .container-header .navbar-brand{min-height:0!important;margin:0!important;padding:0!important}
    .container-header .navbar-brand img{display:block!important;width:auto!important;max-width:84vw!important;max-height:48px!important;object-fit:contain!important}
    .container-header .navbar-brand a{line-height:1!important}
    .mod-breadcrumbs,.breadcrumb{display:none!important}

    .flexishop{font-size:1rem!important;line-height:1.38rem!important}
    .flexishop__header{margin-bottom:.6rem}
    .flexishop .flexishop__title,
    .flexishop .flexishop-product__title,
    .flexishop .flexishop-section__title,
    .flexishop .flexishop-page-title{font-size:1.45rem!important;line-height:1.25!important}

    .flexishop-product-grid{gap:.58rem}
    .flexishop-card{border-radius:10px}
    .flexishop-card__image-link{padding:.28rem .28rem 0}
    .flexishop-card__body{padding:.48rem .5rem .55rem!important}
    .flexishop .flexishop-card__title,
    .flexishop .flexishop-card--compact .flexishop-card__title{
        display:-webkit-box;
        min-height:3.55rem;
        margin:0 0 .32rem;
        overflow:hidden;
        font-size:1.03rem!important;
        line-height:1.18rem!important;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:3;
    }
    .flexishop-card__text{display:none!important}
    .flexishop-card__footer{display:block!important}
    .flexishop .flexishop-price strong{font-size:1.12rem!important;line-height:1.3!important}
    .flexishop .flexishop-price__old{font-size:.9rem!important;line-height:1.2!important}
    .flexishop-card__footer .flexishop-btn{width:100%;min-height:44px;margin-top:.45rem;padding:.55rem .45rem;font-size:.9rem;border-radius:7px}
    .flexishop-btn{min-height:44px;padding:.55rem .75rem;font-size:.92rem;border-radius:7px}
    .flexishop-btn--buy,.flexishop-btn--checkout{min-height:48px;font-size:1rem}

    .flexishop-pricing-banner{padding:.7rem .75rem!important;border-radius:10px}
    .flexishop-pricing-banner strong{font-size:.98rem}
    .flexishop-pricing-banner span,.flexishop-pricing-banner small{font-size:.86rem;line-height:1.35}

    .flexishop-checkout-steps{
        display:flex;
        align-items:center;
        gap:6px;
        margin:0 0 14px;
        padding:0 2px;
        color:#7a8187;
        font-size:.77rem;
        line-height:1.1;
    }
    .flexishop-checkout-steps span{display:flex;align-items:center;gap:4px;white-space:nowrap}
    .flexishop-checkout-steps span:not(:last-child)::after{content:'›';margin-left:3px;color:#b4b8bc;font-size:1rem}
    .flexishop-checkout-steps b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#e8ecef;color:#626a70;font-size:.72rem}
    .flexishop-checkout-steps .is-active{color:#111827;font-weight:700}
    .flexishop-checkout-steps .is-active b{background:#08bfd4;color:#fff}

    .flexishop-cart-nudge{padding:.65rem .72rem;border-radius:9px;font-size:.92rem;line-height:1.35}
    .flexishop-cart-item{grid-template-columns:78px minmax(0,1fr)!important;gap:.6rem;padding:.65rem;border-radius:10px}
    .flexishop-cart-item__image{width:78px!important}
    .flexishop-cart-item h2{font-size:1rem;line-height:1.22}
    .flexishop-cart-item__meta{font-size:.82rem;line-height:1.3}
    .flexishop-cart-item__actions{display:flex;align-items:center;justify-content:space-between;gap:.7rem}
    .flexishop-cart-qty-button,.flexishop-cart-qty-form input{min-height:44px!important}
    .flexishop-cart-qty-button{min-width:44px}
    .flexishop-cart-qty-form input{width:54px;text-align:center}
    .flexishop-link-button{min-height:36px;padding:.35rem .2rem}
    .flexishop-cart-summary{padding:.75rem;border-radius:10px}
    .flexishop-cart-summary h2{font-size:1.2rem}
    .flexishop-cart-summary dl>div{padding:.42rem 0;font-size:.94rem;line-height:1.25}
    .flexishop-cart-total{font-size:1.08rem!important}
    .flexishop-coupon-form>div{gap:.45rem}
    .flexishop-coupon-form input{min-height:46px;font-size:1rem}
    .flexishop-cart-note{margin-top:.55rem;font-size:.86rem;line-height:1.35}

    .flexishop-checkout-card,.flexishop-checkout-summary,.flexishop-checkout-success{border-radius:12px!important}
    .flexishop-checkout-card h2,.flexishop-checkout-summary h2{font-size:1.2rem!important}
    .flexishop-checkout-hint{font-size:.84rem!important;line-height:1.35!important}
    .flexishop-payment-option{padding:12px;border-radius:10px}

    .flexishop-legal-footer{margin-top:24px;background:#30353b}
    .flexishop-legal-footer__inner{padding:20px 18px 24px}
    .flexishop-legal-footer__head{display:block;margin-bottom:14px}
    .flexishop-legal-footer__head strong{display:block;font-size:1rem}
    .flexishop-legal-footer__head span{display:block;margin-top:2px;font-size:.8rem}
    .flexishop-legal-footer .flexishop-legal-links{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid rgba(255,255,255,.12)}
    .flexishop-legal-footer .flexishop-legal-links a{display:flex;align-items:center;min-height:44px;padding:7px 8px 7px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:.82rem;line-height:1.25}
    .flexishop-legal-footer__site-link{min-height:44px;display:flex;align-items:center;margin-top:8px;font-size:.82rem}

    .flexishop-mobile-cart-float{
        position:fixed;
        z-index:1510;
        left:10px;
        right:10px;
        bottom:calc(70px + env(safe-area-inset-bottom,0px));
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        gap:10px;
        align-items:center;
        padding:10px 10px 10px 13px;
        border-radius:14px;
        background:#20252b;
        color:#fff;
        box-shadow:0 12px 34px rgba(0,0,0,.28);
        opacity:0;
        transform:translateY(18px);
        pointer-events:none;
        transition:opacity .18s ease,transform .18s ease;
    }
    .flexishop-mobile-cart-float[hidden]{display:none!important}
    .flexishop-mobile-cart-float.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}
    .flexishop-mobile-cart-float__copy{min-width:0;display:flex;flex-direction:column;gap:2px}
    .flexishop-mobile-cart-float__copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem}
    .flexishop-mobile-cart-float__copy span{color:#c9d0d5;font-size:.8rem}
    .flexishop-mobile-cart-float__button{display:flex;align-items:center;justify-content:center;min-height:42px;padding:0 15px;border-radius:9px;background:#08bfd4;color:#fff!important;font-size:.88rem;font-weight:800;text-decoration:none!important;white-space:nowrap}

    .flexishop-cart-toast{left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom,0px));max-width:none}
    .flexishop-cookie-notice{bottom:calc(82px + env(safe-area-inset-bottom,0px))!important}
}

@media(max-width:390px){
    .flexishop .flexishop-card__title,.flexishop .flexishop-card--compact .flexishop-card__title{font-size:.98rem!important;line-height:1.12rem!important;min-height:3.36rem}
    .flexishop-card__body{padding:.42rem .44rem .5rem!important}
    .flexishop-card__footer .flexishop-btn{font-size:.86rem}
    .flexishop-checkout-steps{font-size:.72rem;gap:4px}
}


@media(max-width:700px){
    .container-header .navbar-brand .site-title,
    .container-header .navbar-brand .navbar-brand-title{font-size:1.45rem!important;line-height:1.1!important}
}

/* When JavaScript puts FlexiShop legal links into the Joomla footer, it becomes
   one footer instead of two stacked full-width blocks. */
.container-footer.flexishop-footer-merged{
    background:#20252b!important;
    color:#fff!important;
}
.container-footer.flexishop-footer-merged .flexishop-legal-footer{
    width:100%;
    max-width:none;
    margin:0;
    background:transparent;
    color:inherit;
}
.container-footer.flexishop-footer-merged .flexishop-legal-footer__inner{
    width:100%;
    max-width:1180px;
    margin:0 auto;
}
.container-footer.flexishop-footer-merged .flexishop-legal-footer + *{
    margin-top:0;
}

@media(max-width:700px){
    /* Hard guard against any desktop-width child stretching the phone layout. */
    html,body{max-width:100%!important;overflow-x:hidden!important}
    .site-grid,.grid-child,.container-component,main,.flexishop,
    .flexishop-section,.flexishop-product-grid,.flexishop-card,
    .flexishop-cart-layout,.flexishop-cart-items,.flexishop-cart-summary{
        min-width:0!important;
        max-width:100%!important;
    }
    .site-grid,.container-component,main,.flexishop{width:100%!important}
    .flexishop{overflow-x:clip}
    .flexishop-product-grid{width:100%!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .flexishop-card,.flexishop-card__image-link,.flexishop-card__body{width:100%;min-width:0;max-width:100%}
    .flexishop-card img,.flexishop img{max-width:100%;height:auto}

    body{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
    body.flexishop-has-cart-float{padding-bottom:calc(154px + env(safe-area-inset-bottom,0px))}
    .flexishop-nav-badge{
        position:absolute;
        display:grid;
        place-items:center;
        min-width:22px;
        height:22px;
        padding:0 6px;
        border:2px solid #fff;
        border-radius:999px;
        background:#ef3d46;
        color:#fff;
        font-size:.72rem;
        font-weight:800;
        line-height:1;
    }
    .flexishop-nav-badge[hidden]{display:none!important}

    /* Persistent cart panel: once the cart contains an item it remains visible. */
    .flexishop-mobile-cart-float{
        left:10px;
        right:10px;
        bottom:calc(86px + env(safe-area-inset-bottom,0px));
        min-height:58px;
        padding:9px 9px 9px 13px;
        border-radius:14px;
        background:#20252b;
        box-shadow:0 10px 30px rgba(0,0,0,.28);
    }
    .flexishop-mobile-cart-float.is-persistent{opacity:1;transform:none;pointer-events:auto}
    .flexishop-mobile-cart-float__copy strong{font-size:.95rem}
    .flexishop-mobile-cart-float__copy span{font-size:.82rem}
    .flexishop-mobile-cart-float__button{min-height:44px;padding:0 16px;font-size:.9rem}

    /* One footer: legal links are inserted into the site's own footer. */
    .container-footer.flexishop-footer-merged{padding-top:0!important}
    .container-footer.flexishop-footer-merged .flexishop-legal-footer{margin:0!important;background:transparent!important}
    .container-footer.flexishop-footer-merged .flexishop-legal-footer__inner{padding:20px 18px 12px}
    .container-footer.flexishop-footer-merged .flexishop-legal-footer__head{margin-bottom:12px}
    .container-footer.flexishop-footer-merged .flexishop-legal-footer .flexishop-legal-links{
        grid-template-columns:1fr 1fr;
        border-top:1px solid rgba(255,255,255,.13);
    }
    .container-footer.flexishop-footer-merged .flexishop-legal-footer .flexishop-legal-links a{
        color:#fff!important;
        border-bottom:1px solid rgba(255,255,255,.10);
    }
    .container-footer.flexishop-footer-merged .flexishop-legal-footer__site-link{color:#9eeaf2!important}
    .flexishop-cart-toast{bottom:calc(92px + env(safe-area-inset-bottom,0px))}
    .flexishop-cookie-notice{bottom:calc(92px + env(safe-area-inset-bottom,0px))!important}
}





/* 0.10.46 fallback before/without footer relocation: never let the legal block widen the viewport. */
.flexishop-legal-footer{width:100%;margin-left:0;margin-right:0}
.container-footer.flexishop-footer-merged > .flexishop-legal-footer{grid-column:1/-1}


/* FlexiShop 0.10.47 — mobile header/footer polish and scalable category navigation. */
@media(max-width:700px){
    /* Keep the Joomla brand on one compact line. Real-phone testing showed the
       title being pushed to the far edge, leaving a stray "N" visible. */
    .container-header .grid-child:first-child{
        width:100%!important;
        max-width:100%!important;
        padding:7px 14px!important;
        overflow:hidden!important;
    }
    .container-header .navbar-brand{
        display:flex!important;
        align-items:center!important;
        justify-content:flex-start!important;
        gap:10px!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        overflow:hidden!important;
    }
    .container-header .navbar-brand > *{min-width:0!important}
    .container-header .navbar-brand a{flex:0 0 auto!important;max-width:64px!important;overflow:hidden!important}
    .container-header .navbar-brand img{
        width:auto!important;
        max-width:58px!important;
        max-height:46px!important;
        object-fit:contain!important;
    }
    .container-header .navbar-brand .site-title,
    .container-header .navbar-brand .navbar-brand-title,
    .container-header .navbar-brand .site-description{
        display:block!important;
        flex:1 1 auto!important;
        min-width:0!important;
        max-width:calc(100vw - 100px)!important;
        margin:0!important;
        overflow:hidden!important;
        color:#30353b!important;
        font-size:1.18rem!important;
        font-weight:700!important;
        line-height:1.1!important;
        text-overflow:ellipsis!important;
        white-space:nowrap!important;
    }

    /* Make the merged legal/copyright footer much shorter on phones. */
    .container-footer.flexishop-footer-merged .flexishop-legal-footer__inner{
        padding:13px 16px 7px!important;
    }
    .container-footer.flexishop-footer-merged .flexishop-legal-footer__head{
        display:flex!important;
        align-items:baseline!important;
        gap:7px!important;
        margin:0 0 8px!important;
    }
    .container-footer.flexishop-footer-merged .flexishop-legal-footer__head strong{font-size:.9rem!important}
    .container-footer.flexishop-footer-merged .flexishop-legal-footer__head span{margin:0!important;font-size:.72rem!important}
    .container-footer.flexishop-footer-merged .flexishop-legal-footer .flexishop-legal-links{
        display:grid!important;
        grid-template-columns:1fr 1fr!important;
        gap:0 12px!important;
        border-top:1px solid rgba(255,255,255,.12)!important;
    }
    .container-footer.flexishop-footer-merged .flexishop-legal-footer .flexishop-legal-links a{
        min-height:34px!important;
        padding:5px 0!important;
        font-size:.74rem!important;
        line-height:1.18!important;
    }
    .container-footer.flexishop-footer-merged .flexishop-legal-footer__site-link{
        min-height:34px!important;
        margin-top:4px!important;
        font-size:.76rem!important;
    }
    .container-footer.flexishop-footer-merged > .grid-child{
        min-height:0!important;
        padding-top:2px!important;
        padding-bottom:12px!important;
    }
    .container-footer.flexishop-footer-merged .mod-footer,
    .container-footer.flexishop-footer-merged .mod-footer p{
        margin:0!important;
        font-size:.76rem!important;
        line-height:1.25!important;
        white-space:normal!important;
    }
}

@media(max-width:390px){
    .container-header .navbar-brand .site-title,
    .container-header .navbar-brand .navbar-brand-title,
    .container-header .navbar-brand .site-description{font-size:1.08rem!important}
}

/* FlexiShop 0.10.49 — cleanly replace Joomla brand contents with the shop brand on FlexiShop pages. */
.container-header .navbar-brand.flexishop-store-brand{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    min-width:0!important;
    overflow:hidden!important;
}
.container-header .navbar-brand.flexishop-store-brand > :not(.flexishop-store-brand__title){
    display:none!important;
}
.container-header .navbar-brand.flexishop-store-brand .flexishop-store-brand__title{
    display:inline-flex!important;
    align-items:center!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    color:#30353b!important;
    font-size:1.75rem!important;
    font-weight:800!important;
    line-height:1.1!important;
    letter-spacing:-.025em!important;
    text-decoration:none!important;
    white-space:nowrap!important;
}
.container-header .navbar-brand.flexishop-store-brand .flexishop-store-brand__title:hover{
    color:#159daf!important;
    text-decoration:none!important;
}
@media(max-width:700px){
    .container-header .navbar-brand.flexishop-store-brand{
        width:100%!important;
        max-width:100%!important;
        gap:0!important;
    }
    .container-header .navbar-brand.flexishop-store-brand .flexishop-store-brand__title{
        flex:0 1 auto!important;
        max-width:100%!important;
        font-size:1.52rem!important;
        text-overflow:clip!important;
    }
}
@media(max-width:390px){
    .container-header .navbar-brand.flexishop-store-brand .flexishop-store-brand__title{
        font-size:1.4rem!important;
    }
}



/* FlexiShop 0.10.50 — editable content blocks and closed storefront. */
.flexishop-content-banner {
    margin: 0 0 1rem;
    padding: .85rem 1rem;
    border: 1px solid #cfe8eb;
    border-left: 5px solid var(--fs-accent);
    border-radius: 10px;
    background: #f3fbfc;
    box-shadow: 0 2px 10px rgba(20, 36, 48, .035);
}
.flexishop-content-banner > div { display: grid; gap: .28rem; }
.flexishop-content-banner strong { font-size: 1.05rem; line-height: 1.35; }
.flexishop-content-banner span { font-size: .96rem; line-height: 1.48; }
.flexishop-content-banner p { margin: 0 0 .35rem; }
.flexishop-content-banner p:last-child { margin-bottom: 0; }

.flexishop-closed-page { min-height: 56vh; display: grid; align-items: center; }
.flexishop-closed {
    width: min(720px, 100%);
    margin: 2.5rem auto;
    padding: clamp(1.5rem, 4vw, 3rem);
    text-align: center;
    border: 1px solid var(--fs-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 42px rgba(20, 36, 48, .08);
}
.flexishop-closed__mark {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin: 0 auto .85rem;
    border-radius: 20px;
    background: #31373d;
    color: #fff;
    font-weight: 800;
    font-size: 1.45rem;
    letter-spacing: .04em;
}
.flexishop-closed__eyebrow { margin-bottom: .25rem; color: var(--fs-accent-dark); font-weight: 800; }
.flexishop-closed h1 { margin: 0 0 .75rem; font-size: clamp(1.8rem, 5vw, 2.8rem); line-height: 1.12; }
.flexishop-closed__text { max-width: 580px; margin: 0 auto 1.25rem; color: var(--fs-muted); font-size: 1.05rem; line-height: 1.55; }
.flexishop-closed__text p:last-child { margin-bottom: 0; }
.flexishop-closed__button { min-height: 48px; padding: .8rem 1.2rem; font-size: 1rem !important; border-radius: 10px; }

.flexishop-recommendations { margin-top: 1.35rem; }

@media (max-width: 700px) {
    .flexishop-content-banner {
        margin-bottom: .85rem;
        padding: .75rem .8rem;
        border-radius: 12px;
    }
    .flexishop-content-banner strong { font-size: 1rem; }
    .flexishop-content-banner span { font-size: .92rem; }
    .flexishop-closed-page { min-height: 62vh; }
    .flexishop-closed { margin: 1rem auto; padding: 1.45rem 1rem; border-radius: 15px; }
    .flexishop-closed__mark { width: 62px; height: 62px; border-radius: 17px; font-size: 1.2rem; }
    .flexishop-closed h1 { font-size: 1.8rem; }
    .flexishop-closed__text { font-size: 1rem; }
    .flexishop-recommendations .flexishop-product-grid--related { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
}

/* FlexiShop 0.10.51 — final launch header fix: the shop owns the complete branding row. */
.container-header .flexishop-store-brand-row{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    min-width:0!important;
    overflow:hidden!important;
}
.container-header .flexishop-store-brand-row > img,
.container-header .flexishop-store-brand-row > picture,
.container-header .flexishop-store-brand-row .brand-logo,
.container-header .flexishop-store-brand-row [class*="site-logo"],
.container-header .flexishop-store-brand-row [class*="brand-logo"]{
    display:none!important;
}
.container-header .flexishop-store-brand-row::before,
.container-header .flexishop-store-brand-row::after,
.container-header .flexishop-store-brand::before,
.container-header .flexishop-store-brand::after{
    content:none!important;
    background:none!important;
}
.container-header .flexishop-store-brand-row,
.container-header .flexishop-store-brand{
    background:none!important;
    background-image:none!important;
}
@media(max-width:700px){
    .container-header .flexishop-store-brand-row{
        padding:8px 14px!important;
        min-height:58px!important;
    }
}


/* FlexiShop 0.10.52 — category navigation after adding Sets and Dragons. */



/* FlexiShop 0.10.53 — stable storefront routing and no Nikproject-brand flash. */
/* site.css is loaded only by FlexiShop, so the original Joomla branding can be
   concealed immediately, before DOMContentLoaded replaces it with FlexiWorld. */
.container-header .grid-child:first-child:not(.flexishop-store-brand-row){
    position:relative!important;
    min-height:48px;
}
.container-header .grid-child:first-child:not(.flexishop-store-brand-row) > *{
    visibility:hidden!important;
}
.container-header .grid-child:first-child:not(.flexishop-store-brand-row)::before{
    content:'FlexiWorld';
    display:flex;
    align-items:center;
    min-height:48px;
    color:#30353b;
    font-size:1.75rem;
    font-weight:800;
    line-height:1.1;
    letter-spacing:-.025em;
    white-space:nowrap;
}
@media(max-width:700px){
    .container-header .grid-child:first-child:not(.flexishop-store-brand-row)::before{
        min-height:42px;
        font-size:1.52rem;
    }
}
@media(max-width:390px){
    .container-header .grid-child:first-child:not(.flexishop-store-brand-row)::before{font-size:1.4rem}
}


.flexishop-checkout-validation{
    margin:.2rem 0 .75rem;
    padding:.82rem .95rem;
    border:1px solid #e8a7a7;
    border-left:5px solid #c74242;
    border-radius:9px;
    background:#fff3f3;
    color:#8b2929;
    font-size:.96rem;
    font-weight:700;
    line-height:1.4;
}
.flexishop-checkout-validation[hidden]{display:none!important}

@media(max-width:700px){

    .flexishop-checkout-validation{
        margin:.15rem 0 .7rem;
        padding:.82rem .85rem;
        font-size:.94rem;
    }
}

.flexishop-mobile-cart-float{display:none}
@media(max-width:700px){.flexishop-mobile-cart-float{display:grid}.flexishop-mobile-cart-float[hidden]{display:none!important}}

/* 0.10.56: navigation belongs to Joomla; typography belongs to the template. */
.flexishop.flexishop{
    font-family:inherit!important;
    font-size:inherit!important;
    line-height:inherit!important;
}
.flexishop .flexishop__lead,
.flexishop .flexishop-category,
.flexishop .flexishop-card__text,
.flexishop .flexishop-back,
.flexishop .flexishop-product__short,
.flexishop .flexishop-product__note,
.flexishop .flexishop-stock,
.flexishop .flexishop-specs,
.flexishop .flexishop-product__description,
.flexishop .flexishop-category-description,
.flexishop .flexishop-btn,
.flexishop .flexishop-checkout-hint,
.flexishop .flexishop-checkout-validation,
.flexishop .flexishop-field-help,
.flexishop .flexishop-cart-item__meta,
.flexishop .flexishop-cart-note,
.flexishop .flexishop-content-banner span,
.flexishop .flexishop-pricing-banner span{
    font-family:inherit!important;
    font-size:inherit!important;
    line-height:inherit!important;
}
.flexishop .flexishop__title,
.flexishop .flexishop-product__title,
.flexishop .flexishop-card__title,
.flexishop .flexishop-card--compact .flexishop-card__title,
.flexishop .flexishop-section__title,
.flexishop .flexishop-page-title{
    font-family:inherit!important;
    font-size:1.8rem!important;
    line-height:1.8rem!important;
}
.flexishop input,.flexishop textarea,.flexishop select{font-family:inherit;font-size:inherit}

/* user.css hides Joomla's submenu buttons. Enable the standard controls inside
   the shop so headings and arbitrary-depth menus work on touch and keyboards. */
.container-header .mod-menu__toggle-sub{display:inline-flex!important;min-width:44px;min-height:44px;justify-content:center}
.container-header .mod-menu li{position:relative}
.container-header .mod-menu li > .nav-header,
.container-header .mod-menu li > .separator{color:inherit;font:inherit}
.container-header .mod-menu.nav > li > .nav-header,
.container-header .mod-menu.nav > li > .separator{color:#fff;padding:.8rem 1.4rem;font-size:1.2rem}
.container-header .mod-menu .mod-menu__sub[aria-hidden="true"]{display:none!important}
.container-header .mod-menu .mod-menu__sub[aria-hidden="false"]{display:block!important}
@media(min-width:701px){
    .container-header .mod-menu.nav li:hover > ul,
    .container-header .mod-menu.nav li:focus-within > ul{display:block!important}
    .container-header .mod-menu.nav ul ul{top:0;left:100%}
}
.flexishop-mobile-native-menu{display:none}
@media(max-width:700px){
    body{padding-bottom:0}
    body.flexishop-has-mobile-menu{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
    body.flexishop-has-cart-float{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))}
    body.flexishop-has-mobile-menu.flexishop-has-cart-float{padding-bottom:calc(150px + env(safe-area-inset-bottom,0px))}
    .container-header .container-nav{overflow:visible}
    .container-header .mod-menu.nav{flex-direction:row!important;flex-wrap:wrap;align-items:center}
    .container-header .mod-menu.nav > li > a,
    .container-header .mod-menu.nav > li > .nav-header,
    .container-header .mod-menu.nav > li > .separator{padding:.6rem .7rem!important;font-size:1.2rem!important}
    .container-header .mod-menu.nav li ul{position:static;min-width:0;max-width:100%;width:100%;box-shadow:none;margin:0}
    .container-header .mod-menu.nav li:hover > ul{display:none!important}
    .container-header .mod-menu.nav li > .mod-menu__sub[aria-hidden="false"]{display:block!important}
    .flexishop .flexishop-card__title,
    .flexishop .flexishop-card--compact .flexishop-card__title{min-height:5.4rem;-webkit-line-clamp:3}
    .flexishop-mobile-native-menu{
        display:block;position:fixed;left:0;right:0;bottom:0;z-index:1490;
        padding:5px 8px calc(5px + env(safe-area-inset-bottom,0px));
        background:#fff;border-top:1px solid #d7dde1;box-shadow:0 -4px 18px rgba(0,0,0,.1);
    }
    .flexishop-mobile-native-menu .mod-menu{
        display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
        gap:6px;overflow-x:auto;margin:0!important;padding:0!important;list-style:none;
    }
    .flexishop-mobile-native-menu .mod-menu > li{flex:1 0 auto;min-width:0;display:flex;align-items:center}
    .flexishop-mobile-native-menu .mod-menu > li > a{
        display:flex;align-items:center;justify-content:center;gap:5px;
        min-height:54px;padding:7px 10px!important;font-size:inherit!important;
        color:#30353b!important;text-transform:none;font-weight:700;text-decoration:none;
    }
    .flexishop-mobile-native-menu .mod-menu > li.active > a{background:#e8fafd;color:#007f91!important;border-radius:8px}
    .flexishop-mobile-cart-float{bottom:calc(10px + env(safe-area-inset-bottom,0px))}
    body.flexishop-has-mobile-menu .flexishop-mobile-cart-float{bottom:calc(80px + env(safe-area-inset-bottom,0px))}
    .flexishop-cart-toast,.flexishop-cookie-notice{bottom:calc(12px + env(safe-area-inset-bottom,0px))!important}
    body.flexishop-has-mobile-menu .flexishop-cart-toast,
    body.flexishop-has-mobile-menu .flexishop-cookie-notice{bottom:calc(84px + env(safe-area-inset-bottom,0px))!important}
}
@media print{.flexishop-legal-footer,.flexishop-mobile-native-menu,.flexishop-mobile-cart-float{display:none!important}}

/* 0.10.57: one selected Joomla module on every shop page. */
.flexishop-store-menu{width:100%}
.container-header .container-nav.flexishop-store-menu-ready{padding-top:8px;padding-bottom:8px}
body:has([data-flexishop-store-menu]) .container-header .container-nav:not(.flexishop-store-menu-ready){visibility:hidden}
.flexishop-store-menu:not(.is-mounted){display:none}
.flexishop-store-menu.is-mounted{display:block}
.flexishop-store-menu.is-mounted:not(.container-header .flexishop-store-menu){width:min(1320px,calc(100% - 2rem));margin:0 auto;background:#343a40}
.flexishop-store-menu .mod-menu.nav{
    display:flex!important;flex-direction:row!important;flex-wrap:wrap;
    align-items:stretch!important;justify-content:center;margin:0!important;padding:0!important;
}
.flexishop-store-menu .mod-menu.nav > li{
    display:flex!important;align-items:center!important;position:relative;
    margin:0!important;padding:0!important;min-height:60px;
}
.flexishop-store-menu .mod-menu.nav > li > a,
.flexishop-store-menu .mod-menu.nav > li > .nav-header,
.flexishop-store-menu .mod-menu.nav > li > .mod-menu__heading,
.flexishop-store-menu .mod-menu.nav > li > .separator{
    display:flex!important;align-items:center!important;align-self:stretch;
    margin:0!important;padding:.8rem 1.4rem!important;min-height:60px;
    font-size:1.2rem!important;font-weight:600!important;line-height:1.25!important;
    color:#fff!important;text-transform:uppercase;text-decoration:none;
}
.flexishop-store-menu .mod-menu.nav > li > .mod-menu__toggle-sub{
    display:inline-flex!important;align-items:center;justify-content:center;
    align-self:center;height:60px;min-height:60px;min-width:40px;
    margin:0!important;padding:0 8px!important;color:#fff;line-height:1!important;
}
.flexishop-store-menu .mod-menu.nav > li > .mod-menu__toggle-sub > [aria-hidden="true"]{line-height:1}
.flexishop-store-menu .mod-menu.nav > li > ul{top:100%;margin-top:0!important}
@media(max-width:700px){
    .flexishop-store-menu .mod-menu.nav > li{min-height:48px;flex-wrap:wrap}
    .flexishop-store-menu .mod-menu.nav > li > a,
    .flexishop-store-menu .mod-menu.nav > li > .nav-header,
    .flexishop-store-menu .mod-menu.nav > li > .mod-menu__heading,
    .flexishop-store-menu .mod-menu.nav > li > .separator{min-height:48px;padding:.6rem .7rem!important}
    .flexishop-store-menu .mod-menu.nav > li > .mod-menu__toggle-sub{height:48px;min-height:48px}
    .flexishop-store-menu .mod-menu.nav > li > ul{flex-basis:100%}
}
@media(min-width:701px) and (max-width:1199px){
    .flexishop-store-menu .mod-menu.nav > li > a,
    .flexishop-store-menu .mod-menu.nav > li > .nav-header,
    .flexishop-store-menu .mod-menu.nav > li > .mod-menu__heading,
    .flexishop-store-menu .mod-menu.nav > li > .separator{padding-left:.6rem!important;padding-right:.6rem!important}
}

/* On touch screens, follow Joomla's native ARIA state even while :hover is sticky.
   No component attributes or script handlers control submenu visibility. */
@media(max-width:700px), (hover:none) and (pointer:coarse){
    .container-header .flexishop-store-menu .mod-menu .mod-menu__sub:not([aria-hidden]),
    .container-header .flexishop-store-menu .mod-menu .mod-menu__sub[aria-hidden="true"]{display:none!important}
    .container-header .flexishop-store-menu .mod-menu .mod-menu__sub[aria-hidden="false"]{display:block!important}
}

/* FlexiShop 0.10.67: match the default product module's artwork and columns.
 * Keep these rules scoped to related cards on product pages; category grids
 * and the main product gallery retain their own layout. */
.flexishop-product-page .flexishop-product-grid--related {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1rem;
}
.flexishop-product-page .flexishop-card--compact .flexishop-card__image-link {
    padding: .35rem .35rem 0;
}
.flexishop-product-page .flexishop-card--compact .flexishop-card__image {
    width: auto;
    max-width: min(100%, 300px);
    height: auto;
    max-height: none;
    object-fit: contain;
}
@media (max-width: 680px) {
    .flexishop-product-page .flexishop-product-grid--related {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 420px) {
    .flexishop-product-page .flexishop-product-grid--related {
        grid-template-columns: minmax(0, 1fr) !important;
    }
    .flexishop-product-page .flexishop-card--compact .flexishop-card__image {
        width: 100%;
        max-width: 100%;
    }
}

/* Product themes use the storefront's existing typography and native links. */
.flexishop .flexishop-tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
    font: inherit;
}
.flexishop .flexishop-tag-list li {
    display: flex;
    min-width: 0;
    max-width: 100%;
}
.flexishop .flexishop-tag-link {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-height: 44px;
    padding: .4rem .75rem;
    border: 1px solid var(--fs-border);
    border-radius: .4rem;
    background: #f4f5f6;
    color: inherit;
    font: inherit;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.flexishop .flexishop-tag-link:hover,
.flexishop .flexishop-tag-link:focus-visible {
    border-color: var(--fs-accent-dark);
    text-decoration: underline;
}
.flexishop .flexishop-tag-link:focus-visible {
    outline: 2px solid var(--fs-accent-dark);
    outline-offset: 2px;
}
.flexishop-tag-page .flexishop__title,
.flexishop-tag-page .flexishop-card__title {
    overflow-wrap: anywhere;
}
@media (max-width: 420px) {
    .flexishop-tag-page .flexishop-product-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}
