/* Global */
:root {
    --main-color: #DE131B;
    --main-text-color: #fff;
    --second-color: #333333;
    --light-bg: #f7f7f7;
    --second-text-color: #fff;
    --shop-ink: var(--second-color);
    --main-color-hover: #b81017;
    --main-color-soft: #fdeced;
    --main-color-contrast: #fff;
    --shop-red: var(--main-color);
    --shop-olive: var(--main-color);
    --page-section-space: clamp(36px, 5vw, 72px);
    --shop-surface: #fff;
    --shop-shadow-pop: 0 18px 36px rgb(0 0 0 / 10%);
    /* Konverzné tlačidlá košíka a pokladne (pokračovať, ďalej, zaplatiť) sú zelené – poznámka klienta 22. 10. 2026. */
    --conversion-color: #15803d;
    --conversion-color-hover: #116b32;
    --conversion-text-color: #fff;
}
body .page-content { min-width: 0; }
body .page-section { min-width: 0; }
body .page-container { min-width: 0; }body :focus-visible { outline-color: var(--main-color); }
body :is(.btn-primary, .btn-success, .btn-danger) {
    --bs-btn-bg: var(--main-color);
    --bs-btn-border-color: var(--main-color);
    --bs-btn-color: var(--main-color-contrast);
    --bs-btn-hover-bg: var(--main-color-hover);
    --bs-btn-hover-border-color: var(--main-color-hover);
    --bs-btn-hover-color: var(--main-color-contrast);
    --bs-btn-active-bg: var(--main-color-hover);
    --bs-btn-active-border-color: var(--main-color-hover);
}

/* Global - Container */
body .container { max-width: 1320px; }

/* Global - Section headings */
body .section {
    min-width: 0;
    padding-block: var(--section-padding, var(--page-section-space));
}
body .section .heading-box:not(.heading-box-inline) {
    min-width: 0;
    margin-bottom: var(--heading-box-space, 24px);
}
body .section .heading-box .heading {
    margin: 0;
    font-family: var(--app-font);
    font-size: 45px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -.035em;
    overflow-wrap: anywhere;
}
body .section .heading-box .heading-text {
    margin: 16px 0 0;
    max-width: 680px;
    color: var(--shop-muted);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.65;
}
body .section .heading-box .heading-text p { margin: 0; font-size: inherit; line-height: inherit; }
body .section .heading-box .heading-content { min-width: 0; }
body .page-content.section { padding: 0; }
@media (max-width: 639px) {
    body .section { --heading-box-space: 20px; }
}

/* Header */
body .main-header :is(.main-nav a, .mega-menu a, .mobile-panel a, .category-menu > summary):not(.t-btn):hover,
body .main-header .category-menu[open] > summary { color: var(--main-color); text-decoration: none; }
body .main-header .header-actions { align-items: center; gap: 8px; }
body .main-header .header-actions :is(.search-toggle, .language > summary, .mobile-menu > summary, .cart) {
    height: 42px;
    min-height: 42px;
    border: 1px solid #e9e9e9;
    border-radius: 6px;
    background: #fafafa;
    color: var(--second-color);
    box-shadow: none;
    transition: background .2s ease, border-color .2s ease;
}
body .main-header .header-actions :is(.search-toggle, .language > summary, .mobile-menu > summary, .cart):hover { background: #f2f2f2; border-color: #dcdcdc; text-decoration: none; }
body .main-header .header-actions :is(.search-toggle, .language > summary, .mobile-menu > summary, .cart):focus-visible { outline: 2px solid #999; outline-offset: 2px; }
body .main-header .header-actions .search-toggle .icon { width: 17px; height: 17px; }
body .main-header .cart { padding: 8px 12px; gap: 7px; }
body .main-header .cart-count { margin: 0; min-width: 18px; line-height: 18px; }
@media (max-width: 767px) {
    body .main-header .header-actions { gap: 5px; }
    body .main-header .header-actions :is(.search-toggle, .language > summary, .mobile-menu > summary, .cart) { height: 38px; min-height: 38px; }
    body .main-header .cart { padding: 6px 8px; gap: 4px; }
}
/* Hlavička podľa poznámky klienta 28. 10. 2026: menu veľkými písmenami, vyhľadávacie pole ako hlavný prvok. */
body .main-header :is(.main-nav > a, .category-menu > summary) { font-size: 13px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
/* „Kategorie“ je tučnejšie ako ostatné položky (poznámka klienta 4. 11. 2026). */
body .main-header .category-menu > summary { font-weight: 800; }
body .main-header .search-field-text { display: none; }
@media (min-width: 1200px) and (max-width: 1399px) {
    body .main-header .main-nav { gap: 16px; }
    body .main-header .logo img { width: 160px; }
}
/* Menu má vždy svoju prirodzenú šírku vedľa loga; zvyšok riadku vyplní vyhľadávanie, ktoré sa pri nedostatku miesta zúži (nie menu). */
@media (min-width: 1200px) {
    body .main-header .header-inner { flex-wrap: nowrap; gap: 24px; }
    body .main-header .main-nav { flex: 0 0 auto; width: auto; justify-content: flex-start; }
    body .main-header .header-actions { flex: 1 1 auto; width: auto; min-width: 0; justify-content: flex-end; }
    body .main-header .header-actions button.search-field { flex: 0 1 300px; justify-content: flex-start; gap: 10px; width: auto; min-width: 150px; padding: 0 16px; border-color: #d6d6d6; background: #fff; color: #777; }
    body .main-header .header-actions button.search-field:hover { border-color: var(--second-color); background: #fff; }
    body .main-header .header-actions button.search-field .icon { flex: none; color: var(--second-color); }
    body .main-header .search-field-text { display: block; overflow: hidden; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
    /* Na stránke výsledkov pole ukazuje hľadaný výraz (pripomienka klienta 30. 10. 2026). */
    body .main-header .search-field-text.is-query { color: var(--shop-ink); font-size: 14px; letter-spacing: 0; text-transform: none; }
}
@media (max-width: 359px) {
    body .main-header .header-actions :is(.search-toggle, .language > summary, .mobile-menu > summary) { width: 32px; min-width: 32px; }
    body .main-header .cart { padding-inline: 6px; }
}

/* Global - Product items and shared components */
body .product-item { border: 1px solid #f0f0f0; border-radius: 5px; overflow: hidden; }
body .product-item .product-image { border: 0; }
body .product-item .product-info { padding: 12px; }
body .product-item .title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; text-overflow: ellipsis; font-size: 14px; font-weight: 500; }
@media (max-width: 639px) { body .product-item .title { font-size: 13px; } }

body .product-image { background: #f3f2ed; border-color: transparent; }
body .heading-box-inline .heading { margin-bottom: 20px; }
@media (max-width: 767px) {
    body :is(.container, .container-fluid, .content-container, .page-container) { width: 100%; max-width: 100%; padding-left: 25px; padding-right: 25px; }
}
@media (max-width: 359px) { body .main-header .logo img { width: 115px; } }

/* Global - Cookie consent */
body .cookie-consent[hidden], body .cookie-consent__settings[hidden], body .cookie-consent__actions [hidden] { display: none !important; }
body .cookie-consent { position: fixed; inset: auto 0 0; z-index: 1090; background: #fffffff7; box-shadow: 0 -5px 25px #0002; padding: 22px 25px; }
body .cookie-consent__panel { max-width: 1320px; margin: auto; display: flex; align-items: center; gap: 32px; }
body .cookie-consent__copy { flex: 1; }
body .cookie-consent__copy h2 { font-size: 17px; font-weight: 600; margin: 0 0 6px; }
body .cookie-consent__copy p { font-size: 14px; margin: 0; line-height: 1.5; }
body .cookie-consent__actions { display: flex; gap: 8px; flex-wrap: wrap; }
body .cookie-consent__actions .btn { font-size: 13px; padding: 8px 13px; border-radius: 3px; }
body .cookie-consent__settings { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
body .cookie-consent__option { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
body .cookie-consent__option small { display: block; color: var(--shop-muted); font-size: 12px; }
@media (max-width: 767px) { body .cookie-consent__panel { flex-direction: column; align-items: flex-start; gap: 16px; } }

/* Global - Buttons */
body .t-btn { --btn-bg: var(--main-color); --btn-color: var(--main-text-color); display: inline-flex; align-items: center; justify-content: center; gap: .7em; padding: .75em 1.5em; border: 1px solid var(--btn-bg); border-radius: 5px; background: var(--btn-bg); color: var(--btn-color); font-family: var(--app-font); font-size: 14px; font-weight: 600; line-height: 1.4; text-decoration: none; cursor: pointer; transition: filter .2s ease, box-shadow .2s ease; }
body .t-btn.theme { --btn-bg: var(--main-color); --btn-color: var(--main-text-color); }
body .t-btn.theme-2 { --btn-bg: var(--second-color); --btn-color: var(--second-text-color); }
body .t-btn.conversion { --btn-bg: var(--conversion-color); --btn-color: var(--conversion-text-color); }
body .t-btn.white { --btn-bg: #fff; --btn-color: var(--second-color); }
body .t-btn.dark { --btn-bg: #181818; --btn-color: #fff; }
body .t-btn.sm { font-size: 12px; }
body .t-btn.lg { font-size: 16px; }
body .t-btn:hover { color: var(--btn-color); text-decoration: none; filter: brightness(.93); }
body .t-btn:focus-visible { outline: 2px solid var(--main-color); outline-offset: 3px; }
body .t-btn:disabled, body .t-btn[aria-disabled="true"] { opacity: .5; cursor: default; }

/* Global - Product item media and price */
body .product-item .product-image, body .product-item .product-image img { border-radius: 0; }
body .product-item .product-info { display: flex; flex-direction: column; flex: 1; }
body .product-item .product-meta { padding-block: 9px 0; margin: 0; border-top: 1px solid #f1f1f1; }
body .product-item .availability { font-weight: 700; letter-spacing: 0; color: #16a34a; }

/* Global - Product card shadow */
body .product-item { box-shadow: 0 2px 8px #00000009; transition: box-shadow .2s ease; }
body .product-item:hover { box-shadow: 0 5px 16px #00000018; }

/* Global - Product note in image */
body .product-item .product-image .product-note { position: absolute; z-index: 3; bottom: 2px; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 8px); margin: 0; padding: 4px 8px; border: 1px solid #dedede; background: #fff; color: var(--second-color); font-size: 11px; line-height: 1.4; text-align: center; }
body .product-item .product-note > span { display: block; }

/* Global - Section actions */
body .section-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
body .section-actions > .t-btn { max-width: none; white-space: nowrap; text-align: center; }

/* Global - Product slider arrows on the sides of the rail */
body .product-slider { position: relative; }
body .product-slider .slider-arrow { position: absolute; top: 50%; z-index: 3; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--shop-line); border-radius: 50%; background: #fff; color: var(--second-color); box-shadow: 0 4px 16px #0000001f; transform: translateY(-50%); cursor: pointer; transition: opacity .2s, visibility .2s, border-color .2s, color .2s; }
/* Šípka presahuje okraj pásu o polovicu, ale nikdy nevyjde mimo viewport (užší container bez okrajov). */
body .product-slider .slider-arrow.prev { left: max(-22px, calc((100% - 100vw) / 2 + 12px)); }
body .product-slider .slider-arrow.next { right: max(-22px, calc((100% - 100vw) / 2 + 12px)); }
body .product-slider .slider-arrow:hover { border-color: var(--main-color); color: var(--main-color); }
body .product-slider .slider-arrow:focus-visible { outline: 2px solid var(--main-color); outline-offset: 2px; }
body .product-slider .slider-arrow .icon { width: 20px; height: 20px; }
body .product-slider .slider-arrow:disabled { opacity: 0; visibility: hidden; }
@media (max-width: 767px) { body .product-slider .slider-arrow { display: none; } }
/* Ťahanie pásu myšou (theme.js): bez prichytávania počas ťahu, aby pás nepreskakoval. */
@media (hover: hover) and (pointer: fine) {
    body :is(.product-rail, .variant-carousel) { cursor: grab; }
    body :is(.product-rail, .variant-carousel).is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; }
}

/* Global - Product card: klikateľná celá karta, centrovaný názov a štítok „Vybrat typ textilu“ (poznámka klienta 22. 10. 2026) */
body .product-item .product-info { position: relative; top: auto; }
body .product-item .product-info .product-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
body .product-item .product-info .title { text-align: center; }
body .product-item:hover .product-info .title a { text-decoration: underline; }
body .product-item .product-explore { left: 50%; right: auto; bottom: 12px; width: max-content; max-width: calc(100% - 16px); height: auto; padding: .55em 1.1em; gap: 6px; grid-auto-flow: column; border-radius: 999px; background: #fffffff2; box-shadow: 0 2px 10px #0000001f; color: var(--second-color); font-size: 13px; font-weight: 600; line-height: 1.2; white-space: nowrap; transform: translate(-50%, 6px); }
body .product-item:is(:hover, :focus-within) .product-explore { transform: translate(-50%, 0); }
body .product-item .product-explore .icon { width: 15px; height: 15px; }
body .product-item .product-image:has(.product-note, .product-cart-badge) .product-explore { bottom: 46px; }

/* Global - Product controls on mobile and touch devices */
@media (max-width: 767px), (hover: none) { body .product-item .product-explore { display: none; } }

/* Global - Gift selection on subpages */
body .gift-bar { --section-padding: 0px; background: #181818; color: #fff; }
body .gift-bar .content { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 30px; padding-block: 22px; }
body .gift-bar .gift-label { font-size: 14px; font-weight: 700; }
body .gift-bar .gift-links { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 26px; background: transparent; border: 0; padding: 0; box-shadow: none; }
body .gift-bar .gift-links a { color: #fff; font-size: 14px; text-decoration: none; }
body .gift-bar .gift-links a:hover { color: #ff9a9f; }

/* Global - Product cards in slider sections */
body .has-slider .product-item, body .has-slider .product-item:hover, body .has-slider .product-item:focus-within { box-shadow: none; }

body .main-header .mobile-panel > .menu-link { font-weight: 400; }

/* Global - Category items */
body .category-item { display: flex; align-items: center; gap: 12px; height: 100%; min-height: 68px; padding: 12px; background: #fff; border: 1px solid #f0f0f0; border-radius: 6px; box-shadow: 0 3px 12px #0000000a; text-align: left; text-decoration: none; font-size: 14px; transition: box-shadow .2s, color .2s; }
body .category-item > span:last-child { min-width: 0; overflow-wrap: anywhere; }
body .category-image { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 44px; padding: 3px; }
body .category-image img { width: 100%; height: 100%; object-fit: contain; }
body .category-image svg { width: 24px; height: 24px; }
body .category-item:hover { color: var(--main-color); box-shadow: 0 5px 18px #00000014; }
@media (max-width: 767px) {
    body .category-item { font-size: 13px; gap: 8px; }
    body .category-image { width: 36px; height: 36px; flex-basis: 36px; }
}

/* Global - Breadcrumb */
body :is(.breadcrumb, .catalog-breadcrumb) { font-size: 12px !important; line-height: 1.5; color: #777; }
body :is(.breadcrumb, .catalog-breadcrumb) a { color: #777 !important; font-size: inherit; }
body .breadcrumb :is(.active, [aria-current="page"]), body .catalog-breadcrumb li:last-child { color: #222 !important; font-weight: 500; }
body :is(.breadcrumb, .catalog-breadcrumb) a:hover { color: var(--main-color) !important; }

/* Potvrdenie odstránenia z košíka */
.cart-remove-dialog { width: calc(100% - 32px); max-width: 420px; margin: auto; padding: 24px; border: 0; border-radius: 12px; background: #fff; color: var(--second-color); }
.cart-remove-dialog::backdrop { background: rgb(0 0 0 / 45%); }
.cart-remove-dialog h2 { margin: 0 0 8px; font-size: 19px; font-weight: 700; line-height: 1.3; }
.cart-remove-dialog p { margin: 0 0 18px; font-size: 14px; line-height: 1.45; color: var(--shop-muted); }
.cart-remove-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
