/* AUTO-GENERATED przez scripts/deploy.sh — NIE EDYTOWAĆ RĘCZNIE. Źródła: static/css/style.css static/css/responsive.css */

/* ==== static/css/style.css ==== */
/**
 * GLOBAL VARIABLES
 */
:root {
    /** UNIVERSAL **/
    --space-60: 60px;
    --space-50: 50px;
    --space-40: 40px;
    --space-25: 25px;

    --font-48: 48px;
    --font-40: 40px;
    --font-36: 36px;
    --font-30: 30px;
    --font-24: 24px;

    --container-padding: 40px;

    --row-gap: 11px;

    --font-secondary: "Poppins", serif;

    /** SPECIFIC **/
    --color-primary: #3D6800;
    --color-secondary: #876C38;
    --color-default: #333;
    --color-border-deafult: rgba(0, 0, 0, 0.1);
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 75px;
}

body {
    color: #000;
    font-family: "Red Hat Display", serif;
    /*max-width: unset;*/
}

/**
 * BASIC
 */

a, input, select, textarea, option, button {
    outline: none !important;
}

em {
    padding-right: 2px;
}

h1 {
}

h2 {
}

h3 {
}

h4 {
}

h5 {
}

a {
    color: #000;
    transition: all .2s linear;
}

a:hover, a:focus {
    color: #000;
}

/**
 * EXTRA
 */
/* Animations lib */
.animationDuration {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
}

/* Mourning class added to body */
.mourning {
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%);
}


.grayscale {
    filter: grayscale(1);
}

.grayscale-fade {
    transition: filter 0.2s;
}

.grayscale-fade:hover,
.grayscale-fade:focus {
    filter: grayscale(0);
}

/**
 * PAGE
 */

#page,
#content {
    overflow: hidden;
}

.container {
    clear: both;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
    max-width: 1720px;
    width: 100%;
}

.container-md {
    max-width: 1440px;
}

.container--noClear {
    clear: none;
}

.container--noClear::before,
.container--noClear::after {
    display: none;
}

/**
 * ICONS
 */

.icon-mask.icon-mask {
    -webkit-mask-size: cover;
    -mask-size: cover;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    background-color: currentColor;
}

.icon-facebook {
    -webkit-mask-image: url('../images/icons/social/facebook.svg');
    mask-image: url('../images/icons/social/facebook.svg');
}

.icon-instagram {
    -webkit-mask-image: url('../images/icons/social/instagram.svg');
    mask-image: url('../images/icons/social/instagram.svg');
}

.icon-linkedin {
    -webkit-mask-image: url('../images/icons/social/linkedin.svg');
    mask-image: url('../images/icons/social/linkedin.svg');
}

.icon-twitter,
.icon-x {
    -webkit-mask-image: url('../images/icons/social/twitter.svg');
    mask-image: url('../images/icons/social/twitter.svg');
}

.icon-youtube {
    -webkit-mask-image: url('../images/icons/social/youtube.svg');
    mask-image: url('../images/icons/social/youtube.svg');
}

.icon-pinterest {
    -webkit-mask-image: url('../images/icons/social/pinterest.svg');
    mask-image: url('../images/icons/social/pinterest.svg');
}

.icon-user {
    -webkit-mask-image: url('../images/icons/user.svg');
    mask-image: url('../images/icons/user.svg');
}

.icon-register {
    -webkit-mask-image: url('../images/icons/register.svg');
    mask-image: url('../images/icons/register.svg');
}

.icon-logout {
    -webkit-mask-image: url('../images/icons/logout.svg');
    mask-image: url('../images/icons/logout.svg');
}


/**
 * THEMES
 */

.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.btn-primary.active:focus,
.btn-primary:hover:focus,
.btn-primary:hover:active,
.btn-primary:focus:active {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

.btn-primary.disabled.focus,
.btn-primary.disabled:focus,
.btn-primary.disabled:hover,
.btn-primary[disabled].focus,
.btn-primary[disabled]:focus,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary.focus,
fieldset[disabled] .btn-primary:focus,
fieldset[disabled] .btn-primary:hover {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}


.btn-primary.active {
    background-color: #fff;
    color: var(--color-primary);
}

.btn-primary[disabled],
.btn-primary[disabled]:hover {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-secondary,
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active,
.btn-secondary.active,
.btn-secondary.active:focus,
.btn-secondary:hover:focus,
.btn-secondary:hover:active,
.btn-secondary:focus:active {
    background-color: var(--color-secondary);
    border-color: var(--color-secondary);
    color: #fff;
}

.btn-secondary.active {
    background-color: #fff;
    color: var(--color-secondary);
}

.btn-secondary[disabled],
.btn-secondary[disabled]:hover {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-default,
.btn-default:hover,
.btn-default:focus,
.btn-default:active,
.btn-default.active,
.btn-default.active:focus,
.btn-default:hover:focus,
.btn-default:hover:active,
.btn-default:focus:active {
    background-color: var(--color-default);
    border-color: var(--color-default);
    color: #fff;
}


.btn-default.disabled.focus,
.btn-default.disabled:focus,
.btn-default.disabled:hover,
.btn-default[disabled].focus,
.btn-default[disabled]:focus,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default.focus,
fieldset[disabled] .btn-default:focus,
fieldset[disabled] .btn-default:hover {
    background-color: var(--color-default);
    border-color: var(--color-default);
}


.btn-default.active {
    background-color: #fff;
    color: var(--color-default);
}

.btn-default[disabled],
.btn-default[disabled]:hover {
    opacity: 0.6;
    cursor: not-allowed;
}

@media screen and (min-width: 1140px) {
    .btn-primary:not([disabled]):hover,
    .btn-primary:not([disabled]).active:hover {
        background-color: var(--color-secondary);
        border-color: var(--color-secondary);
        color: #fff;
    }

    .btn-secondary:not([disabled]):hover,
    .btn-secondary:not([disabled]).active:hover {
        background-color: #fff;
        color: var(--color-secondary);
    }

    .btn-default:not([disabled]):hover,
    .btn-default:not([disabled]).active:hover {
        background-color: #fff;
        color: var(--color-default);
    }
}

/**
 * BUTTONS
 */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    transition: all .2s linear;
}

.btn-lg {
    border-radius: 20px 20px 20px 20px;
    min-height: 46px;
    padding: 10px calc(var(--space-25));
    gap: calc(var(--space-25) - 7px);
    font-size: 15px;
    text-transform: uppercase;
}

/**
 * BOOTSTRAP
 */
.panel,
.panel-heading,
.modal-content,
.alert,
.popover {
    border-radius: 0;
}

.panel {
    box-shadow: none;
}

.panel-default {
    border-color: #e5e5e5;
}

.row {
    margin-left: calc(-1 * var(--row-gap));
    margin-right: calc(-1 * var(--row-gap));
    display: flex;
    flex-wrap: wrap;
}

.col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7,
.col-lg-8, .col-lg-9, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5,
.col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3,
.col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12,
.col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9 {
    padding-left: var(--row-gap);
    padding-right: var(--row-gap);
}

.modal-footer[style="display: block;"] {
    display: flex !important;
    justify-content: space-between;
    flex-wrap: wrap;
}

.modal-footer:after, .modal-footer:before {
    content: none;
}

/**
 * TEXT
 */

.text {
    overflow: visible;
    font-size: 15px;
    line-height: 2em;
}

/** Text list custom dots **/
.text ul,
.text ol ul,
.text ul ul {
    list-style: none;
}

.text ul > li,
.text ol > li {
    left: 40px;
    position: relative;
    padding-right: 40px;
}

.text ul > li::before {
    content: "•";
    position: relative;
    display: inline-block;
    width: 10px;
    left: -10px;
    margin-left: -10px;
    line-height: 1em;
    font-family: sans-serif;
    font-weight: 900;
    font-size: 18px;
}

.text ol > li::marker {
    word-spacing: 3px;
}

/** Text table **/
.text table {
    margin: 30px 0;
}

.text table tr:nth-child(even) {
    background: rgba(0, 0, 0, 0.05);
}

.text table td {
    padding: 12px 12px;
    border: 1px solid #ddd;
}

/**
 * HEADER
 */

header {
    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;
    right: 0;
    background-color: #fff;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

#content {
    padding-top: 124px;
}

.header-inner {
    width: 100%;
    display: flex;
    align-items: center;
    gap: calc(1 * var(--space-60));
    padding: 39px 0;
    transition: all .2s linear;
}

header.sticky .header-inner {
    padding: 14px 0;
}

.header-right {
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.logo {
    margin-top: -11px;
    margin-bottom: -10px;
    transition: all .2s linear;
}

header.sticky .logo {
    width: 165px;
    margin-top: -8px;
    margin-bottom: -10px;
}

.logo a {
    display: block;
}

.logo a img {
    display: block;
    max-width: 100%;
}

#main-menu > ul {
    display: flex;
    gap: 1px;
}

#main-menu > ul > li > a {
    font-size: 15px;
    font-weight: 600;
    white-space: nowrap;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px min(var(--space-25), 15px);
    min-height: 46px;
    color: #000;
    text-align: center;
}

#main-menu > ul > li > a:before {
    content: attr(data-content);
    width: fit-content;
    font-weight: 700;
    font-size: 15px;
    height: 0;
    overflow: hidden;
}

#main-menu > ul > li.active > a {
    font-weight: 700;
    color: #fff;
    background-color: var(--color-primary);
}

@media screen and (min-width: 1140px) {
    #main-menu > ul > li > a:hover {
        font-weight: 700;
        color: #fff;
        background-color: var(--color-primary);
    }
}

#main-menu li {
    position: relative;
    display: inline-block;
    font-size: 1rem;
}

#main-menu > ul > li > ul {
    display: flex;
    flex-direction: column;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    transition: all .2s linear;
    top: 100%;
    left: 0;
    width: 300px;
    border-top: 1px solid var(--color-primary);
}

#main-menu > ul > li > ul > li > a {
    padding: 10px var(--space-25);
    min-height: 50px;
    text-transform: uppercase;
    font-size: 14px;
    color: #000;
    background-color: #fff;
    display: flex;
    align-items: center;
}

#main-menu > ul > li > ul > li + li {
    border-top: 1px solid var(--color-primary);
}

@media screen and (min-width: 1140px) {
    #main-menu > ul > li > ul > li > a:hover {
        color: #fff;
        background-color: var(--color-primary);
    }
}

#main-menu > ul > li > ul > li.active > a {
    color: #fff;
    background-color: var(--color-primary);
}

#main-menu li > ul > li > ul {
    top: 0;
    left: 100%;
}

#main-menu > ul > li:hover > ul {
    opacity: 1;
    pointer-events: initial;
}

.main-menu-button {
    float: right;
    width: 40px;
    border: none;
    background: transparent;
    order: 3;
}

.mainsearch-rwd-button {
    order: 2;
}

.main-menu-button.animIcon--hamburger.active span {
    background-color: var(--color-primary);
}

.mainsearch.rwdPanel {
    display: block;
}

.mainsearch {
    float: left;
    position: relative;
    width: 220px;
    max-width: 100%;
    margin-right: var(--space-50);
}

.mainsearch-search {
    display: flex;
    align-items: stretch;
}

.mainsearch .form-element-container {
    flex-grow: 1;
}

.mainsearch input.form-control {
    border-radius: 10px 0px 0px 10px !important;
    display: block;
    height: 46px;
    padding: 5px 15px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-right: none;
    box-shadow: none;
    border-radius: 0;
    font-size: 15px;
    font-family: "Red Hat Display", serif;
    color: #000;
}

.mainsearch input.form-control::placeholder {
    font-size: 15px;
    font-family: "Red Hat Display", serif;
    color: #000;
}

.mainsearch-submit {
    border-radius: 0px 10px 10px 0px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 46px;
    flex-shrink: 0;
    padding: 0;
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-left: none;
    transition: all 0.4s;
}

.mainsearch .alert-block {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
}

.mainsearch .form-control-feedback {
    display: none;
}

@media screen and (min-width: 1140px) {
    .mainsearch-submit:hover {
        background-color: var(--color-primary);
        color: #fff;
    }
}

/*
* USER NAV
*/

.header-inner .user-nav {
    display: flex;
    align-items: stretch;
}

.header-inner .user-nav-item {
    display: flex;
    align-items: stretch;
    position: relative;
}

.header-inner .user-nav-item-inner .icon {
    border-radius: 10px;
    width: 46px;
    height: 46px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--color-primary);
    border: 1px solid var(--color-primary);

}

.header-inner .user-nav-item-inner {
    display: flex;
    align-items: center;
    color: #fff;
}

.header-inner .user-nav-item + .user-nav-item {
    padding-left: 20px;
    margin-left: 20px;
}

.header-inner .user-nav-item + .user-nav-item::before {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    -webkit-transform: translate3d(0, -50%, 0);
    -moz-transform: translate3d(0, -50%, 0);
    -ms-transform: translate3d(0, -50%, 0);
    -o-transform: translate3d(0, -50%, 0);
    transform: translate3d(0, -50%, 0);
    width: 1px;
    height: 12px;
    background-color: rgba(255, 255, 255, 0.6);
}


/**
 * FOOTER
 */
footer {
    position: relative;
}

/* FOOTER BAR */
.footer-bar {
    padding: 16px 0;
    line-height: 1.8571em;
    letter-spacing: 0.05em;
    font-weight: 300;
    font-size: 14px;
    color: #fff;
    background-color: transparent;
}

.footer-bar-content::after {
    content: "";
    display: table;
    clear: both;
}

.footer-bar-content > * {
    float: left;
}

.footer-bar-content > *:not(:last-child) {
    margin-right: 30px;
}

.footer-bar-links {
    margin-left: -8px;
    font-size: 0;
    text-transform: uppercase;
}

.footer-bar-links > li {
    display: inline-block;
    vertical-align: middle;
    margin: 3px 8px;
    font-size: 14px;
    line-height: 24px;
}

.footer-bar-links a {
    color: inherit;
}

.copyright-undicom {
    float: right;
    font-family: inherit;
    font-weight: inherit;
    font-size: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    color: inherit;
}

.copyright-undicom svg {
    max-width: 15px;
    fill: currentColor;
}

/**
 * FORM
 */
form.form {
    /* padding: 15px 0; */
}

/* INPUTY */
.form-control,
.form .form-control {
    box-shadow: none;
    height: 46px;
    border-radius: 0;
    border-color: rgba(0, 0, 0, 0.1);
}

.input-group-addon {
    border-color: rgba(0, 0, 0, 0.1);
}

/* TEXTAREA */
.form textarea.form-control:not([rows]) {
    /* height: 130px; */
}

/* KLAUZULE I ZGODY */
.form .before-consent-row,
.form .after-consent-row,
.form .consent-row label,
.form .consent-all {
    /* font-size: 12px; */
}

.form .consent-row .error {
    /* font-size: 12px; */
    /* letter-spacing: 0; */
}

/* CAPTCHA */
.form .captcha-image-wrapper,
.form .form-group-sm .captcha-image-wrapper,
.form .form-group-lg .captcha-image-wrapper {
    border-radius: 0;
    box-shadow: none;
}

/* KOLOR GWIAZDKI WYMAGANEGO POLA */
.form .form-required-mark {
    /* color: #a94442; */
}

.form-element-select .form-control-feedback,
.form-element-country .glyphicon {
    display: none;
}

.form button.captcha-refresh {
    right: var(--row-gap);
    color: #e10121;
    border-radius: 0;
    background-color: transparent;
    border-color: transparent transparent transparent var(--color-border-deafult);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
}

.form button.captcha-refresh .fa.fa-spin {
    -webkit-animation-play-state: paused;
    -moz-animation-play-state: paused;
    -o-animation-play-state: paused;
    animation-play-state: paused
}

@media screen and (min-width: 1140px) {
    .form button.captcha-refresh:hover {
        border-color: var(--color-secondary);
    }

    .form button.captcha-refresh:hover .fa.fa-spin {
        -webkit-animation-play-state: running;
        -moz-animation-play-state: running;
        -o-animation-play-state: running;
        animation-play-state: running
    }
}

.form-control-feedback {
    top: 50%;
    right: 0;
    -webkit-transform: translate3d(0, -50%, 0);
    -moz-transform: translate3d(0, -50%, 0);
    -ms-transform: translate3d(0, -50%, 0);
    -o-transform: translate3d(0, -50%, 0);
    transform: translate3d(0, -50%, 0);
}

/*---- SELECT 2 -----*/

.select2-dropdown {
    z-index: 100;
    border-radius: 0;
}

.select2-container--default .select2-selection--multiple,
.select2-container .select2-selection--single {
    height: 46px;
    border-color: var(--color-border-deafult);
    border-radius: 0;
    text-align: left;
    padding: 0;
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered,
.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 44px;
    padding-left: 12px;
    font-size: 14px;
    padding-right: 44px;
    color: #000;
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search {
    line-height: 44px;
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered {
    white-space: nowrap;
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
    line-height: 24px;
    display: inline-block;
    float: none;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    margin-top: 8px;
}

.has-feedback .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-right: 68px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    height: auto;
    transition: all 0.4s;
    right: 16px;
    color: #000;
    text-align: center;
    font-size: 0;
}

.select2-container--default .select2-selection--single .select2-selection__arrow:before {
    content: '\f107';
    font-family: 'FontAwesome';
    font-size: 16px;
    vertical-align: middle;
}

.select2-container--default.select2-container--open .select2-selection__arrow {
    -webkit-transform: translateY(-50%) scaleY(-1);
    -moz-transform: translateY(-50%) scaleY(-1);
    -ms-transform: translateY(-50%) scaleY(-1);
    -o-transform: translateY(-50%) scaleY(-1);
    transform: translateY(-50%) scaleY(-1);
}

.select2-container--default .select2-selection--single .select2-selection__arrow > b {
    display: none;
}

.select2-results__option[aria-selected] {
    font-size: 14px;
    line-height: 24px;
    color: #000;
    font-weight: 300;
    padding: 6px 22px;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--color-primary);
}

@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
    .form-element-multiselectCheckbox .select2-results__option:not([role="group"]):not(.select2-results__message)::before {
        -webkit-background-size: 200px 20px !important;
        background-size: 200px 20px !important;
    }
}

/**
 * MAP POINTS
 */

.map-point .custom-map-wrapper {
    position: relative;
}

.map-point .custom-map-wrapper .point {
    position: absolute;
    width: 28px;
    height: 40px;
    background: transparent url('../images/marker.png') no-repeat scroll center center;
    cursor: pointer;
    -webkit-transform: translate3d(-50%, -50%, 0);
    -moz-transform: translate3d(-50%, -50%, 0);
    -ms-transform: translate3d(-50%, -50%, 0);
    -o-transform: translate3d(-50%, -50%, 0);
    transform: translate3d(-50%, -50%, 0);
}

.map-point #marker-cloud-wrapper {
    position: absolute;
    top: 20px;
    left: 20px;
    width: 10%;
    height: 10%;
    background: red;
}

.map-point #marker-cloud-wrapper .popover {
    top: 0 !important;
    left: 0 !important;
    display: block;
    margin: 0;
    width: 300px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    text-shadow: none;
}

.map-point #marker-cloud-wrapper .popover .arrow {
    display: none !important;
}

/**
 * BREADCRUMB
 */

.breadcrumb-container {
    margin: 20px 0;
}

.breadcrumb {
    padding: 0;
    margin: 0;
    text-align: left;
    border-radius: 0;
    background-color: transparent;
}

.breadcrumb > li {
    position: relative;
    display: inline;
    color: #000;
}

.breadcrumb > li > a {
    font-size: 15px;
}

.breadcrumb > li > a:not([href]),
.breadcrumb > li > a:not(:hover) {
    color: inherit;
}

.breadcrumb > li + li:before {
    content: '>';
    font-size: 15px;
    padding: 0 15px;
    color: inherit;
}

.breadcrumb > li > a.last {
    color: var(--color-primary);
}

/**
 * PAGINATION
 */

.pagination-wrapper ul li a {
    color: #000;
    transition: color 0.4s;
}

.pagination-wrapper ul li.active a {
    color: var(--color-primary);
    font-weight: 700;
}

@media screen and (min-width: 1140px) {
    .pagination-wrapper ul li a:hover {
        color: var(--color-primary);
    }
}

/**
 * ANIMATABLE ICON
 */

.loader-spin {
    margin: 0 10px;
    font-size: 3px;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    position: relative;
    text-indent: -9999em;
    animation: mulShdSpin 1.3s infinite linear;
    transform: translateZ(0);
}

.btn .loader-spin {
    margin: 0 14px;
}

@keyframes mulShdSpin {
    0%,
    100% {
        box-shadow: 0 -3em 0 0.2em,
        2em -2em 0 0em, 3em 0 0 -1em,
        2em 2em 0 -1em, 0 3em 0 -1em,
        -2em 2em 0 -1em, -3em 0 0 -1em,
        -2em -2em 0 0;
    }
    12.5% {
        box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em,
        3em 0 0 0, 2em 2em 0 -1em, 0 3em 0 -1em,
        -2em 2em 0 -1em, -3em 0 0 -1em,
        -2em -2em 0 -1em;
    }
    25% {
        box-shadow: 0 -3em 0 -0.5em,
        2em -2em 0 0, 3em 0 0 0.2em,
        2em 2em 0 0, 0 3em 0 -1em,
        -2em 2em 0 -1em, -3em 0 0 -1em,
        -2em -2em 0 -1em;
    }
    37.5% {
        box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em,
        3em 0em 0 0, 2em 2em 0 0.2em, 0 3em 0 0em,
        -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;
    }
    50% {
        box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em,
        3em 0 0 -1em, 2em 2em 0 0em, 0 3em 0 0.2em,
        -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;
    }
    62.5% {
        box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em,
        3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 0,
        -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;
    }
    75% {
        box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em,
        3em 0em 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em,
        -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;
    }
    87.5% {
        box-shadow: 0em -3em 0 0, 2em -2em 0 -1em,
        3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em,
        -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;
    }
}


.loader2 {
    width: 48px;
    height: 48px;
    border: 5px solid #e5e5e5;
    border-bottom-color: var(--color-primary);
    border-radius: 50%;
    display: inline-block;
    box-sizing: border-box;
    animation: rotationLoader2 1s linear infinite;
}

@keyframes rotationLoader2 {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}


.animIcon {
    position: relative;
    display: inline-block;
    width: 32px;
    padding: 0 !important;
}

.animIcon::before {
    content: "";
    display: block;
    padding-bottom: 100%;
}

.animIcon span {
    position: absolute;
    left: 0;
    right: 0;
    display: block;
    height: 2px;
    width: 100%;
    background-color: var(--color-primary);
    transition: all .4s ease;
}

/* Close */
.animIcon.animIcon--close span {
    top: 50%;
    margin-top: -1px;
    transform-origin: center;
}

.animIcon.animIcon--close span:nth-child(1) {
    transform: rotateZ(45deg);
    -webkit-transform: rotateZ(45deg);
    -ms-transform: rotateZ(45deg);
}

.animIcon.animIcon--close span:nth-child(2) {
    transform: rotateZ(-45deg);
    -webkit-transform: rotateZ(-45deg);
    -ms-transform: rotateZ(-45deg);
}

/* Hamburger -> Close */
.animIcon.animIcon--hamburger span {
    top: 0;
    left: 0;
    transform-origin: left center;
}

.animIcon.animIcon--hamburger span:nth-child(1) {
    margin-top: 20%;
}

.animIcon.animIcon--hamburger span:nth-child(2) {
    margin-top: 50%;
}

.animIcon.animIcon--hamburger span:nth-child(3) {
    margin-top: 80%;
}

.animIcon.animIcon--hamburger.active span:nth-child(1) {
    margin-top: 15%;
    margin-left: 15%;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg)
}

.animIcon.animIcon--hamburger.active span:nth-child(2) {
    opacity: 0;
    margin-top: 70%;
}

.animIcon.animIcon--hamburger.active span:nth-child(3) {
    margin-top: 85%;
    margin-left: 15%;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg)
}

/**
 * LOGOTYPES SLIDER
 */
.logotypes {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    height: 156px;
    padding: 28px 0;
}

.logotypes .logotypes-title {
    float: left;
    padding-right: 30px;
    font-size: 22px;
    line-height: 100px;
    vertical-align: middle;
}

.logotypes-slider-container {
    height: 100px;
}

.logotype-slider {
    top: 50%;
    -webkit-transform: translate3d(0, -50%, 0);
    -moz-transform: translate3d(0, -50%, 0);
    -ms-transform: translate3d(0, -50%, 0);
    -o-transform: translate3d(0, -50%, 0);
    transform: translate3d(0, -50%, 0);
}

.slick-initialized .logotype {
    float: none;
    display: inline-block;
    vertical-align: middle;
    padding: 4px;
}

.logotype img {
    max-height: 100px;
    max-width: 100%;
    margin: 0 auto;
}

/**
 * LANGUAGES MENU
 */
.langs-menu {
    position: relative;
    float: right;
    margin: 0 15px;
    transition-duration: 0.4s;
    transition-property: background-color, opacity;
    z-index: 1001;
}

.langs-menu ul {
    overflow: hidden;
    position: absolute;
    top: 100%;
    width: 100%;
    background-color: #fff;
    transition: all 0.3s;
}

.langs-menu li {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.langs-menu.active,
.langs-menu.active ul {
    opacity: 1;
}

.langs-menu a {
    color: inherit;
    text-decoration: none;
    border-left: 1px solid rgba(0, 0, 0, 0.1);
    border-right: 1px solid rgba(0, 0, 0, 0.1);
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.langs-menu-icon {
    display: inline-block;
    vertical-align: middle;
    line-height: 0;
    margin-right: 8px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.lang {
    display: flex;
    align-items: center;
    height: 40px;
    padding: 5px 12px;
    font-size: 0;
    transition-duration: 0.3s;
    transition-property: background-color, color;
}

.lang span {
    display: inline-block;
    vertical-align: middle;
    font-size: 16px;
    text-transform: uppercase;
}

.lang .langs-menu-long {
    display: none;
}

.lang-button {
    cursor: pointer;
    position: relative;
    border: 1px solid rgba(0, 0, 0, 0.1);
    background-color: #fff;
}

.lang-button .arrow {
    display: inline-block;
    vertical-align: middle;
    top: 50%;
    right: 0;
    width: 12px;
    height: 12px;
    margin-left: 10px;
    font-size: 18px;
    line-height: 12px;
    transition-duration: 0.3s;
    transition-property: transform, -webkit-transform, -ms-transform;
}

.langs-menu-icon img {
    max-width: 100%;
}

@media screen and (min-width: 1140px) {
    a.lang:hover,
    a.lang:focus {
        color: #fff;
        background-color: #f0f;
    }

    .langs-menu:not(.langs-menu--list):not(:hover):not(:focus):not(:focus-within) ul {
        pointer-events: none;
        opacity: 0;
        transform: translateY(-5px);
        -webkit-transform: translateY(-5px);
        -ms-transform: translateY(-5px);
    }

    .langs-menu:focus-within .lang-button .arrow,
    .langs-menu:hover .lang-button .arrow,
    .langs-menu:focus .lang-button .arrow {
        transform: rotateZ(180deg);
        -webkit-transform: rotateZ(180deg);
        -ms-transform: rotateZ(180deg);
    }
}

.flag-icon {
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}

.langs-menu--list .lang-button,
.langs-menu--list .langs-menu-short {
    display: none;
}

.langs-menu.langs-menu--list ul {
    position: static;
    opacity: 1;
    display: flex;
    align-items: center;
    border: none;
    background: none;
}

.langs-menu.langs-menu--list li {
    margin: 4px 10px;
    border: none;
}

.langs-menu.langs-menu--list a {
    height: auto;
    padding: 5px;
    border: none;
}

.langs-menu--list .lang {
    background: none;
}

.langs-menu--list .langs-menu-icon {
    margin: 0;
}

/**
 * ARTICLE
 */
.article {
    overflow: hidden;
}

.article-content::after {
    content: "";
    display: table;
    clear: both;
}

.article-image {
    position: relative;
    z-index: 10;
    display: inline-block;
    vertical-align: top;
    float: left;
    max-width: 50%;
    margin-right: 50px;
    margin-bottom: 20px;
}

.article-image img {
    max-width: 100%;
}

.article-subtitle {
    padding-bottom: 30px;
}

.article-date {
    font-weight: bold;
}

.article-text {
    margin-bottom: 30px;
}


/**
 * PAGINATION
 */
/*.pagination-wrapper ul li.active a {*/
/*color: #e10024;*/
/*}*/

/*@media screen and (min-width: 1140px) {*/
/*.pagination-wrapper ul li a:hover {*/
/*color: #e10024;*/
/*}*/
/*}*/


/**
 * GALLERY
 */

.gallery {
    clear: both;
    margin: var(--space-60) 0;
}

.gallery-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: calc(var(--space-25) + 5px);
}

.gallery-list-item {
    display: block;
}

.gallery-picture {
    position: relative;
    display: block;
    width: 100%;
    font-size: 0;
}

.gallery-picture > img {
    display: block;
    max-width: 100%;
}

.gallery-picture-hover {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #fff;
    background-color: rgba(61, 104, 0, 0.7);
    transition: opacity 0.3s;
}

.gallery-picture-hover .icon {
    width: 30px;
}

.gallery-picture-hover .icon svg {
    width: 100%;
}

@media screen and (min-width: 1140px) {
    .gallery-picture:hover .gallery-picture-hover {
        opacity: 1;
    }
}

@media screen and (min-width: 1140px) {
    .page-list-aside .ui-widget.ui-widget-content {
        -webkit-transform: scaleY(33.3333%);
        -moz-transform: scaleY(33.3333%);
        -ms-transform: scaleY(33.3333%);
        -o-transform: scaleY(33.3333%);
        transform: scaleY(33.3333%);
    }

    .page-list-aside .ui-widget.ui-widget-content:hover,
    .page-list-aside .ui-widget.ui-widget-content:focus,
    .page-list-aside .ui-widget.ui-widget-content:focus-within {
        -webkit-transform: none;
        -moz-transform: none;
        -ms-transform: none;
        -o-transform: none;
        transform: none;
    }

    .ui-slider .ui-slider-handle {
        opacity: 0;
        transition: opacity 0.2s;
    }

    .ui-widget.ui-widget-content:hover .ui-slider-handle,
    .ui-widget.ui-widget-content:focus .ui-slider-handle,
    .ui-widget.ui-widget-content:focus-within .ui-slider-handle {
        opacity: 1;
    }
}

.ui-slider .ui-slider-range {
    border-radius: 0;
    background-color: var(--color-primary);
}

.ui-slider .ui-slider-handle {
    border-radius: 0;
    border: none;
    height: 13px;
    width: 13px;
    background-color: var(--color-primary);
}

.ui-slider-horizontal .ui-slider-handle {
    top: -2px;
    left: -7px;
}

.form-range .row + .row {
    margin-top: 15px;
}

.valueFrom .input-label,
.valueFrom .price-suffix,
.valueTo .input-label,
.valueTo .price-suffix {
    display: none;
}

.valueFrom .from,
.valueTo .to {
    height: 36px;
    width: 100%;
    border: 1px solid rgba(0, 0, 0, 0.1);
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 700;
    font-family: 'Tenor Sans', sans-serif;
    color: var(--color-primary);
}

.valueTo:before {
    content: '-';
    position: absolute;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
    top: 33px;
    line-height: 36px;
}

.form-range {
    background-color: transparent;
    border: none;
}

.ui-widget.ui-widget-content {
    border-radius: 0;
}

.form-range {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 20px;
}

.form-range .range-row {
    width: 100%;
}

.form-range .col {
    width: 45%;
    margin-top: 10px;
}

.icon-wrapper,
.icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.icon-wrapper img,
.icon-wrapper svg,
.icon img,
.icon svg {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

.icon *[fill]:not([fill="none"]) {
    fill: currentColor;
}

.icon *[stroke]:not([stroke="none"]) {
    stroke: currentColor;
}

#container-page {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

#page {
    flex-grow: 1;
}

#container-page > footer {
    margin-top: auto;
    width: 100%;
    overflow: hidden;
}

.main-slider-item {
    position: relative;
    width: 100%;
}

.main-slider-bg {
    width: 100%;
    display: block;
}

.main-slider-bg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    min-height: 500px;
}

.main-slider-item-text {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
}

.main-slider-item-text-bg {
    display: block;
    position: absolute;
    z-index: -1;
    left: 0;
    top: 0;
    bottom: 0;
    width: 100%;
    max-width: 770px;
    display: none !important; 
}

.main-slider-item-text-bg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.main-slider-item-text-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: var(--space-40);
    max-width: 470px;
    padding: var(--space-50) 0;
}

.main-slider-item-title {
    font-size: clamp(24px, 2.6041vw, 50px);
    font-weight: 700;
    line-height: 1.2em;
    color: #fff;
}

.main-slider-item-text-inner .text {
    color: #fff;
}

.slider-person-wrapper {
    display: flex;
    align-items: center;
    gap: calc(var(--space-25) + 7px);
}

.slider-person-wrapper .icon-wrapper {
    width: 117px;
    height: 117px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.slider-person-wrapper .icon-wrapper img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.slider-person-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.slider-person-name {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5em;
    color: #fff;
}

.slider-person-position {
    font-size: 15px;
    font-weight: 500;
    line-height: 2em;
    color: #fff;
}

.footer-bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: rgba(0, 0, 0, 0.8);
}

.footer-bg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.footer-top {
    padding-top: calc(2 * var(--space-50));
}

.footer-cols {
    position: relative;
    display: flex;
    gap: calc(var(--space-60) * 2);
    padding-bottom: var(--space-50);
}

.footer-cols:before {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 75%;
    height: 1px;
    background-color: rgba(255, 255, 255, 0.2);
}

.footer-col-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.footer-col-heading .icon {
    display: none;
}

.footer-col-content {
    padding-top: var(--space-25);
    color: #fff;
}

.footer-col-content .text {
    color: #fff;
}

.footer-col-title {
    font-size: 16px;
    font-weight: 700;
    color: #fff;
}

.footer-col-content ul li a {
    font-size: 15px;
    color: #fff;
    line-height: 2em;
}

.footer-col-content ul li a:before {
    content: attr(data-content);
    display: block;
    width: fit-content;
    font-weight: 700;
    height: 0;
    overflow: hidden;
}


@media screen and (min-width: 1140px) {
    .footer-col-content ul li a:hover {
        color: #fff;
        font-weight: 700;
    }
}


.footer-col-content ul li.active a {
    color: #fff;
    font-weight: 700;
}

.footer-col-payments {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.footer-payment {
    width: 122px;
    height: 54px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px;
}

.footer-payment img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

.footer-payments {
    padding: var(--space-50) 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.footer-col.footer-col-4 {
    width: 470px;
    margin-left: auto;
    margin-bottom: calc(-4 * var(--space-40));
}

.footer-col.footer-col-4 img {
    display: block;
    max-width: 100%;
    /* Logo ladowane leniwie i bez wymiarow rozpychalo stopke o 384 px w chwili wczytania:
       na koszyku dawalo to CLS 0,129, na listingu 0,179 (na stronie glownej nie bylo widac,
       bo stopka nie miesci sie tam na pierwszym ekranie). Proporcja 470/431 to wlasne wymiary
       pliku, wiec obraz nie jest ani rozciagany, ani kadrowany - rezerwujemy tylko miejsce.
       width:100% jest tu konieczne: bez niego obraz przed wczytaniem ma szerokosc 0,
       a wtedy aspect-ratio nie ma czego pomnozyc i rezerwacja nie dziala. */
    width: 100%;
    height: auto;
    aspect-ratio: 470 / 431;
}

.footer-contact-link:first-of-type {
    margin-top: var(--space-50);
}

.footer-contact-link {
    display: flex;
    align-items: center;
    gap: calc(var(--space-25) - 8px);
    color: #fff;
    font-size: 24px;
    line-height: 1.25em;
    font-weight: 300;
}

.footer-contact-link .icon {
    width: 20px;
    flex-shrink: 0;
}

.footer-contact-link + .footer-contact-link {
    margin-top: var(--space-25);
}

@media screen and (min-width: 1140px) {
    .footer-contact-link:hover {
        color: #fff;
        text-decoration: underline;
    }
}

.footer-text-social {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(2 * var(--space-60));
    padding: calc(var(--space-25) + 10px) 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.footer-text-social .text {
    color: #fff;
}

.social-list ul {
    display: flex;
    gap: 10px;
}

.social-list ul li a {
    border-radius: 90px;
    width: 46px;
    height: 46px;
    flex-shrink: 0;
    background-color: var(--color-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3px;
}

.social-list ul li .icon svg path {
    fill: currentColor;
}

@media screen and (min-width: 1140px) {
    .social-list ul li a:hover {
        color: #fff;
        background-color: var(--color-secondary);
    }
}

.section-heading {
    display: flex;
    align-items: center;
    gap: var(--space-60);
    margin-bottom: var(--space-50);
}

.section-heading.has-heading-right {
    justify-content: space-between;
}

.section-heading:not(.has-heading-right) .section-title {
    width: 100%;
    max-width: 425px;
}

.news-slider-item {
    width: 33.3333%;
    padding: calc(var(--space-60) / 4);
}

.news-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: calc(var(--space-60) / 2);
    margin-bottom: calc(2 * var(--space-60));
}

.news-slider-list {
    margin: calc(var(--space-60) / -4);
}

.news-slider-item {
    display: flex;
    flex-direction: column;
    gap: calc(var(--space-60) / 2);
}

.section-heading-right {
    display: flex;
    align-items: center;
    gap: var(--space-50);
}

.arrows {
    display: flex;
    align-items: center;
    gap: 10px;
    pointer-events: none;
}

.btn-arrow {
    border-radius: 90px;
    width: 46px;
    height: 46px;
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: initial;
    transition: all .2s linear;
}

@media screen and (min-width: 1140px) {
    .btn-arrow:hover {
        color: #fff;
        background-color: var(--color-secondary);
    }
}

.main-news-section {
    padding: calc(var(--space-50) * 2) 0 calc(var(--space-60) * 2) 0;
    background-color: #F5F5F5;
}

.section-title {
    font-size: 36px;
    font-weight: 700;
}

.news-item {
    position: relative;
}

.news-item:before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(
            180deg,
            rgba(68, 70, 3, 0.12) 0%,
            rgba(68, 70, 3, 1) 100%
    );
}

.news-item-image {
    overflow: hidden;
    display: block;
}

.news-item-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all .2s linear;
}

@media screen and (min-width: 1140px) {
    a[href].news-item:hover .news-item-image img {
        transform: scale(1.1);
    }
}

.news-item-name {
    position: absolute;
    z-index: 2;
    left: var(--space-60);
    right: var(--space-60);
    bottom: var(--space-50);
    color: #fff;
    font-size: 24px;
    line-height: 1.5em;
    font-weight: 700;
}

.section-heading > .text {
    max-width: 520px;
}

.section-heading.page-heading > .text {
    max-width: 820px;
}

.about-top-bottom,
.about-top-inner {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: var(--space-50);
}

@media screen and (min-width: 1140px) {
    .about-top-section .about-top-bottom,
    .about-top-section .about-top-inner {
        display: grid;
        grid-template-columns: 0.8fr 1fr 0.6fr;
        gap: var(--space-50);
    }
}

.about-mid-text {
    margin: var(--space-60) auto;
    max-width: 1360px;
    display: block;
}

.about-top-section {
    margin-top: calc(2 * var(--space-50));
    margin-bottom: var(--space-60);
    display: flex;
    flex-direction: column;
    gap: var(--space-60);
}

.about-top-column {
    display: flex;
    flex-direction: column;
    gap: var(--space-50);
}

.about-top-column-image {
    width: 100%;
    height: 100%;
}

.about-text-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-25);
}

.about-text-item .icon-wrapper {
    width: 44px;
    height: 44px;
    border: 1px solid var(--color-primary);
    border-radius: 50%;
    font-size: 20px;
    font-weight: 700;
    color: var(--color-primary);
    text-align: center;
}

.about-text-item-name {
    font-size: 24px;
    line-height: 1.8333em;
    font-weight: 700;
}

.about-text-item-heading {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--space-25) + 5px);
}

.about-collection-item {
    display: flex;
}

.about-collection-item-image {
    width: 50%;
    flex-shrink: 0;
}

.about-collection-item-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.about-collection-item-text {
    position: relative;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 15px;
    padding: var(--space-25) calc(var(--space-25) + 5px) var(--space-25) calc(2 * var(--space-60));
}

.about-collection-deco {
    position: absolute;
    pointer-events: none;
    z-index: -1;
    bottom: calc(var(--space-60) + 8px);
    left: calc(3 * var(--space-60) - 15px);
}

.about-collection-deco img {
    display: block;
    max-width: 100%;
}

.about-collection-item-text-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 15px;
    padding-right: calc(2 * var(--space-60) - (var(--space-25) + 5px));
}

.about-collection-item-text > .btn {
    align-self: flex-end;
}

.about-collection-item-text-title {
    font-size: 32px;
    font-weight: 700;
}

.about-collection-item:nth-of-type(even) {
    flex-direction: row-reverse;
}

.about-collection {
    margin-bottom: calc(2 * var(--space-50));
}

.news-view-top-image {
    display: block;
    width: 100%;
    margin-bottom: var(--space-60);
}

.news-view-top-image img {
    display: block;
    width: 100%;
    object-fit: contain;
}

.my-100 {
    margin-top: calc(2 * var(--space-50));
    margin-bottom: calc(2 * var(--space-50));
}

.news-view-heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-bottom: var(--space-40);
    text-align: center;
}

.contact-page-top {
    display: flex;
    align-items: center;
    gap: calc(2 * var(--space-60));
    margin-bottom: var(--space-50);
}

.contact-page-top-left {
    width: 50%;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-50);
}

.contact-page-info {
    width: calc(50% - (0.5 * var(--space-50)));
    aspect-ratio: 1;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.contact-page-top-right {
    width: calc(50% - (2 * var(--space-60)));
}

.contact-page-info-inner {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 18px;
    font-weight: 400;
}

@media screen and (min-width: 1140px) {
    .contact-page-info-inner:hover {
        color: var(--color-primary);
    }
}

.contact-page-info-inner .caption2 {
    font-family: var(--font-secondary);
    font-size: 20px;
    font-weight: 600;
    color: #000;
    margin-bottom: 10px;
}

.contact-page-info-inner .icon-wrapper {
    margin-bottom: var(--space-25);
}

.relative {
    position: relative;
}

.section-bg {
    position: absolute;
    z-index: -3;
    inset: 0;
}

.section-bg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contact-form-inner {
    position: relative;
    max-width: 810px;
    margin-left: auto;
    padding: calc(2 * var(--space-40) + 5px) 0 calc(2 * var(--space-60)) 0;
}

.contact-form-inner:before {
    content: '';
    position: absolute;
    z-index: -2;
    background-color: rgba(61, 104, 0, 0.8);
    top: 0;
    bottom: 0;
    right: min(calc(-1 * (50vw - 860px + var(--container-padding))), calc(-1 * var(--container-padding)));
    left: max(min(calc(-1 * (50vw - 860px + var(--container-padding))), calc(-1 * var(--container-padding))), -140px);
}

.contact-form-title {
    font-size: 36px;
    font-weight: 700;
    line-height: 1.6666em;
    color: #fff;
    text-align: center;
    margin-bottom: 15px;
}

.form-group-lg .form-control {
    border-radius: 0;
    font-size: 14px;
    font-family: var(--font-secondary);
}

.form-group-lg .form-control::placeholder {
    font-size: 14px;
    font-family: var(--font-secondary);
}

.contact-form-container .form .form-element-name {
    font-size: 16px;
    font-weight: 400;
    font-family: var(--font-secondary);
    text-transform: uppercase;
}

.contact-form-container .form .form-element-name {
    color: #fff;
}

.contact-form-container .form .form-control {
    border: none;
}

.contact-form-container .form-element-option-text,
.contact-form-container .text {
    color: #fff;
}

.contact-form-container .form .alert-block .error {
    color: #ff7a77 !important;
}

.contact-top-deco {
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: -1;
}

.contact-form-inner-deco-1 img,
.contact-form-inner-deco-2 img,
.contact-top-deco img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

.contact-form-inner-deco-2 {
    width: 29.1666vw;
    position: absolute;
    z-index: -1;
    top: 50%;
    transform: translateY(-50%);
    left: -31.75vw;
}

.contact-form-inner-deco-1 {
    width: 16.6666vw;
    position: absolute;
    z-index: -1;
    bottom: 3vw;
    right: -4.2vw;
}

.category-view-top {
    position: relative;
    /*margin-bottom: calc(2 * var(--space-50));*/
}

.page-top-deco {
    position: absolute;
    top: 260px;
    right: 0;
    z-index: -1;
}

.aside-page-inner {
    display: flex;
    gap: var(--space-60);
}

.aside-page-content {
    width: calc(100% - 340px - var(--space-60));
}

@media screen and (min-width: 1140px) {
    .aside {
        margin-bottom: calc(2 * var(--space-50));
    }
}

.aside {
    width: 340px;
    flex-shrink: 0;
}

.aside-page-content .section-heading {
    margin-bottom: var(--space-40);
}

.product-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

@media screen and (min-width: 1140px) {
    .aside-page-content .product-list {
        grid-template-columns: repeat(3, 1fr);
    }
}

.shop-product-box {
    display: block;
}

.shop-product-box.swiper-slide {
    height: unset;
}

.product-container {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap:  calc(var(--space-25) - 4px) var(--space-40);
    padding: calc(var(--space-25) - 4px) calc(var(--space-40) - 12px) var(--space-25);
    background-color: #fff;
}

.product-container .product-labels {
    position: absolute;
    left: 10px;
    top: 10px;
}

.product-container .product-labels .product-label {
    border-radius: 15px 15px 15px 15px;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);
    padding: 13px 6px;
    font-size: 15px;
    font-weight: 400;
    text-transform: uppercase;
}

.product-container:before {
    content: '';
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    bottom: -1px;
    right: -1px;
    border: 1px solid #e6e6e6;
    transition: all .2s linear;
    pointer-events: none;
}

.product-container:after {
    content: '';
    position: absolute;
    z-index: 3;
    top: 0;
    left: 0;
    bottom: -1px;
    right: -1px;
    border: 1px solid var(--color-secondary);
    transition: all .2s linear;
    pointer-events: none;
    opacity: 0;
}

@media screen and (min-width: 1140px) {
    .product-container:hover:after {
        opacity: 1;
    }
}

.product-box-image {
    flex-grow: 1;
    width: 100%;
    /*height: 240px;*/
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.product-box-image img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    border-radius: 10px;
}

.product-box-content {
    /*flex-grow: 1;*/
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.product-box-title {
    font-size: 18px;
    line-height: 1.3333em;
    font-weight: 700;
}

.product-box-content .price:not(.price-old) {
    font-size: 15px;
    line-height: 1.3em;
    font-weight: 700;
    color: #000;
}

.product-box-content .price:not(.price-old).price-new {
    color: #C20600;
}

.product-box-content .price-old {
    order: -1;
    font-size: 15px;
    line-height: 1.3em;
    font-weight: 400;
    color: #C20600;
    text-decoration: line-through;
}

.product-box-content .price-net,
.product-box-content .price-gross {
    display: flex;
    gap: 5px;
}

.product-box-content .price-net .caption,
.product-box-content .price-gross .caption {
    order: 3;
    font-size: 15px;
    line-height: 1.3;
}

.product-box-content .price-net .price:not(.price-old) {
    font-size: 18px;
    color: var(--color-primary);
}

.product-box-content .price-net .caption {
    line-height: 1.8;
}

.product-box-availability {
    font-size: 15px;
    font-weight: 700;
}

.aside-list > li > .menu-group {
    display: flex;
    transition: all .2s linear;
}

.aside-list > li > .menu-group .icon {
    width: 50px;
    color: rgba(0, 0, 0, 0.3);
    cursor: pointer;
}

.aside-list > li.slided > .menu-group .icon,
.aside-list > li.active > .menu-group .icon {
    color: #fff;
}

.aside-list > li.slided > .menu-group,
.aside-list > li.active > .menu-group {
    background-color: var(--color-primary);
}

.aside-list > li.slided > .menu-group > a,
.aside-list > li.active > .menu-group > a {
    color: #fff;
}

@media screen and (min-width: 1140px) {
    .aside-list > li > .menu-group:hover .icon {
        color: #fff;
    }

    .aside-list > li > .menu-group:hover {
        background-color: var(--color-primary);
    }

    .aside-list > li > .menu-group:hover > a {
        color: #fff;
    }
}

.aside-list > li > .menu-group > a {
    flex-grow: 1;
    padding: 10px 0 10px var(--space-25);
    min-height: 50px;
    font-size: 14px;
    text-transform: uppercase;
    color: #000;
    display: flex;
    align-items: center;
}

.aside-list > li:first-child:not(.active) {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.aside-list > li {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.aside-list > li:not(.active) > ul {
    display: none;
}

.aside-list > li > ul {
    padding: 15px 15px 15px 9px;
}

.aside-list > li > .menu-group .icon > svg {
    transition: transform .2s linear;
}

li.slided > .menu-group > .icon > svg {
    transform: scaleY(-1);
}

.aside-list > li > ul a {
    font-size: 15px;
    line-height: 2em;
    display: flex;
    align-items: center;
    gap: 8px;
}

.aside-list > li > ul > li.active a {
    color: var(--color-primary);
}

@media screen and (min-width: 1140px) {
    .aside-list > li > ul a:hover {
        color: var(--color-primary);
    }
}

.aside-list > li > ul a .icon-wrapper {
    margin-top: -2px;
    width: 42px;
    justify-content: flex-end;
}

.text-collection-inner {
    display: flex;
    gap: calc(2 * var(--space-60));
}

.text-collection-image.left {
    order: -1;
}

.text-collection-image {
    position: relative;
    width: 50%;
    display: block;
    flex-shrink: 0;
}

.text-collection-image img {
    display: block;
    max-width: 100%;
}

.text-collection-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-40);
}

.text-collection-section {
    position: relative;
    padding: calc(2 * var(--space-50)) 0;
    background-color: rgba(0, 0, 0, 0.05);
}

.mainpage .text-collection-section {
    background-color: unset;
    padding: 0;
    margin: calc(2 * var(--space-50)) 0;
}

.tiles-section,
.categories-section {
    margin: calc(2 * var(--space-50)) 0;
}

.news-item-content {
    position: absolute;
    z-index: 3;
    inset: var(--space-60);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: var(--space-40);
}

.news-item-content > .text {
    font-size: 32px;
    line-height: 1.4375em;
    color: #fff;
    font-weight: 300;
}

.input-group-addon {
    border-radius: 0;
}

.product-view-photos {
    width: calc(55% - (1.5 * var(--space-50)));
}

.product-view-photos-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.product-view-photos:after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: calc(-1.5 * var(--space-50));
    width: 1px;
    background-color: rgba(0, 0, 0, 0.1);
}

.product-view-top-content {
    width: calc(55% - (1.5 * var(--space-50)));
}

.product-view-top-inner {
    display: flex;
    gap: calc(1.8 * var(--space-50));
}

.product-view-top {
    margin-bottom: var(--space-60);
}

.product-view-title {
    font-size: 36px;
    font-weight: 700;
    margin-bottom: var(--space-25);
}

.product-view-slider {
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 10px;
}

.product-view-slide {
    width: 100%;
    height: 100%;
    aspect-ratio: 0.8;
    display: flex;
    align-items: center;
    justify-content: center;
}

.product-view-slide img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

.product-view-photos .product-labels {
    position: absolute;
    left: 10px;
    top: 10px;
    z-index: 4;
}

.product-view-photos .product-labels .product-label {
    padding: 7px 14px;
    text-transform: uppercase;
    font-size: 15px;
    border-radius: 15px 15px 15px 15px;
}

.product-view-nav-slider {
    margin: 0 -5px;
}

.product-view-nav-slide {
    width: 25%;
    padding: 0 5px;
}

/* M7 (CLS 0,187 -> 0,001): zanim Swiper się zainicjalizuje, jego własna reguła
   .swiper-slide{width:100%} wygrywa z .product-view-nav-slide{width:25%}, więc każda
   miniatura jest kwadratem 392x392 i pasek ma 382 px zamiast 88 px. Po inicjalizacji
   Swiper wpisuje slajdom szerokość inline (98 px) i pasek zwija się o 294 px,
   spychając w górę całą treść pod galerią - to był cały zmierzony skok.
   Podniesiona specyficzność (dwie klasy) ustawia stan "przed" równy stanowi "po".
   Reguła gaśnie sama, gdy Swiper doda klasę swiper-initialized. */
.product-view-nav-slider:not(.swiper-initialized) .product-view-nav-slide {
    width: 25%;
    flex: 0 0 25%;
}

.product-view-nav-slide-inner {
    width: 100%;
    height: 100%;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(0, 0, 0, 0.1);
    transition: all .2s linear;
    cursor: pointer;
    border-radius: 10px;
}

.product-view-nav-slide.swiper-slide-thumb-active .product-view-nav-slide-inner {
    border-color: var(--color-secondary);
}

@media screen and (min-width: 1140px) {
    .product-view-nav-slide .product-view-nav-slide-inner:hover {
        border-color: var(--color-secondary);
    }
}

.product-view-nav-slide-inner img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    border-radius: 10px;
}

.product-view-slider-arrows {
    position: absolute;
    bottom: calc(var(--space-25) + 5px);
    right: calc(var(--space-25) + 5px);
    z-index: 5;
}

.product-view-slider-wrapper {
    position: relative;
}

/* Gwiazdki ocen: sprite ma fill="currentColor", wiec kolor ustawia CSS.
   Kazde uzycie gwiazdek ma klase .stars-row (wiersz ocen i histogramy),
   wiec ta jedna regula trzyma DOTYCHCZASOWY zielony wszedzie;
   karta produktu nadpisuje go zlotem w panel-zakupu.css. */
.stars-row {
    color: var(--color-primary);
}

.product-view-rating {
    margin-bottom: var(--space-25);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-25);
}

.product-view-saleCount {
    font-size: 15px;
}

.product-view-rating .rating-summary {
    margin-bottom: 0;
    width: fit-content;
    gap: var(--space-25);
}

.product-view-rating .rating-summary-count {
    order: -1;
}

.product-view-rating .rating-summary-nr {
    order: 1;
    font-size: 16px;
}

.product-view-top-content-basket {
    margin-top: var(--space-40);
}

.product-view-icons-list {
    margin-top: calc(var(--space-25) + 5px);
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: var(--space-25);
    justify-content: space-between;
}

.product-view-icon-item {
    display: flex;
    align-items: center;
    gap: 12px;
}

.product-view-icon-item .icon-wrapper {
    flex-shrink: 0;
}

.product-view-icon-item .text {
    font-size: 14px;
    line-height: 1.75em;
}

/* M6: przyklejony pasek zakupu istnieje WYLACZNIE na mobile (reguly w responsive.css,
   blok max-width 1139). Bez tej jednej linii na desktopie zostawal martwy przycisk
   "dodaj do koszyka" w tresci strony: element renderowal sie jako zwykly blok, bo poza
   blokiem mobilnym nie mial ZADNEJ reguly, a skrypt celowo sie tam nie podpina.
   Zgloszone przez wlasciciela 11.08.2026. */
.product-sticky-bar {
    display: none;
}

.shop-product-offer-box {
    position: relative;
    padding: var(--space-40) 20px;
    background-color: rgba(0, 0, 0, 0.05);
}

.product-view-top-content-basket.not-available {
    display: none;
}

.product-view-basket-inner-quantity-btn,
.product-view-basket-inner {
    display: flex;
    align-items: flex-end;
    flex-wrap: nowrap;
    gap: 18px;
    width: 100%
}



.product-view-basket-inner > .btn {
    padding: 10px calc(var(--space-25) - 10px);
    flex-grow: 1;
    max-width: 235px;
}

.product-view-price-wrapper .price-net .caption,
.product-view-price-wrapper .price-gross .caption {
    order: 3;
}

.product-view-price-wrapper .price-net,
.product-view-price-wrapper .price-gross {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}

.product-view-price-wrapper .price-net .price:not(.price-old) {
    font-size: 36px;
    line-height: 1.6666em;
    font-weight: 700;
    color: var(--color-primary);
}

.product-view-price-wrapper .price-net .caption {
    font-size: 16px;
    line-height: 2.875em;
}

.product-view-price-wrapper .price-net .price-old {
    font-size: 20px;
    line-height: 2.3;
}


.product-view-price-wrapper .price-gross:first-child .price:not(.price-old) {
    font-size: 36px;
    line-height: 1.6666em;
    font-weight: 700;
    color: var(--color-primary);
}

.product-view-price-wrapper .price-gross:first-child .price.price-old {
    font-size: 20px;
    line-height: 2.3;
}

.product-view-price-wrapper .price-gross:first-child .caption {
    font-size: 16px;
    line-height: 2.875em;
}

.sections-tabs-wrapper {
    min-height: 46px;
    margin: var(--space-60) 0;
}

.sections-tabs-inner-wrapper {
    width: 100%;
    background-color: #f2f2f2;
    border-bottom: 1px solid transparent;
}

.sections-tabs {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
}

@media screen and (min-width: 901px) {
    .sections-tabs[data-count="grater"] {
        grid-template-columns: repeat(6, 1fr);
    }
}

.btn-section-tab {
    font-weight: 500;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 15px;
    text-transform: uppercase;
    padding: 10px 13px;
    min-height: 46px;
    color: #000;
    background-color: transparent;
}

.btn-section-tab.active {
    color: #fff;
    background-color: var(--color-primary);
}

@media screen and (min-width: 1140px) {
    .btn-section-tab:hover {
        color: #fff;
        background-color: var(--color-primary);
    }
}

.text-image-section {
    position: relative;
    margin: calc(2 * var(--space-40)) 0;
}

.product-view-section-deco {
    position: absolute;
    inset: 0;
    z-index: -2;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.product-view-section-deco.left {
    justify-content: flex-start;
}

.product-view-section-deco.left img {
    transform: scaleX(-1);
}

.product-view-section-deco img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

.subpage .text-image-bg {
    display: none;
}

.text-image-bg {
    position: absolute;
    z-index: -4;
    bottom: -7.8125vw;
    width: 71.1458vw;
}

.text-image-bg img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

.text-image-section-inner {
    display: flex;
    gap: calc(2 * var(--space-40));
    align-items: center;
}

.text-image-section-text {
    flex-grow: 1;
    text-align: justify;
}

.text-image-section-image {
    width: calc(50% - var(--space-40));
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    position: relative;
}

@media screen and (min-width: 1140px) {
    .text-image-section-image-inner {
        position: absolute;
    }
}

.text-image-section-image img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

.text-image-section-image.left {
    order: -1;
}

.composition-section {
    padding: calc(2 * var(--space-50)) 0;
    background-color: rgba(0, 0, 0, 0.05);
}

.composition-section .section-heading {
    margin-bottom: var(--space-25);
}

.composition-section-inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: calc(2 * var(--space-40) - 8px);
}

.composition-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.composition-item-image {
    width: 100%;
    display: block;
    margin-bottom: var(--space-40);
}

.composition-item-image img {
    display: block;
    width: 100%;
    object-fit: contain;
}

.composition-item-name {
    font-size: 24px;
    line-height: 1.3333em;
    font-weight: 700;
    margin-bottom: 15px;
}

.video-section {
    margin: calc(2 * var(--space-40)) 0;
}

.video-section-inner {
    position: relative;
    width: 100%;
    aspect-ratio: 1639 / 733;
    display: block;
}

/* <picture> to wyłącznie kontener wyboru źródła — musi być przezroczysty dla layoutu.
   Domyślnie jest inline (wysokość auto), a wtedy img z height:100% nie ma do czego
   odnieść procentu i zjeżdża do wysokości naturalnej. */
.video-section-inner > picture,
.footer-bg picture {
    display: block;
    width: 100%;
    height: 100%;
}

/* Kombinator ">" celowo pomija <img> przycisku play (.video-play-btn > img).
   Wariant z <picture> (lżejszy plik na mobile) dokłada jeden poziom zagnieżdżenia,
   więc musi być wymieniony wprost — inaczej placeholder traci wymiary i kadrowanie. */
.video-section-inner > img,
.video-section-inner > picture > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.video-play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: all .2s ease-in-out;
}

.video-play-btn img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

@media screen and (min-width: 1140px) {
    .video-section-inner .video-play-btn:hover {
        transform: translate(-50%, -50%) scale(0.9);
    }
}


.video-deco-2 {
    position: absolute;
    pointer-events: none;
    z-index: 3;
    right: -5.2083vw;
    bottom: -8.0208vw;
    width: min(20.1042vw, 386px);
}

.video-deco-2 img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}


.video-deco-1 {
    position: absolute;
    pointer-events: none;
    z-index: 3;
    left: -3.4375vw;
    bottom: 5.2083vw;
    width: min(18.23vw, 350px);
}

.video-deco-1 img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

@media screen and (min-width: 1921px) {
    .video-deco-2 {
        /*right: calc((100vw - 1920px) / 2 - 100px);*/
    }

    .video-deco-1 {
        /*left: calc((100vw - 1920px) / 2 - 66px);*/
    }
}

.text-image-section-image.image-type-min {
    /*border: 1px solid rgba(0, 0, 0, 0.1);*/
}

.comment-section {
    padding: calc(2 * var(--space-50)) 0;
    background-color: rgba(0, 0, 0, 0.05);
}

.news-section {
    padding: calc(2 * var(--space-50)) 0;
    background-color: rgba(0, 0, 0, 0.05);
}

.faq-section {
    margin-top: calc(2 * var(--space-40) - 10px);
    margin-bottom: calc(2 * var(--space-50) + 10px);
}

.faq-item-content {
    display: none;
}

.faq-item-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 59px;
    font-size: 14px;
    color: #000;
    padding: 13px calc(var(--space-40) + 5px);
    cursor: pointer;
    transition: all .2s linear;
}


.faq-item.active .faq-item-heading {
    color: var(--color-primary);
}

.faq-item-heading .icon {
    color: #000;
    transition: all .2s linear;
}

.faq-item.active .faq-item-heading .icon {
    transform: scaleY(-1);
}

.faq-item {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    position: relative;
}

.faq-item:before {
    content: '';
    position: absolute;
    z-index: 2;
    inset: 0;
    border: 1px solid var(--color-secondary);
    transition: all .2s linear;
    opacity: 0;
    pointer-events: none;
}

.faq-item.active:before {
    opacity: 1;
}

.faq-item:first-child {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

@media screen and (min-width: 1140px) {
    .faq-item-heading:hover {
        color: var(--color-primary);
    }
}

.faq-item-content {
    padding: 0 calc(var(--space-40) + 5px) calc(var(--space-40) + 5px) calc(var(--space-40) + 5px);
}

.faq-item-content .text {
    font-size: 14px;
}

.product-filters-wrapper {
    margin-bottom: var(--space-50);
    display: flex;
    align-items: center;
}

.shop-sort,
.shop-sort-inner {
    display: flex;
    align-items: center;
    gap: 15px;
}

.sections-tabs-inner-wrapper.fixed {
    position: fixed;
    z-index: 4;
    top: 75px;
    left: 0;
    right: 0;
    border-color: rgba(0, 0, 0, 0.05);
    transition: all .2s linear;
}

.discount-group-section {
    margin: calc(2 * var(--space-40)) 0;
}

.product-slider-chunk {
    width: 25%;
    z-index: unset;
}

.product-list-slider.swiper {
    width: 100%;
    padding-bottom: 1px;
    padding-right: 1px;
}

@media screen and (min-width: 1140px) {
    .product-slider-chunk:hover {
        z-index: 3;
    }
}

.icons-section {
    position: relative;
    margin: calc(2 * var(--space-50)) 0;
    padding: calc(2 * var(--space-50)) 0;
}

.icons-section-list {
    display: grid;
    grid-template-columns: repeat(4, auto);
    gap: var(--space-25);
    justify-content: space-between;
}

.icons-section-item {
    display: flex;
    align-items: center;
    gap: var(--space-25);
}

.icons-section-item .text {
    color: #fff;
    font-size: 20px;
    line-height: 1.5em;
}

.opinion-chunk-item {
    position: relative;
    width: 50%;
    height: unset;
    padding: 0 calc(2 * var(--space-50));
    display: flex;
    flex-direction: column;
    gap: var(--space-60);
}

.opinion-chunk-item:before {
    content: '';
    position: absolute;
    z-index: 2;
    top: 0;
    bottom: 0;
    left: 0;
    width: 1px;
    background-color: rgba(0, 0, 0, 0.1);
}

.opinion-list {
    width: calc(100% + 4 * var(--space-50));
    margin: 0 calc(-2 * var(--space-50));
}

.opinion-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: calc(var(--space-25) - 5px);
}

.opinion-author-image {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.opinion-author-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.opinion-heading-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.opinion-name {
    font-size: 18px;
    font-weight: 700;
}

.opinion-date {
    font-size: 15px;
}

.opinion-heading-inner-bottom {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-25);
}

.comment-section-inner {
    display: flex;
}

.comment-section-stats {
    width: 33.3333%;
    padding-right: calc(2 * var(--space-50));
}

.comment-stats-inner {
    display: flex;
    flex-direction: column-reverse;
    gap: var(--space-25);
}

.comment-section-comments {
    width: 66.6666%;
    padding-left: calc(2 * var(--space-50));
}

.comment-section-comments.full-slider {
    width: 100%;
    padding-left: 0;
}

.btn-arrow.swiper-button-lock {
    display: none;
}

.arrows:has(.btn-arrow.swiper-button-lock) {
    display: none;
}

.only-rwdPanel {
    display: none !important;
}

.rwdPanel .only-rwdPanel {
    display: inline-block !important;
}

.rwdPanel li.only-rwdPanel {
    display: flex !important;
}

.news-list.rowCount-2 {
    grid-template-columns: repeat(2, 1fr);
}

@media screen and (min-width: 1140px) {
    .btn-aside-toggle,
    .aside-shadow {
        display: none;
    }
}

.product-view-availability {
    font-size: 15px;
    line-height: 2em;
}

.product-view-top-content-basket .shop-quantity-box {
    padding: 0;
    min-width: 152px;
}

.product-view-top-content-basket .shop-quantity-box .qty-down,
.product-view-top-content-basket .shop-quantity-box .qty-up {
    top: 0;
}

.pagination-wrapper {
    padding: 0;
    max-width: 100%;
    width: 100%;
    margin: calc(2 * var(--space-50)) 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pagination-wrapper > ul {
    max-width: 810px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--space-25) + 5px);
}

.pagination-wrapper ul li.next {
    margin-left: auto;
}

.pagination-wrapper ul li.prev {
    margin-right: auto;
}

.pagination-wrapper ul li,
.pagination-wrapper ul li span,
.pagination-wrapper ul li a {
    padding: 0;
}

.pagination-wrapper ul li.next a,
.pagination-wrapper ul li.prev a {
    display: flex !important;
    width: 46px !important;
    height: 46px !important;
    transition: all .2s linear !important;
}

@media screen and (min-width: 1140px) {
    .pagination-wrapper ul li.next a:hover,
    .pagination-wrapper ul li.prev a:hover {
        color: #fff;
    }
}

.aside-page-content .product-list {
    margin-bottom: calc(2 * var(--space-50));
}

.text h2 {
    font-size: 32px;
    font-weight: 700;
    margin: 20px 0;
}

.text > h2:first-child {
    margin-top: 0;
}

.section-heading.text-page-heading {
    padding-bottom: var(--space-50);
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.shop-product-box.swiper-slide {
    width: 25%;
    position: relative;
    z-index: 1;
}

@media screen and (min-width: 1140px) {
    .shop-product-box.swiper-slide:hover {
        z-index: 2;
    }
}

.main-deco {
    position: absolute;
    z-index: -1;
    left: 0;
    right: 0;
    top: calc(100vw * (826 / 1920) + (2 * var(--space-60)));
}

.main-deco img {
    display: block;
    width: 100%;
    object-fit: contain;
}

.add-opinion {
    padding: 0 var(--space-60) var(--space-40);
    background-color: #fff;
    color: #000;
    max-width: min(760px, calc(100% - 2 * var(--container-padding)));
}

.add-opinion-title {
    margin: 0 calc(-1 * var(--space-60)) var(--space-40) calc(-1 * var(--space-60));
    font-size: 30px;
    text-align: center;
    font-weight: 700;
    color: #fff;
    background-color: var(--color-primary);
    padding: var(--space-25);
}

.add-opinion-subtitle {
    font-size: 20px;
    font-weight: 700;
    text-align: center;
    margin-bottom: var(--space-40);
}

.add-opinion .form .form-control {
    color: #000;
}

.add-opinion .form .alert-block .error {
    color: #ef5552 !important;
}

.fancybox-close-small:after {
    color: #fff;
}

.fancybox-close-small:hover:after {
    color: var(--color-primary);
}

.opinion-heading-stars {
    display: flex;
    align-items: center;
    gap: 11px;
}

.opinion-heading-stars .icon-wrapper {
    width: 17px;
}

.comment-stats-item {
    width: 100%;
    display: flex;
    align-items: center;
    gap: var(--space-25);
}

.stats-item-nr {
    width: 10px;
    flex-shrink: 0;
    text-align: left;
    font-size: 15px;
}

.comment-stats-item .icon-wrapper {
    width: 22px;
}

.comment-stats-item .icon-wrapper img {
    width: 100%;
}

.comment-stats-item .caption {
    font-size: 15px;
    width: 35px;
    flex-shrink: 0;
    text-align: left;
}

.comment-stats-bar {
    flex-grow: 1;
    height: 5px;
    border-radius: 5px;
    background-color: rgba(0, 0, 0, 0.1);
}

.comment-stats-bar-inner {
    display: block;
    height: 100%;
    border-radius: 5px;
    background-color: var(--color-primary);
}

.rating-summary {
    display: flex;
    align-items: center;
    gap: 15px;
    justify-content: space-between;
    margin-bottom: var(--space-60);
}

.rating-summary-nr {
    font-size: 50px;
    font-weight: 700;
}

.rating-summary-stars {
    display: flex;
    align-items: center;
    gap: 4px;
}

.rating-summary-stars .icon-wrapper {
    width: 22px;
}

.rating-summary-count {
    font-size: 15px;
}

.discount-group-section .swiper:not(.swiper-initialized) .swiper-wrapper .shop-product-box:nth-of-type(n + 5) {
    display: none;
}

.shop-product-box.swiper-slide {
    height: unset !important;
}

.text-collection-bg {
    position: absolute;
    z-index: -4;
    left: 0;
    bottom: 15.1041vw;
    width: 47.9166vw;
}

.subpage .text-collection-bg {
    display: none;
}

.text-collection-bg img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

.aside-title {
    font-size: 24px;
    font-weight: 700;
    line-height: 2em;
    margin-bottom: var(--space-40);
}

.btn-link {
    color: var(--color-primary) !important;
}

.product-add-to-basket-modal .modal-dialog {
    width: min(calc(100% - (1 * var(--container-padding))), 800px);
}

.modal-basket-slider {
    width: 100%;
    margin-top: var(--space-25);
}

.modal-slider-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: var(--space-25);
}

.productTile-grid-title {
    font-size: 24px;
    font-weight: 700;
}

.product-add-to-basket-modal .shop-product-box.swiper-slide {
    width: 33.3333%;
}

.modal-product-slider {
    padding-bottom: 1px;
    padding-right: 1px;
}

.product-view-basket-select {
    width: 200px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    font-size: 15px;
}

.glyphicon {
    display: none !important;
}

.payment-page-content {
    display: flex;
    flex-direction: column;
    gap: var(--space-25);
    margin-bottom: var(--space-50);
}

.tiles-section .news-list {
    margin-bottom: 0;
}

.newsletter-section {
    position: relative;
    padding: calc(2 * var(--space-60)) 0;
}

.newsletter-section-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-25);
}

.newsletter-title {
    font-size: 50px;
    font-weight: 700;
    line-height: 1.2em;
    color: #000;
    max-width: 270px;
}

.newsletter-teaser {
    max-width: min(325px, 100%);
}

.newsletter-form {
    width: 485px;
    max-width: 100%;
    display: flex;
    align-items: flex-start;
}

.newsletter-form > .btn {
    flex-shrink: 0;
}

.newsletter-form > .form-group {
    flex-grow: 1;
    margin-bottom: 0;
    padding-right: 10px;
}

.newsletter-section-bg {
    position: absolute;
    z-index: -1;
    right: 0;
    bottom: 0;
    width: 49.6875vw;
}

.newsletter-section-bg img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

#newsletter-form .form-control::placeholder,
#newsletter-form .form-control {
    color: #000;
    font-family: "Red Hat Display", serif;
}

#newsletter-form .alert-block .error {
    padding: 7px 10px 5px 10px;
    background-color: #f00;
    color: #fff !important;
    margin-top: 0;
}

.modal-footer .hide-after-success {
    width: 100%;
}

.shop-product-pricePerUnit {
    font-size: 15px;
    line-height: 2em;
}

.product-view-basket-inner-quantity-btn .btn.btn-lg {
    padding: 10px var(--space-25);
    width: 100%
}

.inPost-element .form-element {
    position: relative;
}

.inPost-element .form-element .alert-block {
    position: absolute;
    left: 0;
    top: 100%;
    right: 0;
    z-index: 3;
}

.inPost-element .form-control {
    float: unset;
}

.news-slider-list .news-item {
    width: 33.3333%;
    padding: calc(var(--space-60) / 4);
}

/* Wariant dla dokładnie 4 wpisów (karta produktu — limit z Sections.php). Fallback
   sprzed startu Swipera jest zestrojony z siatką 3x2, czyli zakłada >=6 wpisów; przy 4
   układał 3+1, a Swiper przeliczał to na 1 rząd i z powrotem — sekcja skakała 772 -> 504
   -> 772 px. Tutaj obie strony mówią to samo: jeden rząd po 4. Zmiana szerokości MUSI iść
   w parze ze slidesPerView w news.phtml. */
.news-slider-compact .news-item {
    width: 25%;
}

.news-slider-list .news-item:before {
    inset: calc(var(--space-60) / 4);
}

.news-slider-list:not(.swiper-initialized) .news-item:nth-of-type(n + 7) {
    display: none;
}

.mainpage .about-top-column-image {
    pointer-events: none;
}

.payment-methods .shop-method-icon + .shop-method-name {
    display: none;
}

.payment-methods .col-xs-4 > label {
    display: flex;
    align-items: center;
}

.product-box-content .price-box {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.shop-quantity-discount {
    display: flex;
    align-items: flex-end;
    gap: 15px;
    flex-wrap: nowrap;
    margin-top: var(--space-40);
}

.shop-quantity-discount-item {
    font-size: 15px;
    font-weight: 400;
    padding: 10px calc(var(--space-25));
    color: #000;
    background-color: rgba(0, 0, 0, 0.1);
    border: 1px solid var(--color-primary);
    min-height: 47px;
    display: flex;
    align-items: center;
    transition: all .2s linear;
    border-radius: 0 10px 10px 10px;
}

.modal-product-slider .shop-add-to-basket .btn {
    /*padding: 0;*/
    /*width: 46px;*/
    /*height: 46px;*/
    padding: 10px 15px;
    gap: 10px;
    width: 100%;
}

.modal-product-slider .shop-add-to-basket {
    width: 100%;
}

.btn-opinion-more {
    padding: 0;
    display: inline;
    font-size: inherit;
    font-weight: 700;
    text-transform: lowercase;
}

.opinion-item .fancybox-close-small:after {
    background-color: var(--color-primary);
}

@media screen and (min-width: 1140px) {
    .opinion-item .fancybox-close-small:hover:after {
        background-color: var(--color-secondary);
        color: #fff;
    }
}

.fancybox-slide > .opinion-item {
    max-width: min(500px, calc(100vw - (2 * var(--container-padding))));
}

.shop-quantity-discount-item-wrapper {
    cursor: pointer;
}

.shop-quantity-discount-item-wrapper.lowest-price .shop-quantity-discount-item {
    background-color: #fff;
    color: #C20600;
    border: 1px solid #C20600;
    transition: all .2s linear;
    border-radius: 0 0 10px 10px;
}

@media screen and (min-width: 1140px) {
    .shop-quantity-discount-item-wrapper.lowest-price:hover .shop-quantity-discount-item {
        background-color: #C20600;
        color: #fff;
        border-top-color: #fff;
    }

    .shop-quantity-discount-item-wrapper:not(.lowest-price):hover .shop-quantity-discount-item {
        background-color: #fff;
        color: #000;
        border-color: rgba(0, 0, 0, 0.1);
    }
}

.shop-quantity-discount-item-wrapper .shop-quantity-discount-item-label {
    padding: 5px 15px;
    text-transform: uppercase;
    min-height: 34px;
    padding-bottom: 5px;
    font-size: 15px;
    color: #fff;
    background-color: var(--color-primary);
    display: flex;
    align-items: center;
    border-radius: 10px 10px 0 0;    
}

.shop-quantity-discount-item-wrapper.lowest-price .shop-quantity-discount-item-label {
    padding: 5px 15px;
    background-color: #C20600;
    color: #fff;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    border-radius: 10px 10px 0 0;
    min-width: 174px;
}

.shop-quantity-discount-item-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.contact-form-section {
    z-index: 2;
}

.news-section .swiper:not(.swiper-initialized) .swiper-wrapper {
    flex-wrap: wrap;
}

.news-section .swiper:not(.swiper-initialized) .swiper-wrapper .swiper-slide:nth-of-type(n + 7) {
    display: none;
}

.opinion-heading-product {
    font-size: 16px;
    font-weight: 600;
}

.product-view-price-wrapper .shop-product-price {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 calc(var(--space-25) + 3px);
}

.shop-product-price-discount-percentage {
    padding: 7px 13px;
    background-color: #C20600;
    font-size: 15px;
    font-weight: 400;
    text-transform: uppercase;
    color: #fff;
}

.invoice-address-fieldset .form-element-name {
    display: flex;
}

.invoice-address-fieldset .form-element-name .form-element-container.form-element-copy-btn {
    margin-left: auto;
}


.basket-banner {
    margin-bottom: var(--space-50);
    margin-top: calc(var(--space-40) - 10px);
}

.basket-banner a {
    display: block;
}

.basket-banner img {
    display: block;
    max-width: 100%;
}

.basket-banner-mobile {
    display: none;
    margin-bottom: var(--space-50);
    margin-top: calc(var(--space-40) - 10px);
}

.basket-banner-mobile a {
    display: block;
}

.basket-banner-mobile img {
    display: block;
    max-width: 100%;
}

.author {
    margin-top: var(--space-60);
    border: 1px solid rgba(0, 0, 0, 0.1);
    padding: var(--space-25) var(--space-50);
    display: flex;
    align-items: center;
    gap: var(--space-60);
}

.author-image {
    border-radius: 50%;
    overflow: hidden;
    border: 1px #000 solid;
}

.author-image img {
    display: block;
    max-width: 100%;
}

.author-title {
    font-weight: 700;
    font-size: var(--font-24);
    margin-bottom: 20px;
}

.author .social-list {
    margin-top: 20px;
}

.author-name {
    font-weight: 700;
    font-size: var(--font-24);
    margin-bottom: 5px;
}

.author-job {
    font-weight: 700;
    margin-bottom: 10px;
}

.author-left {
    flex-shrink: 0;
}

.customer-group-bar {
    background-color: var(--color-primary);
    color: #fff;
    padding: 15px 0;

}

.customer-group-bar-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 500;
    position: relative;
}

.customer-group-bar-remove {
    position: absolute;
    top: 50%;
    right: 0;
    width: 30px;
    height: 30px;
    border: 1px solid #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    cursor: pointer;
    transition: all 0.3s;
}

.customer-group-bar-remove .fa {
    font-weight: 100;
}

@media screen and (min-width: 1140px) {
    .customer-group-bar-remove:hover {
        color: var(--color-secondary);
        background-color: #fff;
    }
}

section.boxText .section-inner .img-wrapper img {
    display: block;
    max-width: 70%;
}

section.boxText .section-inner .img-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    border: 1px solid rgba(0, 0, 0, 0.1);
    aspect-ratio: 1;
    flex-grow: 1;
    background-color: #fff;
    z-index: 1;
}

section.boxText .section-inner .content-left .box-text-title {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: var(--space-40);
    text-align: center;
}

section.boxText .section-inner .content-left .box-text {
    padding: var(--space-25);
    display: flex;
    align-items: center;
    flex-direction: column-reverse;
    justify-content: space-between;
}

section.boxText .section-inner .content-left {
    display: flex;
    width: calc(60% - var(--space-50));
    margin: calc(-1 * var(--space-25));
    justify-content: center;
}

section.boxText .section-inner .content-right .bg-floating {
    /* content: url(../images/mazaje.svg); */
    display: block;
    position: absolute;
    height: 378px;
    width: 1040px;
    top: 50%;
    left: 60%;
    transform: translate(-50%, -50%) rotate(357deg);
    pointer-events: none;
}

section.boxText .section-inner .content-right {
    width: 40%;
    position: relative;
    /* padding-left: var(--space-50); */
}

section.boxText {
    padding: calc(var(--space-40) * 2) 0;
    overflow: hidden;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
}

section.boxText .section-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-60);
}

/* #ffb011 na białym ma kontrast ~1.9:1 (WCAG AA wymaga 4.5:1) — secondary z palety przechodzi (4.9:1) */
.text a:not([class]) {
    color: var(--color-secondary);
    text-decoration: underline;
}

@media screen and (min-width: 1140px) {
    .text a:not([class]):hover {
        color: var(--color-primary);
        text-decoration: underline;
    }
}

.product-video-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    background-color: var(--color-secondary);
    padding: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    width: 75px;
    height: 75px;
    transition: all 0.3s;
}

.product-view-slider .product-video-icon svg{
    fill: #fff;
}

@media screen and (min-width: 1140px) {
    .product-view-slider .product-video-icon:hover {
        background-color: var(--color-primary);
    }

}

.product-view-nav-slide .product-video-icon {
    background: transparent !important;
}

.product-view-nav-slide .product-video-icon svg{
    fill: var(--color-secondary);
}

/* POPRAWKI M.MAZUR */
/* Critical-CSS swipera (kopia bazowych reguł swiper-bundle): arkusz libu jest nonblocking,
   a galeria produktu siedzi nad foldem — bez tych reguł pierwszy paint układał slajdy
   w pionowy stos do czasu dociągnięcia CSS swipera. Duplikaty są nieszkodliwe (te same wartości). */
.swiper {
    position: relative;
    overflow: hidden;
    list-style: none;
    padding: 0;
    z-index: 1;
}
.swiper-wrapper {
    position: relative;
    display: flex;
    width: 100%;
    height: 100%;
    z-index: 1;
    box-sizing: content-box;
}
.swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
}

/* ─────────────────────────────────────────────────────────────────────────
   Sekcja „Instagram" — 3 ostatnie posty (moduł Instagram, ROADMAP-INSTAGRAM.md)

   Zero JavaScriptu: układ robi grid (desktop) i scroll-snap (mobile, patrz
   responsive.css). Strona główna ma już 23 long-taski / 7 s na mobile — nowa
   sekcja nie może dołożyć ani jednego.
   ───────────────────────────────────────────────────────────────────────── */
.ig-section {
    padding: calc(2 * var(--space-50)) 0;
}

.ig-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: calc(var(--space-60) / 2);
}

/* Przy 1–2 postach nie rozciągamy kafli na całą szerokość — wyglądałyby
   jak baner, a nie jak posty. */
.ig-list-1 {
    grid-template-columns: minmax(0, 420px);
}

.ig-list-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 900px;
}

.ig-item {
    min-width: 0;
}

.ig-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: #fff;
    border: 1px solid var(--color-border-deafult);
    border-radius: 10px;
    color: var(--color-default);
    text-decoration: none;
    transition: box-shadow .2s linear;
}

.ig-card-media {
    display: block;
    position: relative;
    aspect-ratio: 1 / 1;
    background-color: rgba(0, 0, 0, .05);
    /* Zdjęcie zaokrąglamy tutaj, bo karta nie może mieć overflow:hidden —
       przycięłoby wystającą pigułkę z licznikami. */
    border-radius: 9px 9px 0 0;
}

.ig-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 9px 9px 0 0;
}

.ig-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 90px;
    /* Półprzezroczysta czerń pod ikoną — biały znacznik musi być czytelny
       zarówno na jasnym, jak i ciemnym kadrze. */
    background-color: rgba(0, 0, 0, .55);
    color: #fff;
}

.ig-badge-video svg {
    margin-left: 2px;
}

.ig-card-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    /* Górny padding większy o wystającą część pigułki z licznikami. */
    padding: 30px 16px 16px;
}

/* Pigułka z licznikami nachodzi na dolną krawędź zdjęcia. Ten sam kształt,
   co przyciski sklepu, a biały podkład daje stały kontrast niezależnie od
   jasności kadru — liczniki na samym zdjęciu bywałyby nieczytelne. */
.ig-stats {
    position: absolute;
    left: 14px;
    bottom: -16px;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 9px 16px;
    border-radius: 90px;
    background-color: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .12);
}

.ig-stat {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
}

.ig-stat-icon {
    color: var(--color-primary);
    flex-shrink: 0;
}

.ig-caption {
    font-size: 14px;
    line-height: 1.5;
    /* Dwie linie opisu — tyle wystarczy na kontekst, a każda kolejna
       rozjeżdża wysokość kafli w siatce. */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ig-date {
    font-size: 12px;
    color: rgba(51, 51, 51, .6);
}

@media screen and (min-width: 1140px) {
    a.ig-card:hover {
        box-shadow: 0 8px 24px rgba(0, 0, 0, .1);
    }

    a.ig-card:hover .ig-caption {
        text-decoration: underline;
    }
}

/* Widoczny focus dla nawigacji klawiaturą — kafel jest linkiem. */
.ig-card:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/*
 * Pole z błędem walidacji ma być WIDOCZNE, nie tylko opisane.
 *
 * Do tej pory jedynym sygnałem był mały czerwony podpis pod polem: ramka zostawała szara,
 * bo reguła motywu (`.form .form-control { border-color: rgba(0,0,0,0.1) }`) wygrywa
 * z bootstrapową `.has-error .form-control`. Klient klikał „Złóż zamówienie", strona
 * przewijała się kilkanaście pikseli i pozornie nic się nie działo - bo podpis wypadał
 * poza wzrokiem. Stąd wyższa waga selektora, a nie !important.
 */
.form .has-error .form-control,
.form .has-error input,
.form .has-error select,
.form .has-error textarea,
.has-error .form-control {
    border-color: #a94442;
    box-shadow: 0 0 0 2px rgba(169, 68, 66, 0.18);
}

/*
 * Zgody obsługujemy osobno: ich checkbox nie ma kontenera `.form-element`, więc walidator
 * nie dokłada mu klasy `has-error` i nie da się złapać pola selektorem potomka.
 * `:has()` pozwala podświetlić wiersz, w którym pojawił się komunikat. Przeglądarki bez
 * `:has()` (starsze niż Safari 15.4) pokazują sam czerwony podpis, czyli tyle co dotychczas.
 * Tło zamiast ramki, żeby nie przesuwać układu wiersza.
 */
.consent-row:has(.error) {
    background: rgba(169, 68, 66, 0.07);
    border-radius: 4px;
}

/**
 * KAFELEK PRODUKTU W ARTYKULE BLOGOWYM
 * Projekt: docs/superpowers/specs/2026-08-02-kafel-produktu-blog-design.md
 * Podwojna obudowa: tacka zewnetrzna + karta wewnetrzna z wlasnym cieniem.
 * Wartosci wybrane po porownaniu czterech wariantow - nie zmieniac "na oko".
 */
.blog-product-shell {
    background: rgba(61, 104, 0, 0.05);
    border-radius: 26px;
    padding: 7px;
    margin: 30px 0;
}

.blog-product-card {
    background: #fff;
    border-radius: 20px;
    padding: 16px;
    display: grid;
    gap: 14px;
    box-shadow: 0 10px 30px rgba(26, 28, 23, 0.06), inset 0 1px 1px rgba(255, 255, 255, 0.7);
}

.blog-product-label {
    justify-self: start;
    padding: 6px 12px;
    border-radius: 999px;
    background: #EDEFE7;
    color: #5B6154;
    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.blog-product-link {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    color: inherit;
    text-decoration: none;
    border-radius: 16px;
}

.blog-product-link:hover,
.blog-product-link:focus {
    color: inherit;
    text-decoration: none;
}

.blog-product-link:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}

/* Sztywne pudelko zdjecia = zero skoku ukladu (CLS) */
.blog-product-photo {
    width: 96px;
    height: 96px;
    aspect-ratio: 1;
    border-radius: 16px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F4F6EF;
}

.blog-product-photo img {
    max-width: 100%;
    max-height: 100%;
    display: block;
}

.blog-product-body {
    display: block;
    min-width: 0;
}

.blog-product-name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 16px;
    line-height: 1.25;
    font-weight: 650;
    letter-spacing: -0.015em;
    margin-bottom: 6px;
}

.blog-product-rating {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    color: #5B6154;
    margin-bottom: 6px;
}

.blog-product-stars {
    color: #B8860B;
    letter-spacing: 0.08em;
}

.blog-product-score {
    font-variant-numeric: tabular-nums;
}

.blog-product-price {
    display: block;
    font-size: 22px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: -0.025em;
    font-variant-numeric: tabular-nums;
}

.blog-product-availability {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    color: #2E7D4F;
}

.blog-product-form {
    margin: 0;
    display: grid;
    gap: 9px;
}

/* Drugi przycisk kafla: wchodzi razem z M5, do tego czasu sie nie renderuje. */
.blog-product-cta-secondary {
    width: 100%;
    min-height: 46px;
    border: 1.5px solid var(--color-primary);
    border-radius: 999px;
    background: transparent;
    color: var(--color-primary);
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: background-color 200ms ease-out;
}

.blog-product-cta-secondary:hover {
    background: rgba(61, 104, 0, 0.06);
}

.blog-product-cta-secondary:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .blog-product-cta-secondary {
        transition: none;
    }
}

.blog-product-cta {
    width: 100%;
    min-height: 50px;
    border: 0;
    border-radius: 999px;
    background: var(--color-primary);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 8px 0 20px;
    cursor: pointer;
    transition: transform 700ms cubic-bezier(0.32, 0.72, 0, 1);
}

.blog-product-cta-ring {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    display: grid;
    place-items: center;
    margin-left: auto;
    transition: transform 700ms cubic-bezier(0.32, 0.72, 0, 1);
}

.blog-product-cta-ring svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.blog-product-cta:hover .blog-product-cta-ring {
    transform: translate(3px, -1px) scale(1.06);
}

/* Odpowiedz na dotkniecie, nie na puszczenie */
.blog-product-cta:active {
    transform: scale(0.98);
}

.blog-product-cta:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .blog-product-cta,
    .blog-product-cta-ring {
        transition: none;
    }

    .blog-product-cta:active {
        transform: none;
        opacity: 0.86;
    }
}

@media (prefers-contrast: more) {
    .blog-product-card {
        border: 1px solid #1A1C17;
    }
}

/**
 * WIDOK WPISU BLOGA - iteracja 2
 * Projekt: docs/superpowers/specs/2026-08-02-wpis-bloga-iteracja-2-design.md
 *
 * Kolumna 720 px to ok. 89 znakow w wierszu wobec 184 sprzed zmiany. WCAG 1.4.8
 * (AAA) stawia limit 80, zmierzone serwisy z USA trzymaja 602-820 px.
 *
 * NIE zwezamy .container-md globalnie - ta klasa jest w dziewieciu szablonach,
 * w tym na karcie produktu i stronach CMS.
 */
@media screen and (min-width: 900px) {
    .container.container-md.news-view-container {
        max-width: 720px;
    }
}

/* Streszczenie wpisu: front sam nadaje mu wyglad leadu, autor pisze zwykly tekst. */
.news-view-teaser {
    font-size: 15px;
    line-height: 1.62;
    font-weight: 500;
    color: #1A1C17;
}

@media screen and (min-width: 900px) {
    .news-view-teaser {
        font-size: 19px;
        line-height: 1.65;
    }
}

/**
 * Justowanie tresci wpisu, razem ze streszczeniem.
 *
 * `hyphens: auto` jest tu obowiazkowe, nie ozdobne: bez dzielenia wyrazow
 * justowanie na kolumnie ok. 50 znakow (telefon) robi z polskiego tekstu
 * "rzeki" bialych przerw, bo slowa sa dlugie. Dzielenie dziala, bo <html>
 * ma atrybut lang (skeleton.phtml:31).
 *
 * Naglowki zostaja wyrownane do lewej - justowanie 2-3 wyrazow rozjezdza je
 * na cala szerokosc.
 */
.news-view-container .text,
.news-view-teaser {
    text-align: justify;
    -webkit-hyphens: auto;
    hyphens: auto;
}

/**
 * Naglowki nigdy nie sa justowane.
 *
 * `!important` nie jest tu wygoda, tylko koniecznoscia: CKEditor wkleja
 * `style="text-align:justify"` wprost do znacznika naglowka (dotyczy 4 wpisow
 * z 54), a styl inline bije KAZDA regule z arkusza. Bez tego justowanie
 * rozciaga trzy wyrazy na cala szerokosc telefonu.
 */
.news-view-container .text h1,
.news-view-container .text h2,
.news-view-container .text h3,
.news-view-container .text h4,
.news-view-container .text h5,
.news-view-container .text h6,
.news-view-container .blog-table-title,
.news-view-container .blog-faq-title,
.news-view-container .blog-faq-question {
    text-align: left !important;
    -webkit-hyphens: manual;
    hyphens: manual;
}

/**
 * SKALA NAGLOWKOW WPISU (wariant C, makieta zatwierdzona 2026-08-02)
 *
 * Stan sprzed zmiany, zmierzony na produkcji: H1 wysrodkowany przy tresci
 * wyrownanej do lewej, H2 32 px przy interlinii 28 px (wiersze nachodzily na
 * siebie), H3 14 px grubosci 400, czyli nie do odroznienia od tekstu zwyklego.
 *
 * Zasady: hierarchia z rozmiaru i grubosci razem, interlinia tym ciasniejsza im
 * wiekszy stopien, lekko ujemny tracking na duzych stopniach, odstep NAD
 * naglowkiem wiekszy niz pod nim - naglowek ma sie wiazac z tekstem, ktory
 * zapowiada, a nie z tym, ktory konczy.
 */

/* Tytul wpisu do lewej. Motyw centruje kazdy .news-view-heading (style.css
   ok. 2361) - nadpisujemy to WYLACZNIE wewnatrz widoku wpisu. */
.news-view-container .news-view-heading {
    align-items: flex-start;
    text-align: left;
}

.news-view-container .news-view-heading .section-title {
    font-size: 30px;
    line-height: 1.15;
    letter-spacing: -0.02em;
}

/* Naglowki sekcji w samej tresci artykulu. Krotka kreska w kolorze marki nad
   H2 dzieli dlugi wpis na czesci, ktore da sie omiesc wzrokiem. */
.news-view-text h2 {
    position: relative;
    margin: 38px 0 10px;
    padding-top: 15px;
    font-size: 22px;
    line-height: 1.25;
    letter-spacing: -0.015em;
    font-weight: 700;
}

.news-view-text h2::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 34px;
    height: 3px;
    border-radius: 2px;
    background: var(--color-primary);
}

.news-view-text h3 {
    margin: 24px 0 6px;
    font-size: 17px;
    line-height: 1.35;
    letter-spacing: -0.005em;
    font-weight: 600;
}

.news-view-text h4 {
    margin: 20px 0 5px;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 600;
}

@media screen and (min-width: 900px) {
    .news-view-container .news-view-heading .section-title {
        font-size: 40px;
        line-height: 1.1;
        letter-spacing: -0.025em;
    }

    .news-view-text h2 {
        margin: 50px 0 12px;
        padding-top: 17px;
        font-size: 28px;
    }

    .news-view-text h3 {
        margin: 30px 0 8px;
        font-size: 21px;
    }

    .news-view-text h4 {
        margin: 24px 0 6px;
        font-size: 18px;
    }
}

/* Byline wpisu: kto napisal i kiedy, nad zdjeciem glownym. */
.news-view-byline {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
    margin: 0 0 18px;
}

.news-view-avatar {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 50%;
    overflow: hidden;
    display: grid;
    place-items: center;
    background: var(--color-primary);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.news-view-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.news-view-autor {
    display: grid;
    line-height: 1.35;
}

.news-view-autor-imie {
    font-size: 14px;
    font-weight: 650;
}

/* Nazwisko jako odnosnik do strony autora. Podkreslenie dopiero na najechaniu:
   w bylinie sam kolor i kursor wystarcza, a ciagle podkreslenie konkurowaloby
   z tytulem wpisu tuz obok. */
a.news-view-autor-imie {
    color: inherit;
    text-decoration: none;
    text-underline-offset: 3px;
}

a.news-view-autor-imie:hover,
a.news-view-autor-imie:focus-visible {
    text-decoration: underline;
    text-decoration-color: var(--color-primary);
}

.news-view-autor-funkcja {
    font-size: 12.5px;
    color: #5B6154;
}

.news-view-daty {
    font-size: 12.5px;
    color: #8A9180;
}

@media screen and (min-width: 900px) {
    .news-view-daty {
        margin-left: auto;
    }
}

/* Sekcje opcjonalne wpisu: tabela porownawcza i pytania. */
.blog-table-section,
.blog-faq-section {
    margin: 34px 0;
}

.blog-table-title,
.blog-faq-title {
    font-size: 20px;
    line-height: 1.25;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0 0 10px;
}

/* Wlasny kontener przewijania: tabela nigdy nie rozpycha strony na telefonie. */
.blog-table-scroll {
    overflow-x: auto;
    border: 1px solid var(--color-border-deafult);
    border-radius: 12px;
}

.blog-table {
    border-collapse: collapse;
    width: 100%;
    min-width: 300px;
    font-size: 13px;
}

.blog-table th,
.blog-table td {
    text-align: left;
    padding: 9px 12px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.blog-table thead th {
    background: #F4F6EF;
    font-weight: 650;
    white-space: nowrap;
}

.blog-table tbody tr:last-child th,
.blog-table tbody tr:last-child td {
    border-bottom: 0;
}

.blog-table tbody th {
    font-weight: 650;
}

/* Zrodla wpisu: obecne, ale ciche - to przypis, nie tresc glowna. */
.blog-sources {
    margin: 34px 0;
    padding: 16px 18px;
    border-radius: 12px;
    background: #F4F6EF;
}

.blog-sources-title {
    font-size: 15px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #5B6154;
    margin: 0 0 8px;
}

.blog-sources-list {
    margin: 0;
    padding-left: 20px;
    font-size: 12.5px;
    line-height: 1.55;
    color: #5B6154;
}

.blog-sources-list li + li {
    margin-top: 7px;
}

.blog-sources-list a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
    overflow-wrap: anywhere;
}

@media screen and (min-width: 900px) {
    .blog-sources-title {
        font-size: 16px;
    }

    .blog-sources-list {
        font-size: 13.5px;
    }
}

.blog-faq-item {
    border-bottom: 1px solid var(--color-border-deafult);
}

.blog-faq-item:first-child {
    border-top: 1px solid var(--color-border-deafult);
}

.blog-faq-question {
    cursor: pointer;
    list-style: none;
    padding: 13px 28px 13px 2px;
    position: relative;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.4;
}

.blog-faq-question::-webkit-details-marker {
    display: none;
}

.blog-faq-question::after {
    content: '+';
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-primary);
    font-size: 18px;
    font-weight: 400;
}

.blog-faq-item[open] .blog-faq-question::after {
    content: '\2212';
}

.blog-faq-question:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.blog-faq-answer {
    padding: 0 2px 14px;
    font-size: 13.5px;
    line-height: 1.6;
    color: #5B6154;
}

@media screen and (min-width: 900px) {
    .blog-table {
        font-size: 15px;
    }

    .blog-table th,
    .blog-table td {
        padding: 11px 14px;
    }

    .blog-table-title,
    .blog-faq-title {
        font-size: 26px;
    }

    .blog-faq-question {
        font-size: 16px;
    }

    .blog-faq-answer {
        font-size: 14.5px;
    }
}

/**
 * PODSTRONA AUTORA (zadanie 0.18, wariant A "karta eksperta")
 * Projekt: docs/superpowers/specs/2026-08-02-strona-autora-design.md
 *
 * Kolejnosc na stronie nie jest przypadkowa: przy tresciach zdrowotnych
 * czytelnik szuka najpierw tego, co da sie sprawdzic, wiec karta faktow stoi
 * nad biogramem, a ujawnienie powiazan nie jest schowane na dole.
 */
@media screen and (min-width: 900px) {
    .container.container-md.autor-strona {
        max-width: 720px;
    }
}

.autor-szpica {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 0 0 22px;
}

.autor-foto img {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

.autor-imie {
    margin: 0 0 3px;
    font-size: 26px;
    line-height: 1.2;
    letter-spacing: -0.02em;
    font-weight: 700;
}

.autor-funkcja {
    margin: 0;
    color: #5B6154;
    font-size: 14px;
    font-weight: 600;
}

/* Karta faktow: to, co czytelnik moze zweryfikowac. */
.autor-fakty {
    border: 1px solid var(--color-border-deafult, rgba(25, 28, 20, 0.12));
    border-radius: 16px;
    background: #F6F6F1;
    padding: 16px 18px;
    margin: 0 0 18px;
}

.autor-fakty dl {
    margin: 0;
    display: grid;
    gap: 14px;
}

.autor-fakt dt {
    margin: 0 0 4px;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #7C8271;
    font-weight: 700;
}

.autor-fakt dd {
    margin: 0 0 4px;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 500;
}

.autor-fakt dd:last-child {
    margin-bottom: 0;
}

/**
 * Pozycja karty faktow: po lewej dwie linie (co, a pod spodem gdzie),
 * po prawej rok. Lata stoja w jednej kolumnie o stalej szerokosci, wiec daja
 * sie porownac wzrokiem, zamiast gubic sie w srodku zdania.
 */
.autor-pozycja {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 12px;
}

.autor-pozycja:last-child {
    margin-bottom: 0;
}

.autor-pozycja-tresc {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.autor-pozycja-glowna {
    font-weight: 600;
    line-height: 1.35;
}

.autor-pozycja-miejsce {
    font-size: 13px;
    line-height: 1.4;
    color: #5B6154;
}

.autor-rok {
    flex: 0 0 auto;
    min-width: 86px;
    text-align: center;
    font-size: 12.5px;
    color: #7C8271;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.autor-obszary {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 0 20px;
    padding: 0;
    list-style: none;
}

.autor-obszary li {
    font-size: 12px;
    font-weight: 600;
    padding: 5px 11px;
    border-radius: 999px;
    background: rgba(61, 104, 0, 0.09);
    color: var(--color-primary);
}

.autor-zajawka {
    font-size: 15px;
    line-height: 1.62;
    font-weight: 500;
}

.autor-naglowek {
    position: relative;
    margin: 34px 0 10px;
    padding-top: 15px;
    font-size: 20px;
    line-height: 1.25;
    letter-spacing: -0.015em;
    font-weight: 700;
}

.autor-naglowek::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 34px;
    height: 3px;
    border-radius: 2px;
    background: var(--color-primary);
}

.autor-licznik {
    color: #7C8271;
    font-weight: 600;
}

.autor-strona .text {
    text-align: justify;
    -webkit-hyphens: auto;
    hyphens: auto;
}

/* Nota o powiazaniach: spokojny akapit pod kreska, nie ostrzezenie. */
.autor-powiazania {
    border-top: 1px solid var(--color-border-deafult, rgba(25, 28, 20, 0.12));
    padding: 14px 0 0;
    margin: 22px 0 0;
}

.autor-powiazania strong {
    display: block;
    margin: 0 0 5px;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-primary);
    font-weight: 700;
}

.autor-powiazania p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: #5B6154;
}

.autor-profile {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0 0;
}

.autor-profile a {
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--color-border-deafult, rgba(25, 28, 20, 0.16));
    border-radius: 999px;
    padding: 7px 14px;
    transition: border-color 0.2s cubic-bezier(0.32, 0.72, 0, 1);
}

.autor-profile a:hover {
    border-color: var(--color-primary);
}

.autor-wpisy {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--color-border-deafult, rgba(25, 28, 20, 0.12));
    border-radius: 14px;
    overflow: hidden;
}

.autor-wpisy li + li {
    border-top: 1px solid var(--color-border-deafult, rgba(25, 28, 20, 0.10));
}

.autor-wpisy a {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
    padding: 12px 15px;
    text-decoration: none;
    color: inherit;
    transition: background 0.2s cubic-bezier(0.32, 0.72, 0, 1);
}

.autor-wpisy a:hover {
    background: rgba(61, 104, 0, 0.05);
}

.autor-wpis-tytul {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
}

.autor-wpis-data {
    font-size: 11.5px;
    color: #7C8271;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

@media screen and (min-width: 900px) {
    .autor-foto img {
        width: 132px;
        height: 132px;
    }

    .autor-imie {
        font-size: 34px;
    }

    .autor-fakty dl {
        grid-template-columns: 1fr 1fr;
        gap: 16px 24px;
    }

    .autor-naglowek {
        font-size: 26px;
        margin-top: 46px;
    }

    .autor-zajawka {
        font-size: 18px;
    }
}

/* ── White Label BLIK (M15): skrzynka z polem na kod ───────────────────── */
.blik-box {
    border: 1.5px solid var(--color-primary);
    border-radius: 10px;
    padding: 14px;
    background: #FBFDF8;
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 15px 0;
    text-align: left;
}

.blik-box-head {
    display: flex;
    align-items: center;
    gap: 10px;
}

.blik-box-logo {
    background: #000;
    color: #fff;
    font-weight: 800;
    font-size: 13px;
    border-radius: 7px;
    padding: 5px 9px;
    line-height: 1;
}

.blik-box-label {
    font-size: 13px;
    font-weight: 600;
    margin: 0;
}

/* 24 px, bo kod ma byc czytelny bez powiekszania. Ponizej 16 px iOS sam zoomuje
   strone przy wejsciu w pole - lekcja z M19. */
.blik-box-code {
    display: block;
    width: 100%;
    min-height: 48px;
    border: 1px solid rgba(0, 0, 0, .25);
    border-radius: 8px;
    font-size: 24px;
    letter-spacing: .45em;
    text-align: center;
    padding: 10px 0 10px .45em;
    background: #fff;
    font-variant-numeric: tabular-nums;
}

.blik-box-hint {
    font-size: 12px;
    color: #777;
    margin: 0;
}

.blik-box-submit {
    width: 100%;
    min-height: 48px;
}

.blik-box-notices {
    border-top: 1px dashed rgba(0, 0, 0, .12);
    padding-top: 8px;
}

.blik-box-notice-title {
    font-size: 10px;
    line-height: 1.45;
    color: #777;
    font-weight: 600;
    margin: 0 0 4px;
}

/* Klauzula mBanku ma kilka tysiecy znakow. Na podsumowaniu zamowienia nie moze zajac
   dwoch ekranow telefonu, wiec jest w obszarze przewijanym: tresc jest w calosci obecna
   i widoczna, a nie przytloczy strony. Gdyby Paynow wymagal pelnego rozwiniecia przy
   weryfikacji zrzutu - zdjac max-height. */
.blik-box-notice {
    font-size: 10px;
    line-height: 1.5;
    color: #999;
    margin: 0 0 4px;
    max-height: 150px;
    overflow-y: auto;
    padding-right: 6px;
}

.blik-box-notice a {
    color: #777;
    text-decoration: underline;
}

.blik-box-notice ul {
    padding-left: 18px;
    margin: 4px 0;
}

/* ── White Label BLIK: ekran oczekiwania na potwierdzenie w banku ──────── */
.blik-waiting {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 26px 8px 10px;
    text-align: center;
}

.blik-waiting-spinner {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 4px solid rgba(61, 104, 0, .15);
    border-top-color: var(--color-primary);
    animation: blik-spin 1s linear infinite;
}

@keyframes blik-spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .blik-waiting-spinner {
        animation: none;
    }
}

.blik-waiting-sub {
    font-size: 13px;
    color: #777;
    max-width: 32ch;
}

.blik-waiting-poll {
    font-size: 11px;
    color: #999;
}

.blik-preview-marker {
    font-size: 12px;
    color: #876C38;
    background: #FFF8E7;
    border: 1px dashed #D9C08A;
    border-radius: 6px;
    padding: 6px 10px;
    margin: 15px 0 0;
    text-align: left;
}

/* ── popup „dodano do koszyka" ──────────────────────────────────────────
   Jedna mocna akcja: przycisk do koszyka, zamkniecie jako link tekstowy.
   Padding na .top-box-bottom: kwota „128,00 zl" dobijala do prawej
   krawedzi okna na telefonie (zmierzone 14.08.2026). */
.modal-footer .modal-continue-link {
    display: block;
    width: 100%;
    margin-top: 10px;
    padding: 8px;
    background: none;
    border: none;
    color: var(--color-default);
    font-size: 14px;
    text-decoration: underline;
    cursor: pointer;
}

.modal .top-box-product .top-box-bottom {
    padding-right: 12px;
}

/* Kafle w karuzeli popupu sa MNIEJSZE niz na listingu: liczy sie tu
   rozpoznanie produktu, nie ogladanie go. Bez tego limitu zdjecie 4:5
   rozpychalo slajd do 385 px, karuzela do 446 px, a glowny przycisk
   "Przejdz do koszyka" ladowal 71 px pod dolna krawedzia okna telefonu
   (zmierzone 14.08.2026). */
.modal-basket-slider .product-box-image img {
    display: block;
    max-height: 130px;
    width: auto;
    margin: 0 auto;
}

/* Stopka popupu koszyka ZAWSZE widoczna. Po wlaczeniu karuzeli tresc urosla
   ponad wysokosc ekranu telefonu i glowna akcja ladowala pod zgieciem
   (698 px przy oknie 659). Przewija sie sama TRESC, naglowek i stopka stoja.
   position: sticky tu nie dziala - stopka jest ostatnim dzieckiem
   .modal-content, wiec nie ma sie do czego przykleic (sprawdzone).
   Rozwiazanie trzyma sie takze wtedy, gdy dojdzie pasek progu dostawy. */
.product-add-to-basket-modal .modal-content {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 40px);
}

.product-add-to-basket-modal .modal-body {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* Stopka w KOLUMNIE. Motyw ustawia .modal-footer[style="display: block"] na
   flex z justify-content: space-between, a nasz link „Kontynuuj zakupy" ma
   width: 100%, wiec zawijal sie do drugiej linii - przycisk zostawal sam
   w pierwszej i space-between dosuwal go do LEWEJ krawedzi (zgloszone przez
   wlasciciela: „na duzych ekranach przycisk ucieka na lewa strone").
   text-align: right z bootstrapa na flexie nie dziala. */
.product-add-to-basket-modal .modal-footer {
    flex-shrink: 0;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, .06);
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
}

.product-add-to-basket-modal .modal-footer > .btn {
    width: 100%;
}

/* ── pasek progu darmowej dostawy ───────────────────────────────────────
   Stala wysokosc (min-height), zeby wstawienie nie ruszalo ukladu (CLS).
   Kolory z palety: --color-primary na wypelnieniu. */
.prog-dostawy {
    min-height: 52px;
    margin: 10px 0;
    padding: 8px 12px;
    border-radius: 8px;
    background: #f2f7ee;
    font-size: 14px;
}

.prog-dostawy-pasek {
    height: 6px;
    margin-top: 6px;
    border-radius: 3px;
    background: rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

/* BEZ transition na width: szerokosc jest wpisywana inline przy renderze
   (partial liczy ja po stronie serwera) i nic jej pozniej nie zmienia, wiec
   przejscie nigdy sie nie odpalalo - a animowanie width to layout thrash.
   Gdyby pasek kiedys aktualizowal sie bez przeladowania, wlasciwa droga jest
   transform: scaleX z transform-origin: left, nie width. */
.prog-dostawy-wypelnienie {
    height: 100%;
    border-radius: 3px;
    background: var(--color-primary);
}

.prog-dostawy--osiagniety .prog-dostawy-pasek {
    display: none;
}

/* ==== static/css/responsive.css ==== */
@media screen and (min-width: 1921px) {
    body.compensate-for-scrollbar {
        margin-right: auto !important;
    }
}

/**
 * RWD PANEL
 */

@media screen and (min-width: 1140px) {
    .rwdPanel {
        display: none;
    }

    .rwdPanel-action-open,
    .rwdPanel-action-toggle {
        display: none !important;
    }
}

@media screen and (max-width: 1139px) {
    .rwdPanel {
        overflow-x: hidden;
        overflow-y: auto;
        position: fixed;
        z-index: 1000;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        background: #fff;
        border-top: 1px solid rgba(0, 0, 0, 0.1);
        transition-duration: 0.5s;
        transition-timing-function: ease;
        transition-property: transform, -webkit-transform, -ms-transform;
        /* Closed: */
        pointer-events: none;
        transform: translateY(100%);
        -webkit-transform: translateY(100%);
        -ms-transform: translateY(100%);
    }

    header.stickable .rwdPanel {
        z-index: -1;
    }

    .rwdPanel.active {
        pointer-events: all;
        transform: none;
        -webkit-transform: none;
        -ms-transform: none;
    }

    .rwdPanel-scrollLock body {
        position: fixed;
        width: 100%;
        overflow-y: scroll;
    }
}

/**
 * RWD MENU
 */

.rwdMenu {
    font-size: 1rem;
}

.rwdMenu ul {
    display: block;
    width: 100%;
    padding: 0;
}

.rwdMenu:not(:first-child) > ul {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.rwdMenu + .rwdMenu > ul {
    border-top: none;
}

.rwdMenu ul ul {
    /*display: none;*/
    box-shadow: inset 0 3px 5px -1px rgba(0, 0, 0, 0.12);
    background-color: rgba(0, 0, 0, 0.1);
}

.rwdMenu li {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.rwdMenu li.slided {
    /*border-bottom: none;*/
}

.rwdMenu a {
    color: inherit;
}

.rwdMenu li > *:first-child {
    flex: 1 0 0px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    min-height: 46px;
    padding: 5px var(--container-padding);
    text-align: left;
    word-break: break-word;
    color: #000;
    border: none;
}

.rwdMenu li > *:first-child:hover {
    text-decoration: none;
}

.rwdMenu li.active > *:first-child {
    font-weight: 700;
    color: var(--color-primary);
}

.rwdMenu > ul > li > *:first-child {
    text-transform: uppercase;
}

.rwdMenu > ul > li > ul {
    font-size: 0.875rem;
}

.rwdMenu > ul > li > ul > li > *:first-child {
    padding-left: calc(var(--container-padding) + 15px);
}

.rwdMenu > ul > li > ul > li > ul > li > *:first-child {
    padding-left: calc(var(--container-padding) + 30px);
}

.rwdMenu > ul > li > ul > li > ul > li > ul > li > *:first-child {
    padding-left: calc(var(--container-padding) + 45px);
}

.rwdMenu > ul > li > ul > li > ul > li > ul > li > ul > li > *:first-child {
    padding-left: calc(var(--container-padding) + 60px);
}

.rwdMenu > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > *:first-child {
    padding-left: calc(var(--container-padding) + 75px);
}

.rwdMenu li > *:first-child > .fa,
.rwdMenu li > *:first-child > .icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    font-size: 22px;
    flex-shrink: 0;
    margin: -9px 6px -9px -9px;
}

.rwdMenu li > *:first-child > .icon img {
    display: block;
    max-width: 100%;
    max-height: 100%;
}

.rwdMenu li > *:first-child > .caption {
    flex: 1 0 0;
}

.rwdMenu li > *:first-child > .caption * {
    display: inline-block;
}

.rwdMenu li > *:first-child > .caption ~ * {
    margin-left: 10px;
}

.rwdMenu .rwdMenu-count {
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 2em;
    height: 2em;
    text-align: center;
    font-size: 14px;
    color: #000;
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, 0.1);
    background-color: #fff;
}

.rwdMenu .user-nav li + li:before {
    display: none;
}

.cloneMenu-toggle {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 46px;
    padding: 0;
    text-align: center;
    font-size: 20px;
    font-weight: 700;
    border-top: none;
    border-right: none;
    border-bottom: none;
    border-left: 1px solid rgba(0, 0, 0, 0.04);
    background: rgba(0, 0, 0, 0.06);
}

.cloneMenu-toggle::before {
    content: "\f107";
    display: block;
    font-family: 'FontAwesome', sans-serif;
    transition: all 0.3s;
}

.cloneMenu-toggle.active::before {
    transform: rotateZ(180deg);
    -webkit-transform: rotateZ(180deg);
    -ms-transform: rotateZ(180deg);
}

.rwdPanel .social-list {
    margin: 15px 0;
    text-align: center;
}

/**
 * RWD BUTTON
 */

.rwdButton {
    float: right;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 46px;
    height: 46px;
    padding: 0;
    font-size: 18px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    background-color: #fff;
    transition: all 0.4s;
    border-radius: 10px;
}

.rwdButton .animIcon {
    opacity: 0;
    position: absolute;
    top: 10%;
    left: 10%;
    right: 10%;
    bottom: 10%;
    width: auto;
}

.rwdButton > * {
    transition: all 0.5s;
}

.rwdButton.rwdPanel-action-toggle.active {
    color: #fff;
    background-color: var(--color-primary);
}

.rwdButton .animIcon--close span {
    background-color: #fff;
}

.rwdButton:not(.active) > .animIcon--close {
    transform: scale(0.4);
    -webkit-transform: scale(0.4);
    -ms-transform: scale(0.4);
}

.rwdButton.active > .animIcon--close {
    opacity: 1;
}

.rwdButton.active > .animIcon--close ~ * {
    opacity: 0;
    transform: scale(0);
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
}

/* --------------- BREAKPOINTS --------------- */

@media screen and (max-width: 1660px) {
    .mainsearch {
        margin-right: 10px;
    }

    .logo {
        width: 230px;
    }
}

@media screen and (max-width: 1600px) {
    .product-view-basket-inner{
        flex-wrap: wrap;
    }
    #main-menu > ul > li > a {
        font-size: 14px;
        padding: 10px min(var(--space-25), 11px);
    }

    .about-collection-item-text {
        padding: var(--space-60) 0;
    }

    .about-collection-item-text-inner {
        padding-right: 0;
    }

    .about-collection-item {
        gap: var(--space-60);
    }

    .header-inner {
        gap: var(--space-50);
    }

    .logo {
        width: 190px;
        margin-top: -8px;
        margin-bottom: -10px;
    }
}

@media screen and (max-width: 1440px) {
    .basket-box-btn {
        min-width: 145px;
    }

    .header-inner {
        gap: var(--space-25);
    }

    .btn-section-tab {
        font-size: 14px;
    }

    .opinion-chunk-item {
        padding: 0 var(--space-50);
    }

    .opinion-list {
        width: calc(100% + 2 * var(--space-50));
        margin: 0 calc(-1 * var(--space-50));
    }

    .comment-section-comments {
        padding-left: var(--space-50);
    }

    .comment-section-stats {
        padding-right: var(--space-50);
    }

    .product-box-content .shop-add-to-basket .btn {
        gap: 10px;
        font-size: 14px;
        padding: 10px 0;
        width: 100%;
    }

    .product-box-content .shop-add-to-basket,
    .product-box-content {
        width: 100%;
    }

    .aside {
        width: 300px;
    }

    .aside-page-content {
        width: calc(100% - 300px - var(--space-60));
    }

    .footer-col.footer-col-4 {
        width: 375px;
        margin-bottom: calc(-3 * var(--space-40));
    }

    .footer-contact-link {
        font-size: 20px;
    }

    .video-play-btn {
        width: 300px;
    }

    .news-item-content {
        inset: var(--space-40);
    }

    .news-item-name {
        left: var(--space-40);
        right: var(--space-40);
        bottom: var(--space-40);
    }

    #main-menu > ul > li > a:before,
    #main-menu > ul > li > a {
        font-size: 13px;
    }

    #main-menu > ul > li > a {
        padding: 10px 15px;
    }

    .mainsearch {
        margin-right: 0;
    }

    .header-inner {
        padding: 26px 0;
    }

    .top-box {
        top: calc(100% + 26px);
    }

    #content {
        padding-top: 99px;
    }
}

@media screen and (max-width: 1280px) {
    .basket-box-btn {
        min-width: 120px;
        font-size: 13px;
    }

    .mainsearch input.form-control,
    .mainsearch input.form-control::placeholder {
        font-size: 13px;
    }

    .logo {
        width: 170px;
    }

    #main-menu > ul > li > a:before, #main-menu > ul > li > a {
        font-size: 13px;
    }

    #main-menu > ul > li > a {
        padding: 10px 11px;
    }

    .newsletter-form {
        width: 380px;
    }

    .news-item-content > .text {
        font-size: 26px;
    }

    .icons-section-item .text {
        font-size: 16px;
    }

    .icons-section-item .icon-wrapper {
        max-width: 50px;
    }

    .mainsearch {
        width: 180px;
    }

    #main-menu > ul > li > ul > li > a {
        font-size: 13px;
    }
}

@media screen and (min-width: 1140px) {
    .mainsearch {
        top: 0 !important;
    }

    .footer-content {
        display: block !important;
    }
}

@media screen and (max-width: 1139px) {

    .boxText .section-inner .content-right,
    .boxText .section-inner .content-left {
        width: 100% !important;
        padding-left: 0!important;
    }

    .boxText .section-inner {
        flex-direction: column;
    }

    .top-login-box > .login-form {
        display: none;
    }

    .shop-quantity-discount {
        /*margin-bottom: var(--space-40);*/
    }

    .product-view-top-content > *:first-child {
        margin-top: 0;
    }

    .product-view-top-content-basket {
        /*margin-top: 0;*/
    }

    .product-view-photos {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: var(--space-50);
    }

    .btn-section-tab {
        font-size: 13px;
    }

    .newsletter-section-inner {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .newsletter-title {
        width: 100%;
        max-width: unset;
    }

    .newsletter-section-bg {
        width: 66vw;
    }

    .aside-title {
        padding: 0 var(--container-padding);
        margin: var(--space-25) 0;
    }

    .discount-group-section .swiper:not(.swiper-initialized) .swiper-wrapper .shop-product-box:nth-of-type(n + 7) {
        display: none;
    }

    .comment-section-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: calc(2 * var(--space-60));
    }

    .comment-section-stats {
        padding-right: 0;
        width: 100%;
        max-width: 500px;
    }

    .comment-section-comments {
        width: 100%;
        padding: 0;
    }

    .shop-product-box.swiper-slide {
        width: 33.3333%;
    }

    .composition-item-name {
        font-size: 20px;
    }

    .product-view-icons-list {
        justify-content: space-evenly;
    }

    .product-view-photos:after {
        content: none;
    }

    .product-view-top-content:before {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        top: calc(-1.5 * var(--space-50));
        height: 1px;
        background-color: rgba(0, 0, 0, 0.1);
    }

    .product-view-top-inner {
        flex-direction: column;
        align-items: center;
    }

    .product-view-photos-inner {
        width: 100%;
        max-width: 500px;
        margin: 0 auto;
    }

    .product-view-top-content {
        width: 100%;
        position: relative;
    }

    /* M6: przyklejony pasek zakupu. Istnieje WYLACZNIE tutaj, w bloku mobile -
       na desktopie przycisk jest nad zgieciem (840 px przy 1080 px) i pasek nie ma sensu.
       Element jest position:fixed, wiec jest poza ukladem strony i nie generuje CLS. */
    .product-sticky-bar {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 90;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 10px var(--container-padding) calc(10px + env(safe-area-inset-bottom));
        background: #fff;
        box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.12);
        transform: translateY(110%);
        transition: transform .2s ease-out;
    }

    .product-sticky-bar.is-visible {
        transform: translateY(0);
    }

    .product-sticky-bar .product-sticky-bar-btn {
        min-height: 48px;
        flex-shrink: 0;
    }

    .product-sticky-bar .product-sticky-bar-price {
        line-height: 1.1;
    }

    .product-sticky-bar .product-sticky-bar-price .shop-product-price,
    .product-sticky-bar .product-sticky-bar-price .price {
        margin: 0;
    }

    /* stala rezerwa, zeby pasek nie zaslanial konca strony; stala, wiec nie przesuwa ukladu */
    .shop-product-view {
        padding-bottom: calc(74px + env(safe-area-inset-bottom));
    }

    .product-list {
        grid-template-columns: repeat(3, 1fr);
    }

    .aside-page-content {
        width: 100%;
    }

    aside.aside {
        position: fixed;
        z-index: 5;
        left: -300px;
        top: 83px;
        bottom: 0;
        transition: all .2s ease-in-out;
        background-color: #fff;
        overflow: auto;
    }

    aside.aside.active {
        left: 0;
    }

    .aside-shadow {
        position: fixed;
        z-index: 4;
        bottom: 0;
        top: 83px;
        left: 300px;
        right: 0;
        background-color: rgba(0, 0, 0, 0.2);
        opacity: 0;
        pointer-events: none;
        transition: all .2s ease-in-out;
    }

    .aside-shadow.active {
        opacity: 1;
        pointer-events: initial;
    }

    .btn-aside-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 30px;
        height: 30px;
        position: fixed;
        top: 250px;
        left: 0;
        z-index: 6;
        background-color: var(--color-primary);
        border: none;
        color: #fff;
        transition: all .2s ease-in-out;
    }

    .btn-aside-toggle.active {
        left: 310px;
    }

    .btn-aside-toggle:not(.active) .icon-close,
    .btn-aside-toggle.active .icon:not(.icon-close) {
        display: none;
    }

    .aside::-webkit-scrollbar {
        width: 3px;
    }

    .aside::-webkit-scrollbar-track {
        background: #fff;
    }

    .aside::-webkit-scrollbar-thumb {
        background: var(--color-primary);
    }

    /* Styl dla przeglądarki Firefox */
    @-moz-document url-prefix() {
        .aside {
            scrollbar-width: thin;
            scrollbar-color: var(--color-primary) #fff;
        }
    }

    .contact-form-inner-deco-2 {
        display: none;
    }

    .contact-form-inner {
        max-width: 100%;
        width: 100%;
    }

    .contact-page-info-inner .caption2 {
        font-size: 15px;
    }

    .news-item-name {
        font-size: 20px;
    }

    .footer-text-social {
        margin-top: calc(var(--space-60) / 2);
        padding: calc(var(--space-60) / 2) 0;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
    }

    .footer-col-heading .icon {
        display: flex;
        width: 15px;
        color: #fff;
        transition: all .2s linear;
    }

    .footer-col-heading.active .icon {
        transform: scaleY(-1);
    }

    .footer-col:not(.footer-col-4) {
        position: relative;
    }

    .footer-col:not(.footer-col-4):before {
        content: '';
        position: absolute;
        z-index: 2;
        pointer-events: none;
        bottom: calc(-0.5 * var(--space-60));
        left: 0;
        right: 0;
        height: 1px;
        background-color: rgba(255, 255, 255, 0.1);
    }

    .footer-payments {
        padding: 0;
        border-bottom: none;
    }

    .footer-col-content {
        display: none;
    }

    .footer-cols {
        flex-direction: column;
        gap: var(--space-60);
        padding-bottom: var(--space-60);
    }

    .footer-col.footer-col-4 {
        transform: translateX(8%);
        margin-bottom: unset;
        order: -1;
        margin-right: auto;
        max-width: 375px;
        width: 100%;
    }

    .footer-cols:before {
        content: none;
    }

    .video-play-btn {
        width: 215px;
    }

    .about-top-bottom, .about-top-inner {
        grid-template-columns: 1fr 1fr;
    }

    .about-top-column.about-top-column--image {
        /*order: 3;*/
    }

    .text-collection-inner {
        flex-direction: column !important;
    }

    .text-collection-image {
        width: 100%;
        display: flex;
        justify-content: center;
    }

    .text-collection-image img {
        width: unset;
        height: unset;
        object-fit: unset;
        max-width: 100%;
    }

    .about-collection-item-text-title {
        font-size: 26px;
    }

    .section-title {
        font-size: 30px;
    }

    .section-heading:not(.has-heading-right) .section-title {
        max-width: 320px;
    }

    .product-slider-chunk {
        width: 33.3333%;
    }

    .header-inner {
        padding: 18px 0;
    }

    #content {
        padding-top: 83px;
    }

    .mainsearch {
        width: 100%;
    }

    .text table tr td {
        padding: 6px 10px;
    }

    #main-menu {
        display: none;
    }

    .langs-menu {
        display: none !important;
    }

    .rwd-hide {
        display: none;
    }

    .text img {
        max-width: 100%;
        max-width: 100% !important;
    }

    .container {
        width: 100%;
    }

    .article-image {
        margin-right: 25px;
        margin-bottom: 15px;
    }

    .lang .langs-menu-short {
        display: none;
    }

    .lang .langs-menu-long {
        display: block;
    }

    .mainsearch.rwdPanel .mainsearch-search {
        background-color: var(--color-primary);
    }

    .mainsearch.rwdPanel .dropdown-menu {
        position: static !important;
        width: 100%;
        box-shadow: none;
    }

    .mainsearch.rwdPanel .mainsearch-search,
    .mainsearch.rwdPanel .dropdown-menu {
        padding: 15px;
    }

    .mainsearch.rwdPanel .dropdown-menu .dropdown-search-li.all-search-results {
        margin-top: 15px;
    }

    .mainsearch.rwdPanel .form-element-container {
        width: calc(100% - 46px);
        flex-grow: 0;
    }

    .mainsearch.rwdPanel .mainsearch-submit {
        height: 46px;
    }

    .mainsearch.rwdPanel input,
    .mainsearch.rwdPanel .mainsearch-submit {
        border: none;
    }

    .author-image {
        max-width: 150px;
    }

}

@media screen and (max-width: 900px) {
    .news-section .swiper:not(.swiper-initialized) .swiper-wrapper .swiper-slide:nth-of-type(n + 5) {
        display: none;
    }

    .news-slider-list .news-item {
        width: 50%;
    }

    .news-slider-list:not(.swiper-initialized) .news-item:nth-of-type(n + 5) {
        display: none;
    }

    /* Wariant 4 wpisów (patrz .news-slider-compact w style.css): na tablecie Swiper
       pokazuje 1 rząd po 2, więc fallback nie może wyświetlić czterech — inaczej sekcja
       kurczy się o rząd w momencie startu karuzeli. */
    .news-slider-compact:not(.swiper-initialized) .news-item:nth-of-type(n + 3) {
        display: none;
    }

    .section-heading.has-heading-right {
        flex-direction: column;
        align-items: flex-start;
    }
/*Poprawa sekcji z opiniami */
    .comment-section .section-heading.has-heading-right {
        flex-direction: row;
        align-items: flex-start;
    }

    .contact-page-top {
        flex-direction: column;
    }

    .contact-page-top-right,
    .contact-page-top-left {
        width: 100%;
        max-width: 620px;
    }

    .footer-text-social {
        flex-direction: column;
        align-items: center;
        gap: calc(var(--space-60) / 2);
    }

    .news-list {
        grid-template-columns: repeat(2, 1fr);
    }

    .news-slider-item {
        width: 50%;
    }

    .text-image-section-inner {
        flex-direction: column !important;
    }

    .text-image-section-image {
        width: 100%;
    }

    .icons-section-list {
        grid-template-columns: repeat(2, auto);
    }

    .footer-bar {
        text-align: center;
        padding: 13px 0;
        line-height: normal;
    }

    .footer-bar-content > * {
        float: none;
        display: inline-block;
        vertical-align: middle;
    }

    .footer-bar-content.footer-bar-content > * {
        margin-left: 15px;
        margin-right: 15px;
    }

    .footer-bar .footer-bar-links {
        display: block;
        margin: -3px -8px;
    }

    .footer-bar .footer-bar-links:not(:last-child) {
        margin-bottom: 3px;
    }

    .footer-bar-links > li {
        margin: 3px 8px;
        line-height: 20px;
    }

    .copyright,
    .copyright-undicom {
        margin-top: 4px;
        margin-bottom: 4px;
        line-height: 20px;
    }
}

@media screen and (max-width: 767px) {
    .product-add-to-basket-modal .shop-product-box.swiper-slide {
        width: 50%;
    }

    .discount-group-section .swiper:not(.swiper-initialized) .swiper-wrapper .shop-product-box:nth-of-type(n + 7) {
        display: none;
    }

    .opinion-chunk-item {
        width: 100%;
    }

    .shop-product-box.swiper-slide {
        width: 50%;
    }

    .product-view-title {
        font-size: 30px;
    }

    .composition-section-inner {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-60);
    }

    .sections-tabs {
        grid-template-columns: repeat(3, 1fr);
    }

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

    .about-top-bottom, .about-top-inner {
        grid-template-columns: 1fr;
    }

    .about-top-column.about-top-column--image {
        order: 3;
    }

    .about-collection-item:not(.about-collection-item--no-reverse) {
        flex-direction: column-reverse !important;
    }

    .about-collection-item.about-collection-item--no-reverse {
        flex-direction: column !important;
    }

    .about-collection-item + .about-collection-item {
        margin-top: calc(2 * var(--space-60));
    }

    .about-collection-item-text {
        padding: 0;
    }

    .about-collection-item-image {
        width: 100%;
    }

    .section-heading:not(.has-heading-right) .section-title {
        max-width: 260px;
    }

    .product-slider-chunk {
        width: 50%;
    }

    .btn-lg {
        font-size: 14px;
    }

    .text .table-responsive-wrapper {
        position: relative;
        padding-bottom: 40px;
        margin: 20px 0;
    }

    .text .table-responsive-wrapper::after {
        pointer-events: none;
        content: "";
        display: block;
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: 45px;
        background-size: contain;
        background-position: right 15px center;
        background-repeat: no-repeat;
        background-image: url(../images/rwd-table-hand.png);
        -webkit-animation-name: rwd-hand-move;
        animation-name: rwd-hand-move;
        -webkit-animation-duration: 1.5s;
        animation-duration: 1.5s;
        -webkit-animation-iteration-count: infinite;
        animation-iteration-count: infinite;
        -webkit-animation-direction: alternate;
        animation-direction: alternate;
        -webkit-animation-timing-function: linear;
        animation-timing-function: linear;
    }

    .text .table-responsive {
        margin: 0;
        border: none;
    }

    .text table {
        margin: 0;
        min-width: 780px;
    }

    @keyframes rwd-hand-move {
        0% {
            transform: translateX(-30px);
        }
        100% {
            transform: translateX(0);
        }
    }
    @-webkit-keyframes rwd-hand-move {
        0% {
            transform: translateX(-20px);
        }
        100% {
            transform: translateX(0);
        }
    }
    .form .form-element-captcha .captcha-image-wrapper {
        margin-bottom: 15px;
    }
}

@media screen and (min-width: 706px) {
    footer .show-hide {
        display: block !important;
    }
}

@media screen and (max-width: 639px) {
    .product-view-icons-list {
        grid-template-columns: repeat(2, auto);
    }

    .gallery-list {
        grid-template-columns: repeat(2, 1fr);
    }

    .video-play-btn {
        width: 150px;
    }

    .section-heading {
        flex-direction: column;
        align-items: flex-start;
    }

    .section-heading:not(.has-heading-right) .section-title {
        max-width: 100%;
    }

    .product-box-content .shop-add-to-basket .btn {
        font-size: 12px;
        padding: 10px 15px;
    }

    .product-container {
        padding: var(--space-40);
    }

    .slider-person-wrapper .icon-wrapper {
        width: 90px;
        height: 90px;
    }

    .slider-person-wrapper {
        gap: var(--space-25);
    }

    .header-right > .top-box-container {
        /*display: none;*/
    }

    .header-right > .top-box-container .basket-box-btn .caption {
        display: none;
    }

    .header-right > .top-box-container .basket-box-btn {
        min-width: 46px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .text img {
        max-width: 100%;
        max-width: 100% !important;
        width: inherit;
        width: inherit !important;
        height: auto;
        height: auto !important;
    }

    .text table,
    .text iframe,
    .text object {
        max-width: 100%;
        max-width: 100% !important;
        width: 100%;
        width: 100% !important;
    }

    .article-image {
        margin-right: 0;
        margin-top: 0;
        width: 100%;
        display: block;
        float: none;
        max-width: none;
        text-align: center;
        line-height: 0;
    }

    .breadcrumb > li:not(:first-child):not(:last-child):not(:nth-last-child(2)) {
        display: none;
    }

    .breadcrumb > li:not(:first-child):not(:last-child) a {
        font-size: 0;
        text-indent: -1000px; /* Apple */
    }

    .breadcrumb > li:not(:last-child) a span {
        display: none;
    }

    .breadcrumb > li:not(:first-child):not(:last-child) a:after {
        content: "...";
        font-size: 12px;
    }

    .breadcrumb > li + li:before {
        padding: 0 6px;
    }

    .breadcrumb > li:first-child a {
        font-size: 0 !important;
        letter-spacing: 0 !important;
    }

    .breadcrumb > li:first-child a:after {
        content: "\f015";
        display: inline-block;
        font-family: FontAwesome, sans-serif;
        font-size: 12px;
    }
}

@media screen and (max-width: 560px) {
    .page-top-deco {
        display: none;
    }

    .basket-banner {
        display: none;
    }

    .basket-banner-mobile {
        display: block;
    }

    .slider-person-wrapper .icon-wrapper {
        width: 60px;
        height: 60px;
    }

    .slider-person-position {
        font-size: 14px;
    }

    .slider-person-wrapper {
        gap: 10px;
    }

    .main-slider-item-text-bg img {
        display: none;
    }

    .main-slider-item-text-bg {
        background-color: rgba(0, 0, 0, 0.25);
    }

    .news-section .swiper:not(.swiper-initialized) .swiper-wrapper .swiper-slide:nth-of-type(n + 3) {
        display: none;
    }

    .news-slider-list .news-item {
        width: 100%;
    }

    .news-slider-list:not(.swiper-initialized) .news-item:nth-of-type(n + 3) {
        display: none;
    }

    .product-box-title {
        font-size: 14px;
    }

    .product-view-title {
        font-size: 26px;
    }

    .sections-tabs {
        /*grid-template-columns: repeat(2, 1fr);*/
    }

    .btn-section-tab {
        font-size: 12px;
        padding: 10px 5px;
    }

    .news-list {
        grid-template-columns: 1fr !important;
    }

    .news-slider-item {
        width: 100%;
    }

    .text {
        word-wrap: break-word;
        font-size: 14px;
    }

    .author {
        flex-direction: column;
    }

    .author-title {
        text-align: center;
    }
}

@media screen and (max-width: 480px) {
    /*.boxText .section-inner .content-left {*/
    /*    flex-direction: column;*/
    /*}*/
    .product-view-price-wrapper .price-gross:first-child .price:not(.price-old) {
        font-size: 30px;
    }

    .product-view-price-wrapper .price-gross:first-child .price.price-old {
        font-size: 16px;
    }

    .shop-product-price-discount-percentage {
        font-size: 13px;
    }

    .product-view-price-wrapper .shop-product-price {
        gap: 0 10px;
    }

    .product-view-basket-inner {
        flex-direction: column;
        align-items: stretch;
    }

    .product-view-basket-inner .product-view-basket-inner-quantity-btn .btn,
    .product-view-top-content-basket .shop-quantity-box,
    .product-view-basket-select {
        width: 100%;
        max-width: 100%;
    }

    .product-add-to-basket-modal .shop-product-box.swiper-slide {
        width: 100%;
    }

    .discount-group-section .swiper:not(.swiper-initialized) .swiper-wrapper .shop-product-box:nth-of-type(n + 5) {
        display: none;
    }

    .shop-product-box.swiper-slide {
        width: 100%;
    }

    .composition-section-inner {
        grid-template-columns: 1fr;
    }

    .product-view-icons-list {
        grid-template-columns: auto;
    }

    .aside {
        width: 270px;
    }

    .aside-shadow {
        left: 270px;
    }

    .btn-aside-toggle.active {
        left: 280px;
    }

    .product-list {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .contact-page-info {
        width: 100%;
        max-width: 380px;
    }

    .contact-page-top-left {
        justify-content: center;
    }

    .icons-section-list {
        grid-template-columns: auto;
        width: fit-content;
        margin: 0 auto;
        gap: 25px;
    }

    .product-slider-chunk {
        width: 50%;
    }

    .modal-footer > .btn {
        width: 100%;
    }

    .modal-footer .btn + .btn {
        margin-left: 0;
        margin-top: 5px;
    }

    .product-view-icon-item .icon-wrapper {
        width: 35px;
    }


    .customer-group-bar-inner {
        justify-content: space-between;
        gap: 7px;
        flex-wrap: wrap;
    }

    .customer-group-bar-remove {
        transform: none;
        position: static;
    }
}

@media screen and (max-width: 420px) {
    .btn-section-tab {
        font-size: 12px;
    }

    .gallery-list {
        grid-template-columns: 1fr;
    }

    .footer-bar-content.footer-bar-content > * {
        display: block;
        margin-left: 0;
        margin-right: 0;
    }

}

@media screen and (max-width: 380px) {
    .sections-tabs {
        grid-template-columns: repeat(2, 1fr);
    }

    .customer-group-bar-inner {
        font-size: 14px;
    }
}

@media screen and (max-width: 319px) {
    body {
        width: 320px;
    }
}

/* --------------- GLOBAL VARIABLES --------------- */

@media screen and (max-width: 1600px) {
    :root {
        --space-60: 55px;
        --space-50: 45px;
        --space-40: 35px;

        --font-48: 40px;
        --font-36: 32px;
        --font-30: 26px;
        --font-24: 22px;
    }
}

@media screen and (max-width: 1440px) {
    :root {
        --space-60: 50px;
        --space-50: 40px;

        --font-48: 36px;

        --container-padding: 30px;
    }
}

@media screen and (max-width: 1366px) {
    :root {
        --space-25: 20px;

        --font-48: 34px;
        --font-36: 28px;
        --font-30: 24px;
    }
}

@media screen and (max-width: 1280px) {
    :root {
        --space-60: 40px;
        --space-50: 35px;
        --space-40: 30px;

        --font-48: 32px;

        --container-padding: 20px;
    }
}

@media screen and (max-width: 1139px) {
    :root {
        --space-60: 35px;
        --space-50: 30px;
        --space-40: 25px;
        --space-25: 15px;
    }
}

@media screen and (max-width: 960px) {
    :root {
        --space-60: 30px;
        --space-50: 25px;
        --space-40: 20px;
    }
}

@media screen and (max-width: 900px) {
    :root {
        --container-padding: 15px;
    }
}

@media screen and (max-width: 639px) {
    :root {
        --font-48: 30px;
        --font-36: 24px;
        --font-30: 22px;
        --font-24: 18px;
    }
}

@media screen and (max-width: 420px) {
    :root {
        --font-48: 24px;
        --font-36: 20px;
        --font-30: 20px;
        --font-24: 16px;
    }
}

/* POPRAWKI M.MAZUR */

@media screen and (max-width: 1139px) {
    .breadcrumb-container {
          display: none;
    }
    .product-view-top {
          margin-top: 15px;
    }
    .product-view-top-inner{
          gap: 50px;
    }
    .product-view-basket-inner-quantity-btn, .product-view-basket-inner {
          flex-wrap: wrap;
    }
   
}

@media screen and (max-width: 480px) {

    /*.swiper:not(.product-list-slider) .swiper-wrapper {*/
    /*      gap: 10px;*/
    /*}*/

}


/* ─────────────────────────────────────────────────────────────────────────
   Sekcja „Instagram" — mobile.

   Trzy kafle jeden pod drugim to na telefonie ~2,5 ekranu przewijania, więc
   układamy je w poziomy pas ze scroll-snapem. Kafel zajmuje 78% szerokości,
   dzięki czemu zawsze widać skrawek następnego — bez tego użytkownik nie wie,
   że jest więcej treści, i pas wygląda jak pojedynczy obrazek.

   Pas wychodzi poza .container ujemnymi marginesami, żeby przewijanie zaczynało
   się przy krawędzi ekranu (tak działa większość karuzel produktowych), ale
   pierwszy kafel nadal równa się z tekstem dzięki scroll-padding i padding.
   ───────────────────────────────────────────────────────────────────────── */
@media screen and (max-width: 900px) {
    .ig-section {
        padding: calc(var(--space-50)) 0;
    }

    .ig-list,
    .ig-list-1,
    .ig-list-2 {
        display: flex;
        grid-template-columns: none;
        max-width: none;
        gap: 12px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        scroll-padding-left: var(--container-padding);
        margin-left: calc(-1 * var(--container-padding));
        margin-right: calc(-1 * var(--container-padding));
        /* Padding pionowy zostawia miejsce na obramowanie i cień kafla,
           który inaczej byłby przycinany przez overflow. */
        padding: 4px var(--container-padding);
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .ig-list::-webkit-scrollbar {
        display: none;
    }

    .ig-item {
        flex: 0 0 78%;
        scroll-snap-align: start;
    }

    /* Jeden post nie ma czego podglądać — niech zajmie całą szerokość. */
    .ig-list-1 .ig-item {
        flex-basis: 100%;
    }

    .ig-card-body {
        padding: 14px;
    }
}

@media screen and (max-width: 560px) {
    .ig-item {
        flex-basis: 82%;
    }

    .ig-stat {
        font-size: 14px;
    }
}

/*
 * M19 (ROADMAP-KONWERSJA): koniec auto-zoomu iOS w polach formularza.
 *
 * Safari na iPhonie powiększa całą stronę przy focusie w pole, którego czcionka ma mniej
 * niż 16 px, i po wyjściu z pola nie zawsze wraca do skali 1. Formularz zamówienia miał
 * 14 px (bootstrap .form-control), wyszukiwarka 13 px - czyli szarpnięcie widoku przy
 * każdym z 16 pól na najdłuższym kroku ścieżki zakupu.
 *
 * 16 px to próg WebKita, nie preferencja wizualna: niżej zejść nie można.
 * Blok trzymamy na końcu pliku, żeby wygrywał z wcześniejszymi regułami o tej samej wadze
 * (m.in. .mainsearch input.form-control 13 px z sekcji 1280 px wyżej).
 */
@media screen and (max-width: 1139px) {
    .form-control,
    .form .form-control,
    .form input[type="text"],
    .form input[type="email"],
    .form input[type="tel"],
    .form input[type="number"],
    .form input[type="password"],
    .form input[type="search"],
    .form select,
    .form textarea,
    .mainsearch input.form-control,
    .select2-container .select2-search__field,
    .select2-container--default .select2-selection--single .select2-selection__rendered {
        font-size: 16px;
    }

    /* Osobna reguła, nie kolejny selektor w liście wyżej: silnik, który nie zna ::placeholder,
       odrzuca CAŁĄ listę selektorów, w której ten pseudoelement wystąpi. Wtedy cały formularz
       wróciłby do 14 px i do auto-zoomu - dokładnie na starych WebKitach, o które tu chodzi.
       Sam placeholder na zoom nie wpływa, to tylko spójność wyglądu wyszukiwarki. */
    .mainsearch input.form-control::placeholder {
        font-size: 16px;
    }
}

/*
 * M22 (ROADMAP-KONWERSJA): cele dotykowe zgód i przełączników w zamówieniu.
 *
 * Kwadrat iCheck ma 18 px, a jego nakładka .iCheck-helper powiększa go tylko o 20%
 * (~25 px) - przy zalecanym minimum 44 px. Zgody są polami obowiązkowymi (regulamin,
 * prywatność), więc to najgorsze możliwe miejsce na nietrafialny cel.
 *
 * Checkbox JEST opakowany w <label> (Form\Element\Checkbox), a iCheck sam podpina
 * kliknięcie etykiety (sprawdzone na produkcji: klik w tekst zaznacza zgodę), więc
 * zamiast rozpychać nakładkę (nachodziłaby na sąsiednie wiersze) robimy celem
 * dotykowym cały wiersz.
 *
 * Świadomie TYLKO display i min-height. Kwadrat iCheck jest pozycjonowany absolutnie
 * i „wisi" na lewym paddingu etykiety (padding-left: 26px z motywu), więc skrót
 * `padding: 6px 0` wypycha go poza kartę, a `display: flex` rozjeżdża wiersz -
 * jedno i drugie sprawdzone zrzutem ekranu przed wdrożeniem.
 *
 * Zakres: zgody we wszystkich formularzach (zawsze pełna szerokość wiersza) oraz
 * checkboxy/radio w samym formularzu zamówienia (m.in. przełącznik typu faktury).
 */
@media screen and (max-width: 1139px) {
    .consent-row label,
    #order-form .checkboxradio-container label {
        /* z inline-block na block: etykieta łapie kliknięcie na całej szerokości wiersza,
           a min-height zaczyna obowiązywać bez zmiany pozycji kwadratu i tekstu */
        display: block;
        min-height: 44px;
    }
}
