/* PulSEO Core - globalne poprawki CSS, niezależne od motywu i wtyczek */

/* Sekcja "Bar & Restauracja": .row.g-30 ma margines -15px, container-1290 tylko 12px paddingu - realny przeciek na mobile. */
@media (max-width: 991px) {
    .sw__about-companyv3 .row.g-30 {
        margin-left: 0;
        margin-right: 0;
    }

    .sw__about-companyv3 .row.g-30 > [class*="col-"] {
        padding-left: 0;
        padding-right: 0;
    }
}

.elementor-widget-teconce_hero img {
    pointer-events: none;
}

/* Hero na stronie glownej - kontrolka Section-Padding widgetu teconce_hero nie ma wariantow tablet/mobile. */
@media (max-width: 991px) {
    .elementor-290 .elementor-element.elementor-element-0b8c59e .sw__hero-v3 {
        padding: 160px 0px 200px 0px;
    }
}

/* Przycisk play mial niejednoznaczny z-index:0 vs img bez z-index - czasem chowal sie za zdjeciem. Jawny z-index naprawia kolejnosc. */
.sw__about-companyv3-image-videos img {
    position: relative;
    z-index: 1;
}

.sw__video_bannerv3 {
    z-index: 2;
}

/* Wlasny <video> z lity-video-handler.js - naturalne proporcje zamiast sztywnego 16:9 z lity-iframe-container. */
.pulseo-lity-video {
    display: block;
    max-width: 90vw;
    max-height: 85vh;
    width: auto;
    height: auto;
}

.sw__reviewv3 {
    padding-bottom: 20px;
}

/*
 * CF7 owija każde pole w <span class="wpcf7-form-control-wrap"> - to ten
 * span, a nie samo pole (<input>/<textarea>), jest dzieckiem flexa
 * .sw_contact-form. Ustawianie szerokości/flex na samym polu (jak robił
 * to motyw: width:23.2% na <input>, width:100% na <textarea>) nie ma
 * wpływu na układ wiersza - trzeba to ustawić na opakowującym spanie.
 * Bez tego pola/textarea trzymają się domyślnego, wąskiego rozmiaru
 * (np. z atrybutu size="40"), a sąsiad w tym samym rzędzie (np. przycisk)
 * rozciąga się na wysokość najwyższego elementu (domyślne align-items:
 * stretch).
 */
.sw_contact-form > .wpcf7-form-control-wrap {
    flex: 1 1 220px;
}

/*
 * Motyw ma na <input> "width: 23.2%" - teraz, gdy span-rodzic ma już
 * poprawną szerokość (powyżej), to 23.2% liczy się z NIEGO (np. 23.2%
 * z 410px), a nie z całego wiersza jak kiedyś. Trzeba dociągnąć input do
 * 100% szerokości swojego (już poprawnego) spana.
 */
.sw_contact-form .sw_contact-form-input {
    width: 100%;
}

.sw_contact-form > .wpcf7-form-control-wrap[data-name="your-message"] {
    flex: 1 1 100%;
}

/*
 * Bez "flex-basis: 100%" - textarea nad nim juz zajmuje caly wiersz, wiec
 * przycisk i tak ladowal na wlasnym wierszu. Sztywny max-width byl za
 * ciasny na padding przycisku (23.5px 60.5px z motywu) i obcinal efekt
 * hover po prawej - lepiej niech dopasuje sie do tresci, a margin:auto
 * i tak go wysrodkuje w calym (wolnym) wierszu.
 */
.sw_contact-form .sw__contact-submit-btn {
    margin: 20px auto 0;
}

/*
 * Separator w breadcrumbs (motyw: content: '/') zamieniony na strzałkę.
 */
.sw_bredcrumb_right .breadcrumb li+li::before {
    content: '\203A';
    font-size: 20px;
    line-height: 1;
    color: var(--brown);
}

/*
 * Motyw (template-parts/content-page.php) wypycha "obrazek wyróżniający"
 * strony luzem na górę treści (bissful_post_thumbnail() w
 * inc/template-tags.php) - ukrywamy to, bo psuje układ.
 */
.post-thumbnail {
    display: none;
}

/*
 * Nagłówek strony (breadcrumb) - zdjęcie z hero na stronie głównej
 * (sw__hero-v3-main-img). Ścieżka względna do pliku CSS:
 * wp-content/mu-plugins/pulseo-core/assets/css/ -> wp-content/uploads/...
 * Bez białego overlayu (usunięty na życzenie) - ::before zostaje jako
 * pusty hak, gdyby kiedyś overlay miał wrócić.
 */
.sw_bredcrumb {
    position: relative;
    background-image: url('../../../../uploads/2026/07/Frame-1.png');
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
}

.sw_bredcrumb::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
}

.sw_bredcrumb_wrapper {
    position: relative;
    z-index: 1;
}

/*
 * Wbudowane w motyw, ale nigdy nie ustawione pole "Breadcrumb Shape
 * Image" (Page Options metabox) renderuje puste <img src="">. Ukrywamy -
 * mamy już własny kwiatek (.sw_bredcrumb::after poniżej) w tym samym
 * miejscu. !important, bo Bootstrap ma "d-none d-lg-block" na tym
 * elemencie - to responsywne klasy motywu, same z !important, więc
 * zwykła reguła (bez !important) przegrywa z nimi niezależnie od
 * kolejności ładowania plików.
 */
.sw_bredcrumb_shep {
    display: none !important;
}

/*
 * Kwiatek w lewym dolnym rogu - kopia .sw__hero-v3-main-sheap2 ze strony
 * głównej (ten sam plik Frame.svg, ten sam rozmiar 276x306, ta sama
 * animacja "movedelement2" zdefiniowana w motywie w style.css). z-index:0
 * jak overlay, ale jako ::after generuje się po nim w drzewie, więc
 * rysuje się nad overlayem, a pod treścią (.sw_bredcrumb_wrapper, z-index:1).
 */
.sw_bredcrumb::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -10px;
    width: 276px;
    height: 306px;
    background-image: url('../../../../uploads/2026/07/Frame.svg');
    background-repeat: no-repeat;
    animation: movedelement2 5s linear infinite;
    z-index: 0;
}

/*
 * Element ma juz zacząć animację "wow" wcześniej dzięki offsetowi w
 * wow-early-trigger.js, ale motyw dodatkowo doklada wlasne opoznienie na
 * kazdym elemencie (data-wow-delay, np. 0.3s-0.7s), ktore WOW.js wpisuje
 * jako inline animation-delay - trzeba to przyciac (!important, bo inline
 * bez !important przegrywa z regula w arkuszu z !important), zeby po
 * wykryciu widocznosci animacja startowala niemal od razu (~100ms), a nie
 * dopiero po dodatkowej, zaszytej w markupie zwloce.
 */
.wow {
    animation-delay: 0.1s !important;
    -webkit-animation-delay: 0.1s !important;
}

/*
 * .sw__button motywu jest zaprojektowany wokol <a> w srodku
 * (.sw__button a {...} - padding, obramowanie, kolor, przejscie hover).
 * Formularz CF7 "Kontakt" ma teraz prawidlowy [submit "Wyslij"], czyli
 * realny <input type="submit"> - ale ten selektor go nie obejmuje, wiec
 * dostaje wyglad domyslny przegladarki w srodku brazowej "koperty"
 * .sw__button z jej wlasnym efektem hover (stad dwutonowy, zlepiony
 * wyglad). Kopiujemy tu dokladnie te same reguly motywu na input/button,
 * zamiast tylko <a>, plus reset domyslnego wygladu przegladarki.
 */
.sw__button input[type="submit"],
.sw__button button {
    -webkit-appearance: none;
    appearance: none;
    background: none;
    font-family: inherit;
    cursor: pointer;
    color: var(--black-900);
    font-size: var(--font-size-11);
    line-height: var(--line-height-12);
    letter-spacing: 1.1px;
    padding: 20px 30px;
    border: 1px solid var(--brown);
    border-radius: 10px;
    position: relative;
    transition: 0.5s ease;
    z-index: 1;
}

.sw__button:hover input[type="submit"],
.sw__button:hover button {
    color: #ffffff;
}

.sw__button.sw__about-company-btn input[type="submit"],
.sw__button.sw__about-company-btn button {
    color: var(--white);
}

.sw__button.sw__about-company-btn:hover input[type="submit"],
.sw__button.sw__about-company-btn:hover button {
    color: var(--brown);
}

.sw__button.sw__about-company-btn.sw__contact-submit-btn input[type="submit"],
.sw__button.sw__about-company-btn.sw__contact-submit-btn button {
    padding: 23.5px 60.5px;
}

/*
 * CF7 dokleja obok przycisku <span class="wpcf7-spinner">, ukryty przez
 * "visibility: hidden" (NIE "display: none") - to celowe u CF7, zeby
 * podczas wysylki spinner mial gdzie sie pojawic bez przeskoku layoutu.
 * Ale ".sw__button" jest flexem z tlem na calym kontenerze, wiec ten
 * "niewidoczny" spinner i tak dolicza sie do szerokosci flex-rzedu, a
 * brazowe tlo maluje sie na calej tej (w tym pustej) przestrzeni - stad
 * rozciagniety, pigulkowy ksztalt zamiast dopasowanego do tekstu przycisku.
 * Wyjmujemy spinner z przeplywu flexa (position:absolute), zeby nie liczyl
 * sie do szerokosci rodzica. Trzyma sie w srodku (nie left:100% na
 * zewnatrz) bo ".sw__button" ma "overflow:hidden" (potrzebne do efektu
 * hover) - cokolwiek poza jego granicami i tak by sie nie pokazalo.
 */
.sw__button .wpcf7-spinner {
    position: absolute;
    top: 50%;
    right: 15px;
    margin: 0;
    transform: translateY(-50%);
}

/* footer-three.php ma tylko "d-flex" bez flex-column jak footer-two.php - stack na mobile. */
@media (max-width: 767px) {
    .swv2_footer_bottom {
        flex-direction: column;
        align-items: center;
        gap: 15px;
        text-align: center;
    }

    .swv2_footer_bottom_link {
        flex-wrap: wrap;
        justify-content: center;
    }
}
