/* ============================================================
   Globální rezervační lišta (includes/booking_widget.php). Tlačítka a offcanvas jsou komponenty
   šablony/Bootstrapu (.btn, utility, .offcanvas); vlastní CSS je jen to, co šablona nemá:
   připnutí dole přes celou šířku a barva podle šablony.
   ============================================================ */
/* Místo pod obsahem, ať lišta nezakrývá patičku. */
body:has(.mp-book-bar) { padding-bottom: 76px; }
.mp-book-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1030; /* pod offcanvasem (1045) a jeho pozadím (1040) */
    padding: 10px 0 calc(10px + env(safe-area-inset-bottom));
    background: var(--color-one);
    box-shadow: 0 -8px 28px rgba(0,0,0,.35);
}
/* Schová se, když je na obrazovce rezervační panel (booking-widget.js). */
.mp-book-bar.is-hidden { display: none; }
.mp-book-bar-text { color: #fff; line-height: 1.3; }
.mp-book-bar-text strong { display: block; font-weight: 600; }
.mp-book-bar-text small { display: block; opacity: .85; font-size: .8rem; }
@media (max-width: 575px) {
    /* Na mobilu jen tlačítka, text by zabral druhý řádek. */
    .mp-book-bar-text small { display: none; }
    .mp-book-bar .btn { padding-left: 16px; padding-right: 16px; }
}
/* Offcanvas s nabídkou služeb: tmavé pozadí šablony. */
.mp-book-bar-choose { background: var(--color-dark-two, #1a1a1a); color: #fff; }
/* Tlačítko "nahoru" z šablony je jinak pod lištou. */
body:has(.mp-book-bar) .totop { bottom: calc(90px + env(safe-area-inset-bottom)); }


/* ============================================================
   EXIT-INTENT POPUP — nabízí se při odchodu ze stránky (mouseout
   nahoru z okna na desktopu, přepnutí/skrytí záložky na mobilu),
   viz assets/js/exit-intent-popup.js. Vlastní formulář (posílá se
   rovnou na poptavka-odeslat.php, stejný endpoint jako .mp-book-bar)
   + velké klikací telefonní číslo — návštěvník nemusí nikam
   přecházet ani přemýšlet nad rezervačním systémem s termíny.
   ============================================================ */
.mp-exit-popup-overlay {
    position: fixed;
    inset: 0;
    background: rgba(20,10,16,.6);
    z-index: 1090;
    opacity: 0;
    transition: opacity .25s ease;
}
.mp-exit-popup-card {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(.94);
    width: calc(100% - 32px);
    max-width: 440px;
    max-height: 90vh;
    overflow-y: auto;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 20px 60px rgba(0,0,0,.4);
    padding: 30px 26px 26px;
    text-align: center;
    z-index: 1091;
    font-family: 'Poppins', system-ui, sans-serif;
    opacity: 0;
    transition: opacity .25s ease, transform .25s ease;
}
.mp-exit-popup.open .mp-exit-popup-overlay,
.mp-exit-popup.open .mp-exit-popup-card {
    opacity: 1;
}
.mp-exit-popup.open .mp-exit-popup-card {
    transform: translate(-50%, -50%) scale(1);
}
.mp-exit-popup-close {
    position: absolute;
    top: 10px;
    right: 14px;
    background: none;
    border: none;
    font-size: 1.6rem;
    line-height: 1;
    color: #999;
    cursor: pointer;
    padding: 6px;
}
.mp-exit-popup-close:hover { color: #333; }
.mp-exit-popup-kicker {
    color: #db2777;
    font-weight: 700;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin: 0 0 6px;
}
.mp-exit-popup-title {
    font-size: 1.3rem;
    font-weight: 800;
    margin: 0 0 8px;
    color: #222;
}
.mp-exit-popup-text {
    font-size: 0.9rem;
    color: #666;
    margin: 0 0 18px;
    line-height: 1.5;
}
.mp-exit-popup-phone {
    display: block;
    background: linear-gradient(90deg, #db2777, #9d174d);
    border-radius: 14px;
    padding: 12px 16px;
    text-decoration: none;
    margin-bottom: 16px;
}
.mp-exit-popup-phone-label {
    display: block;
    color: rgba(255,255,255,.85);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.mp-exit-popup-phone-number {
    display: block;
    color: #fff;
    font-size: 1.7rem;
    font-weight: 800;
    letter-spacing: .01em;
}
.mp-exit-popup-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #aaa;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 14px;
}
.mp-exit-popup-divider::before,
.mp-exit-popup-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e5e5e5;
}
.mp-exit-popup-form { text-align: left; }
.mp-exit-popup-hp { display: none !important; }
.mp-exit-popup-row { display: flex; gap: 8px; }
.mp-exit-popup-row + .mp-exit-popup-row { margin-top: 8px; }
.mp-exit-popup-form input,
.mp-exit-popup-form textarea {
    width: 100%;
    box-sizing: border-box;
    background: #f7f7f7;
    border: 1px solid #e2e2e2;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 0.88rem;
    font-family: inherit;
    color: #222;
}
.mp-exit-popup-form input::placeholder,
.mp-exit-popup-form textarea::placeholder { color: #999; }
.mp-exit-popup-form input:focus,
.mp-exit-popup-form textarea:focus {
    outline: none;
    border-color: #db2777;
    background: #fff;
}
.mp-exit-popup-form textarea { resize: vertical; min-height: 44px; margin-top: 8px; }
.mp-exit-popup-submit {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    height: 46px;
    margin-top: 12px;
    background: linear-gradient(90deg, #db2777, #9d174d);
    color: #fff;
    border: none;
    border-radius: 30px;
    font-weight: 800;
    font-size: 0.86rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    cursor: pointer;
}
.mp-exit-popup-submit:hover { filter: brightness(1.08); }
.mp-exit-popup-submit:disabled { opacity: .6; cursor: default; }
.mp-exit-popup-msg { font-size: 0.85rem; text-align: center; margin-top: 10px; min-height: 1.2em; }
.mp-exit-popup-msg.success { color: #1a9d4d; font-weight: 700; }
.mp-exit-popup-msg.error { color: #d9364f; }
@media (max-width: 480px) {
    .mp-exit-popup-card { padding: 24px 18px 20px; }
    .mp-exit-popup-title { font-size: 1.15rem; }
    .mp-exit-popup-phone-number { font-size: 1.45rem; }
}

/* Pozadí stránek jako v originálních demech šablony (dark): jednobarevné #151515. Šablona má na <body> celého webu variantu
   .theme-style--gradient s obrázkem bg-14-lite.webp (barevné skvrny), kterou mají jen úvodní demo index-4 / index-15; všechna ostatní
   dema (kontakt, blog, galerie, ceník, služby...) mají <body> bez pozadí. Gradient proto zůstává jen na úvodní straně (slider style4). */
:root body.theme-style--gradient:not(:has(.wptb-slider.style4)) { background-color: #151515; background-image: none; }

/* Šablona - primární barva: růžová (#db2777) místo tyrkysové varianty .theme-style--gradient */
:root .theme-style--gradient {
    --color-one: #db2777;
    --color-one-rgb: 219, 39, 119;
    --link-color-hover: #db2777;
}

/* Výkon: pozadí stránky z dema (bg-14.png) mělo 8,6 MB - lehká webp verze (122 kB) se stejným vzhledem */
:root .theme-style--gradient {
    background-image: url('/assets/img/background/bg-14-lite.webp');
}

/* Barevné obláčky na pozadí i na dalších stránkách (/fotobook/, /shop/, /recenze/, /blog/, /fotogalerie/, příspěvky blogu, /kontakt/). Dlaždice (jen skvrny z bg-14-lite) se opakuje svisle v přirozeném
   poměru stran, aby obláčky pokryly celou dlouhou stránku a neroztáhly se; první začíná pod záhlavím stránky (to má vlastní pozadí).
   Stránka se přihlásí přítomností svého prvku v :has(). Zdroj pravdy pro oba weby, v mp-fotobook.css už není. */
:root body.theme-style--gradient:has(#fotobook-objednat, #shop-poukazy, .mp-reviews, .wptb-blog-grid-one, #fotogalerie-seznam, #mp-article, #kontakt-formular) {
    background-color: #13161C;
    background-image: url('/assets/img/background/bg-14-clouds-tile.webp');
    background-repeat: repeat-y;
    background-size: 100% auto;
    background-position: center 500px;
}
@media (max-width: 991px) {
    :root body.theme-style--gradient:has(#fotobook-objednat, #shop-poukazy, .mp-reviews, .wptb-blog-grid-one, #fotogalerie-seznam, #mp-article, #kontakt-formular) { background-position: center 250px; }
}

/* Preloader se nepoužívá (zbytečně schovával stránku min. 1 s) */
#preloader { display: none !important; }

/* Kontrast: malé nadpisy sekcí (subtitle) v růžové #db2777 na tmavém pozadí se hůř čtou - světlejší odstín stejné barvy */
.theme-style--gradient .wptb-item--subtitle,
.theme-style--gradient .wptb-heading .wptb-item--subtitle,
.theme-style--gradient .wptb-heading-two .wptb-item--subtitle { color: #f472b6; }

/* Čeština nepoužívá První Velká Písmena: šablona má na tlačítkách, štítcích voleb, nadpisech widgetů a v menu text-transform: capitalize.
   Stejné selektory jako v hlavním CSS balíčku (aby přebily specificitou), tady se transformace ruší pro celý web. */
input[type="submit"],
 .btn,
.overlay_menu ul.main-menu li a,
.shop_sidebar .form-check label,
.review_sec ul.review_area .reviewer_div .review_block .reviewer_name,
.place_order label.radio_circle,
.wptb-slider.style2 .wptb-heading .wptb-item--subtitle,
.wptb-slider.style3 .wptb-heading .wptb-item--subtitle,
.wptb-slider.style5 .wptb-heading .wptb-item--subtitle,
.wptb-slider.style7 .wptb-heading .wptb-item--subtitle,
.wptb-slider.style8 .wptb-heading .wptb-item--subtitle,
.wptb-slider.style9 .wptb-heading .wptb-item--subtitle,
.wptb-slider.style17 .wptb-heading .wptb-item--subtitle,
.wptb-image-box2 .wptb-item--inner .wptb-item--button .btn-three,
.wptb-item--video-button .btn,
.comments-area ul.comment-list .commenter-block .comment-content .comment-author-name,
.sidenav ul li a,
.wptb-office-address .widget .widget-title,
.theme-style--gradient .widget-title
 { text-transform: none; }

/* Patička jako v originálním demu šablony (dark): barva #121212 a šedá svislá čára. Varianta .theme-style--gradient je přebarvuje
   na #191D27 a mátovou #ABECD6. Obrázek pozadí je bg-5.webp (originál bg-5.png z dema převedený do WebP, 150 kB -> 6 kB). */
.theme-style--gradient .footer { background-color: #121212; }
.theme-style--gradient .footer.style1::before { background-color: var(--color-dark-seven); }

/* Ceník (/cenik/): karty wptb-packages1 mají v šabloně pevnou výšku 630 px a absolutně umístěné tlačítko,
   s delšími seznamy se překrývají. Tady výška podle obsahu, stejná u karet v řádku, tlačítko dole. */
.wptb-pricing.mp-cenik { padding-top: 40px; padding-bottom: 40px; }
.mp-cenik .wptb-packages1 { height: calc(100% - 30px); }
.mp-cenik .wptb-packages1 .wptb-item--inner { height: 100%; padding: 60px 40px; }
.mp-cenik .wptb-packages1 .wptb-item--holder { display: flex; flex-direction: column; }
.mp-cenik .wptb-packages1 .wptb-item--inner .wptb-item--title { font-size: 44px; line-height: 50px; }
.mp-cenik .wptb-packages1 .wptb-item--inner .wptb-item--button { position: static; margin-top: auto; padding-top: 40px; }
/* stejná oprava seznamu jako v mp-rezervace.css (.mp-rez): .theme-style--gradient dělá z ikony kruh, v demu pricetable.html je to jen červený symbol */
.theme-style--gradient .mp-cenik .wptb-packages1 .wptb-list1 .wptb--item .wptb-item--icon { font-size: 24px; background: none; color: var(--color-one); margin-right: 3px; border-radius: 0; width: auto; height: auto; display: block; }
.theme-style--gradient .mp-cenik .wptb-packages1 .wptb-list1 .wptb--item .wptb-item--text { font-family: var(--font-family-base); font-size: 15px; font-weight: var(--fw-light); line-height: 28px; }
/* Odrážky (kosé proužky) v panelu, ceníku a kartách na titulce: barva webu (růžová), šablona jim přebíjí výplň na bílou (.wptb-packages1/2 ... svg path) */
.theme-style--gradient :is(.mp-rez, .mp-cenik, .mp-packages-list) .wptb-list1 .wptb--item .wptb-item--icon svg path { fill: var(--color-one) !important; }

/* Nadpisy sekcí v detailu (např. /fotobook/) mají jako v demu šablony (dark) tenkou čáru pod sebou. Varianta .theme-style--gradient ji skrývá. */
.theme-style--gradient .blog-details .blog-details-inner .widget-title::before { display: block; }

/* Ikona play ve video komponentě (wptb-video-player1): ořezaný bundle šablony ji neobsahuje, font ano (U+F4F4). */
.bi-play-fill::before { content: "\f4f4"; }

/* Jezdící text (wptb-text-marquee1): velká písmena s háčky a čárkami (Č, Ř, Í, Ó) se ve výšce řádku 110 px ořezávala (overflow:hidden).
   Větší řádek a menší mezery nad a pod. */
.wptb-marquee { padding-top: 20px; padding-bottom: 0; }
.wptb-text-marquee1 .wptb-item--text { line-height: 1.35; }

/* Kroky balíčku na /fotobook/ jako karty wptb-packages2 (dark/packages.html): dlouhý text se neořezává na 3 řádky,
   obrázek zabírá zhruba 40 % karty a odsazení textu je menší, aby se vešel do užšího sloupce. */
.fb-steps .wptb-packages2 .wptb-item--inner .wptb-item--description { display: block; overflow: visible; -webkit-line-clamp: unset; }
@media (min-width: 992px) {
  .fb-steps .wptb-packages2 .wptb-item--image { flex: 0 0 42%; }
  .fb-steps .wptb-packages2 .wptb-item--holder,
  .fb-steps .wptb-packages2:nth-child(even) .wptb-item--holder { padding: 50px 60px; }
}
.fb-steps .wptb-packages2 .wptb-item--image img { border-radius: 12px; }
@media (max-width: 991px) {
  /* Na mobilu vždy nejdřív text a pod ním obrázek, s odsazením po stranách i dole */
  .fb-steps .wptb-packages2 .wptb-item--inner { gap: 0; }
  .fb-steps .wptb-packages2 .wptb-item--holder,
  .fb-steps .wptb-packages2:nth-child(even) .wptb-item--holder { padding: 40px 30px 30px; }
  .fb-steps .wptb-packages2 .wptb-item--image,
  .fb-steps .wptb-packages2:nth-child(even) .wptb-item--image { padding: 0 30px 30px; }
}

/* ============================================================
   Jednotná tlačítka: každé .btn vypadá jako "Place Order Now +" z theme/dark/shop-checkout.html
   (plné brand pozadí, bílý text, po najetí inverze). Přebíjí šedé a poloprůhledné varianty šablony
   (.gray, .white-opacity, .black) i Bootstrap barvy (btn-secondary/default/info/success/warning/primary).
   Výjimka: .btn.white (bílé tlačítko na barevném pozadí).
   ============================================================ */
.btn.gray, .btn.white-opacity, .btn.white-opacity-fixed, .btn.black,
.btn-two.gray, .btn-two.white-opacity,
.btn.btn-secondary, .btn.btn-default, .btn.btn-info, .btn.btn-success, .btn.btn-warning, .btn.btn-primary {
    background-color: var(--color-one);
    color: var(--color-white-fixed);
    border-width: 0;
}
.btn.gray:hover, .btn.gray:focus, .btn.gray:active,
.btn.white-opacity:hover, .btn.white-opacity:focus, .btn.white-opacity:active,
.btn.white-opacity-fixed:hover, .btn.white-opacity-fixed:focus, .btn.white-opacity-fixed:active,
.btn.black:hover, .btn.black:focus, .btn.black:active,
.btn-two.gray:hover, .btn-two.white-opacity:hover,
.btn.btn-secondary:hover, .btn.btn-secondary:focus, .btn.btn-secondary:active,
.btn.btn-default:hover, .btn.btn-default:focus, .btn.btn-default:active,
.btn.btn-info:hover, .btn.btn-success:hover, .btn.btn-warning:hover, .btn.btn-primary:hover {
    background-color: var(--color-white-fixed);
    color: var(--color-one);
}
/* Rohové závorky (.creative) šablona u Place Order nemá, tak je schováme. */
.btn.creative::before, .btn.creative::after,
.btn.creative .btn-wrap::before, .btn.creative .btn-wrap::after { display: none; }
/* Vypnuté tlačítko je pořád čitelné jako tlačítko, jen ztlumené. */
.btn:disabled, .btn.disabled { opacity: .45; }
/* Lišta je tmavá, aby na ní tlačítko v brand barvě bylo stejné jako všude jinde. */
.mp-book-bar { background: var(--color-dark-one-fixed, #151515); border-top: 1px solid rgba(255,255,255,.12); }
/* Šablona (theme-style--gradient) dělá tlačítko ve formuláři oblé s tmavým textem; sjednocení se zbytkem webu. */
.theme-style--gradient .wptb-form button.btn,
.theme-style--gradient .footer .newsletter-form button.btn {
    background-color: var(--color-one);
    color: var(--color-white-fixed);
    border-radius: 0;
}
.theme-style--gradient .wptb-form button.btn:hover,
.theme-style--gradient .wptb-form button.btn:focus,
.theme-style--gradient .footer .newsletter-form button.btn:hover {
    background-color: var(--color-white-fixed);
    color: var(--color-one);
}
/* Karty ceníku (.wptb-packages1): šablona jim nastavuje pevné pozadí tlačítka přes :hover/.active karty (specificita vyšší než .btn:hover),
   takže tlačítko samo na najetí nereagovalo. Základ i hover tlačítka jako všude jinde. */
.wptb-packages1 .wptb-item--inner .wptb-item--button .btn {
    background-color: var(--color-one);
    color: var(--color-white-fixed);
}
.wptb-packages1 .wptb-item--inner .wptb-item--button .btn:hover,
.wptb-packages1 .wptb-item--inner .wptb-item--button .btn:focus,
.wptb-packages1:hover .wptb-item--inner .wptb-item--button .btn:hover,
.wptb-packages1.active .wptb-item--inner .wptb-item--button .btn:hover {
    background-color: var(--color-white-fixed);
    color: var(--color-one);
}

/* ============================================================
   Mobilní úpravy (audit 2026-10-15)
   ============================================================ */
/* 1) Dvě ikony menu vedle sebe: ikona bočního panelu (3 čárky) na telefonu/tabletu navíc, mobilní menu už kontakty obsahuje. */
@media (max-width: 1199.98px) {
    .header .aside_open { display: none; }
}
@media (max-width: 575px) {
    /* 3) Dolní lišta: nadpis zabíral polovinu výšky (108 px z 844). Zůstanou jen dvě tlačítka (~64 px); text zůstává v HTML,
       události a odkazy se nemění. */
    .mp-book-bar { padding-top: 8px; }
    .mp-book-bar-text { display: none; }
}
/* 2) Tlačítko "nahoru" leželo přes pole formuláře: v rezervačním panelu na mobilu není potřeba (stránka s panelem končí panelem
   a lišta se při něm schová). */
@media (max-width: 767.98px) {
    body:has(.mp-book-bar.is-hidden) .totop,
    body:has(.mp-rez):not(:has(.mp-book-bar)) .totop { display: none; }
}

/* 4) Úvodní hero na telefonu: 200 px horního odsazení je určeno pro desktop, na mobilu vzniká ~135 px prázdné mezery pod hlavičkou
   (fotky pak začínají až pod ohybem). Štítek s podtitulem se po zalomení roztáhl od okraje k okraji. */
@media (max-width: 575px) {
    .wptb-slider.style4 { padding-top: 105px; }
    .wptb-slider.style4 .swiper-container { padding-top: 24px; }
    .wptb-slider.style4 .wptb-heading-two .wptb-item--subtitle { max-width: calc(100% - 32px); }
}

/* Po skrytí ikony bočního panelu (viz výše) zůstal oddělovač mezi ikonami: svislá čára a odsazení před hamburgerem. */
@media (max-width: 1199.98px) {
    .header .header_right_part .wptb-element + .wptb-element { margin-left: 0; padding-left: 0; }
    .header .header_right_part .wptb-element + .wptb-element::before { display: none; }
}

/* ============================================================
   Mobilní menu - čitelnost (zpětná vazba 2026-10-15)
   Šablona má položky menu 12 px, tenké písmo a 70% bílou, nadpisy sekcí #3C3C3C na #171719 (skoro neviditelné),
   ikony v kontaktech tmavě šedé na tmavém a menu pod dolní lištou (z-index 14 < 1030).
   ============================================================ */
@media (max-width: 1199.98px) {
    /* Otevřené menu překrývá lištu; lišta se nesmí kreslit přes ně ani přes ztmavený zbytek stránky. */
    body.mr_menu_active .mp-book-bar { display: none; }
    .mr_menu ul.main-menu li a { font-size: 16px; font-weight: 500; letter-spacing: .5px; color: rgba(255,255,255,.92); }
    .mr_menu ul.main-menu li a::before { font-size: 18px; }
    .mr_menu h6 { font-size: 12px; font-weight: 600; letter-spacing: .12em; color: rgba(255,255,255,.6); }
    .mr_menu .wptb-icon-box1.style2 .wptb-item--icon { width: 32px; height: 32px; font-size: 15px; color: #fff; border-color: var(--color-one); margin-right: 10px; }
    .mr_menu .wptb-icon-box1.style2 .wptb-item--description { font-size: 15px; }
    .mr_menu .wptb-icon-box1.style2 .wptb-item--description a { overflow-wrap: anywhere; }
    .mr_menu .social-box ul li a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; font-size: 20px; }
}

/* ============================================================
   Dotykové cíle na telefonu (audit 2026-10-15): odkazy a tlačítka pod 32 px na výšku
   ============================================================ */
@media (max-width: 767.98px) {
    .mp-reviews button.mp-rev-more { padding: 10px 0; min-height: 44px; font-size: 1rem; }
    .wptb-item--designation a,
    .wptb-item--text > a,
    a[href^="tel:"]:not(.btn):not(.mp-exit-popup-phone) { display: inline-block; padding: 8px 0; }
    .social-box ul li a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
    .filters-button-group .button { font-size: 13px; }
}

/* Mobilní menu - zarovnání (zpětná vazba 2026-10-15): položky vlevo, texty hlavních položek, podmenu i kontaktů začínají
   ve stejném sloupci (ikona 32 px + mezera 10 px); podmenu se při zalomení už nevycentruje a čárka zůstává u textu. */
@media (max-width: 1199.98px) {
    .mr_menu ul.main-menu li a { text-align: left; justify-content: flex-start; }
    .mr_menu ul.main-menu > li > a::before { flex: 0 0 32px; width: 32px; text-align: center; }
    .mr_menu ul.main-menu li ul { padding-left: 42px; }
    .mr_menu ul.main-menu > li ul li a { align-items: flex-start; line-height: 1.4; padding: 14px 0; gap: 8px; }
    .mr_menu ul.main-menu > li ul li a::before { flex: 0 0 auto; line-height: 1.4; }
    .mr_menu .social-box ul { padding-left: 0; }
    /* Rozbalovací položky (Focení, Fotogalerie): odkaz je jen "#", šablona otvírá podmenu klikem na šipku. Šipku roztáhneme přes celý řádek
       (výška = odkaz: 2x16 padding + 24 řádek + 1 okraj), takže klik kdekoliv na řádku rozbalí podmenu; ikona zůstává vpravo. */
    .mr_menu ul.main-menu > li.menu-item-has-children > .submenu_opener { width: 100%; height: 57px; line-height: 57px; text-align: right; padding-right: 12px; }
    .mr_menu ul.main-menu > li.menu-item-has-children > .submenu_opener i { display: inline-block; }
}

/* Odkaz "Celá fotogalerie" a podobné samostatné odkazy v odstavci karet na homepage: dotykový cíl pod 32 px. */
@media (max-width: 767.98px) {
    .wptb-item--content p > a:only-child,
    .wptb-item--holder p > a:only-child { display: inline-block; padding: 8px 0; }
}

/* Nejnovější příspěvky v sidebaru článku: položky jsou nově h3 (pod h2 widgetu), šablona stylizuje jen `li h5`. Stejné vlastnosti pro h3. */
ul.wp-block-latest-posts li h3 { color: var(--color-white); font-size: 15px; font-style: normal; font-weight: var(--fw-light); line-height: 28px; word-break: break-word; margin: 0; }
ul.wp-block-latest-posts li h3 a { color: var(--color-two); }
ul.wp-block-latest-posts li h3 a:hover { color: var(--color-one); }

/* Nadpisy karet po úpravě osnovy (heading-order): šablona váže vzhled a efekty na `h4`, karty jsou nově h3 (pod h2 sekce).
   Stejná pravidla pro h3, ať se nezmění velikost ani efekt "popisek se objeví při najetí". */
.grid-item .wptb-item--meta h3 { position: relative; font-size: 24px; line-height: 30px; letter-spacing: 0px; transition: var(--transition-base); }
.effect-blur .grid-item .wptb-item--meta h3 { transform: translateY(10px); transition: var(--transition-base); opacity: 0; }
.effect-blur .grid-item .wptb-item--meta h3 a:not(:hover) { color: var(--color-white-fixed); }
.effect-blur .grid-item:hover .wptb-item--meta h3 { transform: translateY(0px); opacity: 1; }
.effect-gradient .grid-item .wptb-item--meta h3 { transform: translateY(10px); transition: var(--transition-base); opacity: 0; }
.effect-gradient .grid-item:hover .wptb-item--meta h3 { transform: translateY(0px); opacity: 1; }
.effect-gradient .grid-item .wptb-item--meta h3 a { color: var(--color-white-fixed); }
.swiper-slide .grid-item .wptb-item--meta h3 { transform: translateY(10px); transition: all 1.5s ease-in-out; transition-delay: 0.3s; opacity: 0; }
.swiper-slide.swiper-slide-active .grid-item .wptb-item--meta h3 { transform: translateY(0px); opacity: 1; }

/* ============================================================
   Dolní lišta - méně rušivá (zpětná vazba 2026-10-15): užší (~54 px místo ~70 px) a při scrollu dolů se schová,
   při scrollu nahoru se vrátí (booking-widget.js přepíná .is-away).
   ============================================================ */
.mp-book-bar { padding: 6px 0 calc(6px + env(safe-area-inset-bottom)); transition: transform .25s ease; }
.mp-book-bar.is-away { transform: translateY(105%); }
.mp-book-bar .btn { margin: 0; padding: 0 24px; height: 40px; min-height: 0; font-size: 15px; }
/* Místo pro lištu je uvnitř patičky (její pozadí), ne jako pruh pod ní, a jen dokud je lišta vidět (schovaná ji nepotřebuje - patička pak dosedá na spodní hranu). */
body:has(.mp-book-bar) { padding-bottom: 0; }
body:has(.mp-book-bar:not(.is-hidden):not(.is-away)) .footer .footer-bottom::after { content: ''; display: block; height: 60px; }
body:has(.mp-book-bar) .totop { bottom: calc(70px + env(safe-area-inset-bottom)); }
body:has(.mp-book-bar.is-away) .totop { bottom: 22px; }
@media (max-width: 575px) {
    .mp-book-bar { padding-top: 6px; }
    .mp-book-bar .btn { padding: 0 16px; }
}

/* Hlavní nadpis v záhlaví stránek: šablona drží line-height 60px i při zmenšeném písmu, na mobilu pak dlouhý H1 působí roztáhle */
@media (max-width: 991px) {
  .wptb-page-heading .wptb-item--title { line-height: 1.3; }
}

/* Fotogalerie na všech stránkách (galerie /fotogalerie-*, galerie na nabídkových stránkách, fotky v příspěvcích blogu): stejné zaoblení jako fotky v hero (15px). */
.wptb-project .grid-item .wptb-item--image,
.wptb-project .grid-item .wptb-item--image img,
.mp-blog-gallery img { border-radius: 15px; }
.wptb-project .grid-item .wptb-item--image { overflow: hidden; }

/* Karty recenzí na všech stránkách (/recenze/, titulka, nabídkové stránky): stejné zaoblení jako fotky v hero a galeriích (15px); avatary zůstávají kulaté. */
.wptb-testimonial1 .wptb-item--inner { border-radius: 15px; }

/* Avatary autorů recenzí zůstávají kulaté (pravidlo galerií výše je jinak zasáhne, protože /recenze/ používá stejné třídy .wptb-project .grid-item). */
.wptb-project .wptb-testimonial1 .wptb-item--inner .wptb-item--image,
.wptb-project .wptb-testimonial1 .wptb-item--inner .wptb-item--image img { border-radius: 100%; }

/* Blog (/blog/): rámečky článků, fotky, rubriky a vyhledávání se stejným zaoblením jako fotky v hero (15px). */
.wptb-blog-grid1 .wptb-item--inner { border-radius: 15px; overflow: hidden; }
.wptb-blog-grid1 .wptb-item--image,
.wptb-blog-grid1 .wptb-item--image img { border-radius: 15px; overflow: hidden; }
.mp-blog-cat,
.mp-blog-chips a { border-radius: 15px; }
.widget_search .wp-block-search__inside-wrapper,
.widget_search .wp-block-search__input { border-radius: 15px; overflow: hidden; }
.wptb-pagination-wrap .pagination a,
.wptb-pagination-wrap .pagination span { border-radius: 15px; }
/* Mobilní menu: bez růžových ikon u položek, výrazná bílá šipka u vícepoložkových */
.mr_menu ul.main-menu li a::before { content: none !important; display: none; }
.mr_menu ul.main-menu li .submenu_opener { color: #fff; font-size: 20px; }
.mr_menu ul.main-menu li .submenu_opener i { -webkit-text-stroke: 1.5px #fff; }
.mr_menu ul.main-menu li.active > .submenu_opener,
.mr_menu ul.main-menu li .nav_open > .submenu_opener { color: #fff; }

/* Šipky vícepoložkových: desktop i mobil míří dolů, tučná a bílá */
.header .mainnav ul.main-menu > li.menu-item-has-children > a::after { color: #fff; font-size: 12px; -webkit-text-stroke: 1.5px #fff; }
.mr_menu ul.main-menu li .submenu_opener i { transform: rotate(90deg); }
.mr_menu ul.main-menu li.nav_open > .submenu_opener i { transform: rotate(270deg); }

/* Všechny ceny jednotně v brand růžové */
.mp-rez-cena, .mp-rez-bar-cena strong, .mp-sticky-cta-toggle-price,
.mp-rez .totalvalue .value, .mp-rez .totalvalue:last-child .value,
.product_thumb .product_item_price, .products-list .product_price, .product_right .product_price,
.product_item_price ins, .product_price ins { color: var(--color-one); }
.product_item_price del, .product_price del, .old_price { color: var(--color-two); }
body .product_item_inner .product_item_price { color: var(--color-one); }
body .product_item_inner .product_item_price del { color: var(--color-two); }

/* Velká patička: šablona posouvá sloupce se seznamy o 50 px dolů (.footer-widget:has(.footer-nav)), sloupec s logem se srovná na horní hranu jejich nadpisů. */
@media (min-width: 992px) {
    .footer .footer-top .row > .col-lg-3:first-child > .footer-widget { margin-top: 56px; }
    /* Horní odsazení zmenšeno ze 155 px; 80 px + 50 px posun sloupců = obsah začíná pod dekorativní svislou čárou (110 px). */
    .footer .footer--inner { padding-top: 80px; }
}

/* Spodní lišta patičky (minimální patička prodejních stránek i spodní část velké patičky): nenápadná, malé písmo, tlumená barva, na střed.
   Minimální patička navíc nemá dekorativní svislou čáru šablony. */
.footer.mp-footer-min::before { display: none; }
.footer-bottom.mp-bottom-min { padding: 20px 0; }
.footer-bottom.mp-bottom-min .footer-bottom-inner { flex-direction: column; justify-content: center; text-align: center; gap: 12px; }
.footer-bottom.mp-bottom-min .copyright p { margin: 0; font-size: 12.5px; line-height: 22px; color: rgba(255, 255, 255, .42); }
.footer-bottom.mp-bottom-min .copyright a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.footer-bottom.mp-bottom-min .copyright a:hover { color: rgba(255, 255, 255, .7); }

/* Zaoblené fotky v obsahu (opt-in třídou .mp-rounded na figure) */
.block-gallery.mp-rounded,
#fb-video.wptb-video-player1,
.wptb-image-single.mp-rounded .wptb-item--image { border-radius: 16px; overflow: hidden; }

/* ===== Hero se dvěma sloupci (opt-in přes .mp-hero-split v PageHeaderExtra) =====
   Desktop: text vlevo, fotka vpravo, tmavý gradient jen zleva. Mobil: fotka nahoře, text pod ní na tmavém podkladu.
   Fotky: --hero-d (desktop) a --hero-m (mobil) se nastavují v <style> dané stránky. Fotka 2400x1000 je přilepená vpravo na výšku hera, obličej je na ~66 % jejího šířky.
   Fotka jiného poměru se ořízne (cover); výřez řídí volitelné --hero-pos-d a --hero-pos-m (např. 75% 50%). */
.wptb-page-heading:has(.mp-hero-split) .wptb-item--inner {
    background-image: none !important;
    background-color: #08080a;
    text-align: left;
    padding: 150px 0 150px clamp(32px, 6vw, 110px);
    isolation: isolate;
    border-radius: 16px;
    overflow: hidden;
}
.wptb-page-heading:has(.mp-hero-split) .wptb-item--inner::before {
    content: '';
    position: absolute;
    top: 0; bottom: 0; right: 0;
    aspect-ratio: 2400 / 1000;
    background: var(--hero-d) var(--hero-pos-d, center) / cover no-repeat;
    z-index: -2;
    animation: mp-hero-photo 2.4s cubic-bezier(.2, .7, .2, 1) both;
}
.wptb-page-heading:has(.mp-hero-split) .wptb-item--inner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(8, 8, 10, .94) 0%, rgba(8, 8, 10, .82) 34%, rgba(8, 8, 10, .25) 58%, transparent 75%);
    z-index: -1;
}
.wptb-page-heading:has(.mp-hero-split) .wptb-item-layer-one { display: none; }
.wptb-page-heading:has(.mp-hero-split) .wptb-item--title { max-width: 640px; font-size: 52px; line-height: 1.15; }
.wptb-page-heading:has(.mp-hero-split) .wptb-item--title::before,
.wptb-page-heading:has(.mp-hero-split) .wptb-item--title::after { display: none; }
.wptb-page-heading:has(.mp-hero-split) .wptb-item--description { max-width: 560px; margin-top: 22px !important; }
.wptb-page-heading:has(.mp-hero-split) .mp-hero-proof { align-items: flex-start; }
.wptb-page-heading:has(.mp-hero-split) .mp-hero-faces { justify-content: flex-start; }
.wptb-page-heading:has(.mp-hero-split) .mp-hero-split { display: none; }

/* Postupné nájezdy textu */
.wptb-page-heading:has(.mp-hero-split) .wptb-item--inner > :is(h1, p, .mp-hero-proof, .btn) {
    animation: mp-hero-in .8s cubic-bezier(.2, .7, .2, 1) both;
}
.wptb-page-heading:has(.mp-hero-split) .wptb-item--inner > p { animation-delay: .15s; }
.wptb-page-heading:has(.mp-hero-split) .wptb-item--inner > .mp-hero-proof { animation-delay: .3s; }
.wptb-page-heading:has(.mp-hero-split) .wptb-item--inner > .btn { animation-delay: .45s; }
@keyframes mp-hero-in { from { opacity: 0; translate: -24px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes mp-hero-photo { from { opacity: 0; scale: 1.08; } to { opacity: 1; scale: 1; } }

@media (max-width: 991px) {
    .wptb-page-heading:has(.mp-hero-split) .wptb-item--inner { padding: 0 20px 56px; }
    .wptb-page-heading:has(.mp-hero-split) .wptb-item--inner::before {
        position: relative; display: block;
        top: auto; bottom: auto; left: auto; right: auto; aspect-ratio: auto;
        height: min(92vw, 460px);
        margin: 0 -20px -70px;
        background: var(--hero-m) var(--hero-pos-m, 50% 25%) / cover no-repeat;
        z-index: 0;
    }
    .wptb-page-heading:has(.mp-hero-split) .wptb-item--inner::after {
        inset: 0 0 auto 0;
        height: min(92vw, 460px);
        background: linear-gradient(180deg, rgba(8, 8, 10, 0) 45%, #08080a 100%);
        z-index: 0;
    }
    .wptb-page-heading:has(.mp-hero-split) .wptb-item--inner > :is(h1, p, .mp-hero-proof, .btn) { position: relative; z-index: 1; }
    .wptb-page-heading:has(.mp-hero-split) .wptb-item--title { font-size: 32px; max-width: none; }
    .wptb-page-heading:has(.mp-hero-split) .btn { display: block; width: 100%; text-align: center; }
}
@media (max-width: 575px) {
    .wptb-page-heading:has(.mp-hero-split) .wptb-item--title { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
    .wptb-page-heading:has(.mp-hero-split) .wptb-item--inner::before,
    .wptb-page-heading:has(.mp-hero-split) .wptb-item--inner > * { animation: none; }
}

/* Hvezdicky recenzi: vsude zlute */
.wptb-testimonial1 .wptb-item--inner .wptb-item--meta-rating,
.testimonial-colored .wptb-testimonial1 .wptb-item--inner .wptb-item--meta-rating,
.mp-reviews .wptb-item--meta-rating { color: #f5a623; }

/* Tucne v textech recenzi: zaklad je light (300), "bolder" by dal jen 400; 700 je nejtucnejsi nacteny rez */
.wptb-testimonial1 .wptb-item--description strong, .wptb-testimonial1 .wptb-item--description b,
.mp-reviews .mp-rev-text strong, .mp-reviews .mp-rev-text b { font-weight: 700; }

/* Popisek uvnitř H1 (SEO: hlavní klíčové slovo zůstává v nadpisu, vizuálně je to malý růžový řádek nad emotivním nadpisem) */
.wptb-item--title .mp-h1-kicker {
    display: block;
    margin-bottom: 14px;
    color: #f472b6;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 2px;
    text-transform: uppercase;
}
@media (max-width: 575px) {
    .wptb-item--title .mp-h1-kicker { font-size: 13px; letter-spacing: 1.5px; }
}

/* Hamburger vedle menu: čárky o stejné tloušťce (1px čáry se na displejích se zlomkovým měřítkem vykreslují každá jinak silné) */
.aside_open span { height: 2px; border-radius: 1px; }
.aside_open span:not(:last-child) { margin-bottom: 7px; }

/* Boční panel po kliknutí na hamburger: vše zarovnané vlevo, Michal a Jana s fotkou, sociální sítě v barvách */
.aside_info_wrapper { text-align: left; padding: 30px 40px; }
.aside_info_wrapper .aside_logo a img { min-width: 0; max-width: 240px; }
.aside_info_wrapper .wptb-icon-box1 { padding-left: 0; }
.aside_info_wrapper .social-box ul { justify-content: flex-start; }
.aside_info_wrapper .mp-aside-person { display: flex; align-items: center; gap: 16px; margin-top: 26px; }
.aside_info_wrapper .mp-aside-person + .mp-aside-person { margin-top: 20px; }
.aside_info_wrapper .mp-aside-person + .wptb-icon-box1 { margin-top: 26px; }
.aside_info_wrapper .mp-aside-person img { width: 72px; height: 72px; flex: 0 0 72px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; border: 2px solid rgba(255, 255, 255, .25); }
.aside_info_wrapper .mp-aside-person-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.aside_info_wrapper .mp-aside-person-text strong { color: #fff; font-size: 17px; font-weight: 500; }
.aside_info_wrapper .mp-aside-person-text a { color: #fff; font-size: 14.5px; overflow-wrap: anywhere; }
.aside_info_wrapper .mp-aside-person-text a i { color: #f472b6; margin-right: 4px; }
.aside_info_wrapper .mp-aside-person-text a:hover { color: #f472b6; }
.aside_info_wrapper .social-box ul li a { color: #fff; border-color: transparent; }
.aside_info_wrapper .social-box ul li:nth-child(1) a { background: #1877f2; }
.aside_info_wrapper .social-box ul li:nth-child(2) a { background: linear-gradient(45deg, #f09433 0%, #e6683c 30%, #dc2743 55%, #cc2366 75%, #bc1888 100%); }
.aside_info_wrapper .social-box ul li:nth-child(3) a { background: #ff0000; }
.aside_info_wrapper .social-box ul li a:hover { filter: brightness(1.15); }
@media (max-width: 575px) { .aside_info_wrapper { padding: 30px 24px; } }
.aside_info_wrapper .aside_logo { margin-bottom: 18px; }

/* Zápatí: sociální sítě ve stejných barvách jako v bočním panelu (podle aria-label, pořadí ikon je v zápatí jiné) */
.footer .social-box ul li a { color: #fff; border-color: transparent; }
.footer .social-box ul li a[aria-label="Facebook"] { background: #1877f2; }
.footer .social-box ul li a[aria-label="Instagram"] { background: linear-gradient(45deg, #f09433 0%, #e6683c 30%, #dc2743 55%, #cc2366 75%, #bc1888 100%); }
.footer .social-box ul li a[aria-label="YouTube"] { background: #ff0000; }
.footer .social-box ul li a:hover { color: #fff; filter: brightness(1.15); }
.footer .social-box.style-oval ul li a:not(:hover) { border-color: transparent; color: #fff; }

/* Sociální ikony (zápatí i boční panel): všechny kulaté, stejně velké */
.footer .social-box.style-oval ul li a,
.aside_info_wrapper .social-box ul li a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border-radius: 50%;
    font-size: 16px;
    line-height: 1;
}
.footer .social-box.style-oval ul li a::before,
.aside_info_wrapper .social-box ul li a i::before { line-height: 1; }

/* Kontakt: fotky Michala a Jany v kolečku (kontejner ikony má 56 px, fotka 72 px se v něm stlačila na elipsu) */
.wptb-icon-box1 .wptb-item--icon:has(.mp-contact-avatar) { width: 72px; height: 72px; border-radius: 50%; }
.wptb-icon-box1 .mp-contact-avatar { flex: 0 0 72px; width: 72px; height: 72px; }

/* Zápatí: Michal a Jana s kulatou fotkou (stejný blok jako v bočním panelu) */
.footer .mp-aside-person { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.footer .mp-aside-person img { width: 72px; height: 72px; flex: 0 0 72px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; border: 2px solid rgba(255, 255, 255, .25); }
.footer .mp-aside-person-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.footer .mp-aside-person-text strong { color: #fff; font-size: 17px; font-weight: 500; }
.footer .mp-aside-person-text a { color: #fff; font-size: 15px; overflow-wrap: anywhere; }
.footer .mp-aside-person-text a:hover { color: #f472b6; }
.footer .mp-aside-person-text { gap: 0; }
.footer .mp-aside-person-text strong, .footer .mp-aside-person-text a { line-height: 1.6; }
/* Mobilní menu: kontakty s fotkami (stejně jako boční panel) */
.mr_menu .mp-aside-person { display: flex; align-items: center; gap: 14px; margin-top: 16px; }
.mr_menu .mp-aside-person img { width: 64px; height: 64px; flex: 0 0 64px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; border: 2px solid rgba(255, 255, 255, .25); }
.mr_menu .mp-aside-person-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mr_menu .mp-aside-person-text strong { color: #fff; font-size: 16px; font-weight: 500; }
.mr_menu .mp-aside-person-text a { color: #fff; font-size: 13.5px; overflow-wrap: anywhere; }
.mr_menu .mp-aside-person-text a i { color: #f472b6; margin-right: 4px; }
.mr_menu .mp-aside-person + .wptb-icon-box1 { margin-top: 20px; }
/* Mobilní menu: přebití obecných stylů šablony, ikona a text na jednom řádku */
.mr_menu .mp-aside-person-text { gap: 0; }
.mr_menu .mp-aside-person-text strong { display: block; margin: 0; line-height: 1.5; }
.mr_menu .mp-aside-person-text a { display: flex; align-items: center; gap: 6px; margin: 0; padding: 0; line-height: 1.6; text-align: left; }
.mr_menu .mp-aside-person-text a i { display: inline-block; flex: 0 0 auto; width: auto; height: auto; margin: 0; padding: 0; border: 0; font-size: 14px; line-height: 1; }
