/* style.css */

:root {
    /* Fonts */
    --font-primary: 'Inter', sans-serif;
    --font-secondary: 'IBM Plex Sans', sans-serif;

    /* Pastel Palette - Corporate with Dynamic Transitions */
    --color-background: #fdf0e6; /* Light peachy-cream */
    --color-text-main: #333333;
    --color-text-headings: #2c3e50; /* Dark blue-gray */
    --color-text-light: #FFFFFF;
    --color-text-muted: #555555;

    /* Primary Accent - For hero gradients, strong calls to action */
    --color-primary-light: #ffdab9; /* Pastel orange/peach */
    --color-primary-dark: #dda0dd;  /* Pastel purple/orchid */

    /* Button Colors */
    --color-button-primary-bg: #b0e0e6; /* Pastel powder blue */
    --color-button-primary-hover-bg: #9ac7d0;
    --color-button-primary-text: var(--color-text-headings);

    --color-button-link-bg: var(--color-primary-dark);
    --color-button-link-hover-bg: #d192d1; /* Darker shade of primary-dark */
    --color-button-link-text: var(--color-text-light);

    /* Accent Colors */
    --color-accent-light: #f0f8ff;  /* Alice blue - very light */
    --color-accent-medium: #e6e6fa; /* Lavender - for subtle backgrounds or highlights */

    /* Neutral Colors */
    --color-neutral-lightest: #ffffff;
    --color-neutral-light: #f5f5f5; /* For card backgrounds, light sections */
    --color-neutral-medium: #eeeeee; /* Borders, dividers */
    --color-neutral-dark: #363636;   /* For footer background */

    /* Shadows */
    --shadow-sm: 0 2px 4px rgba(0,0,0,0.05);
    --shadow-md: 0 4px 8px rgba(0,0,0,0.1);
    --shadow-lg: 0 8px 16px rgba(0,0,0,0.15);
    --shadow-inset: inset 0 1px 2px rgba(10,10,10,.1);

    /* Transitions */
    --transition-fast: all 0.2s ease-in-out;
    --transition-medium: all 0.3s ease-in-out;
    --transition-slow: all 0.5s ease-in-out;

    /* Sizing & Spacing */
    --navbar-height: 52px; /* Bulma's default navbar height */
    --section-padding: 3rem 1.5rem;
    --content-padding-top: calc(var(--navbar-height) + 30px); /* For pages with fixed navbar */
    --card-image-height: 200px; /* Fixed height for card images */
}

/* General Body Styles */
body {
    font-family: var(--font-secondary);
    background-color: var(--color-background);
    color: var(--color-text-main);
    line-height: 1.6;
    font-size: 16px;
    overflow-x: hidden; /* Prevent horizontal scroll */
}

/* Headings */
h1, h2, h3, h4, h5, h6,
.title, .subtitle {
    font-family: var(--font-primary);
    color: var(--color-text-headings);
    font-weight: 600; /* Bolder for Inter */
}

.title {
    margin-bottom: 1rem; /* Default Bulma title margin is often too large */
}

.subtitle {
    color: var(--color-text-muted);
    font-weight: 400; /* Lighter for IBM Plex Sans */
}

/* Links */
a {
    color: var(--color-primary-dark);
    transition: var(--transition-fast);
    text-decoration: none;
}

a:hover {
    color: var(--color-button-link-hover-bg);
    text-decoration: underline;
}

/* Global Button Styles */
.button, button, input[type="submit"], input[type="button"] {
    font-family: var(--font-primary);
    font-weight: 500;
    border-radius: 4px;
    transition: var(--transition-medium), transform 0.1s ease-out;
    box-shadow: var(--shadow-sm);
    border: 1px solid transparent;
    padding: 0.75em 1.5em;
    cursor: pointer;
}

.button:hover, button:hover, input[type="submit"]:hover, input[type="button"]:hover {
    transform: translateY(-2px) scale(1.02);
    box-shadow: var(--shadow-md);
}

.button:active, button:active, input[type="submit"]:active, input[type="button"]:active {
    transform: translateY(0px) scale(0.98);
    box-shadow: var(--shadow-sm);
}

/* Bulma Button Overrides/Enhancements */
.button.is-primary {
    background-color: var(--color-button-primary-bg);
    border-color: transparent;
    color: var(--color-button-primary-text);
}
.button.is-primary:hover {
    background-color: var(--color-button-primary-hover-bg);
    border-color: transparent;
    color: var(--color-button-primary-text);
}

.button.is-link { /* Often used for main CTA */
    background-color: var(--color-button-link-bg);
    color: var(--color-button-link-text);
    border-color: transparent;
}
.button.is-link:hover {
    background-color: var(--color-button-link-hover-bg);
    color: var(--color-button-link-text);
    border-color: transparent;
}

.button.is-light {
    background-color: var(--color-neutral-lightest);
    color: var(--color-text-headings);
    border: 1px solid var(--color-border);
}
.button.is-light:hover {
    background-color: var(--color-accent-light);
}

.button.is-outlined {
    background-color: transparent;
    border-width: 2px;
}
.button.is-primary.is-outlined {
    border-color: var(--color-button-primary-bg);
    color: var(--color-button-primary-bg);
}
.button.is-primary.is-outlined:hover {
    background-color: var(--color-button-primary-bg);
    color: var(--color-button-primary-text);
}
.button.is-link.is-outlined {
    border-color: var(--color-button-link-bg);
    color: var(--color-button-link-bg);
}
.button.is-link.is-outlined:hover {
    background-color: var(--color-button-link-bg);
    color: var(--color-button-link-text);
}


/* Sections */
.section {
    padding: var(--section-padding);
}

.section.has-background-light {
    background-color: var(--color-neutral-light);
}

.section-title {
    text-align: center;
    margin-bottom: 2.5rem; /* Increased from 2rem for better separation */
    font-size: 2.5rem; /* Consistent with HTML */
    color: var(--color-text-headings);
    font-weight: 700;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.05);
}

/* Navbar (Fixed Header) */
.navbar.is-fixed-top {
    background-color: var(--color-neutral-lightest);
    box-shadow: var(--shadow-md);
    min-height: var(--navbar-height);
    z-index: 1000;
}

.navbar-item, .navbar-link {
    font-family: var(--font-primary);
    color: var(--color-text-main);
    font-weight: 500;
    transition: var(--transition-fast);
}
.navbar-item:hover, .navbar-link:hover,
.navbar-item.is-active, .navbar-link.is-active {
    background-color: var(--color-accent-light);
    color: var(--color-primary-dark);
}
.navbar-burger span {
    background-color: var(--color-text-headings);
}

/* Hero Section */
#hero.hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(45deg, var(--color-primary-light), var(--color-primary-dark)); /* Fallback */
}

.hero-background-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensures the image covers the area */
    object-position: center;
    z-index: 1;
    background-size: cover;
    background-repeat: no-repeat;
    filter: brightness(0.6) contrast(0.9); /* Darken and slightly adjust contrast */
}

.hero .hero-body {
    position: relative;
    z-index: 2; /* Content above background image */
    display: flex;
    align-items: center;
    justify-content: center;
    /* min-height will be handled by is-large, is-fullheight etc. */
}

.hero .title, .hero .subtitle {
    color: var(--color-text-light); /* White text on hero */
    text-shadow: 1px 1px 3px rgba(0,0,0,0.6); /* Stronger shadow for readability */
}

/* Card Styles */
.card {
    background-color: var(--color-neutral-lightest);
    box-shadow: var(--shadow-md);
    border-radius: 8px; /* Softer radius */
    transition: var(--transition-medium);
    overflow: hidden; /* To contain border-radius for images */
    display: flex;
    flex-direction: column;
    height: 100%; /* Make cards in a row same height */
}

.card:hover {
    transform: translateY(-5px) scale(1.01);
    box-shadow: var(--shadow-lg);
}

.card .card-image, /* For Bulma structure */
.card .image-container /* For custom structure if needed */ {
    overflow: hidden; /* Important for object-fit and border-radius */
    position: relative;
    width: 100%;
    height: var(--card-image-height); /* Fixed height for image consistency */
    display: block; /* Ensure it takes up width */
}

.card .card-image img,
.card .image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensures image covers the container without distortion */
    object-position: center;
    display: block;
    border-top-left-radius: 8px; /* Match card radius if image is at top */
    border-top-right-radius: 8px;
}

.card .card-content {
    padding: 1.5rem;
    text-align: left; /* Default, can be overridden */
    flex-grow: 1; /* Allows content to fill space, pushing footer down */
    display: flex;
    flex-direction: column;
}
.card .card-content .title,
.card .card-content .subtitle {
    margin-bottom: 0.75rem;
}
.card .card-content .content {
    font-size: 0.95rem;
    color: var(--color-text-muted);
    margin-bottom: 1rem;
    flex-grow: 1; /* Pushes button to bottom of content */
}

/* For cards where content should be centered, e.g., pricing */
.card.has-text-centered-content .card-content,
.card.has-text-centered-content .card-header {
    text-align: center;
}
.card.has-text-centered-content .card-content ul {
    text-align: left; /* Keep lists left-aligned unless specified */
    display: inline-block; /* Allows centering of the ul block */
}


/* Card Header for Pricing */
.card .card-header {
    background-color: var(--color-accent-light);
    border-bottom: 1px solid var(--color-neutral-medium);
    box-shadow: none;
}
.card .card-header-title {
    color: var(--color-text-headings);
    font-weight: 600;
}
.card .card-footer {
    border-top: 1px solid var(--color-neutral-medium);
    background-color: var(--color-neutral-lightest);
}
.card .card-footer-item {
    font-weight: 500;
    transition: var(--transition-fast);
}
.card .card-footer-item:hover {
    background-color: var(--color-accent-light);
    color: var(--color-primary-dark);
}


/* Read More Link Style */
.read-more-link {
    display: inline-block;
    margin-top: 1rem;
    font-weight: 600;
    color: var(--color-primary-dark);
    text-decoration: none;
    position: relative;
}
.read-more-link::after {
    content: '→';
    margin-left: 0.5em;
    transition: var(--transition-fast);
}
.read-more-link:hover::after {
    transform: translateX(3px);
}
.card-content .button.is-small {
    margin-top: auto; /* Pushes button to bottom of card-content */
    align-self: flex-start; /* Aligns button to the left by default */
}


/* History Section */
#historie figure {
    margin-top: 2rem;
    text-align: center; /* Center the image and caption */
}
#historie figure img {
    border-radius: 8px;
    box-shadow: var(--shadow-md);
    max-width: 100%;
    height: auto;
}
#historie figcaption {
    margin-top: 0.5rem;
    font-size: 0.9rem;
    color: var(--color-text-muted);
}

/* Events Calendar */
#kalendar-akci .box {
    background-color: var(--color-neutral-lightest);
    box-shadow: var(--shadow-lg);
    border-radius: 8px;
    padding: 2rem;
}
#kalendar-akci .box ul li {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--color-neutral-medium);
    font-size: 1rem;
}
#kalendar-akci .box ul li:last-child {
    border-bottom: none;
}
#kalendar-akci .box strong {
    color: var(--color-text-headings);
}

/* Community Section */
.parallax-background {
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
}
.parallax-background .dark-overlay {
    background-color: rgba(253, 240, 230, 0.85); /* From HTML inline, more opaque */
    padding: 3rem 1.5rem;
    border-radius: 8px;
}
/* If an actual overlay is needed on top of the background image for text readability: */
.parallax-background::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.3); /* Dark semi-transparent overlay */
    z-index: 1; /* Ensure it's below the content but above the image */
}
.parallax-background > .container { /* Ensure content is above the overlay */
    position: relative;
    z-index: 2;
}

.image-gallery .column {
    padding: 0.5rem;
}
.image-gallery img {
    border-radius: 4px;
    box-shadow: var(--shadow-md);
    width: 100%;
    height: 150px; /* Adjust as needed for gallery images */
    object-fit: cover;
    transition: var(--transition-medium);
}
.image-gallery img:hover {
    transform: scale(1.05);
    box-shadow: var(--shadow-lg);
}

/* Pricing Section Switch */
#cenik .checkbox {
    font-size: 1rem;
    color: var(--color-text-main);
}
#cenik .checkbox input[type="checkbox"] {
    margin-right: 0.5em;
    /* Custom switch styling can be added here if Bulma's default is not sufficient */
}

/* External Resources Section Cards */
#externi-zdroje .card .card-content {
    padding: 1rem; /* Slightly smaller padding for these info cards */
}
#externi-zdroje .card .title.is-5 {
    margin-bottom: 0.5rem;
    font-size: 1.1rem; /* Smaller title for resource links */
}
#externi-zdroje .card .content {
    font-size: 0.9rem;
    color: var(--color-text-muted);
}

/* Contact Form */
#kontakt .label {
    color: var(--color-text-headings);
    font-weight: 500;
}
#kontakt .input, #kontakt .textarea {
    border: 1px solid var(--color-border);
    border-radius: 4px;
    box-shadow: var(--shadow-inset);
    transition: var(--transition-fast);
    font-family: var(--font-secondary);
}
#kontakt .input:focus, #kontakt .textarea:focus {
    border-color: var(--color-primary-dark);
    box-shadow: 0 0 0 0.125em rgba(221, 160, 221, 0.25); /* Bulma's focus style with custom color */
}

/* Footer */
.footer {
    background-color: var(--color-neutral-dark);
    color: var(--color-neutral-light);
    padding: 3rem 1.5rem 2rem; /* Slightly less padding at bottom */
}
.footer .title {
    color: var(--color-neutral-lightest);
    margin-bottom: 1rem;
}
.footer p, .footer li {
    color: var(--color-neutral-light);
    font-size: 0.95rem;
}
.footer a {
    color: var(--color-button-primary-bg); /* Pastel blue from buttons */
    font-weight: 500;
}
.footer a:hover {
    color: var(--color-primary-light); /* Pastel orange from hero */
    text-decoration: underline;
}
.footer hr {
    background-color: #4a4a4a; /* Bulma's default dark hr */
    margin: 2rem 0;
}
.footer .content.has-text-centered p {
    font-size: 0.9rem;
}

/* Social media links in footer - text based */
.footer .column ul {
    list-style: none;
    margin-left: 0;
}
.footer .column ul li {
    margin-bottom: 0.5rem;
}
/* No specific icon styles needed as they are text links */


/* Page Specific Styles */

/* success.html */
body.page-success {
    display: flex;
    flex-direction: column; /* Ensure header/footer stack correctly if they exist */
    min-height: 100vh;
}
.success-container {
    flex-grow: 1; /* Takes up available space */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 2rem;
    background-color: var(--color-background); /* Match site background */
}
.success-container .box {
    background-color: var(--color-neutral-lightest);
    padding: 2rem 3rem;
    border-radius: 8px;
    box-shadow: var(--shadow-lg);
    max-width: 500px;
}
.success-container .title {
    color: var(--color-primary-dark);
    margin-bottom: 1rem;
}
.success-container p {
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
    color: var(--color-text-main);
}
.success-container .button {
    margin-top: 1rem;
}


/* privacy.html, terms.html, about.html, contacts.html (content pages) */
.content-page {
    padding-top: var(--content-padding-top); /* Ensure content is below fixed navbar */
    padding-bottom: 3rem;
}
.content-page .section-title {
    margin-top: 1rem; /* Add some space if section-title is first element */
}
.content-page .content h1,
.content-page .content h2,
.content-page .content h3 {
    margin-top: 2rem;
    margin-bottom: 1rem;
}
.content-page .content p,
.content-page .content ul,
.content-page .content ol {
    margin-bottom: 1rem;
    line-height: 1.7;
}


/* Cookie Consent Popup (minimal inline from HTML, can be enhanced here if needed) */
#cookieConsentPopup {
    /* Basic styles are inline in HTML, additional enhancements can go here */
    box-shadow: 0 -2px 10px rgba(0,0,0,0.2);
}
#cookieConsentPopup p a:hover {
    color: var(--color-primary-light);
}


/* Morphing Animations (Subtle examples) */
/* Applied to .button hover already */
.card { /* Example: subtle lift and shadow morph */
    transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1),
                box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* Utility Classes */
.has-text-shadow {
    text-shadow: 1px 1px 3px rgba(0,0,0,0.5);
}

/* Ensure high contrast for text on backgrounds (global check) */
/* This is mostly handled by variable choices, but could include overrides if necessary */

/* Ensure main container has some breathing room if needed */
.main-container {
    /* Potentially add max-width and margin:auto if not using Bulma's .container for overall page width control */
}

/* Responsive Adjustments (Bulma handles most, add specifics if needed) */
@media screen and (max-width: 768px) {
    .section-title {
        font-size: 2rem;
    }
    .hero.is-large .hero-body, .hero.is-fullheight .hero-body {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .footer .columns {
        text-align: center;
    }
    .footer .column {
        margin-bottom: 1.5rem;
    }
    .pricing-table .column {
        margin-bottom: 1.5rem;
    }
}

.navbar-item .title.is-5 {
    margin: 0;
}