/* Společné styly -- začátek */
:root {
    /* Hlavní akcentní barva - uklidňující modrá */
    --primary-color: #4a90e2;
    /* Tmavší odstín pro hover efekty */
    --primary-color-darker: #357ABD;
    /* Velmi světlá modro-šedá pro hlavičku */
    --header-bg: #f4f8fc;
    /* Tmavě modro-šedá pro patičku */
    --footer-bg: #2c3e50;
    /* */
    --text-color-dark: #333;
    --text-color-light: #f8f9fa;
    --text-color-medium: #555;
    /* Tmavě modro-šedá pro hlavní název */
    --brand-title-color: #2c3e50;
    /* Světlejší modrá pro odkazy v patičce */
    --link-color-footer: #a7c7e7;
    /* Barva rámečku loga - světlejší modrá */
    --logo-border-color: #c0d6eb;
    /* Barva pro oddělovací linku */
    --separator-color: #d0dfee;
    /* Obecné pozadí pro hero sekce dalších stránek */
    --hero-bg: #e9ecef;
    /* Pozadí pro kontaktovací karty */
    --contact-card-bg: #ffffff;
    --contact-card-border: #dee2e6;
    /* Pozadí pro položky ceníku */
    --pricelist-item-bg: #ffffff;
    /* Barva ohraničení položek ceníku */
    --pricelist-border-color: #dee2e6;
    /* Pozadí pro obalovač nabídky */
    --offer-wrapper-bg: #f8f9fa;
    /*Barva ohraničení*/
    --border-color: #dee2e6;
}

body {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-color-dark);
    line-height: 1.6;
}

h1,
h2,
h3,
h4,
h5,
h6,
.navbar-brand,
.nav-link {
    font-family: 'Montserrat', sans-serif;
}
/* Společné styly -- konec */

/* Společná hlavička -- začátek */
.header-custom {
    background-color: var(--header-bg);
    padding: 1.5rem 0;
    border-bottom: 1px solid #d0dfee;
}

.header-custom .brand-title {
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--brand-title-color);
}

.header-custom .brand-subtitle {
    font-size: 1.1rem;
    color: var(--primary-color-darker);
}

.header-custom .brand-details {
    font-size: 0.9rem;
    color: var(--primary-color);
}

.logo-container {
    padding: 5px;
    border: 2px solid var(--logo-border-color);
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #fff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.logo-container .site-logo {
    flex-shrink: 0;
    display: block;
}

.navbar-custom .nav-link {
    color: var(--primary-color-darker);
    font-weight: 500;
    padding: 0.6rem 1.1rem;
    margin: 0 0.2rem;
    border-radius: 5px;
    transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    display: inline-block;
    text-align: center;
}

.navbar-custom .nav-link:hover {
    color: var(--text-color-light) !important;
    background-color: var(--primary-color);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.navbar-custom .nav-link.active {
    color: var(--text-color-light) !important;
    background-color: var(--primary-color-darker);
    font-weight: 700;
    transform: translateY(-1px);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
}

@media (max-width: 991.98px) { /* Tablety */
    .navbar-custom .navbar-collapse {
        margin-top: 0.75rem;
        border-top: 1px solid var(--primary-color-darker);
        padding-top: 0.5rem;
        background-color: var(--header-bg);
    }

    .navbar-custom .nav-item {
        width: 100%;
    }

    .navbar-custom .nav-link {
        display: block;
        width: 100%;
        margin: 0.3rem 0;
        padding: 0.8rem 1rem;
        text-align: left;
        transform: none;
        box-shadow: none;
    }

    .navbar-custom .nav-link:hover,
    .navbar-custom .nav-link.active {
        transform: none;
        box-shadow: none;
    }
}

@media (max-width: 767.98px) { /* Mobily */
    .header-custom .container>.d-flex {
        flex-direction: column;
    }

    .branding-block {
        width: 100%;
        justify-content: center;
        padding-bottom: 1.25rem;
        margin-bottom: 1.25rem;
        border-bottom: 1px solid var(--separator-color);
    }

    .branding-block.d-flex {
        flex-direction: column;
        align-items: center;
    }

    .branding-block .logo-container {
        margin-right: 0;
        margin-bottom: 0.75rem;
    }

    .branding-block .brand-text {
        text-align: center !important;
    }

    .header-custom .brand-title {
        font-size: 1.8rem;
    }

    .header-custom .brand-subtitle {
        font-size: 1rem;
    }

    .navbar-custom {
        width: 100%;
        justify-content: center;
        margin-top: 0;
    }

    .navbar-custom .navbar-collapse {
        background-color: transparent;
        border-top: none;
        margin-top: 0.5rem;
    }
}
/* Společná hlavička -- konec */

/* Obecná hero sekce pro podstránky -- začátek */
.page-hero-section {
    background-color: var(--hero-bg);
    padding: 4rem 0;
    text-align: center;
}

.page-hero-section h2 {
    color: var(--brand-title-color);
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.page-hero-section p.lead {
    color: var(--text-color-medium);
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}
/* Obecná hero sekce pro podstránky -- konec */

/* Styly pro sekci Úvod -- začátek */
.introduction-hero-section {
    height: 80vh;
    background: url(img/foto-úvodní8.jpeg) no-repeat center center;
    background-size: cover;
    position: relative;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.introduction-hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.1);
}

.introduction-hero-text {
    position: relative;
    z-index: 1;
    padding: 20px;
}

.introduction-hero-text h2 {
    font-size: 3.8rem;
    font-weight: 700;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4);
    margin-bottom: 0.5rem;
    color: #fff;
}

.introduction-hero-text p.lead-hero {
    font-size: 1.5rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.95);
}

@media (max-width: 767.98px) {
    .introduction-hero-text h2 {
        font-size: 2.8rem;
    }

    .introductionhero-text p.lead-hero {
        font-size: 1.2rem;
    }
}

@media (max-width: 575.98px) {
    .introduction-hero-text h2 {
        font-size: 2.2rem;
    }

    .introduction-hero-text p.lead-hero {
        font-size: 1.1rem;
    }

    .introduction-hero-section {
        height: 70vh;
    }
}

.introduction-section {
    padding: 3rem 0;
    background-color: #fff;
}

.introduction-section h3 {
    color: var(--primary-color-darker);
    margin-bottom: 1.5rem;
    font-weight: 700;
}

.introduction-section p {
    font-size: 1.05rem;
    color: var(--text-color-medium);
}
/* Styly pro sekci Úvod -- konec */

/* Styly pro sekci Co nabízíme -- začátek */
.offer-section {
    padding: 3rem 0;
    background-color: #fff;
}

.offer-item {
    background-color: var(--header-bg);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 1.25rem;
}

.offer-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.offer-item .offer-icon {
    font-size: 2.2rem;
    color: var(--primary-color);
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.offer-item h5 {
    color: var(--primary-color-darker);
    font-weight: 700;
    font-size: 1.1rem;
    min-height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.offer-item p {
    font-size: 0.85rem;
    flex-grow: 1;
    color: var(--text-color-medium);
}

.intro-to-offer-list {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--brand-title-color);
    margin-bottom: 0.75rem; /* Zmenšený spodní okraj, aby byla linka blíže */
}

.offer-section-info {
    background-color: var(--header-bg);
    padding: 2rem;
    border-radius: 0.5rem;
    text-align: center;
}

.offer-section-info p {
    color: var(--text-color-medium);
    font-size: 1rem;
}

.offer-wrapper {
    background-color: var(--offer-wrapper-bg);
    padding: 2.5rem 1.5rem;
    border-radius: 0.5rem;
    margin-bottom: 3rem;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}
/* Styly pro sekci Co nabízíme -- konec */

/* Styly pro sekci O nás -- začátek */
.about-us-section {
    padding: 3rem 0;
    background-color: #fff;
}

.about-us-section h3 {
    color: var(--primary-color-darker);
    margin-bottom: 1rem;
    font-weight: 700;
}

.about-us-section p {
    color: var(--text-color-medium);
    font-size: 0.95rem;
    line-height: 1.6;
}

.therapist-profile-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 2rem;
}

.therapist-profile-card img {
    max-width: 250px;
    height: 250px;
    object-fit: cover;
    border-radius: 40%;
    margin-bottom: 1rem;
    border: 3px solid var(--primary-color-lighter, #a7c7e7);
}

.therapist-profile-card .therapist-description {
    text-align: left;
}
/* Styly pro sekci O nás -- konec */

/* Styly pro sekci Ceník -- začátek */
.pricelist-section {
    padding: 3rem 0;
    background-color: #fff;
}

.pricelist-content__item {
    background-color: var(--pricelist-item-bg);
    border: 1px solid var(--pricelist-border-color);
    border-radius: 0.5rem;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}

.pricelist-content__item--name {
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--brand-title-color);
}

.pricelist-content__item--price {
    font-size: 1.1rem;
    font-weight: 500;
    margin-bottom: 0;
    color: var(--primary-color-darker);
    background-color: var(--header-bg);
    border-radius: 0.25rem;
}

.pricelist-content-group {
    background-color: var(--header-bg);
    padding: 0rem 1rem 1rem 1rem;
    border-radius: 0.5rem;
    margin: 2rem 0rem;
    text-align: center;
}

.pricelist-content-group__name {
    color: var(--primary-color-darker);
    font-size: 1.3rem;
    font-weight: 600;
    text-align: center;
    padding: 1.2rem 0;
}

.pricelist-notes {
    margin-top: 2rem;
    font-size: 0.9rem;
    color: var(--text-color-medium);
}

@media (min-width: 768px) { /* Pro počítače */
    .pricelist-content__item {
        flex-direction: row;
        align-items: center;
    }

    .pricelist-content__item--name {
        margin-bottom: 0;
        margin-right: auto;
    }
}
/* Styly pro sekci Ceník -- konec */

/* Styly pro sekci Kontakt -- začátek */
.contact-section {
    padding: 3rem 0;
    background-color: #fff;
}

.contact-card {
    background-color: var(--contact-card-bg);
    border: 1px solid var(--contact-card-border);
    border-radius: 0.5rem;
    padding: 2rem;
    margin-bottom: 2rem;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.07);
    text-align: center;
}

.contact-card h4 {
    color: var(--primary-color-darker);
    margin-bottom: 1.5rem;
    font-weight: 700;
}

.contact-card p {
    margin-bottom: 0.75rem;
    font-size: 1.05rem;
    color: var(--text-color-medium);
}

.contact-card i {
    margin-right: 0.5rem;
    color: var(--primary-color);
}

.contact-card a {
    color: var(--primary-color-darker);
    text-decoration: none;
    transition: color 0.2s ease;
}

.contact-card a:hover {
    color: var(--primary-color);
    text-decoration: underline;
}

.contact-card-info {
    background-color: var(--header-bg);
    padding: 1rem;
    border-radius: 0.5rem;
    margin: 2rem 0rem;
    text-align: center;
}

.contact-card-info p {
    color: var(--text-color-medium);
    padding: 0.5rem 0.3rem;
    margin: 0.5rem 0;
    font-size: 1rem;
    border: 1px solid var(--border-color);
    border-radius: 0.5rem;
}
/* Styly pro sekci Kontakt -- konec */

/* Styly pro Patičku -- začátek */
.footer-custom {
    background-color: var(--footer-bg);
    color: var(--text-color-light);
    padding: 3rem 0;
}

.footer-custom h5 {
    color: var(--primary-color);
    font-weight: 500;
    margin-bottom: 1rem;
}

.footer-custom p,
.footer-custom a {
    color: var(--link-color-footer);
    font-size: 0.95rem;
}

.footer-custom a {
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-custom a:hover {
    color: #ffffff;
}

.footer-custom .copyright {
    border-top: 1px solid #3b5068;
    padding-top: 1.5rem;
    margin-top: 1.5rem;
    font-size: 0.9rem;
    color: #9ab8d5;
}
/* Styly pro Patičku -- konec */