/* -----------------------------------------------------------
   RESET & BASE
----------------------------------------------------------- */
*, *:after, *:before {
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    padding: 0;
    margin: 0;
}
html, body { margin: 0; padding: 0; line-height: 0; }
html { font-family: 'Quicksand', Arial, sans-serif; font-size: 10px; }
body { color: #2E2925; }

#mainTable { margin: 0; padding: 0; text-align: center; }
img, video { max-width: 90%; height: auto; text-align: center; }

input, textarea, select { max-width: 100%; margin-left: 0; margin-right: 0; }

ul, li { line-height: 1.7; list-style-type: square; margin: 0; padding: 0; }
ul { width: 100%; margin: 0; padding: 0; margin-left: 30px; }
li { padding: 0 0 5px 10px; margin: 0; text-align: left; font-size: 110%; width: 90%; }

p { display: block; margin: 0 auto; }

.odsazeni { padding: 15px; }
.odsazeni a, .odsazeni a:link, .odsazeni a:visited, .odsazeni a:hover {
    color: #5E6653; text-decoration: none; border-bottom: 1px dashed; font-weight: 500;
}
.odsazeni a:hover { color: #375766; text-decoration: none; }

a.vice:link, a.vice:visited, a.vice:hover, a.vice:active {
    display: inline-block; color: #FFFFFF; background-color: #b20a0b;
    width: 180px; padding: 10px; border: 0 none; margin: 10px 0;
    font-weight: normal; font-size: 90%;
}

a.logo {
    display: inline-block; padding: 0; margin-top: 5px;
    width: 200px; height: 100px;
    background-image: url('images/logo.svg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: 200px auto;
    float: left;
}

/* -----------------------------------------------------------
   GRID & ROWS
----------------------------------------------------------- */
.row { font-size: 130%; line-height: 2; padding: 0; margin: 0; }
.row:after { content: ""; clear: both; display: table; }

.gray { background-color: #1F120C; padding: 30px 0 0 0; color: #FFFFFF; border-top: 5px solid #FBC900; }
.yellow { background-color: #FBC900; padding: 30px 0; color: #000; }

/* -----------------------------------------------------------
   TYPO
----------------------------------------------------------- */
h1 {
    font-size: 300%; font-weight: normal; color: #000; line-height: 2;
    display: block; padding: 0 10px 50px 10px; margin: 0; text-align: center;
}
.slider-page h1 {
    color: #FFFFFF;
    /* responsivní výška pásu s nadpisem */
    padding: clamp(90px, 16vh, 150px) 15px clamp(50px, 10vh, 80px) 15px;
    line-height: 1; text-shadow: 2px 2px #000; font-size: 400%; font-weight: 500;
    background: rgba(31, 18, 12, 0.5);
}

h2, .nadpis {
    font-size: 250%; font-weight: normal; color: #000; line-height: 1.2;
    display: block; padding: 50px 10px 40px 10px; margin-top: 40px;
}
h3 { font-size: 150%; font-weight: 900; color: #000; line-height: 1.2; display: block; padding: 20px 0; text-transform: uppercase; }
h4 { font-size: 140%; font-weight: 700; color: #000; line-height: 1.2; display: block; padding: 20px 0; }
h5 { font-size: 200%; text-transform: uppercase; padding: 0; line-height: 1.5; margin: 0; }

/* -----------------------------------------------------------
   LAYOUT WRAPPERS
----------------------------------------------------------- */
.omezeniSirokeho { width: 100%; margin: 0 auto; padding: 0; }

.hlavicka {
    color: #000000; padding: 0 15px 15px 15px; height: auto; width: 100%;
    background: rgba(255, 255, 255, 1); z-index: 100;
}

/* -----------------------------------------------------------
   HERO (HOME + PAGES)
----------------------------------------------------------- */
/* společné vlastnosti pozadí */
.slider,
.slider-page {
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

/* HOME hero */
.slider {
    margin-bottom: 50px;
    background-image: url(images/bg/002.jpg);
    background-position: center center;
    background-size: cover;
    /* pružná výška, bez proužku */
    min-height: clamp(420px, 70vh, 900px);
    border-bottom: 0;
}

/* PAGE hero – bez přifukování, výšku určí obsah (h1) */
.slider-page {
    background-image: url(images/bg/003.jpg);
    background-position: center top;
    background-size: cover;
    border-bottom: 0;
    min-height: 0; /* FIX: žádný přesah = žádný žlutý „pruh“ */
}

/* obsahový overlay v HOME slideru */
div.textRow1 {
    padding: clamp(24px, 5vw, 80px) 10%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;           /* >>> centrování na mobilech/tabletech */
    width: 100%;
    min-height: inherit;
    height: auto;                  /* zrušení fixní výšky */
    background: rgba(31, 18, 12, 0.5);
    line-height: 1.5;
}
div.textRow1 p {
    color: #FFFFFF; font-weight: 500; padding: 30px 0; margin: 0;
    width: auto; font-size: 300%; text-align: center; text-shadow: 2px 2px #000;
    font-family: 'Big Shoulders Display', cursive;
}
a.sliderButton {
    color: #000; font-size: 170%; background-color: #FBC900;
    padding: 10px; width: auto; display: block; text-decoration: none;
    margin: 15px auto; font-weight: 700; margin-top: 100px;
    text-transform: uppercase; box-shadow: 5px 5px 5px rgba(0,0,0,0.5);
    max-width: 250px;
}

/* když po hero následuje .row(.gray), nikdy nepřidá horní border */
.slider + .row,
.slider-page + .row,
.slider + .row.gray,
.slider-page + .row.gray { border-top: 0 !important; }

/* safety – žádné pseudo elementy, které by „kreslily“ linku */
.slider:before, .slider:after, .slider-page:before, .slider-page:after { content: none !important; }

/* -----------------------------------------------------------
   POP-UP
----------------------------------------------------------- */
#mask {
    position: absolute; left: 0; top: 0; z-index: 9000; background-color: #000; display: none;
}
#boxes .window {
    position: absolute; left: 0; top: 0; width: 100%; height: 90%; display: none;
    z-index: 9999; padding: 20px; border-radius: 15px; text-align: center;
    background-size: auto 100%; background-position: center;
}
#boxes #dialog {
    width: 90%; height: 500px; padding: 20px; background-color: #ffffff;
    margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0;
}
.maintext { text-align: center; text-decoration: none; }
#lorem { text-align: center; font-size: 120%; line-height: 1.5; color: black; }
#popupfoot a { text-align: center; margin: 0 auto; display: block; float: none; padding: 20px; }

/* -----------------------------------------------------------
   NAV
----------------------------------------------------------- */
.desktop { display: block; overflow: hidden; width: 100%; }
.desktop .menu-main-container { padding: 0; width: 100%; margin: 0 auto; background-color: #FBC900; }
.desktop .menu-main-container ul {
    list-style-type: none; display: flex; justify-content: center;
    padding: 8px 0; height: auto; width: 100%; margin: 0;
}
.desktop .menu-main-container ul li.menu-item {
    list-style-type: none; display: block; padding: 0px; text-align: center;
    height: auto; width: auto; margin: 0 15px;
}
.desktop .menu-main-container ul li.menu-item a {
    text-decoration: none; color: #3F3C36; display: block; height: auto; width: auto;
    text-align: center; font-weight: 300; font-size: 150%; font-family: 'Oswald', sans-serif;
}
.desktop .menu-main-container ul li.current-menu-item a,
.desktop .menu-main-container ul li.menu-item a:hover { font-weight: 800; color: #000000; }

.mobile { display: none; position: fixed; width: 100%; top: 0; right: 0; z-index: 1000; }
.mobile div { display: none; }
.mobile button {
    top: 30px; position: absolute; right: 30px; border: 0; text-indent: 200%; overflow: hidden;
    background: rgba(31, 18, 12, 0.95); background-image: url(images/navmenu_icon.png);
    background-size: 50%; background-position: 50% 50%; background-repeat: no-repeat;
    width: 40px; height: 40px; outline: none; -webkit-transition: all 400ms ease; transition: all 400ms ease; z-index: 1000;
}
.mobile button.expanded { -webkit-transform: rotate(90deg); transform: rotate(90deg); background-color: transparent; border: 0; }
.mobile .menu-main-container { padding: 0; width: 90%; margin: 0 auto; z-index: 100; top: -50px; position: relative; right: 0; }
.mobile .menu-main-container ul {
    list-style-type: none; display: block; padding: 100px 0 20px 0; height: auto; width: 100%;
    margin: 0 auto; background: rgba(31, 18, 12, 0.95); float: right; top: -20px;
}
.mobile .menu-main-container ul li.menu-item {
    list-style-type: none; display: block; padding: 0; text-align: center; height: auto; width: 100%; margin: 0; float: left;
}
.mobile .menu-main-container ul li.menu-item a {
    text-decoration: none; font-size: 200%; display: block; height: auto; font-weight: 400; color: #fff; padding: 10px 0;
    font-family: 'Oswald', sans-serif;
}

ul#menu-foot { width: auto; list-style-type: none; margin: 0; padding: 0; }
ul#menu-foot li { display: inline; }
.odsazeni ul#menu-foot li a {
    color: #fff; text-decoration: none; text-align: left; display: inline-block; margin: 25px 0 0 0; font-size: 100%; border: 0 none;
}

/* -----------------------------------------------------------
   COMPONENTS
----------------------------------------------------------- */
p { font-size: 140%; margin-bottom: 30px; }
.footer p { font-size: 100%; }
.alt, .art, .ctr { text-align: center; }

#map { width: 100%; height: 450px; }

[class*="col-"] { float: left; width: 100%; margin: 0; }
.col-1 {width: 8.33%;} .col-2 {width: 16.66%;} .col-3 {width: 25%;}
.col-4 {width: 33.33%;} .col-5 {width: 41.66%;} .col-6 {width: 50%;}
.col-7 {width: 58.33%;} .col-8 {width: 66.66%;} .col-9 {width: 75%;}
.col-10 {width: 83.33%;} .col-11 {width: 91.66%;} .col-12 {width: 100%;}

.sluzba { padding: 25px; }
.sluzba .ikona { display: block; width: 100%; height: 100px; position: relative; padding-top: 25px; }
.sluzba img { margin: 0 auto 25px; display: inline-block; vertical-align: middle; position: absolute 50%; }
.sluzba .text { font-size: 110%; line-height: 2; font-weight: 400; width: 80%; margin: 0 auto; }

.stavby { text-align: left; font-size: 110%; width: auto; padding: 25px; display: block; }
.stavby .nazev { padding: 5px 10px; background-color: #FBC900; display: block; width: 100%; font-size: 120%; font-weight: 700; }
.stavby .udaje { padding: 10px; }
.stavby strong { font-weight: 700; display: inline-block; }

.loga { margin: 30px auto; width: 300px; padding: 20px; background-color: #f9f9f9; height: 350px; box-shadow: 2px 2px 2px rgba(0,0,0,0.1); }
.loga .logoframe { width: 200px; height: 200px; position: relative; background-color: #fff; margin: 0 auto; box-shadow: 2px 2px 2px rgba(0,0,0,0.1); }
.loga img.logofirmy { width: 200px; height: auto; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.loga .firma { text-align: center; font-size: 130%; font-weight: 700; line-height: 1.2; padding: 35px 0; }
.loga .web a:link { text-align: center; font-size: 120%; font-weight: 500; }

.foto, .jmeno, .pozice, .telefon, .email { display: block; margin: 5px 0; width: 100%; line-height: 1.7; }
img.foto { width: 150px; height: 150px; border-radius: 50%; text-align: center; margin: 40px auto 0; }
.jmeno { font-size: 160%; font-weight: 700; }
.pozice { font-size: 130%; height: 80px; font-weight: 500; padding: 0 10%; line-height: 1.2; }
.telefon, .email { font-size: 120%; }

/* -----------------------------------------------------------
   MEDIA QUERIES
----------------------------------------------------------- */
@media only screen and (min-width: 481px) {
    .col-s-1 {width: 8.33%;} .col-s-2 {width: 16.66%;} .col-s-3 {width: 25%;}
    .col-s-4 {width: 33.33%;} .col-s-5 {width: 41.66%;} .col-s-6 {width: 50%;}
    .col-s-7 {width: 58.33%;} .col-s-8 {width: 66.66%;} .col-s-9 {width: 75%;}
    .col-s-10 {width: 83.33%;} .col-s-11 {width: 91.66%;} .col-s-12 {width: 100%;}

    h3 { padding-bottom: 5px; padding-top: 5px; margin-bottom: 25px; }
    h2, h3 { padding-left: 0; margin-left: 0; }

    .hlavicka { padding-top: 0; text-align: left; height: auto; width: 100%; }

    .textRow1 { font-size: 100%; }
    .textRow1 p { text-align: left; }

    a.sliderButton { font-size: 170%; width: 350px; padding: 20px 10px; font-weight: bold; margin-top: 50px; }
    a.sliderButton:hover { background-color: #f9f9f9; }
}

@media only screen and (min-width: 961px) {
    .col-m-1 {width: 8.33%;} .col-m-2 {width: 16.66%;} .col-m-3 {width: 25%;}
    .col-m-4 {width: 33.33%;} .col-m-5 {width: 41.66%;} .col-m-6 {width: 50%;}
    .col-m-7 {width: 58.33%;} .col-m-8 {width: 66.66%;} .col-m-9 {width: 75%;}
    .col-m-10 {width: 83.33%;} .col-m-11 {width: 91.66%;} .col-m-12 {width: 100%;}
    .col-m-20 {width: 20%;}

    .omezeniSirokeho { width: 90%; }
    .omezeniVetsi { width: 960px; margin: 0 auto; }

    .sluzba { height: 350px; }
    .stavby { height: 280px; }

    .tel { background-image: url('images/phone.png'); }
    .mail { background-image: url('images/mail.png'); }
    .tel, .mail {
        float: right; width: auto; padding: 40px 0 0 40px; margin-left: 30px; text-align: right;
        font-size: 200%; font-family: 'Oswald', sans-serif; background-position: 0 37px;
        background-repeat: no-repeat; background-size: 32px; line-height: 1.2;
    }

    /* zrušení extra top-paddingu a levé zarovnání obsahu */
    div.textRow1 { padding-top: 0; text-align: left; }

    /* tlačítko vlevo pod textem (float u flex položky nefunguje) */
    .slider .textRow1 { align-items: flex-start; }
    .slider .textRow1 a.sliderButton {
        margin-top: 150px;
        margin-left: 0;
        margin-right: 0;
        align-self: flex-start;
    }

    div.textRow1 p {
        font-size: 300%; text-align: left; display: block; border-left: 10px solid #fff; padding: 0 0 0 25px; line-height: 2;
    }

    h1 { font-size: 350%; }

    .alt { text-align: left; }
    .art { text-align: right; }

    #boxes .window { width: 450px; height: 300px; background-size: auto 100%; }
    #boxes #dialog { width: 450px; }
}

@media only screen and (min-width: 1281px) {
    .col-l-1 {width: 8.33%;} .col-l-2 {width: 16.66%;} .col-l-3 {width: 25%;}
    .col-l-4 {width: 33.33%;} .col-l-5 {width: 41.66%;} .col-l-6 {width: 50%;}
    .col-l-7 {width: 58.33%;} .col-l-8 {width: 66.66%;} .col-l-9 {width: 75%;}
    .col-l-10 {width: 83.33%;} .col-l-11 {width: 91.66%;} .col-l-12 {width: 100%;}

    div.textRow1 p { font-size: 400%; }

    .desktop .menu-main-container ul li.menu-item { margin: 0 20px; }
    .desktop .menu-main-container ul li.menu-item a { font-size: 170%; font-weight: 700; }

    .sluzba { height: auto; min-height: 300px; }
}

/* --- Desktop menu: postupné utažení na užších šířkách --- */
@media (max-width: 1680px){
    .desktop .menu-main-container ul li.menu-item { margin: 0 14px; }
}

@media (max-width: 1540px){
    .desktop .menu-main-container ul li.menu-item { margin: 0 12px; }
    .desktop .menu-main-container ul li.menu-item a { font-size: 155%; } /* z 170 % dolů */
}

/* kolem ~1580 px už to bývá natěsno, stáhneme ještě trochu */
@media (max-width: 1400px){
    .desktop .menu-main-container ul li.menu-item { margin: 0 10px; }
    .desktop .menu-main-container ul li.menu-item a { font-size: 150%; }
}

/* dlouhá položka “Cleaning Service by SH Roof” – lokální zmenšení, ať nevyčuhuje */
@media (max-width: 1600px){
    #menu-item-20779 > a { font-size: 140%; }
}

/* Přepnutí na hamburger o něco dřív (než 960 px) */
@media (max-width: 1180px){
    .desktop { display: none !important; }
    .mobile  { display: block !important; }
}

/* -----------------------------------------------------------
   MISC
----------------------------------------------------------- */
p.copyright {
    background-color: #333333; padding: 5px 0; font-size: 120%; text-align: center; color: #fff; margin: 0; line-height: 2;
}
p.copyright a { color: #fff; text-decoration: underline; }

.clearfloat { clear: both; height: 0; font-size: 1px; line-height: 0px; }
.fixed-height { min-height: 450px; padding-top: 100px; }
.pagetitle { color: #FFFFFF; }

img.temp {
    display: inline-block; padding: 0; margin-top: 5px; width: 100%; height: 250px; text-decoration: none; border-bottom: 0 none;
}
.odsazeni .ctr a.white-logo { filter: brightness(0) invert(1); border: 0 none; border-bottom: 0; margin: 0; height: 80px; float: none; }

/* Fonts
font-family: 'Bebas Neue', cursive;
font-family: 'Big Shoulders Display', cursive;
font-family: 'Quicksand', sans-serif;
*/

/* ===== Lightbox ===== */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.95);display:none;align-items:center;justify-content:center;z-index:2000}
.lightbox.open{display:flex}
.lightbox__img{max-width:90vw;max-height:90vh}
.lightbox__close{position:absolute;top:20px;right:20px;font-size:36px;color:#fff;background:none;border:0;cursor:pointer}

/* Video modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;z-index:2000}
.modal.open{display:flex}
.modal__close{position:absolute;top:20px;right:20px;font-size:36px;line-height:1;color:#fff;background:transparent;border:0;cursor:pointer}
.modal__body{width:90vw;height:90vh;max-width:1280px;max-height:720px}
.modal__body iframe,.modal__body video{width:100%;height:100%;display:block;background:#000;object-fit:contain}

/* zarovnání obou CTA vedle sebe na desktopu, na mobilu pod sebou */
.ctaRow { display: flex; gap: 15px; flex-wrap: wrap; justify-content: center; }
@media (min-width:961px){
    .slider .textRow1 { align-items: flex-start; }
    .ctaRow { justify-content: flex-start; margin-top: 150px; }
    .ctaRow .sliderButton { margin: 0; }
}

/* --- HERO CTA: dvě tlačítka vedle sebe, stejné jako "Naše nabídka" --- */
.ctaRow { display: flex; gap: 15px; flex-wrap: wrap; justify-content: center; }
@media (min-width:961px){
    .slider .textRow1 { align-items: flex-start; }
    .ctaRow { justify-content: flex-start; margin-top: 150px; }
    /* přepiš staré pravidlo se 150px pro každé tlačítko do nuly */
    .ctaRow .sliderButton { margin-top: 0 !important; margin-left: 0; margin-right: 0; }
}

/* Modál – podporuj i třídu .is-open (pro jistotu, dle JS) */
.modal.open, .modal.is-open { display:flex; }

/* --- Klikací varianta karty Nabídky --- */
.sluzba--link {
    display: block;
    text-decoration: none !important;
    color: inherit !important;
    border: 0 !important;        /* odstraní dashed border */
}

.sluzba--link .ikona,
.sluzba--link .text {
    text-decoration: none !important;
    color: inherit !important;
}

/* Hover efekt – stejný pro všechny */
.sluzba,
.sluzba--link {
    transition: transform .15s ease, box-shadow .15s ease;
}

.sluzba--link:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* === PARTNEŘI – vodorovný pás s automatickým posuvem === */
.partnersRow { padding: 10px 0 30px; }

.partnersMarquee {
    width: 100%;
    overflow: hidden;
    position: relative;
}

.partnersTrack {
    display: flex;
    align-items: center;
    gap: 50px;
    width: max-content;                 /* šířka podle obsahu */
    animation: partners-scroll 40s linear infinite;
    will-change: transform;
}

/* pauza při hoveru (uživatelsky příjemnější) */
.partnersMarquee:hover .partnersTrack { animation-play-state: paused; }

.partner {
    flex: 0 0 auto;
    width: 180px;
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    /* decentní efekt */
    filter: grayscale(100%);
    opacity: .85;
    transition: filter .2s ease, opacity .2s ease, transform .2s ease;
}

/* logo */
.partner img {
    max-width: 160px;
    max-height: 80px;
    display: block;
}

/* hover */
.partner:hover {
    filter: none;
    opacity: 1;
    transform: translateY(-2px);
}

/* plynulý nekonečný posun: stopa je dvojnásobná (položky vytištěny 2×), jedeme o -50% */
@keyframes partners-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* responsivní zmenšení */
@media (max-width: 960px){
    .partnersTrack { gap: 30px; }
    .partner { width: 140px; height: 80px; }
    .partner img { max-width: 120px; max-height: 60px; }
}

/* === Cleaning Service – layout === */
.cs-intro { font-size: 150%; line-height: 1.8; max-width: 900px; margin: 0 auto 20px; }

/* karty služeb */
.cs-card { background:#f9f9f9; padding:20px; margin-bottom:20px; box-shadow:2px 2px 2px rgba(0,0,0,.08); }
.cs-card h2 { margin:0 0 10px; font-size:200%; }
.cs-list { margin-left: 18px; }
.cs-list li { list-style: square; line-height: 1.8; }

/* ceník */
.cs-pricing table { width:100%; border-collapse: collapse; margin: 10px 0 15px; }
.cs-pricing th, .cs-pricing td { text-align:left; padding:10px 12px; border-bottom:1px solid #eee; font-size: 120%; }
.cs-pricing th { width:60%; font-weight:700; }
.cs-note { font-size:120%; }

/* proč nás */
.cs-bullets { margin-left: 18px; }
.cs-bullets li { list-style: square; line-height: 1.9; font-size:120%; }

/* formulář */
.cs-form { max-width: 920px; }
.cs-row { display:flex; flex-wrap:wrap; gap:15px; }
.cs-field { flex:1 1 200px; min-width: 220px; }
.cs-field label { display:block; font-weight:700; margin:8px 0 4px; }
.cs-field input, .cs-field textarea { width:100%; padding:10px; border:1px solid #ddd; font-size:110%; }
.cs-fieldset { border:1px solid #eee; padding:10px 12px; margin:10px 0 15px; }
.cs-fieldset legend { font-weight:700; padding:0 6px; }
.cs-check { display:inline-flex; align-items:center; gap:8px; margin:6px 12px 6px 0; }
.cs-consent { display:flex; align-items:center; gap:10px; margin:8px 0 18px; font-size:110%; }

/* notifikace */
.cs-notice { padding:12px 14px; border-radius:4px; margin:10px 0 15px; }
.cs-notice--ok { background:#ecfdf5; color:#065f46; border:1px solid #a7f3d0; }
.cs-notice--err{ background:#fef2f2; color:#991b1b; border:1px solid #fecaca; }

/* tlačítko recykluj z .sliderButton – jen pro inline použití ve formuláři */
.cs-form .sliderButton { display:inline-block; margin-top:6px; }

/* === BTN – univerzální tlačítko (bez čárkovaného podtržení) === */
.btn{display:inline-block;padding:12px 20px;border-radius:6px;border:0;text-decoration:none;font-weight:700;line-height:1}
.btn-primary{background:#FBC900;color:#000;}
.btn-primary:hover{filter:brightness(.95);}
.odsazeni a.btn{border:0 !important; text-decoration:none !important;}

/* === GRID KARET – „bootstrap-like“ rovnoměrná mřížka === */
.cs-grid{display:grid;gap:22px;grid-template-columns:repeat(1,minmax(0,1fr))}
@media (min-width:961px){ .cs-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:1281px){ .cs-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }

.cs-card{background:#fff;border:1px solid #eee;border-radius:8px;padding:18px;display:flex;flex-direction:column;min-height:100%}
.cs-card h3{margin:0 0 10px;font-size:180%;font-weight:600}
.cs-list{margin-left:18px}
.cs-list li{list-style: square; line-height:1.8}

/* === CENÍK === */
.cs-pricing table{width:100%;border-collapse:collapse;margin:10px 0 15px}
.cs-pricing th,.cs-pricing td{padding:10px 12px;border-bottom:1px solid #eee;text-align:left;font-size:120%}
.cs-pricing th{width:60%;font-weight:700}
.cs-note{font-size:120%}

/* === PROČ NÁS === */
.cs-bullets{margin:8px auto 0;max-width:900px}
.cs-bullets li{list-style:square;margin-left:18px;line-height:1.9;font-size:120%}

/* === FORM – střed, čisté zarovnání === */
.cs-form{max-width:860px;margin:0 auto}
.form-grid{display:grid;gap:12px;grid-template-columns:1fr}
@media (min-width:961px){ .form-grid{grid-template-columns:repeat(2,1fr);} }
.form-field label{display:block;font-weight:700;margin:8px 0 4px}
.form-field input,.form-field textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:110%}
.cs-fieldset{border:1px solid #eee;border-radius:6px;padding:10px 12px;margin:12px 0 15px}
.cs-fieldset legend{font-weight:700;padding:0 6px}
.cs-check{display:inline-flex;align-items:center;gap:8px;margin:6px 12px 6px 0}
.cs-consent{display:flex;align-items:center;gap:10px;margin:8px 0 18px;font-size:110%}

/* === Intro text === */
.cs-intro{font-size:150%;line-height:1.8;max-width:900px;margin:0 auto 16px}

/* Spolupráce – odkazy s logy bez čárkovaného podtržení */
.partnersRow a,
.partnersRow a:link,
.partnersRow a:visited,
.partnersRow a:hover {
    border: 0 !important;
    text-decoration: none !important;
    color: inherit !important; /* zachová barvu textu, kdyby tam nějaký byl */
}

/* pro jistotu i přímo na třídu .partner */
a.partner { border: 0 !important; text-decoration: none !important; }
a.partner:hover { border: 0 !important; }

/* Všude na webu: obrázky v galeriích bez čárkované linky */
.odsazeni .wp-block-image a,
.odsazeni .wp-block-gallery a,
.odsazeni .blocks-gallery-grid a,
.odsazeni .gallery a,
.odsazeni .gallery-item a,
.odsazeni a.nivo-lightbox,
.odsazeni a[data-lightbox]{
    border: 0 !important;
    text-decoration: none !important;
    color: inherit !important;
}

/* === PARTNEŘI – horní lišta s kartami === */
.partnersTop { padding: 14px 0 6px; background:#fff; }
.partnersMarquee--cards .partnersTrack { gap: 24px; animation: partners-scroll 35s linear infinite; }

/* odkazy bez čárek a bez odbarvení */
.partnersMarquee--color .partner { filter:none !important; opacity:1 !important; }
.partnersMarquee--cards .partnerCardLink { display:block; border:0 !important; text-decoration:none !important; color:inherit !important; }

/* vizitka (card) pro logo – v barvě, větší */
.partnerCard{
    width: 300px;       /* větší než dřív */
    height: 180px;
    background:#fff;
    border:1px solid #eee;
    border-radius:12px;
    box-shadow:0 3px 10px rgba(0,0,0,.08);
    display:flex; align-items:center; justify-content:center;
    padding:16px;
}
.partnerCard img{
    max-width: 240px;   /* zvětšené logo */
    max-height: 140px;
    display:block;
}

/* responsivní zmenšení na menších šířkách */
@media (max-width: 1180px){
    .partnerCard{ width:260px; height:160px; }
    .partnerCard img{ max-width:210px; max-height:120px; }
}
@media (max-width: 640px){
    .partnerCard{ width:220px; height:140px; }
    .partnerCard img{ max-width:180px; max-height:110px; }
}

/* ====== PARTNEŘI – FIX proti „ořezaným“ logům ====== */
/* Platí pro současný markup (bez vizitek/karet) */
.partnersTop { padding: 24px 0; }                         /* víc vzduchu nad/pod */
.partnersMarquee { overflow-x: hidden; overflow-y: visible; }  /* NEořezávat vertikálně */
.partnersMarquee .partnersTrack { align-items: center; gap: 40px; }

.partner {                                                /* jednotná „výška řádku“ */
    display: flex;
    align-items: center;
    justify-content: center;
    height: 120px;                                          /* nastav dle potřeby */
    border: 0 !important;
    text-decoration: none !important;
    filter: none !important;                                /* barva, žádná šedá */
    opacity: 1 !important;
}

.partner img {
    display: block;
    width: auto; height: auto;
    max-height: 90px;                                       /* VĚTŠÍ logo – uprav dle přání */
    max-width: 260px;
}

/* Kdybys použil variantu s „vizitkami“ (karty), neřež stíny ani logo */
.partnersMarquee--cards { overflow-y: visible; }
.partnerCard { width: 300px; height: 180px; padding: 16px; overflow: visible; }
.partnerCard img { max-width: 240px; max-height: 140px; object-fit: contain; display:block; }

/* A pořád – žádné čárkované podtržení u linků v pásu */
.partnersTop a { border: 0 !important; text-decoration: none !important; color: inherit !important; }

/* === PARTNEŘI – robustní marquee bez ořezávání a bez scrollbarů === */
.partnersTop { padding: 18px 0 6px; background:#fff; }
.partnersMarquee { overflow: hidden; width: 100%; }
.partnersTrack {
    display: flex; align-items: center;
    gap: clamp(24px, 4vw, 48px);
    width: max-content;
    animation: partners-scroll 38s linear infinite;
    will-change: transform;
}

/* Každé logo má svůj box stejné velikosti */
.partnerItem { display:block; border:0 !important; text-decoration:none !important; color:inherit !important; }
.partnerBox {
    flex: 0 0 auto;
    width: clamp(200px, 18vw, 300px);
    height: clamp(90px, 9vw, 140px);
    background:#fff;
    border: 1px solid #eee;
    border-radius: 12px;
    box-shadow: 0 3px 10px rgba(0,0,0,.06);
    display:flex; align-items:center; justify-content:center;
    overflow: hidden;              /* nic nepřetéká, ale logo se vejde díky contain */
    padding: 10px;
}

/* Logo se vždy celé vejde do boxu */
.partnerBox img{
    max-width: 90%;
    max-height: 80%;
    width: auto; height: auto;
    object-fit: contain;
    display: block;
}

/* plynulý nekonečný posun; stopa je vytištěná 2×, proto -50% */
@keyframes partners-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* V pásu nikdy žádné čárkované podtržení ani šednutí */
.partnersTop a { border:0 !important; text-decoration:none !important; color:inherit !important; filter:none !important; opacity:1 !important; }

/* PARTNEŘI – fix: ať je vidět spodní hrana karet, bez vnitřního scrollu */
.partnersTop { padding: 18px 0 20px; }                 /* víc místa dole */
.partnersMarquee {
    overflow-x: hidden;                                  /* horizontálně schovej */
    overflow-y: visible;                                 /* vertikálně NIC neřež */
}

/* karta/logobox – zřetelnější linka a stín */
.partnerBox {
    border: 1px solid rgba(0,0,0,.14);                   /* trochu tmavší než #eee */
    box-shadow: 0 4px 14px rgba(0,0,0,.08);
    width: clamp(200px, 18vw, 300px);
    height: clamp(100px, 10vw, 150px);
    background: #fff;
    border-radius: 12px;
    display:flex; align-items:center; justify-content:center;
    overflow: hidden;                                     /* obraz zůstane uvnitř */
    padding: 12px;
}

/* obraz se vždy celý vejde */
.partnerBox img {
    max-width: 92%;
    max-height: 85%;
    width: auto; height: auto;
    object-fit: contain;
    display: block;
}

/* pás bez podtržení/šednutí linků */
.partnersTop a { border:0 !important; text-decoration:none !important; color:inherit !important; filter:none !important; opacity:1 !important; }