/* ==========================================================================
   TAXISCHWECHAT.EU - projektove upravy nad dizajnovym kitom Waxking
   Vendor CSS (waxking.css) sa NIKDY needituje. Vsetky zmeny idu sem.
   ========================================================================== */

/* --------------------------------------------------------------------------
   01. Brand tokeny
   Akcentna farba je prevzata priamo z loga PG TRANSFERY (#ee5713),
   nie z kitu (#FF3600), aby web farebne sadol na logo klienta.
   -------------------------------------------------------------------------- */
:root{
    --accent-color      : #ee5713;
    --accent-color-dark : #cf450a;
    --accent-soft       : rgba(238, 87, 19, 0.12);
    --tsw-card          : #131313;
    --tsw-card-2        : #1a1a1a;
    --tsw-line          : rgba(255, 255, 255, 0.10);
    --tsw-line-strong   : rgba(255, 255, 255, 0.18);
    --tsw-success       : #35b37e;
}

/* --------------------------------------------------------------------------
   02. Slovenska typografia
   Kit aplikuje text-transform: capitalize/uppercase na desiatky tried.
   V slovencine je "Naše Služby" chyba, preto globalne vypiname vsetko.
   Vynimka (vedome, zdokumentovane): velke pismo ostava len na kratkych
   display nadpisoch sekcii a na malych kicker/badge popiskoch - to je
   vizualna identita kitu a v slovencine je to typograficky v poriadku.
   -------------------------------------------------------------------------- */
body,
body *{
    text-transform: none !important;
}

.section-title h1,
.section-title h2,
.page-header-box h1,
.section-title h3,
.hero-info-content h3,
.about-counter-box-prime h2,
.footer-links-ultimate h3,
.footer-contact-item-content-ultimate h3,
.tsw-kicker{
    text-transform: uppercase !important;
}

/* --------------------------------------------------------------------------
   03. Typograficka mierka pre slovencinu
   Slovenske nadpisy su dlhsie ako anglicke - kit ma h1 80px / h2 50px,
   co pri diakritike a dlhych slovach prerastalo cez layout.
   -------------------------------------------------------------------------- */
.section-title h1{ font-size: 62px; letter-spacing: -0.5px; }
.section-title h2{ font-size: 42px; letter-spacing: -0.3px; }
.page-header-box h1{ font-size: 52px; }
.section-title p{ max-width: 720px; }
.section-title-center p{ margin-left: auto; margin-right: auto; }

@media only screen and (max-width: 1200px){
    .section-title h1{ font-size: 48px; }
    .section-title h2{ font-size: 34px; }
    .page-header-box h1{ font-size: 40px; }
}
@media only screen and (max-width: 767px){
    .section-title h1{ font-size: 34px; }
    .section-title h2{ font-size: 27px; }
    .page-header-box h1{ font-size: 30px; }
}

/* --------------------------------------------------------------------------
   04. Hero a hlavicky podstranok - vlastne fotky klienta
   -------------------------------------------------------------------------- */
.hero-box{
    background-image: url('../images/obsah/hero-bg.jpg');
    background-position: center 62%;
}
.hero-box::before{
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.72) 42%, rgba(0,0,0,0.15) 100%);
    z-index: 0;
}
.hero-box .container{ position: relative; z-index: 1; }

.page-header{
    background-image: url('../images/obsah/page-header-bg.jpg');
    background-position: center center;
    padding: 220px 0 120px;
}
/* Kit tmavi hlavicku na 70 %. Nase fotky su uz tmave, pri 70 % z nich nezostane
   takmer nic - stacia 58 % a nadpis je stale plne citatelny. */
.page-header::before{ opacity: 58%; }
@media only screen and (max-width: 767px){
    .page-header{ padding: 150px 0 70px; }
}

/* Sluzby maju vlastnu hlavicku z fotky V-Classu (podklady/build-hlavicka-sluzby.py).
   Fotka je uz stmavena do ciernej v spodnej tretine a auto je cierne, takze
   kitove prekrytie 58 % by z neho urobilo mazanicu - tu staci 40 %. Z rovnakeho
   dovodu je aj spodny prechod kratsi - ten je pri zdrojovom pravidle v sekcii 23,
   lebo pri rovnakej specificite rozhoduje poradie v subore. */
.page-header--sluzby{
    background-image: url('../images/obsah/page-header-sluzby.jpg');
}
.page-header--sluzby::before{ opacity: 40%; }

/* --------------------------------------------------------------------------
   05. Tlacidla - doplnkovy "outline" variant + telefonne CTA
   -------------------------------------------------------------------------- */
.btn-outline{
    position: relative;
    display: inline-block;
    font-family: var(--accent-font);
    font-size: 16px;
    font-weight: 700;
    line-height: 1em;
    color: var(--white-color);
    background: transparent;
    border: 1px solid var(--tsw-line-strong);
    border-radius: 100px;
    padding: 16px 26px;
    transition: all 0.35s ease-in-out;
}
.btn-outline:hover{
    color: var(--white-color);
    background: var(--accent-color);
    border-color: var(--accent-color);
}
.btn-outline i{ margin-right: 8px; color: var(--accent-color); transition: color 0.35s; }
.btn-outline:hover i{ color: var(--white-color); }

.tsw-btn-row{ display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.tsw-btn-row .btn-default{ margin-right: 50px; }

/* --------------------------------------------------------------------------
   06. Kicker / male popisky
   -------------------------------------------------------------------------- */
.tsw-kicker{
    display: inline-block;
    font-family: var(--accent-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--accent-color);
    margin-bottom: 14px;
}

/* --------------------------------------------------------------------------
   08. CENNIKOVA TABULKA (podstranka Cennik)
   -------------------------------------------------------------------------- */
.tsw-table-wrap{
    background: var(--tsw-card);
    border: 1px solid var(--tsw-line);
    border-radius: 20px;
    padding: 10px;
    overflow-x: auto;
}
.tsw-table{
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
}
.tsw-table th,
.tsw-table td{
    text-align: left;
    padding: 18px 18px;
    border-bottom: 1px solid var(--tsw-line);
    vertical-align: middle;
}
.tsw-table thead th{
    font-family: var(--accent-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.6px;
    color: var(--white-color);
    text-transform: uppercase !important;
    white-space: nowrap;
}
.tsw-table thead th span{
    display: block;
    font-family: var(--default-font);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
    color: var(--text-color);
    text-transform: none !important;
    margin-top: 4px;
}
.tsw-table tbody tr:last-child td,
.tsw-table tbody tr:last-child th{ border-bottom: none; }
.tsw-table tbody tr:hover td{ background: rgba(255,255,255,0.025); }
.tsw-table .tsw-table__route{
    font-family: var(--accent-font);
    font-size: 16px;
    font-weight: 700;
    color: var(--white-color);
}
.tsw-table .tsw-table__route small{
    display: block;
    font-family: var(--default-font);
    font-size: 13px;
    font-weight: 400;
    color: var(--text-color);
    margin-top: 3px;
}
.tsw-table .tsw-price{
    font-family: var(--accent-font);
    font-size: 19px;
    font-weight: 700;
    color: var(--white-color);
    white-space: nowrap;
}
.tsw-table .tsw-price--na{
    font-family: var(--default-font);
    font-size: 13px;
    font-weight: 400;
    color: var(--text-color);
}
.tsw-table .tsw-price--todo{
    font-family: var(--default-font);
    font-size: 13px;
    font-weight: 700;
    color: #ffb020;
    background: rgba(255, 176, 32, 0.12);
    border: 1px dashed rgba(255, 176, 32, 0.5);
    border-radius: 6px;
    padding: 4px 8px;
    white-space: nowrap;
}
.tsw-table__cta a{
    display: inline-block;
    font-family: var(--accent-font);
    font-size: 14px;
    font-weight: 700;
    color: var(--white-color);
    background: rgba(255,255,255,0.06);
    border: 1px solid var(--tsw-line-strong);
    border-radius: 100px;
    padding: 10px 18px;
    white-space: nowrap;
    transition: all 0.3s;
}
.tsw-table__cta a:hover{ background: var(--accent-color); border-color: var(--accent-color); color: var(--white-color); }

.tsw-table--simple{ min-width: 520px; }
.tsw-table--simple td:last-child{ text-align: right; }

.tsw-scroll-hint{
    display: none;
    font-size: 13px;
    color: var(--text-color);
    margin-top: 12px;
}
@media only screen and (max-width: 991px){ .tsw-scroll-hint{ display: block; } }

/* --------------------------------------------------------------------------
   09. Poznamky / info bloky
   -------------------------------------------------------------------------- */
.tsw-note{
    background: var(--tsw-card);
    border: 1px solid var(--tsw-line);
    border-left: 3px solid var(--accent-color);
    border-radius: 14px;
    padding: 24px 26px;
    margin-top: 26px;
    margin-bottom: 26px;
}
/* Poznamka mala doteraz odstup len zhora, takze ked za nou nasledoval iny blok
   (rezervacia: kontaktny zoznam), dosadol na jej ramcek. Susediace poznamky sa
   nerozostupia - zvisle marginy sa medzi nimi zlucia na 26 px. Ked je poznamka
   posledna v stlpci (cennik, kontakt), spodny margin rusime, aby nerozhadzoval
   vysku stlpca. */
.tsw-note:last-child{ margin-bottom: 0; }
.tsw-note h3{
    font-size: 18px;
    color: var(--white-color);
    margin-bottom: 12px;
}
.tsw-note p{ margin-bottom: 10px; }
.tsw-note p:last-child{ margin-bottom: 0; }
.tsw-note ul{ margin: 0; padding: 0; list-style: none; }
.tsw-note ul li{
    position: relative;
    padding-left: 26px;
    margin-bottom: 10px;
    line-height: 1.6em;
}
.tsw-note ul li:last-child{ margin-bottom: 0; }
.tsw-note ul li::before{
    content: '\f00c';
    font-family: 'Font Awesome 7 Free', 'Font Awesome 6 Free', 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 1px;
    font-size: 12px;
    color: var(--accent-color);
}

/* --------------------------------------------------------------------------
   11. REZERVACNY FORMULAR
   Postaveny na kit module .book-appointment-form-box-ultimate.
   Doplname len to, co kit nema: popisky poli, prepinace smeru/rezimu,
   alert box, GDPR suhlas a tmavy color-scheme pre date/time inputy.
   -------------------------------------------------------------------------- */
.book-appointment-form-title-ultimate h3{ margin-bottom: 10px; }
.book-appointment-form-title-ultimate p{
    font-size: 15px;
    line-height: 1.6em;
    text-align: center;
    margin-bottom: 0;
}
.book-appointment-form-ultimate{ margin-top: 34px; }

.tsw-label{
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-color);
    margin-bottom: 7px;
}
.tsw-label .req{ color: var(--accent-color); }

.book-appointment-form-ultimate .form-control{
    color: var(--white-color);
    color-scheme: dark;
}
.book-appointment-form-ultimate .form-control:focus{ border-color: var(--accent-color); }
.book-appointment-form-ultimate .form-control::placeholder{ color: rgba(214,214,216,0.55); }
.book-appointment-form-ultimate textarea.form-control{ min-height: 110px; resize: vertical; }

/* Prepinac (smer cesty / typ objednavky) - kit taky modul nema. */
.tsw-switch{
    display: flex;
    gap: 8px;
    background: rgba(0,0,0,0.35);
    border: 1px solid var(--tsw-line);
    border-radius: 100px;
    padding: 6px;
    margin-bottom: 18px;
}
.tsw-switch input{ position: absolute; opacity: 0; pointer-events: none; }
.tsw-switch label{
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--accent-font);
    font-size: 15px;
    font-weight: 700;
    color: var(--text-color);
    border-radius: 100px;
    padding: 13px 10px;
    margin: 0;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease-in-out;
}
.tsw-switch label i{ font-size: 13px; }
.tsw-switch input:checked + label{ color: var(--white-color); background: var(--accent-color); }
.tsw-switch input:focus-visible + label{ outline: 2px solid var(--white-color); outline-offset: 2px; }

/* Pole "cislo letu" sa zobrazi len pri ceste z letiska. */
.tsw-field--flight{ display: none; }
.tsw-form-card.is-from-airport .tsw-field--flight{ display: block; }

.tsw-consent{
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 13.5px;
    line-height: 1.55em;
    color: var(--text-color);
    margin: 0 0 22px;
    cursor: pointer;
}
.tsw-consent input{ margin-top: 3px; accent-color: var(--accent-color); width: 17px; height: 17px; flex: 0 0 auto; }
.tsw-consent a{ color: var(--accent-color); text-decoration: underline; }

.tsw-alert:empty{ display: none; }
.tsw-alert .alert{
    font-size: 14.5px;
    line-height: 1.5em;
    border-radius: 12px;
    padding: 14px 18px;
    margin-bottom: 18px;
}
.tsw-alert .alert-danger{
    color: #ffb4a0;
    background: rgba(238, 87, 19, 0.14);
    border: 1px solid rgba(238, 87, 19, 0.45);
}
.tsw-status:empty{ display: none; }
.tsw-status .alert-success,
.tsw-status .errorMessage{
    display: block;
    font-size: 16px;
    line-height: 1.6em;
    color: var(--white-color);
    background: rgba(53, 179, 126, 0.14);
    border: 1px solid rgba(53, 179, 126, 0.45);
    border-radius: 14px;
    padding: 22px 24px;
    margin: 0;
}
.tsw-status .alert-success a{ color: var(--accent-color); }
.tsw-status .errorMessage{
    color: #ffb4a0 !important;
    background: rgba(238, 87, 19, 0.14);
    border-color: rgba(238, 87, 19, 0.45);
}

.tsw-form-trust{
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--tsw-line);
}
.tsw-form-trust span{ display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-color); }
.tsw-form-trust i{ color: var(--accent-color); font-size: 12px; }

/* --------------------------------------------------------------------------
   12. Zoznamy s odrazkami v obsahu
   -------------------------------------------------------------------------- */
.tsw-list{ margin: 0 0 26px; padding: 0; list-style: none; }
.tsw-list li{
    position: relative;
    font-size: 16px;
    line-height: 1.6em;
    color: var(--text-color);
    padding-left: 30px;
    margin-bottom: 12px;
}
.tsw-list li::before{
    content: '\f058';
    font-family: 'Font Awesome 7 Free', 'Font Awesome 6 Free', 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 2px;
    font-size: 15px;
    color: var(--accent-color);
}
.tsw-list li strong{ color: var(--white-color); font-weight: 600; }

/* --------------------------------------------------------------------------
   13. Sluzby - striedave riadky obrazok / text
   -------------------------------------------------------------------------- */
.tsw-service-row{ padding: 60px 0; border-bottom: 1px solid var(--tsw-line); }
.tsw-service-row:last-of-type{ border-bottom: none; }
.tsw-service-row figure{ margin: 0; border-radius: 20px; overflow: hidden; }
.tsw-service-row figure img{ width: 100%; height: auto; display: block; }
.tsw-service-row h2{ font-size: 32px; color: var(--white-color); margin-bottom: 16px; }
.tsw-service-row .tsw-kicker{ margin-bottom: 10px; }
@media only screen and (max-width: 991px){
    .tsw-service-row{ padding: 40px 0; }
    .tsw-service-row h2{ font-size: 26px; }
    .tsw-service-row figure{ margin-bottom: 26px; }
}

/* --------------------------------------------------------------------------
   14. Kontaktne karty
   -------------------------------------------------------------------------- */
.tsw-contact-card{
    height: 100%;
    background: var(--tsw-card);
    border: 1px solid var(--tsw-line);
    border-radius: 20px;
    padding: 30px 28px;
    margin-bottom: 24px;
}
/* Mriezka kontaktnych kariet: zvisla medzera musi sediet s vodorovnou.
   `height:100%` drzi karty v riadku rovnako vysoke, takze margin-bottom na karte
   sa "schova" do vysky stlpca a riadky sa opticky zlepia. Riesime to
   bootstrapovym zvislym gutterom (`--bs-gutter-y`) a margin na karte rusime. */
.tsw-contact-grid{ --bs-gutter-y: 30px; }
.tsw-contact-grid .tsw-contact-card{ margin-bottom: 0; }

.tsw-contact-card .icon-box{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    background: var(--accent-soft);
    border-radius: 50%;
    margin-bottom: 18px;
}
.tsw-contact-card .icon-box i{ font-size: 19px; color: var(--accent-color); }
.tsw-contact-card h3{ font-size: 18px; color: var(--white-color); margin-bottom: 10px; }
.tsw-contact-card p{ margin-bottom: 6px; line-height: 1.65em; }
.tsw-contact-card p:last-child{ margin-bottom: 0; }
.tsw-contact-card a{ color: var(--text-color); }
.tsw-contact-card a:hover{ color: var(--accent-color); }
.tsw-contact-card--accent{ background: var(--accent-color); border-color: var(--accent-color); }
.tsw-contact-card--accent .icon-box{ background: rgba(0,0,0,0.18); }
.tsw-contact-card--accent .icon-box i,
.tsw-contact-card--accent h3,
.tsw-contact-card--accent p,
.tsw-contact-card--accent a{ color: var(--white-color); }

.tsw-map{
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid var(--tsw-line);
    line-height: 0;
}
.tsw-map iframe{ width: 100%; height: 460px; border: 0; filter: grayscale(1) invert(0.92) contrast(0.85); }

/* --------------------------------------------------------------------------
   15. Hlavicka - telefon + jazykovy prepinac
   -------------------------------------------------------------------------- */
.navbar-brand img{ height: 34px; width: auto; }
.header-btn{ display: flex; align-items: center; gap: 18px; }
.tsw-header-phone{
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--accent-font);
    font-size: 16px;
    font-weight: 700;
    color: var(--white-color);
    white-space: nowrap;
    transition: color 0.3s;
}
.tsw-header-phone i{ color: var(--accent-color); }
.tsw-header-phone:hover{ color: var(--accent-color); }
@media only screen and (max-width: 1350px){ .tsw-header-phone span{ display: none; } }

/* --------------------------------------------------------------------------
   16. Mobilna lista s CTA (volat / rezervovat)
   -------------------------------------------------------------------------- */
.tsw-sticky-cta{ display: none; }
@media only screen and (max-width: 767px){
    .tsw-sticky-cta{
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 99;
        display: flex;
        gap: 10px;
        background: rgba(10,10,10,0.96);
        border-top: 1px solid var(--tsw-line);
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
        backdrop-filter: blur(8px);
    }
    .tsw-sticky-cta a{
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        font-family: var(--accent-font);
        font-size: 15px;
        font-weight: 700;
        color: var(--white-color);
        border-radius: 100px;
        padding: 14px 10px;
    }
    .tsw-sticky-cta .tsw-cta-call{ background: rgba(255,255,255,0.08); border: 1px solid var(--tsw-line-strong); }
    .tsw-sticky-cta .tsw-cta-book{ background: var(--accent-color); }
    body{ padding-bottom: 76px; }
}

/* --------------------------------------------------------------------------
   17. Drobnosti
   -------------------------------------------------------------------------- */
.tsw-anchor{ scroll-margin-top: 120px; }
.tsw-mb-0{ margin-bottom: 0 !important; }
.tsw-center{ text-align: center; }
.tsw-payments img{ max-width: 260px; height: auto; opacity: 0.9; }
.tsw-section-space{ padding: 100px 0; }
.tsw-section-space-top{ padding-top: 100px; }
@media only screen and (max-width: 767px){
    .tsw-section-space{ padding: 60px 0; }
    .tsw-section-space-top{ padding-top: 60px; }
}

/* Galeria - jednotny pomer stran nahladov */
.photo-gallery figure img{ aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }

/* Sekcia s fotografiou na pozadi */
.tsw-band{
    position: relative;
    background: url('../images/obsah/cta-band.jpg') no-repeat center center;
    background-size: cover;
    border-radius: 20px;
    max-width: 1880px;
    margin: 0 auto;
    padding: 110px 0;
    overflow: hidden;
}
.tsw-band::before{
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,0.90) 0%, rgba(0,0,0,0.68) 55%, rgba(0,0,0,0.25) 100%);
}
.tsw-band .container{ position: relative; z-index: 1; }
.tsw-band--cennik{ background-image: url('../images/obsah/cennik-band.jpg'); }

/* --------------------------------------------------------------------------
   18. Kicker nad nadpisom sekcie
   Kit používa <h3> pre malý popisok NAD <h2>, čo rozbíja hierarchiu nadpisov
   (h3 pred h2). Používame preto <p class="section-kicker"> s rovnakým vzhľadom.
   -------------------------------------------------------------------------- */
.section-title .section-kicker{
    position: relative;
    display: inline-block;
    font-family: var(--accent-font);
    font-size: 14px;
    font-weight: 700;
    line-height: normal;
    color: var(--primary-color);
    background: var(--secondary-color) url('../images/icon-sub-heading.svg') no-repeat;
    background-position: center left 16px;
    background-size: 16px auto;
    border: 1px solid var(--divider-color);
    border-radius: 100px;
    padding: 11px 16px 9px 42px;
    margin: 0 0 20px;
    text-transform: uppercase !important;
}

/* --------------------------------------------------------------------------
   19. Kit doplnky - slovenske texty a drobne korekcie
   -------------------------------------------------------------------------- */
/* Kit ma na zvyraznenej cenovej karte anglicku stuzku "popular". */
.pricing-item.highlighted-box::after{
    content: 'najžiadanejšia';
    font-size: 12px;
    letter-spacing: 0.06em;
    width: 200px;
    right: -56px;
}

/* Kit pozadia nahradene vlastnymi fotkami klienta. */
.service-cta-box-ultimate{ background-image: url('../images/obsah/cta-box.jpg'); }
.how-it-work-prime{ background-image: url('../images/obsah/ako-to-funguje-bg.jpg'); }

/* Karta vozidla: kit pouziva <span> ako preskrtnutu povodnu cenu, u nas je
   to doplnkovy udaj (wifi v cene) - preskrtnutie rusime. */
.product-item-content-prime p span{
    text-decoration-line: none;
    color: var(--accent-color);
}
/* Fotky vozidiel su siroke PNG bez pozadia - kitovy limit 220px je maly. */
.product-item-image-prime img{ max-width: 100%; }
.product-item-image-prime{ margin-bottom: 26px; }

/* Referencie: v kite su v swiper karuseli (rovnaka vyska automaticky),
   u nas su v statickej mriezke - dorovnavame vysku kariet. */
.testimonial-item-ultimate{ height: calc(100% - 30px); margin-bottom: 30px; }

/* Karta vozidla na podstranke Vozovy park - kit nema popisny text pod cenou. */
.tsw-vehicle-desc{ border-top: 1px solid var(--tsw-line); margin-top: 20px; padding-top: 18px; }
.tsw-vehicle-desc p{ font-size: 14px; line-height: 1.65em; margin: 0; }

/* Kontaktny formular: kit centruje obsah karty na vysku stlpca - u nas je
   lavy stlpec vyssi, takze by formular "plaval" v strede. Zarovnavame hore. */
.page-contact-us .contact-form{ align-content: start; }
.page-contact-us .contact-form-title h2{ margin-bottom: 8px; }
.page-contact-us .contact-form-title p{ margin-bottom: 30px; font-size: 15px; }

/* Karta vozidla: doplnkovy udaj nesmie zalamovat uprostred. */
.product-item-content-prime p span{ white-space: nowrap; }

/* --------------------------------------------------------------------------
   20. Cisla a ceny nie su nadpisy
   Kit pouziva <h2> pre cenu na cenovej karte, pocitadla a hodnotenie.
   Semanticky to nie su nadpisy a rozbijalo to hierarchiu (h3 -> h2 a spat),
   preto su v sablonach ako <p class="tsw-num"> s prevzatym vzhladom.
   -------------------------------------------------------------------------- */
.tsw-num{
    font-family: var(--accent-font);
    font-weight: 700;
    line-height: 1.2em;
    color: var(--primary-color);
    margin: 0;
}
.pricing-item-price .tsw-num{ font-size: 50px; }
.pricing-item-price .tsw-num sub{
    font-family: var(--default-font);
    font-size: 16px;
    font-weight: 400;
    bottom: 0;
}
.about-counter-box-prime .tsw-num{ font-size: 80px; }
.hero-rating-box .hero-info-content .tsw-num{ font-size: 60px; }

/* Karta pod hero: nadpis je h2 (kvoli hierarchii nadpisov), vzhlad ostava
   ako kitovy h3 v tej istej karte. */
.hero-details-box .hero-info-content h2{
    font-size: 20px;
    line-height: 1.4em;
    margin: 0;
}
/* Pocitadlo "24 500+" sa pri 80px zalamovalo na dva riadky. */
.about-counter-box-prime .tsw-num{ font-size: 54px; white-space: nowrap; }
.book-appointment-ultimate{ background-image: url('../images/obsah/rezervacia-bg.jpg'); }

/* Referencie v statickej mriezke: mena autorov zarovnat na spodok kariet. */
.testimonial-item-ultimate{ display: flex; flex-direction: column; }
.testimonial-body-ultimate{ display: flex; flex-direction: column; flex: 1; }
.testimonial-content-ultimate{ flex: 1; }

/* Honeypot proti robotom - musi byt v DOM, ale neviditelny pre cloveka.
   Zamerne NIE display:none (niektore boty taketo polia preskakuju). */
.tsw-hp{
    position: absolute !important;
    left: -9999px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* --------------------------------------------------------------------------
   21. Rozmery obrazkov (CLS) vs. kitove CSS
   Do sablon sme doplnili width/height atributy kvoli CLS. Tam, kde kit nastavuje
   iba sirku (napr. `width:100%; max-width:85px`) a vysku nechava na prirodzenom
   pomere, by sa atribut height stal skutocnou vyskou a obrazok by sa roztiahol.
   Preto vsade, kde kit vysku neurcuje, explicitne dopocitavame `height: auto`.
   -------------------------------------------------------------------------- */
.service-issue-info-image img,
.product-item-image-prime img,
.about-footer-ultimate img,
.footer-logo-ultimate img,
.navbar-brand img,
.tsw-payments img{
    height: auto;
}

/* Poistka: obrazok s width/height atributmi, ktoremu kit neurcuje vysku ani
   aspect-ratio, by sa pri zuzenom kontajneri deformoval (sirka klesne cez
   `img{max-width:100%}`, ale atribut height ostane). */
.tsw-hp img,
.service-issue-info-image img,
.product-item-image-prime img,
.footer-logo-ultimate img,
.navbar-brand img,
.tsw-payments img{
    height: auto;
}

/* --------------------------------------------------------------------------
   22. Aktivna polozka menu
   Bootstrap dava `.navbar-nav .nav-link.active` farbu `--bs-navbar-active-color`,
   co je na svetlej teme takmer cierna - na nasej tmavej hlavicke ju nebolo vidno.
   Aktivna polozka ma rovnaku akcentnu farbu ako hover v kite.
   Plati aj pre mobilne menu, ktore slicknav klonuje z #menu.
   -------------------------------------------------------------------------- */
.main-menu .navbar-nav .nav-link.active{
    color: var(--accent-color) !important;
}

/* Mobilne menu (slicknav) ma ORANZOVE pozadie - tam by akcentna farba splynula.
   Aktivnu polozku preto oznacujeme tmavou plochou a tucnym pismom, text ostava biely. */
.slicknav_nav .nav-link.active,
.slicknav_nav a.active{
    color: var(--white-color) !important;
    font-weight: 700;
    background: rgba(0, 0, 0, 0.28);
}

/* --------------------------------------------------------------------------
   23. Plynuly prechod hlavicky podstranky do pozadia
   Kit konci fotku v hlavicke ostrou vodorovnou hranou. Prechod nadol do farby
   pozadia stranky rez odstrani a fotka sa "rozplynie" do obsahu.
   `::before` (tmave prekrytie) ma z-index 1, obsah 2 - gradient patri medzi ne.
   -------------------------------------------------------------------------- */
.page-header::after{
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 46%;
    background: linear-gradient(to bottom,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.45) 58%,
        var(--bg-color) 100%);
    pointer-events: none;
    z-index: 1;
}
/* Hlavicka Sluzieb ma prechod do ciernej uz zapeceny vo fotke, tu staci kratky
   dotah - pri 46 % by gradient zjedol kolesa V-Classu. */
.page-header--sluzby::after{ height: 22%; }

/* --------------------------------------------------------------------------
   24. Kredit "Vyrobilo WEBCENTRUM" v pätičke
   Logo je hotlinkované z mailing.webcentrum.sk rovnako ako na ostatných
   projektoch - mení sa tak na jednom mieste pre všetky weby.
   -------------------------------------------------------------------------- */
.tsw-made-by p{
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 14px;
    line-height: 1;
    color: var(--text-color);
}
.tsw-made-by img{
    height: 22px;
    width: auto;
    opacity: 0.8;
    transition: opacity 0.3s ease-in-out;
}
.tsw-made-by a:hover img{ opacity: 1; }

/* --------------------------------------------------------------------------
   25. Objednávka na firmu
   Zaškrtnutím sa odkryje pole s názvom firmy. Rovnaký mechanizmus ako pole
   "číslo letu" - skryté polia sa nevalidujú, lebo `setupForm` preskakuje
   všetko, čo nie je viditeľné.
   -------------------------------------------------------------------------- */
.tsw-toggle{
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.4em;
    color: var(--white-color);
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid var(--tsw-line);
    border-radius: 12px;
    padding: 15px 18px;
    margin-bottom: 24px;
    cursor: pointer;
    transition: border-color 0.3s ease-in-out, background 0.3s ease-in-out;
}
.tsw-toggle:hover{ border-color: var(--tsw-line-strong); }
.tsw-toggle input{
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    accent-color: var(--accent-color);
    cursor: pointer;
}
.tsw-form-card.is-firma .tsw-toggle{
    border-color: var(--accent-color);
    background: var(--accent-soft);
}

.tsw-field--firma{ display: none; }
.tsw-form-card.is-firma .tsw-field--firma{ display: block; }

/* --------------------------------------------------------------------------
   26. Karty výhod - zarovnanie nadpisov
   Kit má na karte `justify-content: space-between` pri pevnej `min-height: 460px`.
   Ikona teda ostane hore, obsah sa pritlačí na spodok - a karta s najkratším
   textom má nadpis viditeľne nižšie než ostatné. Zarovnávame obsah hore, aby
   nadpisy vo všetkých kartách začínali na rovnakej výške.
   -------------------------------------------------------------------------- */
.benefits-item-prime{ justify-content: flex-start; }

/* --------------------------------------------------------------------------
   27. Pätička - rovnomernejšie rozdelenie šírky
   Kit má `.about-footer-ultimate{max-width:360px}` v širokom stĺpci, takže
   za textom ostávalo mŕtve miesto, a `.footer-links-box-ultimate` má
   `margin: 0 4.167vw`, čo stláčalo stĺpce s odkazmi (nadpis "Najžiadanejšie
   trasy" sa lámal na dva riadky). Stĺpce sú teraz 3/6/3 a bočné marginy rušíme.
   -------------------------------------------------------------------------- */
.footer-links-box-ultimate{
    margin: 0;
    gap: 40px;
}
.footer-links-ultimate{ max-width: none; flex: 1; }
.about-footer-ultimate{ max-width: 100%; }

/* Pod xl sa stlpce pätičky zalamujú do viacerých riadkov. Bez zvislého gutteru
   sa riadky zlepia (nadpis ďalšieho stĺpca nalepený na posledný riadok
   predchádzajúceho). Na xl sa nezalamuje, takže gutter netreba. */
@media only screen and (max-width: 1199px){
    .main-footer-ultimate .container > .row{ --bs-gutter-y: 50px; }
    .main-footer-ultimate .footer-copyright-ultimate{ margin-top: 10px; }
}

/* --------------------------------------------------------------------------
   28. Najžiadanejšia trasa v cenníku
   Letisko Viedeň-Schwechat tvorí okolo 90 % všetkých transferov, takže
   v tabuľke musí padnúť do oka hneď po otvorení cenníka.
   -------------------------------------------------------------------------- */
.tsw-table__row--hlavna td,
.tsw-table__row--hlavna th{
    background: var(--accent-soft);
}
.tsw-table__row--hlavna th:first-child{
    box-shadow: inset 3px 0 0 var(--accent-color);
}
.tsw-table__row--hlavna .tsw-price{ color: var(--accent-color); }
.tsw-table__row--hlavna .tsw-table__cta a{
    background: var(--accent-color);
    border-color: var(--accent-color);
}
.tsw-table__stitok{
    display: inline-block;
    font-family: var(--default-font);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase !important;
    color: var(--white-color);
    background: var(--accent-color);
    border-radius: 100px;
    padding: 3px 9px;
    margin-left: 10px;
    vertical-align: middle;
}
/* Odkaz na zákon pod hlavným textom - menší a tlmenejší. */
.tsw-zakon{
    display: block;
    font-size: 13px;
    line-height: 1.55em;
    color: rgba(214, 214, 216, 0.7);
    margin-top: 8px;
}

/* --------------------------------------------------------------------------
   29. Prepínač jazyka (vlajka)
   Je priamym potomkom `.navbar .container`, nie položkou `#menu` - menu sa na
   mobile zbalí do hamburgera, ale vlajka musí byť vidno stále. Preto sedí
   vedľa hamburgera, ktorý sa objavuje pod 991 px.
   Zobrazuje sa vždy len jazyk, DO ktorého sa prepína, takže je to jeden odkaz.
   -------------------------------------------------------------------------- */
.tsw-lang{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px;
    margin-left: 14px;
    border-radius: 8px;
    line-height: 0;
    transition: all 0.3s ease-in-out;
}
.tsw-lang img{
    display: block;
    width: 34px;
    height: 25px;
    border-radius: 3px;
}
.tsw-lang:hover{
    background: rgba(255, 255, 255, 0.10);
    transform: translateY(-1px);
}
.tsw-lang:focus-visible{
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

@media only screen and (max-width: 991px){
    /* Na mobile je vlajka hneď vedľa hamburgera - odsadenie zľava netreba,
       naopak treba medzeru medzi ňou a hamburgerom. */
    .tsw-lang{
        margin-left: auto;
        margin-right: 12px;
    }
}
@media only screen and (max-width: 420px){
    .tsw-lang img{ width: 30px; height: 22px; }
    .tsw-lang{ margin-right: 8px; padding: 4px; }
}

/* --------------------------------------------------------------------------
   30. Cookie lišta (CookieYes lite 3.2.10 - dočasne zo starého webu)
   CSS pluginu je v assets/cookieyes/cookieyes.css a needituje sa (rovnako ako
   vendor CSS kitu). Tu je vzhľad podľa nového webu: tmavá karta ako
   .tsw-contact-card, tlačidlá ako .btn-default / .btn-outline, písmo kitu.
   Farby v style="" šablóny (WEBSTATIC/sledovanie/lista-*.html) sú tie isté -
   JS z nich počíta prechod nad tlačidlami okna nastavení a farby prepínačov
   berie z cookieyes-*.json. Preto niektoré hover stavy potrebujú !important.
   z-index lišty (9 999 999), okna (999 999 999) a ikony (999 999) je nad
   hlavičkou (100) aj mobilnou CTA lištou (99); riešime len polohu, aby lišta
   ani ikona nezakrývali tlačidlá Zavolať / Rezervovať.
   -------------------------------------------------------------------------- */
.cky-overlay{ background: #000; opacity: 0.7; }

/* Lišta (box vľavo dole) */
.cky-consent-container{ border-radius: 20px; }
.cky-consent-container .cky-consent-bar{
    background: var(--tsw-card);
    border: 1px solid var(--tsw-line);
    border-radius: 20px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6);
    padding: 26px;
}
.cky-notice .cky-title{
    font-family: var(--accent-font);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3em;
    color: var(--white-color);
    margin: 0 0 12px;
}
.cky-notice-group,
.cky-notice-des,
.cky-preference-content-wrapper,
.cky-accordion-header-des,
.cky-audit-table{
    font-family: var(--default-font);
    color: var(--text-color);
}
.cky-notice-des{ font-size: 14px; line-height: 1.6em; }
.cky-notice-des p,
.cky-preference-content-wrapper p,
.cky-accordion-header-des p{ line-height: 1.6em; }
.cky-notice-des a,
.cky-preference-content-wrapper a{
    color: var(--accent-color);
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 0.3s ease-in-out;
}
.cky-notice-des a:hover,
.cky-preference-content-wrapper a:hover{ color: var(--white-color); }

/* Tlačidlá - pilulky ako na webe. Odmietnuť je rovnako veľké ako Prijať. */
.cky-btn{
    font-family: var(--accent-font);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2em;
    border-width: 1px;
    border-style: solid;
    border-radius: 100px;
    padding: 13px 18px;
    margin: 0;
    transition: background-color 0.3s ease-in-out, border-color 0.3s ease-in-out, color 0.3s ease-in-out;
}
.cky-btn:hover{ opacity: 1; }
.cky-btn-customize,
.cky-btn-reject,
.cky-btn-preferences{
    color: var(--white-color);
    background: transparent;
    border-color: var(--tsw-line-strong);
}
.cky-btn-customize:hover,
.cky-btn-reject:hover,
.cky-btn-preferences:hover{
    background-color: var(--accent-color) !important;
    border-color: var(--accent-color) !important;
}
.cky-btn-accept{
    color: var(--white-color);
    background: var(--accent-color);
    border-color: var(--accent-color);
}
.cky-btn-accept:hover{
    color: var(--bg-color) !important;
    background-color: var(--white-color) !important;
    border-color: var(--white-color) !important;
}
.cky-notice-btn-wrapper{ gap: 10px; margin-top: 20px; }
.cky-notice-btn-wrapper .cky-btn{ flex: 1 1 0; margin: 0; }
.cky-notice-btn-wrapper .cky-btn-reject{ order: 1; }
.cky-notice-btn-wrapper .cky-btn-accept{ order: 2; }
.cky-notice-btn-wrapper .cky-btn-customize{ order: 3; flex-basis: 100%; }

.cky-btn:focus-visible,
.cky-notice-des a:focus-visible,
.cky-preference-content-wrapper a:focus-visible,
.cky-preference-content-wrapper .cky-show-desc-btn:focus-visible,
.cky-accordion-header .cky-accordion-btn:focus-visible,
.cky-preference-header .cky-btn-close:focus-visible,
.cky-switch input[type="checkbox"]:focus-visible,
.cky-btn-revisit-wrapper .cky-btn-revisit:focus-visible{
    outline: 2px solid var(--white-color);
    outline-offset: 2px;
}
button.cky-show-desc-btn:not(:hover):not(:active),
.cky-preference-content-wrapper .cky-show-desc-btn{ color: var(--accent-color); }

/* Okno nastavení */
.cky-modal{
    background: var(--tsw-card);
    color: var(--text-color);
    border: 1px solid var(--tsw-line);
    border-radius: 20px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.7);
}
.cky-preference-center{ border-radius: 20px; }
.cky-preference-header{ padding: 22px 26px; }
.cky-preference-header .cky-preference-title{
    font-family: var(--accent-font);
    font-size: 22px;
    line-height: 1.3em;
    color: var(--white-color);
}
.cky-preference-header .cky-btn-close{
    padding: 10px;
    margin: -10px;
    border-radius: 50%;
    transition: background-color 0.3s ease-in-out;
}
.cky-preference-header .cky-btn-close:hover{ background: rgba(255, 255, 255, 0.08); }
.cky-preference-header .cky-btn-close img{ width: 12px; height: 12px; }
.cky-preference-body-wrapper{ padding: 0 26px; }
.cky-preference-content-wrapper{ font-size: 14px; padding: 16px 0; }
.cky-accordion .cky-accordion-item{ margin-top: 14px; }
.cky-accordion-chevron{ color: var(--accent-color); }
.cky-accordion-header .cky-accordion-btn{
    font-family: var(--accent-font);
    font-size: 16px;
    color: var(--white-color);
}
.cky-accordion-header .cky-always-active{ color: var(--tsw-success); font-size: 13px; }
.cky-accordion-header-des{ font-size: 14px; }
.cky-audit-table{ border: 1px solid var(--tsw-line); border-radius: 12px; }
.cky-audit-table .cky-cookie-des-table{ font-size: 13px; line-height: 1.5em; padding: 14px 16px; }
.cky-cookie-des-table li div:first-child{ width: 110px; color: var(--white-color); }
.cky-footer-shadow{ background: linear-gradient(180deg, rgba(19, 19, 19, 0) 0%, #131313 100%) !important; }
.cky-prefrence-btn-wrapper{ gap: 10px; padding: 20px 26px; }
.cky-prefrence-btn-wrapper .cky-btn{ flex: 1 1 0; margin: 0; }
.cky-switch input[type="checkbox"]{ background: #6b6b6b; }
.cky-switch input[type="checkbox"]:checked{ background: var(--accent-color); }

/* Ikona "Nastavenie cookies" po rozhodnutí */
.cky-btn-revisit-wrapper{
    width: 44px;
    height: 44px;
    background: var(--tsw-card-2);
    border: 1px solid var(--tsw-line-strong);
    transition: background-color 0.3s ease-in-out, border-color 0.3s ease-in-out;
}
.cky-btn-revisit-wrapper:hover{
    background-color: var(--accent-color) !important;
    border-color: var(--accent-color);
}
.cky-btn-revisit-wrapper .cky-btn-revisit img{ width: 24px; height: 24px; }
.cky-revisit-bottom-left:hover::before,
.cky-revisit-bottom-right:hover::before{
    font-family: var(--default-font);
    font-size: 13px;
    color: var(--white-color);
    background: var(--tsw-card-2);
    border: 1px solid var(--tsw-line-strong);
    border-radius: 8px;
    padding: 6px 10px;
}
.cky-revisit-bottom-left:hover::after{ border-right-color: var(--tsw-line-strong); }
.cky-revisit-bottom-right:hover::after{ border-left-color: var(--tsw-line-strong); }

/* Náhrada za mapu Google, kým návštevník nepovolí funkčné cookies.
   Skript dá náhrade rozmery iframu v px - mapa má byť na celú šírku. */
.video-placeholder-normal{ background-color: var(--tsw-card); background-size: 56px; }
.tsw-map .video-placeholder-normal{
    width: 100% !important;
    height: 460px !important;
    background-position: center 42%;
}
.video-placeholder-text-normal{
    font-family: var(--default-font);
    font-size: 14px;
    line-height: 1.5em;
    border-radius: 100px;
    padding: 10px 18px;
    margin: 0 16px 28px;
}

/* Odkaz "Nastavenie cookies" v pätičke (otvára okno nastavení) */
.tsw-cookie-nastavenie{
    padding: 0;
    margin: 0;
    border: 0;
    background: none;
    font: inherit;
    line-height: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: all 0.4s ease-in-out;
}
.tsw-cookie-nastavenie:hover{ color: var(--accent-color); }
.tsw-cookie-nastavenie:focus-visible{ outline: 2px solid var(--accent-color); outline-offset: 2px; }

/* Mobil a tablet: nad mobilnou CTA lištou (sekcia 16, výška ~65 px + safe area),
   aby lišta ani ikona nezakrývali Zavolať / Rezervovať. */
@media only screen and (max-width: 767px){
    .cky-box-bottom-left,
    .cky-box-bottom-right{ bottom: calc(80px + env(safe-area-inset-bottom)); }
    .cky-revisit-bottom-left,
    .cky-revisit-bottom-right{ bottom: calc(80px + env(safe-area-inset-bottom)); }
    .cky-revisit-bottom-left{ left: 12px; }
    .cky-revisit-bottom-right{ right: 12px; }
}
@media only screen and (max-width: 576px){
    .cky-box-bottom-left,
    .cky-box-bottom-right{
        left: 12px;
        right: 12px;
        width: auto;
        max-width: none;
    }
    .cky-prefrence-btn-wrapper .cky-btn{ flex: none; margin: 0; }
    .cky-prefrence-btn-wrapper .cky-btn-accept{ order: 1; }
    .cky-prefrence-btn-wrapper .cky-btn-reject{ order: 2; }
    .cky-prefrence-btn-wrapper .cky-btn-preferences{ order: 3; }
    .cky-modal{ border: 0; border-radius: 0; }
    .cky-preference-center{ border-radius: 0; }
    .cky-preference-header{ padding: 18px 20px; }
    .cky-preference-body-wrapper{ padding: 0 20px; }
    .cky-prefrence-btn-wrapper{ gap: 8px; padding: 14px 20px calc(14px + env(safe-area-inset-bottom)); }
    .cky-prefrence-btn-wrapper .cky-btn{ padding: 11px 16px; }
}
@media only screen and (max-width: 440px){
    .cky-consent-container .cky-consent-bar{ padding: 20px; }
    .cky-notice .cky-title,
    .cky-notice-des,
    .cky-notice-btn-wrapper{ padding: 0; }
    .cky-notice-des{ overflow-y: auto; }
    .cky-notice-btn-wrapper{ flex-direction: column; margin-top: 16px; }
    .cky-notice-btn-wrapper .cky-btn{ flex: none; width: 100%; margin: 0; }
    .cky-notice-btn-wrapper .cky-btn-accept{ order: 1; margin-top: 0; }
    .cky-notice-btn-wrapper .cky-btn-reject{ order: 2; }
    .cky-notice-btn-wrapper .cky-btn-customize{ order: 3; }
}
