.product-page .product-detail-page { display: block; width: calc(100% - 48px); max-width: 1320px; padding: 24px 0 48px !important; }
.product-page .product-detail-page > * { grid-column: 1/-1; min-width: 0; }
.product-page .product-detail-page > nav:first-child { grid-row: 1; margin-bottom: 24px; }
.product-page .breadcrumb { font-size: 14px; line-height: 1.6; margin: 0 !important; color: var(--shop-muted); }
.product-page .breadcrumb a { color: var(--shop-muted) !important; text-decoration: none; }
.product-page .breadcrumb a:hover { text-decoration: underline; }
.product-page .product-detail-title { grid-column: 2; grid-row: 2; align-self: start; font-family: var(--shop-font); font-size: 34px; line-height: 1.25; font-weight: 700; margin: 0 0 24px; color: var(--shop-ink); }
.product-overview { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(0,1fr); gap: 52px; align-items: start; }
.product-visuals, .product-selection { min-width: 0; }
.product-page .product-textile { margin: -12px 0 24px; color: var(--shop-muted); font-size: 16px; }
.product-page .product-visuals > aside { margin: 20px 0 0 !important; border: 0 !important; border-top: 1px solid var(--shop-line) !important; border-radius: 0; background: transparent; box-shadow: none; }
.product-page .product-visuals > aside .card-body { padding: 20px 0; font-size: 15px; }
.product-page .product-selection > .card { margin: 16px 0 0 !important; background: transparent; border: 0 !important; border-radius: 0; box-shadow: none !important; }
.product-page .product-selection > .card .card-body { padding: 12px 0; }
.product-page .product-selection > .card h2 { font-size: 15px; line-height: 1.4; }
.product-page .product-gallery { position: static; min-width: 0; }
.product-page .product-gallery-stage { min-height: 0; aspect-ratio: 1; background: var(--shop-paper); border: 1px solid var(--shop-line); }
.product-page .gallery-slide { display: grid; place-items: center; width: 100%; height: 100%; min-height: 0; }
.product-page .gallery-slide[hidden] { display: none; }
.product-page .gallery-slide img { width: 100%; height: 100%; max-height: none; object-fit: contain; cursor: zoom-in; }
.product-page .gallery-arrow { width: 38px; height: 38px; border: 1px solid var(--shop-line); border-radius: 50%; background: #fff; box-shadow: none; color: var(--shop-ink); }
.product-page .gallery-arrow svg { width: 18px; height: 18px; }
.product-page .product-gallery-thumbs { margin-top: 12px; gap: 10px; padding: 2px; }
.product-page .gallery-thumb { width: 70px; height: 70px; flex: 0 0 70px; border: 1px solid var(--shop-line); border-radius: 0; background: #fff; padding: 3px; }
.product-page .gallery-thumb img { width: 100%; height: 100%; object-fit: contain; }
.product-page .gallery-thumb.is-active { border-color: var(--main-color); box-shadow: 0 0 0 1px var(--main-color); }
.product-page .product-configurator { grid-column: 2; grid-row: 3; border: 0; overflow: visible; background: transparent; }
.product-page .product-type-details { border-bottom: 1px solid var(--shop-line); margin-bottom: 14px; }
.product-page .product-type-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 8px 0 14px; font-size: 15px; font-weight: 600; cursor: pointer; list-style: none; }
.product-page .product-type-details > summary::-webkit-details-marker { display: none; }
.product-page .product-type-details[open] > summary .icon { transform: rotate(180deg); }
.product-page .product-type-details .config-step { border-bottom: 0; margin-bottom: 0; }
.product-page .config-step { padding: 0 0 14px; margin-bottom: 14px; border-bottom: 1px solid var(--shop-line); }
.product-page .config-step h2 { font-size: 16px; line-height: 1.45; font-weight: 600; margin: 0 0 12px; color: var(--shop-ink); }
.product-page .config-step h2 > span { display: none; }
.product-page .config-step h2 > strong { font-weight: 400; color: var(--shop-muted); }
.product-page .config-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.product-page .config-pill { min-height: 40px; padding: 9px 15px; border: 1px solid var(--shop-line); border-radius: 0; background: #fff; color: var(--shop-ink); text-decoration: none; }
.product-page .config-pill svg { width: 15px; height: 15px; }
.product-page .config-pill.is-active { background: var(--main-color); border-color: var(--main-color); color: #fff; }
.product-page .variant-filter-row { gap: 8px; margin-bottom: 12px; }
.product-page .variant-filter { border: 0; border-bottom: 1px solid transparent; border-radius: 0; padding: 5px 2px; margin-right: 7px; background: transparent; color: var(--shop-muted); }
.product-page .variant-filter.is-active { border-bottom-color: var(--shop-ink); color: var(--shop-ink); background: transparent; }
.product-page .variant-carousel-wrap { padding: 0 25px; }
.product-page .variant-carousel { gap: 10px; }
.product-page .variant-choice { width: 96px; flex: 0 0 96px; min-height: 154px; grid-template-rows: 84px auto auto; padding: 6px; border: 1px solid var(--shop-line); border-radius: 0; background: #fff; text-decoration: none; color: var(--shop-ink); }
.product-page .variant-choice.is-selected { border-color: var(--main-color); box-shadow: inset 0 0 0 1px var(--main-color); }
.product-page .variant-choice.is-selected::after { background: var(--main-color); }
.product-page .variant-choice img { width: 100%; height: 84px; object-fit: contain; }
.product-page .variant-choice-name { font-size: 13px; line-height: 1.4; }
.product-page .variant-choice small { font-size: 12px; color: var(--shop-muted); }
.product-page .variant-arrow { width: 24px; background: #fff; box-shadow: none; color: var(--shop-ink); }
.product-page .config-heading-row { gap: 10px; flex-wrap: wrap; align-items: baseline; }
.product-page .size-chart-link { border: 0; background: transparent; color: var(--shop-muted); padding: 0; text-decoration: underline; font-size: 13px !important; }
.product-page .size-chart-link svg { width: 15px; height: 15px; }
.product-page .size-options { gap: 5px; align-items: center; }
.product-page .size-option span { min-width: 38px; height: 38px; padding: 7px 9px; border: 1px solid var(--shop-line); border-radius: 0; background: #fff; font-size: 14px; }
.product-page .size-option input:checked + span { background: var(--main-color); color: #fff; border-color: var(--main-color); box-shadow: none; }
.product-page .size-option.is-unavailable span { background: #f3f3f1; color: #90948b; text-decoration: line-through; }
.product-page .size-option input:focus-visible + span, .product-page .detail-color-option input:focus-visible + span { outline: 2px solid var(--main-color); outline-offset: 3px; }
.product-page .color-options { gap: 4px; }
.product-page .detail-color-option span { width: 28px; height: 28px; min-width: 28px; border-radius: 50%; padding: 2px; border-color: #d9dcd3; background: #fff; }
.product-page .detail-color-option img { border-radius: 50%; }
.product-page .detail-color-option input:checked + span { border-color: var(--main-color); box-shadow: 0 0 0 1px var(--main-color); }
.product-page .color-availability-title { font-size: 13px; color: var(--shop-muted); }
.product-page .availability-strip { display: grid; gap: 6px; padding: 10px 12px; margin: -4px 0 10px; border: 0; background: var(--shop-paper); font-size: 13px; }
.product-page .availability-strip > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.product-page .availability-strip strong { font-size: 12px; letter-spacing: 0; font-weight: 600; }
.product-page .delivery-hint { font-size: 13px; }
.product-page .availability-help { margin: 0 0 14px !important; font-size: 13px; }
.product-page .product-note-box { background: transparent; border: 0; padding: 0; margin: 12px 0 20px; }
.product-page .product-note-box label { font-size: 14px; text-transform: none; font-weight: 600; color: var(--shop-ink); }
.product-page .product-note-box small, .product-page .product-note-box em { font-size: 12px; color: var(--shop-muted); line-height: 1.5; }
.product-page .product-note-box textarea { font-size: 14px; border: 1px solid var(--shop-line); border-radius: 0; padding: 12px; width: 100%; background: #fff; }
.product-page .product-note-details { margin: 16px 0; border-bottom: 1px solid var(--shop-line); }
.product-page .product-note-details > summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0 16px; font-size: 14px; font-weight: 600; cursor: pointer; }
.product-page .product-note-details > summary::-webkit-details-marker { display: none; }
.product-page .product-note-details[open] > summary > span { transform: rotate(45deg); }
.product-page .product-buy-row { grid-template-columns: minmax(0,1fr) 112px; gap: 14px; padding: 20px 0 0; border: 0; }
.product-page .detail-price { font-size: 30px; line-height: 1.3; font-weight: 700; color: var(--shop-ink); }
.product-page .quantity-stepper { display: grid; grid-template-columns: 34px minmax(0,1fr) 34px; width: 112px; height: 44px; border: 1px solid var(--shop-line); border-radius: 0; align-self: center; justify-self: end; overflow: hidden; }
.product-page .quantity-stepper button { display: grid; place-items: center; width: 100%; height: 100%; min-width: 0; min-height: 0; padding: 0; border: 0; border-radius: 0; background: #fff; color: var(--shop-ink); }
.product-page .quantity-stepper input { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; padding: 0; margin: 0; border: 0; border-inline: 1px solid var(--shop-line); border-radius: 0; background: #fff; text-align: center; font-size: 16px; line-height: normal; appearance: textfield; }
.product-page .quantity-stepper input::-webkit-inner-spin-button, .product-page .quantity-stepper input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.product-page .quantity-stepper .icon { width: 18px; height: 18px; }
.product-page .detail-add-button { display: flex; align-items: center; justify-content: center; width: 100%; padding: 12px 16px; text-align: center; line-height: 1.4; grid-column: 1/-1; min-height: 52px; border: 1px solid var(--main-color); border-radius: 0; background: var(--main-color); font-size: 17px; font-weight: 600; color: #fff; }
.product-page .detail-add-button:hover:not(:disabled) { background: var(--shop-ink); border-color: var(--shop-ink); }
.product-page .detail-add-button:disabled { background: #e9ebe5; border-color: #e9ebe5; color: #686d62; opacity: 1; cursor: default; }
.product-page .product-benefits { grid-column: 2; grid-row: 4; margin: 24px 0 0 !important; border-top: 1px solid var(--shop-line); }
.product-page .product-benefit { padding: 14px 0; border: 0; border-bottom: 1px solid var(--shop-line); background: transparent; font-size: 14px; }
.product-page .product-benefit-icon { width: 24px; height: 24px; flex-basis: 24px; color: var(--shop-muted); }
.product-page .product-benefit-icon img { width: 24px; height: 24px; object-fit: contain; }
.product-page .col-md-7 > .card { grid-column: 2; grid-row: 5; margin: 20px 0 0 !important; box-shadow: none !important; border-radius: 0; background: var(--shop-paper); }
.product-page .col-md-7 > .card .card-body { padding: 16px; }
.product-page .col-md-5 > aside { grid-column: 1; grid-row: 5; align-self: start; margin: 24px 0 0 !important; border: 1px solid var(--shop-line) !important; border-radius: 0; box-shadow: none; font-size: 14px; }
.product-page .product-properties-panel { grid-column: 1/-1; grid-row: 6; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: 12px 32px; margin: 40px 0 0 !important; padding: 28px; border: 0; background: var(--shop-paper); }
.product-page .product-properties-panel h2 { grid-column: 1; grid-row: 1/4; font-size: 22px; line-height: 1.4; text-transform: none; }
.product-page .product-properties-panel > :not(h2) { grid-column: 2; }
.product-page .product-properties-panel > a { font-size: 14px; color: var(--shop-ink); }
.product-page .product-inline-size-chart { display: none !important; }
.product-page .product-meta-links { margin: 0 !important; padding: 24px 0; border: 0; border-top: 1px solid var(--shop-line); }
.product-page .product-meta-row { font-size: 14px; gap: 12px; }
.product-page .product-meta-row a { border-radius: 0; border: 1px solid var(--shop-line); background: #fff; padding: 6px 10px; font-size: 13px; }
.product-page .product-faq { margin-top: 0; padding: 24px 0 32px !important; }
.product-page .product-faq h2 { text-align: left !important; font-size: 24px; text-transform: none; font-weight: 600; }
.product-page .product-faq-item { border: 0; border-bottom: 1px solid var(--shop-line); border-radius: 0; background: #fff; }
.product-page .product-faq-item summary { font-size: 15px; padding: 18px 0; }
.product-information { margin-top: 40px; border-top: 1px solid var(--shop-line); }
.product-page .product-information-nav { margin: 0; display: flex; flex-wrap: wrap; gap: 32px; padding: 0; border-bottom: 1px solid var(--shop-line); }
.product-page .product-information-nav a { padding: 22px 0 18px; font-size: 17px; font-weight: 600; color: var(--shop-muted); text-decoration: none; border-bottom: 2px solid transparent; }
.product-page .product-information-nav a[aria-selected="true"] { color: var(--shop-ink); border-bottom-color: var(--main-color); }
.product-page .product-description-section { margin: 0; padding: 32px 0; border: 0; scroll-margin-top: 24px; }
.product-page .product-description-section[hidden] { display: none !important; }
.product-page .product-description-section .content-page-body { font-size: 16px; line-height: 1.75; color: var(--shop-ink); }
.product-page .product-description-section .motif-description { max-width: 900px; }
.product-page .product-description-section :is(p,li,td,th) { font-size: 16px !important; line-height: 1.75; }
.product-page .product-description-section :is(h2,h3,h4) { font-family: var(--shop-font) !important; font-size: 21px !important; font-weight: 600; line-height: 1.45; text-transform: none; margin: 0 0 12px; }
.product-page .shirt-description { max-width: 1000px; }
.product-page .textile-summary { border-top: 1px solid var(--shop-line); margin-top: 24px; }
.product-page .textile-summary summary { display: flex; justify-content: space-between; gap: 16px; padding: 18px 0; cursor: pointer; font-size: 16px; font-weight: 600; list-style: none; }
.product-page .textile-summary summary::-webkit-details-marker { display: none; }
.product-page .textile-summary[open] summary .icon { transform: rotate(45deg); }
.product-page .shirt-description > :is(.msh-only-desktop,.msh-only-mobile) { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.product-page .shirt-description > :is(.msh-only-desktop,.msh-only-mobile) > div[style] { background: transparent !important; box-shadow: none !important; border-radius: 0 !important; border: 0 !important; padding: 20px 0 !important; }
.product-page .shirt-description > table[style] { width: 100% !important; background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; margin: 0 0 24px !important; }
.product-page .shirt-description > table[style] > tbody > tr > td { background: transparent !important; border: 0 !important; padding: 0 !important; }
.product-page .shirt-description :is(p,li,span,small,strong,td,th,a,div) { font-family: inherit !important; }
.product-page .shirt-description :is(span,strong,small) { font-size: inherit !important; }
.product-page .shirt-description img:is([src*="oeko-texstandard100"],[src*="globalorganictextilestandardgots"]) { height: 40px !important; width: auto !important; max-width: 45% !important; object-fit: contain; }
.product-page .product-size-chart-content { max-width: 1000px; gap: 32px; align-items: center; }
.product-page .product-size-chart-content table { font-size: 15px; }
.product-page .product-size-chart-content img { max-height: 220px; object-fit: contain; }
@media (min-width: 768px) { .product-page .shirt-description > .msh-only-mobile { display: none !important; } }
@media (max-width: 767px) { .product-page .shirt-description > .msh-only-desktop { display: none !important; } }
.product-page > section.container { max-width: 1320px; width: calc(100% - 48px); padding-inline: 0; }
.product-page > section.container h2 { font-size: 26px; }
.product-page .size-chart-dialog { border: 0; border-radius: 4px; padding: 24px; font-family: var(--shop-font); }
.product-page .size-chart-dialog::backdrop { background: #10130fc4; }
.product-page .gallery-zoom { position: absolute; z-index: 4; bottom: 14px; right: 14px; border: 1px solid var(--shop-line); border-radius: 50%; width: 38px; height: 38px; background: #fff; color: var(--shop-ink); font-size: 24px; }
.product-page :is(a,button,summary):focus-visible { outline: 2px solid var(--main-color); outline-offset: 3px; }
@media (max-width: 1199px) {
    .product-overview { gap: 32px; }
    .product-page .product-detail-title { font-size: 30px; }
    .product-page .variant-choice { width: 86px; flex-basis: 86px; }
}
@media (max-width: 991px) {
    .product-overview { display: flex; flex-direction: column; gap: 16px; }
    .product-page .product-selection { display: contents; }
    .product-page .product-visuals { display: contents; }
    .product-page .product-gallery { width: 100%; order: 0; }
    .product-page .product-visuals > aside { width: 100%; order: 4; }
    .product-page .product-detail-title { order: -2; margin: 0; }
    .product-page .product-textile { order: -1; margin: 0; }
    .product-page .product-configurator { width: 100%; order: 1; }
    .product-page .product-benefits { width: 100%; order: 2; }
    .product-page .product-selection > .card { width: 100%; order: 3; }
    .product-page .product-detail-title { grid-column: 1; grid-row: 2; margin-bottom: 0; }
    .product-page .product-gallery { margin-bottom: 0; }
    .product-page .product-gallery-stage { max-height: 620px; }
    .product-page .product-configurator { grid-column: 1; grid-row: 4; }
    .product-page .product-benefits { grid-column: 1; grid-row: 5; }
    .product-page .col-md-7 > .card { grid-column: 1; grid-row: 6; }
    .product-page .col-md-5 > aside { grid-column: 1; grid-row: 7; }
    .product-page .product-properties-panel { grid-column: 1; grid-row: 8; }
}
@media (max-width: 639px) {
    .product-page .product-detail-page { width: calc(100% - 32px); padding-top: 18px !important; }
    .product-page .product-detail-page > nav:first-child { margin-bottom: 18px; }
    .product-page .breadcrumb { font-size: 12px; }
    .product-page .product-detail-title { font-size: 28px; }
    .product-page .gallery-thumb { width: 58px; height: 58px; flex-basis: 58px; }
    .product-page .product-gallery-thumbs { gap: 8px; }
    .product-page .config-step { padding-bottom: 16px; margin-bottom: 16px; }
    .product-page .config-heading-row { justify-content: space-between; }
    .product-page .config-step h2 { margin-bottom: 10px; }
    .product-page .config-pill { padding: 8px 12px; }
    .product-page .availability-strip { font-size: 12px; padding: 12px; }
    .product-page .product-note-box textarea { font-size: 16px; }
    .product-page .product-properties-panel { grid-template-columns: minmax(0,1fr); padding: 20px; gap: 12px; }
    .product-page .product-properties-panel h2 { grid-row: auto; grid-column: 1; font-size: 20px; }
    .product-page .product-properties-panel > :not(h2) { grid-column: 1; }
    .product-information { margin-top: 28px; }
    .product-page .product-information-nav { gap: 18px; }
    .product-page .product-information-nav a { padding: 18px 0 14px; font-size: 14px; }
    .product-page .product-description-section { padding: 24px 0; }
    .product-page .product-description-section :is(h2,h3,h4) { font-size: 19px !important; }
    .product-page > section.container { width: calc(100% - 32px); }

}



/* One gallery owner: Swiper renders images, shared cart code retains its source nodes. */
.gallery [hidden] { display: none !important; }
.gallery-main { position: relative; width: 100%; aspect-ratio: 1; max-height: 660px; background: var(--shop-paper); border: 1px solid var(--shop-line); overflow: hidden; }
.gallery-main .swiper-wrapper { height: 100%; }
.gallery-image { height: 100%; min-width: 0; }
/* Fotka vypĺňa celý štvorec galérie aj na desktope (pokyn používateľa 28. 10. 2026); ovládanie leží na nej. */
.gallery-image a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 0; cursor: zoom-in; }
.gallery-image img { display: block; width: 100%; height: 100%; max-height: none; object-fit: contain; }
.gallery-nav, .gallery-zoom { display: grid; place-items: center; position: absolute; z-index: 3; width: 36px; height: 36px; padding: 0; border: 1px solid var(--shop-line); border-radius: 50%; background: #fff; color: var(--shop-ink); }
.gallery-nav { top: 50%; transform: translateY(-50%); border-color: transparent; background: rgb(255 255 255 / 85%); box-shadow: 0 1px 4px rgb(0 0 0 / 14%); }
.gallery-prev { left: 10px; }
.gallery-next { right: 10px; }
.gallery-nav .icon, .gallery-zoom .icon { width: 18px; height: 18px; }
.gallery-nav.swiper-button-disabled { opacity: .3; cursor: default; }
.gallery-counter { position: absolute; bottom: 18px; left: 18px; z-index: 2; padding: 2px 8px; border-radius: 999px; background: rgb(255 255 255 / 85%); font-size: 12px; color: var(--shop-muted); }
.gallery-thumbs-row { display: grid; grid-template-columns: 20px minmax(0,1fr) 20px; align-items: center; gap: 6px; margin-top: 12px; }
.gallery-thumbs { width: 100%; height: 68px; overflow: hidden; }
.gallery-thumbs .swiper-slide { width: 68px; height: 68px; }
.gallery-thumbs button { display: block; width: 100%; height: 100%; min-width: 0; padding: 3px; border: 1px solid var(--shop-line); background: #fff; }
.gallery-thumbs button.is-active { border: 2px solid var(--main-color); padding: 2px; }
.gallery-thumbs img { display: block; width: 100%; height: 100%; object-fit: contain; }
.gallery-thumbs-row > button { display: grid; place-items: center; width: 20px; height: 40px; padding: 0; border: 0; background: transparent; color: var(--shop-ink); }
.gallery-thumbs-row > button .icon { width: 16px; height: 16px; }
.gallery-thumbs-row > button.swiper-button-disabled { opacity: .25; }
.gallery-source .product-gallery-thumbs { overflow-x: auto; overflow-y: hidden; }
.gallery-source .gallery-thumb { min-width: 0; }
.gallery-source .gallery-slide { padding: 0; }
.gallery .product-card-ribbons { z-index: 2; pointer-events: none; }
.product-page .size-options .biggest-size { display: grid; place-items: center; height: 38px; min-width: 38px; padding: 7px 9px; margin: 0; border: 1px solid var(--shop-line); color: var(--shop-ink); font-size: 14px; font-weight: 400; line-height: 1; text-decoration: none; white-space: nowrap; }
.product-page .size-options .biggest-size:hover { border-color: var(--main-color); }
.fancybox__container { font-family: var(--shop-font, 'Inter', sans-serif); }
@media (max-width: 991px) { .gallery-main { max-height: 620px; } }
@media (max-width: 639px) {
    .gallery-thumbs, .gallery-thumbs .swiper-slide { height: 58px; }
    .gallery-thumbs .swiper-slide { width: 58px; }
    .product-page .size-options { gap: 4px; }
    .product-page .size-option span, .product-page .size-options .biggest-size { min-width: 34px; padding-inline: 6px; }
}

.gallery-empty { display: grid; place-items: center; aspect-ratio: 1; background: var(--shop-paper); color: var(--shop-muted); font-size: 28px; }

/* Fit selector: compare the actual photos, names and prices without enclosing cards. */
.product-page .product-configurator > .config-step { padding-bottom: 0; margin-bottom: 16px; border-bottom: 0; }
.product-page .product-type-details { margin-bottom: 20px; border-top: 1px solid var(--shop-line); }
.product-page .product-type-details > summary { display: flex; align-items: center; min-height: 74px; padding: 14px 0; gap: 12px; }
.product-page .type-preview { width: 44px; height: 44px; flex: 0 0 44px; object-fit: contain; background: var(--shop-paper); border-radius: 4px; }
.product-page .type-label { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 3px; }
.product-page .type-title { font-size: 12px; font-weight: 400; color: var(--shop-muted); }
.product-page .type-current { font-size: 16px; font-weight: 600; line-height: 1.4; }
.product-page .type-change { font-size: 14px; font-weight: 400; text-decoration: underline; text-underline-offset: 3px; }
.product-page .product-type-details > summary > .icon { width: 16px; height: 16px; flex: 0 0 16px; }
.product-page .product-type-details .config-step { padding: 0 0 20px; }
.product-page .product-type-details .config-step > h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.product-page .variant-filter-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 18px; }
.product-page .variant-filter { min-height: 34px; margin: 0; padding: 7px 12px; border: 1px solid var(--shop-line); border-radius: 18px; font-size: 14px; line-height: 1.3; background: #fff; color: var(--shop-ink); }
.product-page .variant-filter.is-active { color: #fff; border-color: var(--main-color); background: var(--main-color); }
.product-page .variant-filter:hover:not(.is-active) { background: var(--shop-paper); border-color: #b9c1b5; }
.product-page .variant-carousel-wrap { --shop-fit-width: 150px; display: block; margin: 0; padding: 0; }
.product-page .variant-carousel { display: flex; align-items: stretch; gap: 16px; padding: 1px 0 3px; overflow-x: auto; overflow-y: hidden; }
.product-page .variant-choice { display: flex; flex: 0 0 var(--shop-fit-width); flex-direction: column; align-items: stretch; width: var(--shop-fit-width); min-height: 0; padding: 0; border: 0; background: transparent; text-align: left; }
.product-page .variant-choice[hidden] { display: none; }
.product-page .variant-choice:hover, .product-page .variant-choice.is-selected { border: 0; box-shadow: none; }
.product-page .variant-choice.is-selected::after { display: none; }
.product-page .variant-image { display: grid; place-items: center; position: relative; flex: 0 0 auto; width: 100%; aspect-ratio: 1; overflow: hidden; border: 1px solid var(--shop-line); border-radius: 5px; background: var(--shop-paper); }
.product-page .variant-choice img { display: block; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.product-page .variant-choice.is-selected .variant-image { border-color: var(--main-color); box-shadow: inset 0 0 0 1px var(--main-color); }
.product-page .variant-choice:hover .variant-image { border-color: var(--main-color); }
.product-page .variant-choice:focus-visible { outline: none; }
.product-page .variant-choice:focus-visible .variant-image { outline: 2px solid var(--main-color); outline-offset: -4px; }
.product-page .variant-choice-name { align-self: stretch; min-height: 2.9em; margin: 10px 0 5px; font-size: 14px; line-height: 1.45; font-weight: 600; }
.product-page .variant-choice small { margin-top: auto; color: var(--shop-muted); font-size: 14px; line-height: 1.45; }
.product-page .variant-check { display: grid; place-items: center; position: absolute; top: 8px; right: 8px; width: 22px; height: 22px; border-radius: 50%; background: var(--main-color); color: #fff; }
.product-page .variant-check .icon { width: 14px; height: 14px; }
.product-page .variant-arrow { position: absolute; top: calc(var(--shop-fit-width) / 2); z-index: 2; display: grid; place-items: center; width: 34px; height: 34px; min-width: 0; padding: 0; border: 1px solid var(--shop-line); border-radius: 50%; background: #fff; transform: translateY(-50%); }
.product-page .variant-arrow-prev { left: -12px; }
.product-page .variant-arrow-next { right: -12px; }
.product-page .variant-arrow .icon { width: 17px; height: 17px; }
.product-page .variant-arrow:disabled { visibility: hidden; pointer-events: none; }
.product-page .variant-carousel:focus-visible { outline: 2px solid var(--main-color); outline-offset: 3px; }
.product-page .config-pills { gap: 10px; }
.product-page .config-pill { padding: 10px 16px; border-radius: 5px; font-size: 15px; }
.product-page .size-option span, .product-page .size-options .biggest-size { min-width: 40px; height: 40px; padding: 8px 10px; font-size: 14px; }
.product-page .config-heading-row { align-items: center; justify-content: space-between; }
.product-page .config-heading-row h2 { margin-bottom: 12px; }
.product-page .config-heading-row .size-chart-link { margin-bottom: 12px; }
@media (max-width: 639px) {
    .product-page .variant-carousel-wrap { --shop-fit-width: 136px; }
    .product-page .variant-carousel { gap: 12px; }
    .product-page .product-type-details > summary { gap: 10px; }
    .product-page .type-preview { width: 40px; height: 40px; flex-basis: 40px; }
    .product-page .type-current { font-size: 15px; }
    .product-page .variant-filter-row { gap: 7px; }
    .product-page .variant-filter { padding-inline: 11px; font-size: 13px; }
    .product-page .size-option span, .product-page .size-options .biggest-size { min-width: 34px; padding-inline: 6px; }
    .product-page .config-pills { gap: 8px; }
    .product-page .config-pill { padding-inline: 12px; font-size: 14px; }
    .product-page .config-pill > span[aria-hidden] { display: none; }
}

/* Product page - Clear purchase controls and information */
body .product-page .product-detail-page { width: 100%; padding: 24px 12px 48px !important; }
body .product-page .product-price-summary { margin-bottom: 24px; }
body .product-page .detail-price { font-size: 34px; font-weight: 600; }
body .product-page #product-cart-form { display: flex; flex-direction: column; }
body .product-page .color-step { order: -1; }
body .product-page .config-step { border-bottom: 0; margin-bottom: 32px; padding-bottom: 0; }
body .product-page .color-options { gap: 6px; }
body .product-page .detail-color-option span { width: 24px; height: 24px; min-width: 24px; padding: 2px; border: 1px solid #d6d6d6; }
body .product-page .detail-color-option input:checked + span { border-color: #111; box-shadow: 0 0 0 1px #111; }
body .product-page .size-options { gap: 8px; }
body .product-page .size-option span, body .product-page .size-options .biggest-size { display: grid; place-items: center; min-width: 48px; height: 46px; padding: 8px 12px; border: 1px solid #cfcfcf; border-radius: 4px; font-weight: 600; }
body .product-page .product-buy-row { display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 12px; padding-top: 16px; }
body .product-page .quantity-stepper { justify-self: start; height: 48px; }
body .product-page .detail-add-button { grid-column: auto; padding: .85em 1.5em; min-height: 0; font-size: 16px; }
body .product-page .product-benefits { margin-top: 24px !important; padding: 6px 20px; border: 1px solid #e5e5e5; border-radius: 6px; }
body .product-page .product-benefit { padding: 18px 0; }
body .product-page .product-benefit:last-child { border-bottom: 0; }
body .product-page .section-products .heading { text-transform: none; }
@media (max-width: 767px) {
    body .product-page .product-detail-page { padding-inline: 25px !important; }
    body .product-page .detail-color-option span { width: 22px; height: 22px; min-width: 22px; }
}

body .product-page .product-configurator .heading-box .heading { font-size: 16px; line-height: 1.45; font-weight: 600; margin: 0 0 18px; letter-spacing: 0; }
body .product-page .product-selection .heading-box .product-detail-title { font-size: clamp(24px, calc(2.7vw - 4px), 34px); line-height: 1.2; margin-bottom: 0; }
body .product-page .product-textile { margin: 0 0 24px; }
body .product-page .product-buy-row > .detail-add-button:only-child { grid-column: 1 / -1; }

/* Product page - Steps and FAQ */
body .product-page .product-configurator > .config-step { margin-bottom: 32px; }
body .product-page .product-type-details { margin-bottom: 32px; }
body .product-page .product-faq .faq-item { border: 1px solid #e8e8e8; border-radius: 6px; background: #fff; box-shadow: 0 3px 12px #0000000a; }
body .product-page .product-faq .faq-item > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px; list-style: none; cursor: pointer; font-weight: 600; }
body .product-page .product-faq .faq-item > summary::-webkit-details-marker { display: none; }
body .product-page .product-faq .faq-item > summary .icon { width: 18px; height: 18px; transition: transform .25s; }
body .product-page .product-faq .faq-item[open] > summary .icon { transform: rotate(45deg); }
body .product-page .product-faq .faq-content { padding: 0 20px 20px; font-size: 15px; line-height: 1.7; }
body .product-page .product-faq .faq-content > :last-child { margin-bottom: 0; }
@media (prefers-reduced-motion: reduce) { body .product-page .product-faq .faq-item > summary .icon { transition: none; } }

/* Product page - FAQ section */
body .product-page .product-faq { background: var(--light-bg); padding: 32px 24px !important; border-radius: 6px; }
body .product-page .product-faq .heading { text-transform: none; }

/* Product page - Gallery background */
body .product-page :is(.gallery-main, .product-gallery-stage, .gallery-empty) { background: var(--light-bg); }

/* Product page - Alternative products below FAQ */
body .product-page .section-alternatives { margin: 0; padding: 40px 0; border: 0; border-radius: 0; background: var(--light-bg); color: #333; text-align: center; }
body .product-page .section-alternatives .config-step .heading { font-size: 16px; line-height: 1.45; margin-bottom: 18px; letter-spacing: 0; }
body .product-page .section-alternatives .config-step h2 > span { display: none; }
body .product-page .section-alternatives .product-type-details { border: 0; margin-bottom: 0; }
body .product-page .section-alternatives .product-type-details > summary { display: none; }
body .product-page .section-alternatives .variant-carousel-wrap { --shop-fit-width: 150px; }
body .product-page .section-alternatives .product-type-details .config-step { padding-bottom: 0; }
@media (max-width: 639px) { body .product-page .section-alternatives .variant-carousel-wrap { --shop-fit-width: 136px; } }

/* Product page - Purchase row and availability */
body .product-page .product-buy-row { grid-template-columns: minmax(0, 1fr) 112px; align-items: stretch; }
body .product-page .product-buy-row .detail-add-button { background: #000; border-color: #000; color: #fff; }
body .product-page .product-buy-row .detail-add-button:hover:not(:disabled) { background: #000; border-color: #000; }
body .product-page .product-buy-row .detail-add-button:disabled { background: #ededed; border-color: #ededed; color: #888; opacity: 1; cursor: not-allowed; box-shadow: none; }
body .product-page .quantity-stepper { height: 100%; min-height: 48px; border-color: #e5e5e5; border-radius: 6px; background: #fff; }
body .product-page .quantity-stepper input { border-inline: 0; font-size: 15px; font-weight: 600; }
body .product-page .quantity-stepper button { color: #333; background: #fafafa; }
body .product-page .quantity-stepper button:hover { background: #f0f0f0; }
body .product-page .availability-strip { margin: 18px 0 10px; background: var(--light-bg); }

/* Product page - Separate colour and size steps */
body .product-page .product-options { display: flex; flex-direction: column; gap: 20px; }
body .product-page .product-options .config-step { margin: 0; padding: 0; border: 1px solid #ededed; border-radius: 8px; background: var(--light-bg); overflow: hidden; }

body .product-page .product-options .heading-box .heading { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 0; font-size: 15px; }
body .product-page .product-options .heading > span { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #333; color: #fff; font-size: 11px; }
body .product-page .product-options .color-availability-row { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
body .product-page .product-options .color-availability-row + .color-availability-row { margin-top: 16px; }
body .product-page .product-options .config-heading-row { align-items: flex-start; }
body .product-page .product-buy-row { margin-top: 24px; padding-top: 0; background: #fff; }


/* Product page - Small size chart button */
body .product-page .product-options .size-chart-link { padding: .4em .7em; border: 1px solid #e5e5e5; border-radius: 4px; background: #fff; color: var(--second-color); font-size: 10px !important; font-weight: 500; text-decoration: none; gap: .5em; margin-bottom: 0; }

body .product-page .product-options .step-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 18px 20px; border-bottom: 1px solid #e5e5e5; }
body .product-page .product-options .step-body { padding: 20px; }
body .product-page .product-options .step-foot { padding: 12px 20px; border-top: 1px solid #e5e5e5; }
body .product-page .product-options .step-foot small { display: block; font-size: 12px; line-height: 1.5; color: #6b6b6b; }

/* Product page - Price above purchase */
body .product-page .product-price-summary { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid #ededed; }
body .product-page .product-price-summary .detail-price { font-size: 30px; font-weight: 500; color: #000; }
body .product-page .product-buy-row { margin-top: 16px; }

/* Product page - Print customisation step */
body .product-page .product-note-details, body .product-page .product-configurator .product-note-box.is-required { margin: 20px 0 0; border: 1px solid #ededed; border-radius: 8px; background: var(--light-bg); overflow: hidden; }
body .product-page .product-note-details > summary { justify-content: flex-start; padding: 18px 20px; font-size: 15px; }
body .product-page .product-note-details > summary::before, body .product-page .product-note-box.is-required > label::before { content: '3'; display: inline-grid; place-items: center; width: 20px; height: 20px; flex: 0 0 20px; border-radius: 50%; background: #333; color: #fff; font-size: 11px; }
body .product-page .product-note-details > summary > .icon { margin-left: auto; flex-shrink: 0; }
body .product-page .product-note-details[open] > summary { border-bottom: 1px solid #e5e5e5; }
body .product-page .product-note-details .product-note-box { margin: 0; padding: 20px; }
body .product-page .product-configurator .product-note-box.is-required { padding: 20px; }
body .product-page .product-note-box.is-required > label { display: flex; align-items: flex-start; gap: 12px; }

/* Product page - Selected options in step headers */
body .product-page .product-options .step-head .heading > strong { color: var(--main-color); font-size: 14px; font-weight: 600; }

/* Product page - Readable print instructions and textarea */
body .product-page .product-note-box > label { display: block; margin-bottom: 8px; color: #222; font-size: 15px; font-weight: 600; line-height: 1.5; }
body .product-page .product-note-box .product-note-instruction-header { display: block; font-size: 15px; font-weight: 600; line-height: 1.5; }
body .product-page .product-note-box .product-note-instruction-text { display: block; margin-top: 8px; font-size: 14px; font-weight: 400; line-height: 1.65; color: #555; }
body .product-page .product-note-box > small { display: block; margin: 0 0 16px; font-size: 13px; line-height: 1.65; color: #666; }
body .product-page .product-note-box textarea { display: block; min-height: 120px; margin: 16px 0 0; padding: 14px 16px; border: 1px solid #d9d9d9; border-radius: 6px; background: #fff; color: #222; font-size: 15px; line-height: 1.6; resize: vertical; }
body .product-page .product-note-box textarea::placeholder { color: #888; font-size: 13px; }
body .product-page .product-note-box textarea:focus, body .product-page .product-note-box textarea:focus-visible { border-color: #999; outline: none; box-shadow: 0 0 0 3px #00000008; }
body .product-page .product-note-box > em { display: block; margin-top: 16px; padding-top: 12px; border-top: 1px solid #e5e5e5; color: #666; font-size: 12px; font-style: normal; line-height: 1.65; }
body .product-page .product-note-box.is-required > label { display: block; }
body .product-page .product-note-box.is-required > label::before { margin-right: 8px; vertical-align: middle; }
body .product-page .product-note-box.is-required > .product-note-instructions { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 8px 12px; }
body .product-page .product-note-box.is-required > .product-note-instructions > :is(strong, span) { grid-column: 2; margin-top: 0; }
@media (max-width: 767px) { body .product-page .product-note-box textarea { font-size: 16px; } }

/* Product page - Information tabs */
body .product-page .product-information { border-top: 0; }
body .product-page .product-information-nav { display: flex; flex-wrap: wrap; gap: 8px; padding: 8px; border: 1px solid #ededed; border-radius: 8px; background: var(--light-bg); }
body .product-page .product-information-nav a { padding: .85em 1.3em; border: 1px solid transparent; border-radius: 5px; color: #666; font-size: 15px; font-weight: 500; line-height: 1.4; text-decoration: none; }
body .product-page .product-information-nav a:hover { background: #fff; color: #222; }
body .product-page .product-information-nav a[aria-selected="true"] { background: #fff; border-color: #e5e5e5; color: #111; font-weight: 600; box-shadow: 0 2px 6px #00000008; }
@media (max-width: 767px) { body .product-page .product-information-nav { gap: 6px; } body .product-page .product-information-nav a { flex: 1 1 auto; text-align: center; font-size: 13px; padding: .85em 1em; } }

/* Product page - Information tab content */
body .product-page .product-information > .product-description-section { margin-top: 12px; padding: 28px 0; border: 0; border-radius: 0; background: transparent; }
@media (max-width: 767px) { body .product-page .product-information > .product-description-section { padding: 20px 0; } }

/* Product page - Selected confirmation in step footer */
body .product-page .product-options .step-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
body .product-page .product-options .step-foot > small:first-child { flex: 1; }
body .product-page .product-options .step-foot .step-state { flex: 0 0 auto; margin-left: auto; padding: .3em .65em; border-radius: 4px; background: #dcfce7; color: #222; font-weight: 600; }
body .product-page .product-options .step-foot .step-state[hidden] { display: none; }
body .product-page .product-options .size-chart-link .icon { width: 12px; height: 12px; }

/* Product page - Completed step check and value */
body .product-page .product-options .is-complete .heading > span { font-size: 0; background: #dcfce7; color: #222; }
body .product-page .product-options .is-complete .heading > span::after { content: '✓'; font-size: 12px; }
body .product-page .product-options .is-complete .step-head .heading > strong { color: #222; }

/* Product page - Availability below purchase */
body .product-page .availability-strip { display: flex; flex-direction: column; gap: 12px; margin: 20px 0 12px; padding: 18px 20px; border: 1px solid #e8e8e8; border-radius: 6px; background: #fff; }
body .product-page .availability-strip > div { display: flex; align-items: center; justify-content: flex-start; gap: 12px; }
body .product-page .availability-strip strong { color: #444; font-size: 13px; font-weight: 500; }
body .product-page .availability-strip .icon { width: 18px; height: 18px; flex-shrink: 0; color: #555; }
body .product-page .availability-strip .cart-availability { font-size: 13px; font-weight: 600; line-height: 1.5; text-align: left; }
body .product-page .availability-strip .delivery-hint { padding-top: 12px; border-top: 1px solid #efefef; color: #555; font-size: 13px; line-height: 1.6; align-items: flex-start; }
body .product-page .availability-help { padding: 0 2px; font-size: 12px; color: #666; }


/* Product page - Centered alternative products */
body .product-page .section-alternatives .content > .heading-box { text-align: center; }
body .product-page .section-alternatives .heading-text { margin-inline: auto; }
body .product-page .section-alternatives .config-pills, body .product-page .section-alternatives .variant-filter-row { justify-content: center; }
body .product-page .section-alternatives .variant-carousel { justify-content: safe center; gap: 20px; padding-inline: 2px; }
body .product-page .section-alternatives .variant-choice { text-align: center; }
body .product-page .section-alternatives .variant-image { background: #fff; border-color: #e5e5e5; }
body .product-page .section-alternatives .variant-choice-name { font-size: 13px; font-weight: 500; }
body .product-page .section-alternatives .variant-choice small { color: inherit; font-size: 13px; }
body .product-page .section-alternatives .variant-filter-row { margin-top: 8px; margin-bottom: 22px; }
@media (max-width: 767px) { body .product-page .section-alternatives { padding: 28px 0; } body .product-page .section-alternatives .variant-carousel { gap: 14px; } }

/* Product page - Compact colour and size selection */
body .product-page .product-options { gap: 20px; }
body .product-page .product-options .config-step { border: 0; border-radius: 0; background: transparent; overflow: visible; }
body .product-page .product-options .step-head { padding: 0; margin-bottom: 10px; border: 0; gap: 10px; align-items: center; }
body .product-page .product-options .step-head .heading { color: #000; font-size: 14px; font-weight: 700; gap: 6px; }
body .product-page .product-options .step-head .heading > strong { color: #555; font-size: 13px; font-weight: 400; }
body .product-page .product-options .step-body { padding: 0; }
body .product-page .product-options .color-availability-row { gap: 6px; }
body .product-page .product-options .color-availability-row + .color-availability-row { margin-top: 10px; }
body .product-page .product-options .size-option span, body .product-page .product-options .biggest-size { min-width: 38px; height: 36px; padding: 6px 9px; font-size: 13px; font-weight: 500; }

/* Product page - Price under title and compact availability labels */
body .product-page .product-price-summary { margin: 0 0 24px; padding-top: 0; border-top: 0; }
body .product-page .product-options .color-availability-title { font-size: 11px; line-height: 1.4; font-weight: 500; gap: 5px; }
body .product-page .product-options .color-availability-title .icon { width: 14px; height: 14px; }
@media (max-width: 991px) { body .product-page .product-price-summary { order: -1; width: 100%; margin-bottom: 0; } }

/* Product page - Title and Heureka review link */
body .product-page .product-selection .heading-box .product-detail-title { font-weight: 800; }

/* Product page - Price before purchase and plain alternatives */
body .product-page .product-price-summary { margin: 24px 0 0; padding-top: 0; border: 0; order: 0; }
body .product-page .section-alternatives .content > .heading-box .heading-text { width: 100%; max-width: none; margin-inline: auto; text-align: center; }
@media (max-width: 767px) { body .product-page .section-alternatives .content { padding-inline: 0; } }

/* Product page - Plain print customisation */
body .product-page .product-note-details, body .product-page .product-configurator .product-note-box.is-required { border: 0; border-radius: 0; background: transparent; overflow: visible; }
body .product-page .product-note-details > summary { padding: 0; font-size: 14px; }
body .product-page .product-note-details > summary::before, body .product-page .product-note-box.is-required > label::before { content: none; }
body .product-page .product-note-details[open] > summary { border: 0; }
body .product-page .product-note-details .product-note-box { padding: 16px 0 0; }
body .product-page .product-configurator .product-note-box.is-required { padding: 0; }
body .product-page .product-note-box.is-required > .product-note-instructions { display: block; }
body .product-page .product-note-box.is-required > .product-note-instructions > .product-note-instruction-text { margin-top: 8px; }

/* Product page - Supplier colour separation */
body .product-page .product-options .color-availability-row.is-supplier { margin-top: 0; padding-top: 12px; border-top: 1px solid #ededed; }

/* Product page - Size and print separators */
body .product-page .product-options .size-step { padding-top: 16px; border-top: 1px solid #ededed; }
body .product-page .product-note-details, body .product-page .product-configurator .product-note-box.is-required { padding-top: 16px; border-top: 1px solid #ededed; }

/* Product page - Compact print text spacing */
body .product-page .product-note-details .product-note-box { padding-top: 10px; }
body .product-page .product-note-box textarea { margin-top: 8px; }
body .product-page .product-note-box > small { margin-bottom: 8px; }
body .product-page .product-note-box > em { margin-top: 8px; padding-top: 0; border: 0; text-align: left; }

/* Product page - Price accent and custom print notice */
body .product-page .product-price-summary { padding-top: 18px; border-top: 1px solid #ededed; }
body .product-page .product-price-summary .detail-price { font-size: 36px; color: #000; }
body .product-page .product-note-box > em, body .product-page .product-note-box > em * { color: #c65d12; font-size: 11px; font-weight: 400; text-decoration: none; }

body .product-page .product-note-box > em { width: 100%; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; text-align: left; align-self: flex-start; }

body .product-page .availability-strip { align-items: flex-start; text-align: left; }
body .product-page .availability-strip .delivery-hint { width: 100%; justify-content: flex-start; text-align: left; }

/* Product page - Expanded print customisation content */
body .product-page .product-note-details[open] > .product-note-box { margin-top: 12px; padding-top: 12px; border-top: 1px solid #ededed; }

/* Product page - Support and benefits in container */
body .product-page .section-support-benefits { margin: 0; padding-block: 32px; background: transparent; color: #333; }
body .product-page .section-support-benefits .support-contact { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 32px; border-radius: 8px; background: #000; color: #fff; text-align: center; }
body .product-page .section-support-benefits .support-contact > img { flex-shrink: 0; width: 58px; max-width: 100%; height: auto; border-radius: 0; }
body .product-page .section-support-benefits .heading-box { margin-bottom: 12px; }
body .product-page .section-support-benefits .heading-box .heading { font-size: 18px; line-height: 1.4; font-weight: 600; letter-spacing: 0; color: #fff; }
body .product-page .section-support-benefits .support-contact :is(strong, span, a, small) { display: block; line-height: 1.6; }
body .product-page .section-support-benefits .support-contact :is(span, small) { color: #aaa; font-size: 12px; }
body .product-page .section-support-benefits .support-contact strong { font-size: 14px; }
body .product-page .section-support-benefits .support-contact a { margin-top: 8px; font-size: 15px; font-weight: 600; color: #fff; text-decoration: none; }
body .product-page .section-support-benefits .support-contact a.support-contact-email { margin-top: 2px; font-size: 14px; font-weight: 500; overflow-wrap: anywhere; }
body .product-page .section-support-benefits .support-benefit { display: flex; align-items: flex-start; gap: 12px; height: 100%; padding: 0; background: transparent; font-size: 12px; line-height: 1.6; }
body .product-page .section-support-benefits .support-benefit :is(p, a, strong) { color: inherit; font-size: inherit; }
body .product-page .section-support-benefits .support-benefit p:last-child { margin-bottom: 0; }
body .product-page .section-support-benefits .support-benefit-icon { display: flex; flex: 0 0 26px; }
body .product-page .section-support-benefits .support-benefit-icon :is(img, .icon) { width: 26px; height: 26px; object-fit: contain; }
body .product-page .product-detail-information { padding-top: 0 !important; }
@media (min-width: 992px) { body .product-page .section-alternatives .content { padding-inline: 64px; } }

/* Product page - Availability explanation dialog */
body .product-page button.availability-help { align-self: flex-start; margin: 0 0 14px; padding: 0; border: 0; background: transparent; color: #555; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
body.availability-dialog-open { overflow: hidden; }
body .product-page .availability-dialog { width: min(720px, calc(100vw - 40px)); max-height: calc(100dvh - 48px); margin: auto; padding: 24px; border: 0; border-radius: 8px; color: #333; background: #fff; overflow-y: auto; }
body .product-page .availability-dialog::backdrop { background: #10130f99; backdrop-filter: blur(4px); }
body .product-page .availability-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
body .product-page .availability-dialog-head h2 { margin: 0; font-size: 22px; font-weight: 600; }
body .product-page .availability-dialog-head button { display: grid; place-items: center; flex-shrink: 0; width: 32px; height: 32px; padding: 0; border: 1px solid #eee; border-radius: 50%; background: #fff; color: #333; }
body .product-page .availability-dialog-content { font-size: 14px; line-height: 1.7; }
body .product-page .availability-explanation + .availability-explanation { margin-top: 20px; padding-top: 20px; border-top: 1px solid #eee; }
body .product-page .availability-explanation :is(h2, h3, h4) { font-size: 17px; font-weight: 600; }

/* Product page - Full width selection and support */
body .product-page .product-selection-wrap { background: transparent; color: #333; }
body .product-page .product-selection-wrap .section-alternatives .heading { color: #000; }
body .product-page .product-selection-wrap .section-alternatives .heading-text { color: #666; }
body .product-page .product-selection-wrap .variant-choice { color: #333; }

/* Product page - Tags and benefits box */
body .product-page .section-support-benefits .support-contact { height: 100%; justify-content: center; }
body .product-page .section-support-benefits .support-details { height: 100%; padding: 28px; border-radius: 8px; background: var(--light-bg); }
body .product-page .support-details .product-meta-links { margin: 0 0 24px !important; padding: 0 0 24px; border: 0; border-bottom: 1px solid #e5e7e9; }
@media (max-width: 767px) { body .product-page .section-support-benefits .support-details { padding: 22px; } }
body .product-page .support-details .product-meta-row a { padding: 3px 7px; border-radius: 4px; }
body .product-page .support-details .product-meta-row { grid-template-columns: 1fr; gap: 8px; }

/* Product page - Custom print parallax */
body .product-page .section-custom-print { padding-block: 72px; background-image: linear-gradient(#0009, #0009), var(--custom-print-image); background-size: cover; background-position: center; color: #fff; }
body .product-page .section-custom-print .content { max-width: 780px; margin-inline: auto; text-align: center; }
body .product-page .section-custom-print .heading, body .product-page .section-custom-print .heading-text { color: #fff; }
body .product-page .section-custom-print .heading-text { margin-inline: auto; }
@media (min-width: 992px) { body .product-page .section-custom-print { background-attachment: fixed; } }
@media (prefers-reduced-motion: reduce) { body .product-page .section-custom-print { background-attachment: scroll; } }

/* Product page - Výber farby a veľkosti (Skladem / Na objednávku) */
body .product-page .product-configurator {
    --pick-ok: #078446;
    --pick-ok-dark: #15803d;
    --pick-ok-soft: #e7f5eb;
    --pick-order: #e88913;
    --pick-order-text: #9a5100;
    --pick-box: #f7fbf8;
    --pick-line: #cfe3d5;
}
body .product-page .product-options .config-step.color-step,
body .product-page .product-options .config-step.size-step { margin: 0 0 14px; padding: 12px 14px; border: 1px solid var(--pick-line); border-radius: 12px; background: var(--pick-box); }
body .product-page .color-step.is-chosen { border-color: #b9d9c4; background: var(--pick-ok-soft); }
body .product-page .color-step .step-head { display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; margin-bottom: 10px; }
body .product-page .color-step .step-labels { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
body .product-page .product-options .config-step .heading { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.2; }
body .product-page .color-step #selected-color-name { overflow: hidden; color: #315441; font-size: 14px; font-weight: 700; line-height: 1.2; white-space: nowrap; text-overflow: ellipsis; }
body .product-page .stock-switch { display: inline-flex; flex: none; gap: 3px; padding: 4px; border: 1px solid #dbe8df; border-radius: 999px; background: #f1f6f2; box-shadow: 0 1px 3px rgb(14 74 39 / 6%); }
body .product-page .stock-switch button { min-height: 32px; padding: 5px 14px; border: 0; border-radius: 999px; background: transparent; color: #3e5547; font-size: 13px; font-weight: 600; line-height: 1.2; white-space: nowrap; }
body .product-page .stock-switch button[aria-pressed="true"] { background: var(--pick-ok); color: #fff; box-shadow: 0 2px 7px rgb(0 98 48 / 23%); }
body .product-page .stock-switch button[data-stock-mode="2"] { color: var(--pick-order-text); }
body .product-page .stock-switch button[data-stock-mode="2"][aria-pressed="true"] { background: var(--pick-order); color: #fff; box-shadow: 0 2px 7px rgb(171 89 0 / 22%); }
body .product-page .stock-switch button:disabled { opacity: .45; cursor: not-allowed; }
body .product-page .stock-switch button:focus-visible { outline: 3px solid #91d8ad; outline-offset: 2px; }
body .product-page .color-scroll, body .product-page .color-scroll .color-availability-row { position: relative; min-width: 0; max-width: 100%; }
body .product-page .color-scroll .color-options { display: flex; width: 100%; min-width: 0; flex-wrap: wrap; gap: 8px 6px; padding: 4px 2px 6px; }
body .product-page .color-scroll-arrow { display: none; }
body .product-page .detail-color-option { position: relative; flex: 0 0 auto; cursor: pointer; }
body .product-page .detail-color-option span { display: block; width: 40px; height: 40px; min-width: 40px; padding: 0; overflow: hidden; border: 1px solid #c6d0c9; border-radius: 50%; }
body .product-page .detail-color-option img { display: block; width: 100%; height: 100%; object-fit: cover; }
body .product-page .detail-color-option input:checked + span { border: 2px solid var(--pick-ok-dark); box-shadow: 0 0 0 3px #c9ead3; }
/* Farby druhej záložky sú skryté (poznámka klienta 28. 10. 2026). */
body .product-page .detail-color-option[hidden] { display: none; }
/* Nedostupná voľba ostáva viditeľná: jemne zošednutá s ikonou krížika (poznámka klienta 22. 10. 2026). */
body .product-page :is(.detail-color-option, .size-option).is-off { cursor: not-allowed; }
body .product-page .detail-color-option.is-off span { opacity: .78; }
body .product-page .detail-color-option.is-off img { filter: grayscale(.35); }
body .product-page :is(.detail-color-option, .size-option).is-off::after { content: "×"; position: absolute; right: -4px; bottom: -3px; z-index: 1; display: grid; place-items: center; width: 18px; height: 18px; border: 2px solid #fff; border-radius: 50%; background: #737b76; color: #fff; font: 700 14px/1 Arial, sans-serif; pointer-events: none; }
body .product-page .size-step .step-head { margin-bottom: 10px; }
body .product-page .size-step .step-head .heading,
body .product-page .size-step .step-head .size-chart-link { margin-bottom: 0; }
body .product-page .size-options { gap: 6px; }
body .product-page .size-option { position: relative; }
/* Menšie veľkosti: XS až 5XL sa na desktope zmestia do jedného riadku. */
body .product-page .product-options .size-option span, body .product-page .product-options .biggest-size { min-width: 46px; height: 46px; padding: 8px 10px; border: 1px solid #cfd8d2; border-radius: 7px; background: #fff; font-size: 15px; font-weight: 600; }
body .product-page .product-options .size-option input:checked + span { border-color: var(--pick-ok-dark); background: var(--pick-ok-soft); color: #176b3b; box-shadow: 0 0 0 2px #b9d9c4; }
body .product-page .product-options .size-option.is-off span { background: #e8ece9; color: #7b867f; text-decoration: none; }
@media (max-width: 767px) {
    body .product-page .product-options .config-step.color-step,
    body .product-page .product-options .config-step.size-step { padding: 10px 11px; }
    body .product-page .color-step .step-head { min-height: 0; }
    body .product-page .color-step #selected-color-name { font-size: 12px; }
    body .product-page .stock-switch button { min-height: 30px; padding: 5px 9px; font-size: 12px; font-weight: 700; }
    /* Na mobile je farieb jeden posuvný riadok so šípkami. */
    body .product-page .color-scroll { margin-inline: -4px; }
    body .product-page .color-scroll .color-options { flex-wrap: nowrap; gap: 8px; padding: 5px 32px 8px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
    body .product-page .color-scroll .color-options::-webkit-scrollbar { display: none; }
    body .product-page .detail-color-option { scroll-snap-align: center; }
    body .product-page .detail-color-option span { width: 42px; height: 42px; min-width: 42px; }
    /* Výraznejšie šípky, aby bolo jasné, že sa farby posúvajú (poznámka klienta 5. 11. 2026). */
    body .product-page .color-scroll-arrow { position: absolute; top: 11px; z-index: 2; display: grid; place-items: center; width: 30px; height: 30px; padding: 0 0 3px; border: 1px solid #177447; border-radius: 50%; background: #fff; color: #0f5c36; font-size: 24px; font-weight: 700; line-height: 1; box-shadow: 0 1px 5px rgba(0, 0, 0, .28); }
    body .product-page .color-scroll-arrow[data-scroll-dir="-1"] { left: 0; }
    body .product-page .color-scroll-arrow[data-scroll-dir="1"] { right: 0; }
    body .product-page .color-scroll-arrow:disabled { opacity: .25; }
    body .product-page .color-scroll-arrow[hidden] { display: none; }
    body .product-page .product-options .size-option span, body .product-page .product-options .biggest-size { min-width: 46px; height: 44px; font-size: 13px; font-weight: 700; }
    /* Veľkosti a neúplný riadok farieb sú na mobile vycentrované; pri pretečení sa farby posúvajú od začiatku. */
    body .product-page .product-options .size-options { justify-content: center; }
    body .product-page .color-scroll .color-options::before,
    body .product-page .color-scroll .color-options::after { content: ""; flex: 0 0 0; margin-inline: auto; }
}

/* Product page - Dostupnosť pod veľkosťami ako text bez rámčeka, vedľa nej vysvetlenie (poznámka klienta 28. 10. 2026). */
body .product-page .size-step .availability-strip { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 12px 0 0; padding: 0; border: 0; background: none; font-size: 13px; }
body .product-page .size-step .availability-strip .icon-label { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; text-transform: uppercase; }
body .product-page .size-step .availability-help { margin: 0 0 0 auto !important; padding: 0; border: 0; background: none; color: var(--shop-muted); font-size: 12px; text-decoration: underline; text-underline-offset: 2px; }

/* Product page - Povinná poznámka vyzerá ako krok farby a veľkosti, po vyplnení zelená (poznámka klienta 28. 10. 2026). */
body .product-page .product-configurator .product-note-box.is-required { margin: 0 0 14px; padding: 12px 14px; border: 1px solid var(--pick-line); border-radius: 12px; background: var(--pick-box); }
body .product-page .product-configurator .product-note-box.is-required:has(textarea:not(:placeholder-shown)) { border-color: #b9d9c4; background: var(--pick-ok-soft); }
body .product-page .product-note-box.is-required > label::before { content: none; }
body .product-page .product-note-box.is-required > .product-note-instructions { display: block; }
body .product-page .product-note-box.is-required textarea { border-color: var(--pick-line); }
body .product-page .product-note-box.is-required textarea:focus { border-color: var(--pick-ok-dark); box-shadow: 0 0 0 3px #c9ead3; }
/* Text poznámky je asi dvojnásobný, zvyčajne ide o pár slov. */
body .product-page .product-note-box textarea { min-height: 96px; font-size: 24px; line-height: 1.35; }
body .product-page .product-note-box textarea::placeholder { font-size: 15px; line-height: 1.5; }

/* Product page - Iná varianta: nadpisy vedľa tlačidiel a menšie medzery (poznámka klienta 28. 10. 2026). */
body .product-page .section-alternatives { padding: 28px 0 32px; }
body .product-page .section-alternatives .content > .heading-box { margin-bottom: 16px; }
body .product-page .section-alternatives .config-step { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; }
body .product-page .section-alternatives .config-step .heading { margin: 0; }
body .product-page .section-alternatives .config-step + .config-step { margin-top: 14px; }
body .product-page .section-alternatives .variant-filter-row { margin: 0; }
body .product-page .section-alternatives .variant-carousel-wrap { flex: 0 0 100%; min-width: 0; max-width: 100%; margin-top: 8px; }

/* Product page - Mobilná galéria: fotka vypĺňa celý štvorec galérie, šípky aj náhľady ležia v nej
   (poznámka klienta 27. 10. 2026 – bez potreby zväčšovať). */
@media (max-width: 767px) {
    body .product-page .gallery-main .gallery-image a { padding: 0; }
    body .product-page .gallery-main .gallery-nav { width: 34px; height: 34px; border-color: transparent; background: rgb(255 255 255 / 80%); box-shadow: 0 1px 4px rgb(0 0 0 / 14%); }
    body .product-page .gallery-main .gallery-prev { left: 8px; }
    body .product-page .gallery-main .gallery-next { right: 8px; }
    body .product-page .gallery-thumbs-row { display: block; padding-inline: 8px; }
    body .product-page .gallery-thumbs-row > button { display: none; }
    body .product-page .gallery-thumbs { height: 44px; }
    body .product-page .gallery-thumbs .swiper-slide { width: 44px; height: 44px; }
    body .product-page .gallery-thumbs button { padding: 2px; }
    body .product-page .gallery-thumbs button.is-active { padding: 1px; }
}
/* Náhľady sú priamo vo fotke, aby sa pod ňou uvoľnilo miesto (poznámka klienta 4. 11. 2026, na mobile od 28. 10.). */
body .product-page .gallery-enhanced { position: relative; }
body .product-page .gallery-thumbs-row { position: absolute; right: 0; bottom: 8px; left: 0; z-index: 4; margin: 0; padding-inline: 4px; pointer-events: none; }
body .product-page .gallery-thumbs-row > button, body .product-page .gallery-thumbs { pointer-events: auto; }
body .product-page .gallery-thumbs button { border-radius: 6px; background: rgb(255 255 255 / 85%); box-shadow: 0 1px 4px rgb(0 0 0 / 14%); }
body .product-page .gallery-counter { display: none; }
body .product-page .gallery-main .gallery-zoom { top: 10px; bottom: auto; }

/* Product page - Poznámky klienta 28. 10. 2026 večer */
/* Mobil: namiesto názvu produktu v omrvinke riadok s názvom trička a tlačidlom na iný textil. */
body .product-page .product-textile-row { display: none; }
@media (min-width: 768px) {
    /* Počítač: omrvinka vľavo, tlačidlo na iný textil vpravo v tom istom riadku (poznámka klienta 4. 11. 2026). */
    body .product-page .product-crumbs-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 8px; }
    body .product-page .product-crumbs-row > nav { flex: 1 1 auto; min-width: 0; }
    body .product-page .product-crumbs-row .breadcrumb { margin-bottom: 0 !important; }
    body .product-page .product-textile-row { display: block; flex: none; }
    body .product-page .product-textile-name { display: none; }
    body .product-page .product-textile-change { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border: 1px solid var(--shop-line); border-radius: 999px; background: #fff; color: var(--second-color); font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; }
    body .product-page .product-textile-change:hover { border-color: var(--second-color); }
    body .product-page .product-textile-change .icon { width: 14px; height: 14px; }
}
@media (max-width: 767px) {
    body .product-page .breadcrumb .breadcrumb-product { display: none; }
    /* Tlačidlo je vždy vpravo, dlhý názov trička sa skráti a nezalomí (poznámka klienta 31. 10. 2026). */
    body .product-page .product-textile-row { display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 12px; margin: 6px 0 4px; }
    body .product-page .product-textile-name { flex: 1 1 0; min-width: 0; overflow: hidden; color: var(--second-color); font-size: 13px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
    body .product-page .product-textile-change { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border: 1px solid var(--shop-line); border-radius: 999px; background: #fff; color: var(--second-color); font-size: 12px; font-weight: 600; text-decoration: none; white-space: nowrap; }
    body .product-page .product-textile-change .icon { width: 14px; height: 14px; }
}
/* Zvolená farba: biely krúžok a okolo neho zelený, aby nezanikal pri tmavých farbách (poznámka klienta 3. 11. 2026). */
body .product-page .detail-color-option input:checked + span { border: 3px solid #fff; box-shadow: 0 0 0 2px var(--pick-ok-dark); }
/* Veľkosti aj farby sú vycentrované; dostupnosť je pod rámčekom veľkostí. */
body .product-page .product-options .size-options { justify-content: center; }
@media (min-width: 768px) { body .product-page .color-scroll .color-options { justify-content: center; } }
body .product-page .product-options > .availability-strip { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: -4px 4px 14px; padding: 0; border: 0; background: none; font-size: 13px; }
body .product-page .product-options > .availability-strip .icon-label { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; text-transform: uppercase; }
body .product-page .product-options > .availability-strip .availability-help { margin: 0 0 0 auto !important; padding: 0; border: 0; background: none; color: var(--shop-muted); font-size: 12px; text-decoration: underline; text-underline-offset: 2px; }
/* Povinná poznámka: výrazný zelený rámček s nadpisom z administrácie, ako na pôvodnom webe. */
body .product-page .product-configurator .product-note-box.is-required { border: 2px solid var(--pick-ok-dark); background: var(--pick-ok-soft); }
body .product-page .product-note-box.is-required .product-note-instruction-header, body .product-page .product-note-box.is-required > label { color: #14532d; font-size: 17px; font-weight: 700; }
body .product-page .product-note-box.is-required .product-note-instruction-text { color: #315441; font-size: 13px; }
/* Nepovinná poznámka: riadok otvorí okno, obsah stránky sa neposúva. */
body .product-page .product-note-trigger { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; margin: 4px 0 0; padding: 16px 0; border: 0; border-top: 1px solid #ededed; border-bottom: 1px solid #ededed; background: none; color: var(--second-color); text-align: left; }
body .product-page .product-note-trigger-text { display: grid; gap: 4px; min-width: 0; }
body .product-page .product-note-trigger strong { font-size: 14px; font-weight: 600; }
body .product-page .product-note-preview { overflow: hidden; color: var(--pick-ok-dark); font-size: 13px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
body .product-page .product-note-trigger:not(.is-filled) .product-note-preview { display: none; }
body .product-page .product-note-trigger > .icon { width: 18px; height: 18px; flex-shrink: 0; }
body .product-page .product-note-dialog { width: calc(100% - 32px); max-width: 560px; max-height: calc(100dvh - 32px); margin: auto; padding: 22px; overflow: auto; border: 0; border-radius: 14px; background: #fff; color: var(--second-color); box-shadow: 0 24px 80px rgb(0 0 0 / 18%); }
body .product-page .product-note-dialog::backdrop { background: rgb(0 0 0 / 45%); }
body .product-page .product-note-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
body .product-page .product-note-dialog-head h2 { margin: 0; font-size: 18px; font-weight: 700; line-height: 1.35; }
body .product-page .product-note-dialog-close { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; background: var(--light-bg); color: var(--second-color); }
body .product-page .product-note-dialog-close .icon { width: 18px; height: 18px; }
body .product-page .product-note-dialog .product-note-box { margin: 0 0 16px; }
body .product-page .product-note-dialog .product-note-save { width: 100%; }
/* Mobil: tlačidlo do košíka je iba v ukotvenej lište dole (modern.js), vo formulári ostáva cena a počet kusov. */
@media (max-width: 639px) {
    body.sticky-buy-visible .product-page #cart-submit { display: none; }
    /* Počet kusov je v ukotvenej lište dole (poznámka klienta 31. 10. 2026). */
    body.sticky-buy-visible .product-page .product-buy-row { display: none; }
}
/* Povinná poznámka: potvrdenie pod poľom a skok z lišty kúsok pod ukotvenú hlavičku (tú rieši scroll-padding stránky). */
body .product-page .product-note-box { scroll-margin-top: 12px; }
body .product-page .product-note-confirm { margin-top: 10px; }
body .product-page .product-note-confirm.is-saved { --btn-bg: transparent; --btn-color: var(--pick-ok-dark); border-color: var(--pick-ok-dark); display: inline-flex; align-items: center; gap: 6px; }
body .product-page .product-note-confirm .icon { width: 14px; height: 14px; }

/* Cena, tlačidlo a počet: na počítači v jednom riadku, aby sa tlačidlo vošlo nad hranu obrazovky (poznámka klienta 3. 11. 2026). */
body .product-page .product-purchase { margin-top: 16px; }
body .product-page .product-purchase .product-price-summary { margin: 0 0 12px; padding: 0; border: 0; }
body .product-page .product-purchase .product-buy-row { margin-top: 0; }
@media (min-width: 992px) {
    body .product-page .product-purchase { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 20px; align-items: center; }
    body .product-page .product-purchase .product-price-summary { max-width: 170px; margin: 0; }
    body .product-page .product-purchase .detail-price { white-space: nowrap; }
}
body .product-page .variant-filter[hidden] { display: none; }
/* Užší obrázok výšku štvorca presahoval a orezal sa spodok; takto sa zmestí celý (poznámka klienta 3. 11. 2026). */
body .product-page .variant-image img { position: absolute; inset: 0; }
/* Plocha ceruzky pre fotku pozadia banneru; vykresľuje sa iba v režime úprav. */
body .product-page .section-custom-print { position: relative; }
body .product-page .custom-print-image-edit { position: absolute; top: 0; right: 0; width: 64px; height: 64px; }
/* Veľkosť poľa poznámky sa na mobile nemení (poznámka klienta 3. 11. 2026). */
@media (max-width: 991px) { body .product-page .product-note-box textarea { resize: none; } }
body .product-page .section-custom-print .heading-box .heading-text { color: #fff; }

/* Admin panel: tlačidlo a vedľa neho akcie v rade, na mobile schované pod tlačidlom (poznámka klienta 4. 11. 2026). */
.product-page .admin-quick-panel { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; width: calc(100% - 48px); max-width: 1320px; margin: 16px auto 0; padding: 8px 12px; border: 1px solid var(--shop-line); border-radius: 8px; background: var(--shop-paper); font-size: 13px; }
.product-page .admin-panel-toggle { padding: 5px 12px; border: 1px solid var(--second-color); border-radius: 6px; background: var(--second-color); color: #fff; font-size: 13px; font-weight: 700; pointer-events: none; }
.product-page .admin-panel-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.product-page .admin-panel-action { padding: 5px 10px; border: 1px solid var(--shop-line); border-radius: 6px; background: #fff; color: var(--second-color); font-size: 12px; font-weight: 600; text-decoration: none; }
.product-page .admin-panel-action:hover { border-color: var(--second-color); color: var(--second-color); }
.product-page .admin-panel-action.is-warning { border-color: #e0a800; }
.product-page .admin-panel-flash { flex-basis: 100%; margin: 0; color: var(--conversion-color); font-weight: 600; }
.product-page .admin-panel-dialog { width: min(360px, calc(100vw - 32px)); padding: 20px; border: 0; border-radius: 10px; }
.product-page .admin-panel-dialog::backdrop { background: #00000080; }
.product-page .admin-panel-dialog form { display: grid; gap: 12px; }
.product-page .admin-panel-dialog h2 { margin: 0; font-size: 18px; font-weight: 700; }
.product-page .admin-panel-dialog label { display: grid; gap: 4px; font-size: 13px; font-weight: 600; }
.product-page .admin-panel-dialog input:not([type="hidden"]) { width: 100%; padding: 8px 10px; border: 1px solid var(--shop-line); border-radius: 5px; }
.product-page .admin-panel-dialog footer { display: flex; justify-content: flex-end; gap: 8px; }
@media (max-width: 767px) {
    .product-page .admin-quick-panel { width: calc(100% - 32px); }
    .product-page .admin-panel-toggle { pointer-events: auto; }
    .product-page .admin-quick-panel:not(.is-open) .admin-panel-actions { display: none; }
}

/* Klik na neaktívne tlačidlo košíka: rámček toho, čo chýba, je červený a tlačidlo zapulzuje (poznámka klienta 4. 11. 2026). */
body .product-page #cart-submit:disabled { pointer-events: none; }
body .product-page .is-missing-choice, body .product-page .config-step.is-missing-choice { border-color: var(--main-color) !important; box-shadow: 0 0 0 1px var(--main-color); }
@keyframes shop-buy-pulse { 0%, 100% { background: #ebebeb; color: #606a5b; box-shadow: none; } 50% { background: var(--main-color); color: var(--main-text-color); box-shadow: 0 0 0 5px rgb(222 19 27 / 22%); } }
body .detail-add-button.is-pulse, body .sticky-buy-submit.is-pulse { animation: shop-buy-pulse .55s ease-in-out 3; }
@media (prefers-reduced-motion: reduce) { body .detail-add-button.is-pulse, body .sticky-buy-submit.is-pulse { animation: none; } }

/* Nadpis detailu neprekáža rámčeku pod ním ani s dĺžňom a j, y (poznámka klienta 5. 11. 2026). */
@media (min-width: 992px) {
    body .product-page .product-selection .heading-box .product-detail-title { margin-bottom: 12px; }
}
/* Popis Produktu bez variantov nad cenou, ako legacy (poznámka klienta 5. 11. 2026). */
body .product-page .product-top-description { width: 100%; margin-bottom: 16px; }
body .product-page .product-top-description > :last-child { margin-bottom: 0; }
body .product-page .product-top-description :is(h1, h2, h3, h4) { margin: 16px 0 8px; font-size: 18px; font-weight: 700; line-height: 1.3; }
body .product-page .product-top-description > :first-child { margin-top: 0; }
@media (max-width: 991px) {
    body .product-page .product-top-description { order: 0; margin-bottom: 0; }
    /* Mobil hrnček: pole na poznámku hneď pod fotkou, popis až za ním (poznámka klienta 6. 11. 2026). */
    body .product-page .product-overview:has(form[data-no-variants] .product-note-box) .product-top-description { order: 2; }
    body .product-page form[data-no-variants]:has(.product-note-box) { display: flex; flex-direction: column; }
    body .product-page form[data-no-variants] > .product-note-box { order: -1; margin: 0 0 16px; }
}

/* Veľkostná tabuľka: menší nadpis okna (poznámka klienta 5. 11. 2026). */
body .product-page .size-chart-dialog .size-chart-header .heading { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.35; letter-spacing: 0; }
