/* =========================================================
   Salon Na stejné vlně – clean static site
   1:1 vizuální rekonstrukce původního Divi designu:
   - Roboto pro body, Amatic SC pro nadpisy a menu
   - akcentní zlatě-olivová #bab966
   - bílé pozadí, černá typografie #1a1818
   - hero slider 600px s bílou vlnou dole
   - title 100px / letter-spacing 8px
   - 4-sloupcový services layout (logo | text | foto | text)
   - 5-sloupcový partners grid s top + bottom divider
   - černý footer
   ========================================================= */

/* -------- 1. Tokens -------- */
:root {
    --color-bg: #ffffff;
    --color-text: #1a1818;
    --color-text-soft: rgba(0, 0, 0, .9);
    --color-muted: #555;
    --color-accent: #54837c;
    --color-accent-dark: #9c9b4a;
    --color-line: #e6e6e6;
    --color-dark: #000000;

    --font-heading: "Amatic SC", "Brush Script MT", cursive;
    --font-body: "Roboto", Helvetica, Arial, "Lucida Sans", sans-serif;
    --font-mono: "Montserrat", Helvetica, Arial, sans-serif;

    --container: 1480px;
    --container-narrow: 1080px;
    --header-height: 95px;

    --t-fast: .2s ease;
    --t-base: .3s ease;
}

/* -------- 2. Reset -------- */
*,
*::before,
*::after {
    box-sizing: border-box;
}

iframe {
    border: 0;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.7;
    color: var(--color-text-soft);
    background-color: var(--color-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: var(--color-accent);
    text-decoration: none;
    transition: color var(--t-fast);
}

a:hover {
    color: var(--color-accent);
}

button {
    font-family: inherit;
    cursor: pointer;
    border: 0;
    background: none;
    color: inherit;
}

ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 700;
    margin: 0 0 .5em 0;
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #000000;
}

p {
    margin: 0 0 1em 0;
}

/* -------- 3. Layout helpers -------- */
.container {
    width: 80%;
    max-width: var(--container);
    margin-left: auto;
    margin-right: auto;
}

main > section {
    padding: 0;
}

/* -------- 4. Header -------- */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #ffffff;
    border-bottom: 1px solid var(--color-line);
}

.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 90%;
    max-width: var(--container);
    margin: 0 auto;
    min-height: var(--header-height);
}

.site-header__logo img {
    height: 80px;
    width: auto;
}

.primary-nav__list {
    display: flex;
    gap: 32px;
    align-items: center;
}

.primary-nav__link {
    font-family: var(--font-heading);
    font-size: 24px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #000000;
    padding: 8px 0;
    position: relative;
    line-height: 1;
}

.primary-nav__link:hover,
.primary-nav__link.is-active {
    color: #aed9d3;
}

.primary-nav__link.is-active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    height: 2px;
    background: var(--color-accent);
}

/* Hamburger toggle */
.nav-toggle {
    display: none;
    width: 36px;
    height: 36px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    padding: 0;
}

.nav-toggle__bar {
    width: 26px;
    height: 2px;
    background: #000;
    transition: transform var(--t-fast), opacity var(--t-fast);
}

.nav-toggle.is-open .nav-toggle__bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.nav-toggle.is-open .nav-toggle__bar:nth-child(2) {
    opacity: 0;
}

.nav-toggle.is-open .nav-toggle__bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* -------- 5. Hero / slider -------- */
.hero {
    position: relative;
    overflow: hidden;
    background: #000;
}

.hero__slider {
    position: relative;
    width: 100%;
    height: 700px;
}

.hero__slide {
    position: absolute;
    inset: 0;
    background-position: 50% 25%;
    background-size: cover;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 1s ease;
}

.hero__slide:nth-child(2){
    background-position: 50% 50%;
}
.hero__slide:nth-child(3){
    background-position: 50% 15%;
}
.hero__slide:nth-child(4){
    background-position: 50% 50%;
}
.hero__slide:nth-child(6){
    background-position: 50% 50%;
}

.hero__slide.is-active {
    opacity: 1;
}

.hero__divider {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    line-height: 0;
    pointer-events: none;
    z-index: 5;
}

.hero__divider svg {
    width: 100%;
    height: 80px;
    display: block;
}

/* Slider arrows */
.hero__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .35);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    transition: background var(--t-fast), opacity var(--t-fast), transform var(--t-fast);
    opacity: 0;
}

.hero:hover .hero__arrow,
.hero__arrow:focus-visible {
    opacity: 1;
}

.hero__arrow:hover {
    background: var(--color-accent);
    transform: translateY(-50%) scale(1.05);
}

.hero__arrow svg {
    width: 24px;
    height: 24px;
    display: block;
}

.hero__arrow--prev {
    left: 32px;
}

.hero__arrow--next {
    right: 32px;
}

/* -------- 6. Intro (big title) – 1:1 dle Divi et_pb_section_1 + et_pb_text_0 -------- */
/* -------- 6. Intro – 1:1 dle Divi et_pb_section_1 + et_pb_text_0 --------
   originál: padding-top:0, padding-bottom:1px
   h1: Amatic SC 100px, color #1a1818, letter-spacing:8px, center
   responsive: 53px (≤980), 45px (≤767)
*/
.intro {
    background: #fff;
    padding: 30px 0 1px;
    text-align: center;
}

.intro__inner {
    width: 80%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 18px 0;
}

.intro__title {
    font-family: var(--font-heading);
    font-size: 100px;
    line-height: 1;
    letter-spacing: 8px;
    color: #1a1818;
    text-align: center;
    margin: 0;
    font-weight: 400;
    text-transform: none;
}

.intro__title span {
    display: inline-block;
}

/* -------- 7. Values strip – 1:1 dle Divi et_pb_section_2 + et_pb_text_1..5 -------- */
/* -------- 7. Values – 1:1 dle Divi et_pb_section_2 + et_pb_text_1..5 --------
   originál: section padding 3px 0
   row: width 70%, max-width 1080px
   h2 (1..4): Amatic SC 38px, color #1a1818, center, weight 700
   h2 (5 = Rebelské): Amatic SC 30px (menší)
   – sloupce 1/5 každý, s vertikálním zarovnáním na střed dle base-line
*/
.values {
    padding: 23px 0;
    background: #fff;
}

.values__row {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    align-items: end;
    gap: 16px;
    text-align: center;
    width: 70%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 18px 0;
}

.values__item {
    font-family: var(--font-heading);
    font-size: 38px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 1px;
    color: #1a1818;
    line-height: 1;
    text-align: center;
    margin: 0;
}

.values__item--small {
    font-size: 30px;
}

@media (max-width: 980px) {
    .values__row {
        grid-template-columns: repeat(3, 1fr);
        gap: 22px 16px;
        width: 88%;
    }

    .values__item {
        font-size: 30px;
    }

    .values__item--small {
        font-size: 26px;
    }
}

@media (max-width: 600px) {
    .values__row {
        grid-template-columns: repeat(2, 1fr);
    }

    .values__item {
        font-size: 28px;
    }
}

/* -------- 8. About / Filozofie – 1:1 dle Divi et_pb_section_3 + et_pb_row_2 + et_pb_text_6 --------
   originál: section padding-top: 3px
   row: max-width 1080px, na desktopu width 67%
   text: Roboto 300, 18px, line-height ~1.7, **text-align: left**
*/
.about {
    background: #fff;
    padding: 3px 0 30px;
}

.about__container {
    max-width: 1080px;
    width: 67%;
    margin: 0 auto;
    padding: 24px 0 18px;
}

.about__text {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 18px;
    line-height: 1.7em;
    color: rgba(0, 0, 0, .9);
    text-align: left;
    margin: 0;
}

.about__text span {
    display: inline;
}

@media (max-width: 980px) {
    .about__container {
        width: 80%;
    }

    .about__text {
        font-size: 17px;
    }
}

@media (max-width: 600px) {
    .about__container {
        width: 88%;
    }
}

/* -------- 9. Services – 1:1 dle Divi et_pb_section_4 + et_pb_text_7/8 + et_pb_image_0/1 -------- */
.services {
    background: linear-gradient(180deg, #ffffff 0%, #fbfbf8 100%);
    padding: 72px 0;
    border-top: 1px solid rgba(0, 0, 0, .1);
    border-bottom: 1px solid rgba(186, 185, 102, .35);
}

.services__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    align-items: stretch;
    max-width: 1480px;
    margin: 0 auto;
}

.services__col {
    min-width: 0;
}

.services__card {
    display: grid;
    grid-template-columns: minmax(0, 210px) minmax(0, 1fr);
    gap: 26px;
    align-items: center;
    padding: 30px;
    border-radius: 22px;
    border: 1px solid rgba(200, 237, 232, .28);
    background: #fff;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .08);
    transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
}

.services__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 36px rgba(0, 0, 0, .12);
    border-color: rgba(200, 237, 232, .55);
}

.services__col--image {
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.services__col--image img {
    width: 100%;
    max-width: 210px;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
    border-radius: 14px;
}

.services__col--text h2 {
    font-family: var(--font-heading);
    font-size: 34px;
    color: #000;
    margin-bottom: 12px;
    letter-spacing: 1.5px;
    text-transform: none;
    font-weight: 700;
    line-height: 1.15;
}

.services__col--text p {
    font-family: var(--font-body);
    font-weight: 300;
    color: var(--color-text-soft);
    font-size: 16px;
    line-height: 1.78;
    margin: 0 0 16px;
}

.services__col--text p:last-child {
    margin-bottom: 0;
}

.services__content h2::after {
    content: "";
    display: block;
    width: 76px;
    height: 3px;
    border-radius: 3px;
    margin-top: 9px;
    background: linear-gradient(90deg, var(--color-accent-dark) 0%, var(--color-accent) 100%);
}

.services__content a {
    /*color: var(--color-accent-dark);*/
    text-decoration: none;
    border-bottom: 1px solid #aed9d3;
    transition: color var(--t-fast), border-color var(--t-fast);
}

.services__content a:hover,
.services__content a:focus-visible {
    color: #000;
    border-color: rgba(0, 0, 0, .55);
}

.services__list {
    list-style: disc;
    padding-left: 22px;
    margin: 8px 0 16px;
    line-height: 1.7;
}

.services__list li {
    margin-bottom: 4px;
}

/* -------- 10. Partners – 1:1 dle Divi et_pb_section_5 + et_pb_text_9 + et_pb_blurb_0..8 -------- */
.partners {
    position: relative;
    background: #ffffff;
    padding: 72px 0 78px;
    border-top: 1px solid rgba(186, 185, 102, .2);
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.partners__divider {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    line-height: 0;
    pointer-events: none;
    display:none;
    z-index: 1;
}

.partners__divider svg {
    width: 100%;
    height: 35px;
    display: block;
}

.partners__divider svg path{
    fill: #C8EDE8;
}

.partners__title {
    text-align: center;
    font-family: var(--font-heading);
    font-size: 30px;
    font-weight: 700;
    color: #000000;
    margin: 0 0 36px;
    line-height: 1.3;
    letter-spacing: 1.5px;
    text-transform: none;
}

/* Grid 5 sloupců (1/5 šířky / column) – matchuje Divi et_pb_column_1_5
   gap row 50px aby se loga nelepila na sebe (různé výšky) */
.partners__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    column-gap: 18px;
    row-gap: 18px;
    align-items: stretch;
    justify-items: stretch;
    margin: 0 auto;
}

/* Každá položka odpovídá Divi et_pb_blurb s text_align_left */
.partners__item {
    min-width: 0;
}

.partners__item-surface {
    width: 100%;
    min-height: 132px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 16px;
    border-radius: 16px;
    border: 1px solid rgba(200, 237, 232, .22);
    background: #fff;
    box-shadow: 0 10px 20px rgba(0, 0, 0, .06);
    transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
}

.partners__item:hover .partners__item-surface {
    transform: translateY(-3px);
    box-shadow: 0 16px 28px rgba(0, 0, 0, .1);
    border-color: rgba(200, 237, 232, .48);
}

.partners__item-surface a {
    display: block;
    width: 100%;
    line-height: 0;
}

/* Loga: zaplní šířku sloupce (max ~210 px), výška podle proporcí.
   Některá loga (Oribe portrait) jsou vyšší než širší – tím vznikne
   přirozený rytmus jako v originále. */
.partners__item img {
    width: 100%;
    height: auto;
    max-width: 210px;
    display: block;
    object-fit: contain;
    margin: 0 auto;
}

/* Portrait loga (Oribe, zenz, Seamless1) chceme menší šířku, ať nejsou
   příliš vysoká vůči ostatním. */
.partners__item img[src*="oribelogo"],
.partners__item img[src*="zenzlogo"],
.partners__item img[src*="Seamlesslogouvod"] {
    max-width: 170px;
}

.partners__item--empty {
    visibility: hidden;
}

/* -------- 11. Home gallery -------- */
.home-gallery {
    background: linear-gradient(180deg, #ffffff 0%, #f9f7f1 100%);
    padding: 72px 0 84px;
}

.home-gallery__title {
    text-align: center;
    font-family: var(--font-heading);
    font-size: 34px;
    font-weight: 700;
    letter-spacing: 2px;
    line-height: 1.2;
    margin: 0 auto 34px;
    color: #000;
}

.home-gallery__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr);
    grid-template-rows: repeat(2, minmax(210px, 1fr));
    gap: 18px;
}

.home-gallery__item {
    overflow: hidden;
    border-radius: 18px;
    box-shadow: 0 16px 36px rgba(0, 0, 0, .16);
    background: #fff;
}

.home-gallery__item--large {
    grid-row: 1 / -1;
}

.home-gallery__trigger {
    display: block;
    border: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    background: none;
    cursor: zoom-in;
    position: relative;
}

.home-gallery__trigger::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, .32) 100%);
    opacity: .65;
    transition: opacity var(--t-base);
}

.home-gallery__trigger img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform var(--t-base);
}

.home-gallery__trigger:hover img,
.home-gallery__trigger:focus-visible img {
    transform: scale(1.04);
}

.home-gallery__trigger:hover::after,
.home-gallery__trigger:focus-visible::after {
    opacity: .95;
}

.home-gallery__trigger:focus-visible {
    outline: 3px solid var(--color-accent-dark);
    outline-offset: -3px;
}

.gallery-lightbox[hidden] {
    display: none;
}

.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: grid;
    place-items: center;
}

.gallery-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .78);
    backdrop-filter: blur(2px);
}

.gallery-lightbox__dialog {
    position: relative;
    width: min(92vw, 1200px);
    max-height: 88vh;
    padding: 14px;
    border-radius: 18px;
    background: rgba(20, 20, 20, .95);
    box-shadow: 0 24px 48px rgba(0, 0, 0, .45);
    z-index: 1;
}

.gallery-lightbox__image {
    width: 100%;
    max-height: calc(88vh - 28px);
    object-fit: contain;
    display: block;
    border-radius: 10px;
}

.gallery-lightbox__close {
    position: absolute;
    top: -14px;
    right: -14px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: #ffffff;
    color: #000;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .35);
}

.gallery-lightbox__close:hover {
    background: #f3f3f3;
}

/* -------- 11. Footer -------- */
.site-footer {
    position: relative;
    overflow: hidden;
    background: linear-gradient(145deg, #090909 0%, #121212 45%, #0e0e0e 100%);
    color: rgba(255, 255, 255, .78);
    padding: 30px 0 22px;
}

.site-footer::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 1px;
    background: linear-gradient(90deg, rgba(186, 185, 102, 0) 0%, rgba(186, 185, 102, .75) 50%, rgba(186, 185, 102, 0) 100%);
    pointer-events: none;
}

.site-footer__inner {
    position: relative;
    width: 80%;
    max-width: var(--container);
    margin: 0 auto;
}

.site-footer__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-top: 14px;
}

.site-footer__brand {
    margin: 0;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: .2px;
    color: rgba(255, 255, 255, .86);
}

.site-footer__brand a {
    color: inherit;
    text-decoration: none;
    transition: color var(--t-fast);
}

.site-footer__brand a:hover,
.site-footer__brand a:focus-visible {
    color: var(--color-accent);
}

.site-footer__social {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-footer__social a {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .26);
    background: rgba(255, 255, 255, .03);
    transition: transform var(--t-fast), border-color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast);
    color: rgba(255, 255, 255, .9);
}

.site-footer__social a:hover,
.site-footer__social a:focus-visible {
    transform: translateY(-2px);
    border-color: var(--color-accent);
    background: rgba(186, 185, 102, .18);
    box-shadow: 0 8px 18px rgba(0, 0, 0, .28);
}

.social-icon {
    width: 15px;
    height: 15px;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: contain;
    display: inline-block;
}

.social-icon--facebook {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><path d='M22 12a10 10 0 1 0-11.5 9.9v-7H8v-2.9h2.5V9.6c0-2.5 1.5-3.8 3.7-3.8 1.1 0 2.2.2 2.2.2v2.4h-1.2c-1.2 0-1.6.8-1.6 1.6v1.9h2.7l-.4 2.9h-2.3v7A10 10 0 0 0 22 12z'/></svg>");
}

.social-icon--instagram {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><path d='M12 2.2c3.2 0 3.6 0 4.9.1 1.2 0 1.8.2 2.2.4.6.2 1 .5 1.4.9.4.4.7.8.9 1.4.2.4.4 1 .4 2.2.1 1.3.1 1.7.1 4.9s0 3.6-.1 4.9c0 1.2-.2 1.8-.4 2.2-.2.6-.5 1-.9 1.4-.4.4-.8.7-1.4.9-.4.2-1 .4-2.2.4-1.3.1-1.7.1-4.9.1s-3.6 0-4.9-.1c-1.2 0-1.8-.2-2.2-.4-.6-.2-1-.5-1.4-.9-.4-.4-.7-.8-.9-1.4-.2-.4-.4-1-.4-2.2C2.2 15.6 2.2 15.2 2.2 12s0-3.6.1-4.9c0-1.2.2-1.8.4-2.2.2-.6.5-1 .9-1.4.4-.4.8-.7 1.4-.9.4-.2 1-.4 2.2-.4C8.4 2.2 8.8 2.2 12 2.2zm0 1.8c-3.2 0-3.6 0-4.8.1-.9 0-1.4.2-1.7.3-.4.2-.7.3-1 .6-.3.3-.5.6-.6 1-.1.3-.3.8-.3 1.7-.1 1.2-.1 1.6-.1 4.8s0 3.6.1 4.8c0 .9.2 1.4.3 1.7.2.4.3.7.6 1 .3.3.6.5 1 .6.3.1.8.3 1.7.3 1.2.1 1.6.1 4.8.1s3.6 0 4.8-.1c.9 0 1.4-.2 1.7-.3.4-.2.7-.3 1-.6.3-.3.5-.6.6-1 .1-.3.3-.8.3-1.7.1-1.2.1-1.6.1-4.8s0-3.6-.1-4.8c0-.9-.2-1.4-.3-1.7-.2-.4-.3-.7-.6-1-.3-.3-.6-.5-1-.6-.3-.1-.8-.3-1.7-.3-1.2-.1-1.6-.1-4.8-.1zm0 3.1a4.9 4.9 0 1 1 0 9.8 4.9 4.9 0 0 1 0-9.8zm0 1.8a3.1 3.1 0 1 0 0 6.2 3.1 3.1 0 0 0 0-6.2zm5.1-2a1.1 1.1 0 1 1 0 2.2 1.1 1.1 0 0 1 0-2.2z'/></svg>");
}

.site-footer__copy {
    font-family: var(--font-body);
    font-size: 12px;
    color: rgba(255, 255, 255, .68);
    margin: 0;
    line-height: 1.5;
    letter-spacing: .35px;
    text-transform: uppercase;
}

.site-footer__credit {
    margin: 0;
    font-family: var(--font-body);
    font-size: 13px;
    color: rgba(255, 255, 255, .82);
    line-height: 1.6;
}

.site-footer__credit a {
    color: rgba(255, 255, 255, .92);
    text-decoration: none;
    border-bottom: 1px solid rgba(186, 185, 102, .65);
    transition: color var(--t-fast), border-color var(--t-fast);
}

.site-footer__credit a:hover,
.site-footer__credit a:focus-visible {
    color: var(--color-accent);
    border-color: var(--color-accent);
}

/* -------- 12. Scroll-to-top -------- */
.scroll-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #54837c;
    color: #fff;
    font-size: 22px;
    line-height: 44px;
    text-align: center;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .15);
    opacity: 0;
    transform: translateY(10px);
    pointer-events: none;
    transition: opacity var(--t-base), transform var(--t-base), background var(--t-fast);
    z-index: 90;
}

.scroll-top:hover {
    background: #aed9d3;
}

.scroll-top.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

/* -------- 13. Reveal-on-scroll -------- */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .8s ease, transform .8s ease;
    will-change: opacity, transform;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* -------- 14. Responsive -------- */
@media (max-width: 1180px) {
    .services__row {
        gap: 24px;
    }

    .services__card {
        grid-template-columns: minmax(0, 180px) minmax(0, 1fr);
        padding: 24px;
        gap: 20px;
    }

    .partners__grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 16px;
    }

    .home-gallery__grid {
        grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
    }
}

@media (max-width: 980px) {
    .intro {
        padding: 18px 0 1px;
    }

    .intro__inner {
        width: 90%;
        padding: 12px 0;
    }

    .intro__title {
        font-size: 53px;
        letter-spacing: 4px;
    }

    .services,
    .partners,
    .home-gallery {
        padding: 6% 0;
    }

    .services__row {
        grid-template-columns: 1fr;
    }

    .services__card {
        grid-template-columns: minmax(0, 160px) minmax(0, 1fr);
    }

    .partners__grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
        width: 100%;
    }

    .hero__slider {
        height: auto;
        min-height: 400px;
    }

    .site-footer__inner {
        width: 90%;
    }

    .site-footer__top {
        gap: 16px;
    }

    .site-footer__brand {
        font-size: 13px;
    }

    .home-gallery__grid {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        gap: 14px;
    }

    .home-gallery__item--large {
        grid-row: auto;
    }

    .home-gallery__item {
        min-height: 230px;
    }
}

@media (max-width: 767px) {
    .intro {
        padding: 12px 0 1px;
    }

    .intro__title {
        font-size: 45px;
        letter-spacing: 3px;
    }

    .services,
    .partners,
    .home-gallery {
        padding: 8% 0;
    }

    .nav-toggle {
        display: flex;
    }

    .primary-nav {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #fff;
        border-bottom: 1px solid var(--color-line);
        box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
        max-height: 0;
        overflow: hidden;
        transition: max-height var(--t-base);
    }

    .primary-nav.is-open {
        max-height: 80vh;
    }

    .primary-nav__list {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 8px 0;
    }

    .primary-nav__list li {
        border-bottom: 1px solid var(--color-line);
    }

    .primary-nav__list li:last-child {
        border-bottom: 0;
    }

    .primary-nav__link {
        display: block;
        padding: 14px 24px;
        font-size: 22px;
    }

    .primary-nav__link.is-active::after {
        display: none;
    }

    .site-header__logo img {
        height: 56px;
    }

    .values__row {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .services__row {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .services__card {
        grid-template-columns: 1fr;
        text-align: center;
        padding: 22px 18px;
        gap: 14px;
    }

    .services__col--image img {
        max-width: 180px;
    }

    .services__col--text h2 {
        font-size: 30px;
    }

    .services__content h2::after {
        margin-left: auto;
        margin-right: auto;
    }

    .partners__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
        width: 100%;
    }

    .partners__item-surface {
        min-height: 108px;
        padding: 14px 12px;
    }

    .partners__item img {
        max-width: 140px;
    }

    .partners__title {
        font-size: 22px;
        margin: 24px 0 20px 0;
    }

    .home-gallery__title {
        font-size: 26px;
        letter-spacing: 1px;
    }

    .home-gallery__subtitle {
        font-size: 15px;
        margin-bottom: 20px;
    }

    .home-gallery__item {
        min-height: 200px;
        border-radius: 14px;
    }

    .gallery-lightbox__dialog {
        width: 94vw;
        padding: 10px;
    }

    .gallery-lightbox__close {
        top: -10px;
        right: -10px;
        width: 34px;
        height: 34px;
        font-size: 24px;
    }

    .hero__slider {
        height: 400px;
    }

    .hero__divider svg {
        height: 50px;
    }

    .partners__divider svg {
        height: 24px;
    }

    .hero__arrow {
        width: 40px;
        height: 40px;
        opacity: 1;
        background: rgba(0, 0, 0, .25);
    }

    .hero__arrow svg {
        width: 18px;
        height: 18px;
    }

    .hero__arrow--prev {
        left: 12px;
    }

    .hero__arrow--next {
        right: 12px;
    }

    .site-footer {
        padding: 24px 0 18px;
    }

    .site-footer__top,
    .site-footer__bottom {
        flex-direction: column;
        text-align: center;
        gap: 10px;
    }

    .site-footer__top {
        padding-bottom: 14px;
    }

    .site-footer__bottom {
        padding-top: 12px;
    }

    .site-footer__brand {
        font-size: 13px;
    }

    .site-footer__copy,
    .site-footer__credit {
        font-size: 11px;
    }
}

/* =========================================================
   PAGE: TÝM – 1:1 dle Divi originálu
   - hero: parallax fullscreen
   - alternující sekce: white / rgba(0,0,0,.06)
   - jméno: Clicker Script 42px
   - tag: Amatic SC 700, 23px, line-height 0.1em (jak v Divi)
   - bio: Roboto 300, 18px
   - galerie: 4-sloupcový grid s box-shadow 6px 6px 18px rgba(0,0,0,.3)
   - "Galerie ..." titulek: 25px, color #bab966
   ========================================================= */

.page--tym {
    padding-top: 0;
}

/* Hero parallax */
.team-hero {
    position: relative;
    height: 100vh;
    min-height: 520px;
    overflow: hidden;
    background: #000;
}

.team-hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center center;
    background-attachment: fixed;
    background-repeat: no-repeat;
}

/* Sekce – default white, alt = gray (originál: rgba(0,0,0,.06)) */
.team-section {
    position: relative;
    background: #ffffff;
    padding: 60px 0 50px;
}

.team-section--alt {
    background: rgba(0, 0, 0, .06);
}

.team-section--gallery {
    padding-top: 12px;
}

/* Sloupce */
.team-row {
    width: 90%;
    max-width: 1480px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 50px;
    align-items: start;
}

.team-col {
    min-width: 0;
}

/* Jméno – Clicker Script 42px (originál) */
.team-name {
    font-family: "Clicker Script", "Aguafina Script", cursive;
    font-size: 42px;
    color: #000;
    margin: 0 0 10px;
    line-height: 1.2;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
}

/* Role / podtitul */
.team-role {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 16px;
    margin: 0 0 4px;
    color: #000;
    letter-spacing: 0;
    text-transform: none;
}

.team-role-sub {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 16px;
    margin: 0 0 14px;
    color: rgba(0, 0, 0, .85);
    letter-spacing: 0;
}

/* Hashtag – Amatic SC 700, 23px, line-height ~0.1em (originál) */
.team-tag {
    font-family: var(--font-heading);
    font-size: 23px;
    font-weight: 700;
    color: #000;
    letter-spacing: 1px;
    line-height: .1em;
    margin: 18px 0 22px;
    text-transform: none;
}

/* Profilová fotka / gif */
.team-photo {
    display: block;
    width: 100%;
    height: auto;
    margin: 14px 0 18px;
    border-radius: 2px;
}

/* Bio text */
.team-bio {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 18px;
    color: rgba(0, 0, 0, .9);
    line-height: 1.7;
}

.team-bio p {
    margin: 0 0 14px;
}

.team-motto {
    margin-top: 12px;
}

.team-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 10px 18px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    color: #0d3a35;
    background: linear-gradient(135deg, rgba(200, 237, 232, .98) 0%, rgba(174, 217, 211, .96) 100%);
    border: 1px solid rgba(84, 131, 124, .3);
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.team-cta:hover,
.team-cta:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(15, 57, 52, .16);
    background: linear-gradient(135deg, rgba(188, 231, 224, .98) 0%, rgba(157, 207, 199, .96) 100%);
}

.team-cta:focus-visible {
    outline: 2px solid rgba(84, 131, 124, .45);
    outline-offset: 2px;
}

/* Seznam úspěchů – disc, line-height 2.7em jako v originálu */
.team-awards {
    list-style: disc;
    padding-left: 22px;
    margin: 0 0 18px;
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 18px;
    color: rgba(0, 0, 0, .9);
    line-height: 2.2em;
}

.team-awards li {
    margin-bottom: 0;
}

/* "Galerie ..." titulek velkých galerií – Roboto 300, 16px (Divi text_9/19/27/35) */
.team-gallery-title {
    text-align: left;
    font-family: var(--font-body);
    font-weight: 300;
    text-transform: none;
    font-size: 16px;
    color: rgba(0, 0, 0, .9);
    margin: 0 0 14px;
    letter-spacing: 0;
    line-height: 1.7em;
}

.team-section--gallery .team-gallery-title {
    width: 90%;
    max-width: 1480px;
    margin-left: auto;
    margin-right: auto;
}

/* Titulek soutěžních prací v pravém sloupci – 25px, letter-spacing 1px (text_6/15) */
.team-gallery-title--strip {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 25px;
    color: #000;
    letter-spacing: 1px;
    line-height: 1.4em;
    margin: 18px 0 22px;
}

/* Mřížka galerií – default uvnitř sloupce 2-sloupcová, full-width 4-sloupcová */
.team-gallery {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4px;
}

/* Velká galerie přes celou šířku stránky (Kobylka, Renia, Majkl, Soňa) */
.team-section--gallery .team-gallery {
    width: 90%;
    max-width: 1480px;
    margin: 0 auto;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
}

/* Soutěžní galerie Michaely (7 landscape fotek v pravém sloupci) */
.team-gallery--landscape {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

/* Renatina galerie soutěžních (2 fotky) */
.team-gallery--two {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    max-width: 520px;
    margin: 10px 0 0;
}

.team-gallery li {
    overflow: hidden;
    line-height: 0;
}

.team-gallery img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit:cover;
    transition: transform var(--t-base);
}

/* Box-shadow mají jen velké galerie (gallery_1..5 = Kobylka, Renia 2x, Majkl, Soňa) + Michaela soutěž */
.team-section--gallery .team-gallery img,
.team-gallery--landscape img,
.team-gallery--two img {
    box-shadow: 6px 6px 18px 0 rgba(0, 0, 0, .3);
}

.team-gallery li:hover img {
    transform: scale(1.04);
}

/* Paginace galerie – styl Divi: čísla + Další */
.team-gallery-pagination {
    width: 90%;
    max-width: 1480px;
    margin: 18px auto 0;
    display: flex;
    justify-content: flex-end;
    gap: 14px;
    font-family: var(--font-body);
    font-size: 14px;
    color: rgba(0, 0, 0, .85);
}

.team-gallery-pagination button {
    background: none;
    border: 0;
    padding: 4px 6px;
    color: rgba(0, 0, 0, .85);
    font: inherit;
    cursor: pointer;
    transition: color var(--t-base);
}

.team-gallery-pagination button:hover {
    color: var(--color-accent);
}

.team-gallery-pagination button.is-active {
    color: var(--color-accent-dark);
    font-weight: 700;
}

.team-gallery-pagination button:disabled {
    opacity: .35;
    cursor: default;
}

/* Hidden gallery items during pagination */
.team-gallery li.is-hidden {
    display: none;
}

/* Responzivní */
@media (max-width: 980px) {
    .team-section {
        padding: 40px 0 30px;
    }

    .team-row {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .team-photo {
        max-width: 320px;
        margin-left: auto;
        margin-right: auto;
    }

    .team-name,
    .team-tag,
    .team-role,
    .team-role-sub {
        text-align: center;
    }

    .team-tag {
        line-height: 1.4em;
        margin: 12px 0 16px;
    }

    .team-cta {
        margin-left: auto;
        margin-right: auto;
    }

    .team-gallery,
    .team-gallery--landscape,
    .team-gallery--two {
        grid-template-columns: repeat(2, 1fr);
        gap: 18px;
    }

    .team-section--gallery .team-gallery {
        grid-template-columns: repeat(3, 1fr);
        gap: 18px;
    }

    .team-gallery--two {
        margin: 10px auto 0;
    }

    .team-hero {
        height: 60vh;
        min-height: 360px;
    }

    .team-hero__bg {
        background-attachment: scroll;
    }

    .team-gallery-title {
        font-size: 22px;
        text-align: left;
    }
}

@media (max-width: 600px) {
    .team-gallery,
    .team-gallery--landscape,
    .team-gallery--two,
    .team-section--gallery .team-gallery {
        grid-template-columns: 1fr;
    }

    .team-name {
        font-size: 36px;
    }
}

/* =========================================================
   PAGE: SLUŽBY
   ========================================================= */

.page--sluzby {
    padding-top: 34px;
    padding-bottom: 64px;
}

.services-tiles {
    width: min(94%, 1520px);
    margin: 0 auto;
}

.services-tiles__inner {
    padding: 8px 0 0;
}

.services-tiles__eyebrow {
    margin: 0 0 26px;
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 500;
    letter-spacing: .02em;
    color: #083f95;
}

.services-tiles__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.services-tile {
    margin: 0;
}

.services-tile__card {
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(84, 131, 124, .2);
    box-shadow: 0 14px 26px rgba(0, 0, 0, .08);
    transition: transform .26s ease, box-shadow .26s ease, border-color .26s ease;
}

.services-tile__media {
    position: relative;
    aspect-ratio: 16 / 10;
}

.services-tile__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(10, 18, 28, .22) 15%, rgba(9, 14, 22, .72) 100%);
    pointer-events: none;
}

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

.services-tile__toggle {
    position: absolute;
    inset: 0;
    z-index: 2;
    border: 0;
    background: transparent;
    color: #fff;
    padding: 20px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    text-align: left;
    cursor: pointer;
    font-family: var(--font-heading);
}

.services-tile__title {
    font-size: clamp(27px, 2vw, 44px);
    line-height: 1.08;
    font-weight: 700;
    text-shadow: 0 2px 14px rgba(0, 0, 0, .35);
    max-width: 90%;
}

.services-tile__toggle:focus-visible {
    outline: 2px solid rgba(198, 237, 231, .98);
    outline-offset: -4px;
}

.services-tile__card:hover {
    transform: translateY(-4px);
    border-color: rgba(84, 131, 124, .34);
    box-shadow: 0 18px 32px rgba(0, 0, 0, .12);
}

.services-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: 22px;
}

.services-modal[hidden] {
    display: none;
}

.services-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 16, 23, .72);
}

.services-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(720px, 100%);
    max-height: min(86vh, 920px);
    overflow-y: auto;
    border-radius: 18px;
    padding: 24px 24px 22px;
    border: 1px solid rgba(84, 131, 124, .28);
    background: linear-gradient(180deg, rgba(255, 255, 255, .98) 0%, rgba(238, 248, 246, .96) 100%);
    box-shadow: 0 24px 50px rgba(0, 0, 0, .25);
}

.services-modal__close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid rgba(84, 131, 124, .3);
    background: rgba(255, 255, 255, .88);
    color: #11453e;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.services-modal__close:focus-visible {
    outline: 2px solid rgba(84, 131, 124, .45);
    outline-offset: 2px;
}

.services-modal__title {
    margin: 0 48px 10px 0;
    font-family: var(--font-heading);
    font-size: clamp(32px, 4.2vw, 46px);
    line-height: 1.05;
    color: #073d39;
}

.services-modal__intro {
    margin: 0 0 14px;
    font-size: 17px;
    line-height: 1.65;
    color: rgba(12, 24, 23, .92);
}

.services-modal__intro--secondary {
    margin-top: -3px;
    margin-bottom: 14px;
}

.services-modal__list {
    margin: 0 0 20px;
    padding-left: 0;
    list-style: none;
    font-size: 16px;
    line-height: 1.6;
    color: rgba(12, 24, 23, .92);
}

.services-modal__list li {
    position: relative;
    padding-left: 16px;
    margin-bottom: 8px;
}

.services-modal__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .62em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(84, 131, 124, .9);
}

.services-modal__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 10px 18px;
    font-weight: 600;
    text-decoration: none;
    color: #0d3a35;
    background: linear-gradient(135deg, rgba(200, 237, 232, .98) 0%, rgba(174, 217, 211, .96) 100%);
    border: 1px solid rgba(84, 131, 124, .28);
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.services-modal__cta:hover,
.services-modal__cta:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(15, 57, 52, .16);
    background: linear-gradient(135deg, rgba(188, 231, 224, .98) 0%, rgba(157, 207, 199, .96) 100%);
}

.services-modal__cta:focus-visible {
    outline: 2px solid rgba(84, 131, 124, .45);
    outline-offset: 2px;
}

@media (max-width: 1180px) {
    .services-tiles__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .services-tile__title {
        font-size: clamp(24px, 2.4vw, 38px);
    }
}

@media (max-width: 760px) {
    .page--sluzby {
        padding-top: 18px;
        padding-bottom: 44px;
    }

    .services-tiles__eyebrow {
        font-size: 18px;
        margin-bottom: 18px;
    }

    .services-tiles__grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .services-tile__toggle {
        padding: 16px;
    }

    .services-tile__title {
        font-size: clamp(28px, 8.2vw, 36px);
    }

    .services-modal {
        padding: 14px;
    }

    .services-modal__dialog {
        padding: 18px 16px 16px;
    }

    .services-modal__title {
        margin-right: 42px;
        font-size: clamp(28px, 9vw, 36px);
    }

    .services-modal__intro {
        font-size: 15px;
    }

    .services-modal__list {
        font-size: 15px;
    }
}

/* =========================================================
   PAGE: CENÍK – 1:1 dle Divi originálu
   - row width 60% (úzký středový sloupec)
   - logo: 14% width (min 180px)
   - olive banner: bg #bab966, padding 25px 10px, font 25px / banner 18px
   - text na banner = ČERNÁ rgba(0,0,0,.9) – ne bílá!
   - cenové řádky: Roboto 500 / 18px
   - poznámky (300) tight stacking margin-top -10..-15px
   ========================================================= */

.page--cenik {
    padding-top: 0;
    padding-bottom: 60px;
}

.cenik__logo {
    text-align: center;
    padding: 50px 0 5px;
}

.cenik__logo img {
    width: 14%;
    min-width: 180px;
    max-width: 280px;
    height: auto;
    display: inline-block;
}

.cenik {
    width: min(92%, 980px);
    margin: 0 auto;
    padding: 8px 0 24px;
}

.pricing__page-title {
    font-family: var(--font-heading);
    font-size: clamp(30px, 5vw, 44px);
    letter-spacing: 2px;
    line-height: 1.15;
    margin: 8px 0 26px;
    text-align: center;
    text-transform: uppercase;
    color: #000;
}

.pricing {
    margin: 0 0 30px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(84, 131, 124, .16);
}

.pricing:last-of-type {
    border-bottom: 0;
    padding-bottom: 0;
}

/* Olive banner s černým textem */
.pricing__heading {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: clamp(32px, 4.2vw, 42px);
    color: rgba(0, 0, 0, .9);
    background: transparent;
    padding: 6px 0 6px 18px;
    margin: 0 0 14px;
    border-left: 6px solid #8bd8ca;
    text-align: left;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    line-height: 1.15;
}

/* Sub-titulek (Odrost / Přeliv, Co je na první návštěvě atd.) – Roboto 500 / 18px */
.pricing__sub {
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 18px;
    color: rgba(0, 0, 0, .92);
    margin: 16px 0 8px;
    line-height: 1.5;
}

/* Foukaná – uppercase 17px (Divi text_4) */
.pricing__sub--upper {
    text-transform: uppercase;
    font-size: 17px;
    margin: 18px 0 6px;
}

.pricing__intro {
    margin: 0 0 14px;
    padding-left: 22px;
    font-weight: 300;
    font-size: 16px;
    line-height: 1.7;
}

.pricing__group {
    margin: 0 0 16px;
}

.pricing__line {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 17px;
    color: rgba(0, 0, 0, .9);
    margin: 0;
    padding: 10px 0;
    border-bottom: 1px dotted rgba(0, 0, 0, .15);
    line-height: 1.55;
}

.pricing__line span:last-child {
    text-align: right;
    font-weight: 500;
    white-space: nowrap;
}

.pricing__line span:first-child {
    flex: 1 1 auto;
    min-width: 140px;
}

.pricing__matrix {
    margin: 10px 0 14px;
    border: 1px solid rgba(84, 131, 124, .22);
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}

.pricing__matrix-head,
.pricing__matrix-row {
    margin: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.08fr);
    gap: 0;
}

.pricing__matrix-head span,
.pricing__matrix-row span {
    padding: 11px 12px;
    border-right: 1px solid rgba(84, 131, 124, .2);
}

.pricing__matrix-head span:last-child,
.pricing__matrix-row span:last-child {
    border-right: 0;
}

.pricing__matrix-head {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: rgba(26, 43, 41, .95);
    background: rgba(200, 237, 232, .95);
}

.pricing__matrix-row {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 16px;
    color: rgba(0, 0, 0, .9);
    background: #fff;
    border-top: 1px solid rgba(84, 131, 124, .14);
}

.pricing__matrix-head span:nth-child(3) {
    background: rgba(147, 220, 209, .72);
    color: rgba(15, 40, 36, .98);
    font-weight: 800;
    border-left: 1px solid rgba(71, 152, 141, .45);
}

.pricing__matrix-row span:nth-child(3) {
    background: rgba(200, 237, 232, .48);
    font-weight: 700;
    border-left: 1px solid rgba(71, 152, 141, .28);
}

.pricing__matrix-head span:first-child,
.pricing__matrix-row span:first-child {
    text-align: left;
}

.pricing__matrix-head span:nth-child(2),
.pricing__matrix-head span:nth-child(3),
.pricing__matrix-row span:nth-child(2),
.pricing__matrix-row span:nth-child(3) {
    text-align: right;
}

/* Poznámka – Roboto 300, mírně tight stacking */
.pricing__note {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 16px;
    color: rgba(0, 0, 0, .8);
    margin: 4px 0 12px;
    line-height: 1.6;
}

.pricing__bullets {
    margin: 8px 0 16px;
    padding-left: 22px;
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 16px;
    color: rgba(0, 0, 0, .9);
    line-height: 1.7;
}

.pricing__bullets li {
    margin-bottom: 4px;
}

.pricing__quote {
    margin: 14px 0 16px;
    padding: 16px 20px;
    background: rgba(200, 237, 232, .24);
    border-left: 5px solid #87cfc3;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 16px;
    line-height: 1.7;
    color: rgba(0, 0, 0, .9);
}

.pricing__quote p {
    margin: 0 0 8px;
}

.pricing__quote .pricing__bullets {
    margin-bottom: 0;
}

/* Velký banner (Datum / Storno) – font 18px, černý text na olive */
.pricing__banner {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 18px;
    color: rgba(0, 0, 0, .9);
    background: #C8EDE8;
    padding: 18px 14px;
    margin: 24px 0 14px;
    border-radius: 10px;
    line-height: 1.3;
    text-align: left;
    text-transform: none;
    letter-spacing: 0;
}

.pricing__banner--center {
    text-align: center;
}

.pricing--storno p {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    color: rgba(0, 0, 0, .9);
    line-height: 1.7;
    margin: 0 0 6px;
    padding-bottom: 2px;
}

.pricing--storno p strong {
    font-weight: 700;
}

.pricing__footnote {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 14px;
    color: rgba(0, 0, 0, .7);
    text-align: center;
    margin: 0 0 14px;
}

@media (max-width: 980px) {
    .cenik {
        width: 92%;
    }

    .pricing__page-title {
        font-size: 32px;
        margin-bottom: 20px;
    }

    .pricing__heading {
        font-size: 34px;
        padding: 4px 0 4px 14px;
        border-left-width: 5px;
    }

    .pricing__banner {
        font-size: 16px;
        padding: 18px 12px;
    }

    .pricing__line {
        font-size: 16px;
    }

    .pricing__matrix-row {
        font-size: 15px;
    }
}

@media (max-width: 700px) {
    .pricing__matrix {
        border: 0;
        background: transparent;
        padding: 0;
        margin-top: 8px;
    }

    .pricing__matrix-head {
        display: none;
    }

    .pricing__matrix-row {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
        margin: 0 0 10px;
        border-top: 0;
    }

    .pricing__matrix-row:last-child {
        margin-bottom: 0;
    }

    .pricing__matrix-row span {
        border: 1px solid rgba(84, 131, 124, .24);
        border-radius: 10px;
        padding: 10px 12px;
        text-align: left;
        background: #ffffff;
    }

    .pricing__matrix-row span::before {
        content: attr(data-role);
        display: block;
        margin-bottom: 4px;
        font-size: 11px;
        letter-spacing: .5px;
        text-transform: uppercase;
        color: rgba(26, 43, 41, .78);
        font-weight: 700;
    }

    .pricing__matrix-row span[data-role="Salon Director"] {
        background: rgba(200, 237, 232, .48);
        border-color: rgba(71, 152, 141, .38);
    }

    .pricing__matrix-row span[data-role="Salon Director"]::before {
        color: rgba(15, 40, 36, .95);
    }
}

/* =========================================================
   PAGE: KONTAKT
   ========================================================= */

/* Hero slider – 760px, dotted border-bottom (originál et_pb_fullwidth_slider_0) */
.contact-hero {
    position: relative;
    height: 760px;
    overflow: hidden;
    background: #ffffff;
    border-bottom: 1px dotted rgba(0, 0, 0, .9);
}

.contact-hero__slider {
    position: absolute;
    inset: 0;
}

.contact-hero__slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity .45s ease-in-out;
}

.contact-hero__slide.is-active {
    opacity: 1;
}

.contact-hero__overlay {
    position: relative;
    z-index: 2;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 30px;
    pointer-events: none;
}

/* Textbox – jeden olive wrapper kolem titulku + podtitulku (Divi text_overlay_wrapper) */
.contact-hero__textbox {
    background: rgba(200, 237, 232, .36);
    border: 1px solid rgba(255, 255, 255, .45);
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
    border-radius: 18px;
    padding: 24px 30px 22px;
    max-width: min(90%, 760px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .18);
    animation: fadeBottom .7s ease-in-out .9s both;
}

.contact-hero__eyebrow {
    margin: 0 0 6px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.1px;
    color: rgba(20, 44, 40, .92);
}

.contact-hero__title,
.contact-hero__subtitle {
    color: #061d1a;
    text-transform: uppercase;
    font-weight: 700;
    margin: 0;
}

.contact-hero__title {
    font-family: var(--font-heading);
    font-size: clamp(52px, 7vw, 78px);
    letter-spacing: 3px;
    line-height: 1.05;
}

.contact-hero__subtitle {
    font-family: var(--font-body);
    font-size: clamp(20px, 2.8vw, 30px);
    font-weight: 500;
    letter-spacing: 1.4px;
    margin-top: 8px;
    color: rgba(6, 29, 26, .9);
}

/* Animace – přesný 1:1 fadeBottom + fadeLeft jak Divi (animations.min.css) */
@keyframes fadeBottom {
    0% {
        opacity: 0;
        transform: translate3d(0, 50px, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fadeLeft {
    0% {
        opacity: 0;
        transform: translate3d(50px, 0, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* Mapa – container 80% / max 1080px (jak Divi et_pb_row), padding 4% 0 (jak section) */
.contact-map {
    background: linear-gradient(180deg, rgba(200, 237, 232, .2) 0%, rgba(255, 255, 255, .96) 100%);
    padding: 34px 0 40px;
}

.contact-map__inner {
    width: 80%;
    max-width: 1080px;
    margin: 0 auto;
    line-height: 0;
    padding: 12px;
    border-radius: 18px;
    border: 1px solid rgba(84, 131, 124, .24);
    background: rgba(255, 255, 255, .45);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    box-shadow: 0 16px 34px rgba(0, 0, 0, .12);
}

.contact-map iframe {
    display: block;
    width: 100%;
    height: 600px;
    border: 0;
    border-radius: 12px;
    overflow: hidden;
}

.contact-operator {
    background: #ffffff;
    padding: 10px 0 56px;
}

.contact-operator__inner {
    width: 90%;
    max-width: 1080px;
    margin: 0 auto;
}

.contact-operator__main-card,
.contact-operator__lead-card,
.contact-operator__hours-card,
.contact-operator__person {
    background: #ffffff;
    border: 1px solid rgba(84, 131, 124, .2);
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .06);
}

.contact-operator__main-card {
    padding: 20px 24px;
    margin-bottom: 14px;
}

.contact-operator__lead-card {
    padding: 14px 20px;
    margin-bottom: 20px;
    border-left: 5px solid #8bd8ca;
}

.contact-operator__hours-card {
    padding: 14px 20px;
    margin-top: 14px;
    border-left: 5px solid #8bd8ca;
}

.contact-operator__title {
    font-family: var(--font-heading);
    font-size: 34px;
    letter-spacing: 1px;
    margin: 0 0 8px;
    color: #000;
}

.contact-operator__subtitle {
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .7px;
    margin: 0 0 4px;
    color: rgba(15, 40, 36, .95);
}

.contact-operator__people-title {
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .7px;
    margin: 0 0 12px;
    color: rgba(15, 40, 36, .95);
}

.contact-operator__line {
    margin: 0 0 6px;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.55;
    color: rgba(0, 0, 0, .9);
}

.contact-operator__line:last-child {
    margin-bottom: 0;
}

.contact-operator__people {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.contact-operator__person {
    padding: 14px 16px;
}

.contact-operator__name {
    margin: 0 0 6px;
    font-family: var(--font-body);
    font-size: 17px;
    font-weight: 700;
    color: rgba(15, 40, 36, .98);
}

.contact-info {
    padding: 50px 0;
    background: #ffffff;
}

.contact-info__grid {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    width: 90%;
    max-width: 1080px;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 30px;
    align-items: start;
}

.contact-info__item {
    text-align: center;
}

.contact-info__link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.contact-info__icon {
    display: inline-block;
    width: 62px;
    height: 52px;
    margin: 0 auto 12px;
    position: relative;
}

.contact-info__icon::before {
    content: "";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.contact-info__icon--pin::before {
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23222'><path d='M8 2h8v2l-1.2 4.2L18 11v1H6v-1l3.2-2.8L8 4V2zm4 10h-1v10h1V12z'/></svg>") no-repeat center / 39px;
}

.contact-info__icon--phone::before {
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='7' y='2.5' width='10' height='19' rx='2.2'/><circle cx='12' cy='18.2' r='0.9' fill='%23222'/><line x1='10' y1='5.3' x2='14' y2='5.3'/></svg>") no-repeat center / 36px;
}

.contact-info__icon--mail::before {
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23222'><path d='M3 6.5A2.5 2.5 0 0 1 5.5 4h13A2.5 2.5 0 0 1 21 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-13A2.5 2.5 0 0 1 3 17.5v-11zm2 .8v.4l7 4.8 7-4.8v-.4H5zm14 2.8-6.4 4.4a1 1 0 0 1-1.2 0L5 10.1v7.4a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-7.4z'/></svg>") no-repeat center / 35px;
}

.contact-info__icon--facebook::before {
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23222'><path d='M14 22v-8h2.7l.5-3.4H14V8.4c0-1 .3-1.7 1.8-1.7h1.6V3.8c-.3 0-1.3-.1-2.4-.1-2.4 0-4.1 1.5-4.1 4.3v2.5H8v3.4h2.9V22H14z'/></svg>") no-repeat center / 34px;
}

.contact-info__icon--instagram::before {
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='5'/><circle cx='12' cy='12' r='4'/><circle cx='17.4' cy='6.6' r='1' fill='%23222' stroke='none'/></svg>") no-repeat center / 34px;
}

.contact-info__heading {
    font-family: var(--font-heading);
    font-size: 33px;
    color: #000;
    text-transform: uppercase;
    margin: 0 0 4px;
    letter-spacing: 1px;
    font-weight: 400;
    line-height: 1.2;
}

.contact-info__text {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 18px;
    color: rgba(0, 0, 0, .9);
    margin: 0;
    line-height: 1.45;
}

.contact-info__text a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color var(--t-base);
}

.contact-info__text a:hover {
    border-bottom-color: rgba(0, 0, 0, .6);
}

.contact-info__link:hover .contact-info__heading {
    color: #000;
}

.contact-fb {
    text-align: center;
    padding: 0 0 50px;
}

.contact-fb iframe {
    max-width: 100%;
}

@media (max-width: 980px) {
    .contact-hero {
        height: auto;
        min-height: 480px;
        padding: 60px 0;
    }

    .contact-hero__textbox {
        padding: 20px 22px 18px;
        border-radius: 14px;
    }

    .contact-hero__title {
        font-size: 58px;
        letter-spacing: 2px;
    }

    .contact-hero__subtitle {
        font-size: 24px;
        letter-spacing: 1.2px;
    }

    .contact-hero__eyebrow {
        font-size: 12px;
    }

    .contact-info__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 36px;
    }

    .contact-map {
        padding: 24px 0 30px;
    }

    .contact-map__inner {
        width: 90%;
        padding: 10px;
        border-radius: 14px;
    }

    .contact-map iframe {
        height: 400px;
        border-radius: 10px;
    }

    .contact-operator {
        padding: 6px 0 44px;
    }

    .contact-operator__people {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .contact-hero {
        height: 620px;
    }
}

@media (max-width: 600px) {
    .contact-hero__title {
        font-size: 42px;
        letter-spacing: 1.3px;
    }

    .contact-hero__subtitle {
        font-size: 18px;
        letter-spacing: .8px;
    }

    .contact-hero__textbox {
        padding: 16px 14px 14px;
        border-radius: 12px;
    }

    .contact-hero__eyebrow {
        font-size: 11px;
    }

    .contact-info__grid {
        grid-template-columns: 1fr;
    }

    .contact-map {
        padding: 18px 0 24px;
    }

    .contact-map__inner {
        padding: 8px;
        border-radius: 12px;
    }

    .contact-map iframe {
        height: 320px;
        border-radius: 8px;
    }

    .contact-operator__main-card,
    .contact-operator__lead-card,
    .contact-operator__hours-card,
    .contact-operator__person {
        border-radius: 12px;
    }

    .contact-operator__main-card {
        padding: 16px;
    }

    .contact-operator__lead-card,
    .contact-operator__hours-card,
    .contact-operator__person {
        padding: 12px 14px;
    }

    .contact-operator__title {
        font-size: 30px;
    }

    .contact-operator__subtitle,
    .contact-operator__people-title {
        font-size: 16px;
    }

    .contact-operator__line {
        font-size: 15px;
    }
}

/* -------- 15. Accessibility -------- */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }

    .hero__slide,
    .contact-hero__slide {
        transition: none;
    }
}

:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

/* ===== CTA položka v menu (Online rezervace) – vzhled tlačítka ===== */
.primary-nav__list .menu-cta {
    display: flex;
    align-items: center;
}

.primary-nav__list .menu-cta .primary-nav__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 22px;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(200, 237, 232, .98) 0%, rgba(174, 217, 211, .96) 100%);
    color: #0d3a35;
    border: 1px solid rgba(84, 131, 124, .3);
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    line-height: 1;
    white-space: nowrap;
    transition: transform var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);
}

.primary-nav__list .menu-cta .primary-nav__link:hover,
.primary-nav__list .menu-cta .primary-nav__link:focus-visible {
    background: linear-gradient(135deg, rgba(188, 231, 224, .98) 0%, rgba(157, 207, 199, .96) 100%);
    color: #0d3a35;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(15, 57, 52, .16);
}

/* na CTA nechceme podtržení aktivní položky */
.primary-nav__list .menu-cta .primary-nav__link.is-active::after {
    display: none;
}

/* v mobilním rozbaleném menu ať je tlačítko zarovnané jako ostatní položky */
@media (max-width: 767px) {
    .primary-nav__list .menu-cta {
        padding: 10px 24px;
    }
    .primary-nav__list .menu-cta .primary-nav__link {
        width: 100%;
    }
}
