:root {
    --red: #C70000;
    --white: #fff;
    --dark-gray: #383845;
    --beige: #E6DED2;
    --green: #32BC00;
    --dark-beige: #D5C0A1;
    --hover: #01C78F;
    --gray: #dedede;
    --black: #000;

    --ring-color: var(--green);
    --light-gray: #eee;

    --font-family-base: 'Barlow', 'Helvetica Neue', Helvetica, Arial, sans-serif;

    --container-padding-x: 2.25rem;
    --container-margin-bottom: 5.25rem;
}

*,
*::before,
*::after {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
    border-color: var(--light-gray);
    margin: 0;
    padding: 0;
}

ul,
ol {
  list-style-position: outside;
  padding-inline-start: 1.25rem;
}

p {
    margin-block-start: 1em;
    margin-block-end: 1em;
}

/* skryti elementu dokud neni Alpine.js fully loaded */
[x-cloak] {
    display: none !important;
}

html {
    scroll-behavior: smooth;
}

body {
    /* zakladni font pro odstavce */
    font-family: var(--font-family-base);
    font-size: 16px;
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.4;
    letter-spacing: normal;
}

.layout-container {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.layout-container main {
    flex-grow: 1;
}

/* h1, h2, h3, h4 {
    margin: 0;
} */

h1,
h2,
h3,
h4,
.h1,
.h2,
.h3,
.h4 {
    color: var(--red);
}

h1,
.h1 {
    font-size: 50px;
    font-weight: 600;
    font-stretch: normal;
    font-style: normal;
    line-height: normal;
    letter-spacing: normal;
    margin-top: 0.67em;
    margin-bottom: 0.67em;
}

h2,
.h2 {
    font-size: 32px;
    font-weight: 600;
    font-stretch: normal;
    font-style: normal;
    line-height: normal;
    letter-spacing: normal;
    margin-top: 0.67em;
    margin-bottom: 0.67em;
}

h3,
.h3 {
    font-size: 25px;
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.4;
    letter-spacing: normal;
    margin-top: 0.67em;
    margin-bottom: 0.67em;
}

h4,
.h4 {
    font-size: 20px;
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.4;
    letter-spacing: normal;
    margin-top: 0.67em;
    margin-bottom: 0.67em;
}


p {
    font-size: 16px;
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.4;
    letter-spacing: normal;
}

.p-bold,
p strong {
    font-size: 16px;
    font-weight: 600;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.4;
    letter-spacing: normal;
}

a {
    color: inherit;
    text-decoration: underline;
}

.container {
    width: 100%;
    padding-left: var(--container-padding-x);
    padding-right: var(--container-padding-x);
    margin-bottom: var(--container-margin-bottom);
}

.container.container-highlighted {
    margin-bottom: 0;
}

.container__inner {
    max-width: 1260px;
    margin: 0 auto;
}

.text-left {
    text-align: left;
}

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

.text-right {
    text-align: right;
}

.text-justify {
    text-align: justify;
}

.text-red {
    color: var(--red) !important;
}

.text-black {
    color: var(--black) !important;
}

.text-dark-gray {
    color: var(--dark-gray) !important;
}

.drop-shadow {
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
}

.bg-light-gray-gradient {
    background: linear-gradient(to bottom, #EBEBEB, #FFFFFF);
}

.bg-light-gray-gradient-overlay {
    /* castecne pruhledny bg gradient */
    background: linear-gradient(to bottom, rgba(235, 235, 235, 0.90), rgba(255, 255, 255, 0.90));
}

.bg-logo-gray {
    position: relative;
    background: 
        url('../../images/bg-logo.svg') no-repeat center center, /* logo */
        linear-gradient(to bottom, #F5F2ED 0%, #E6DED2 100%);   /* gradient */
    background-size: auto, cover; /* logo auto, gradient přes celý box */    
}

.bg-logo-transparent {
    position: relative;
    background-color: transparent;
    background-image: url('../../images/bg-logo-transparent.svg');
    background-repeat: no-repeat;
    background-position: top center;
    background-size: auto;
}

.button {
    background-color: var(--green);
    color: var(--white);
    font-size: 19px;
    font-weight: 600;
    padding: 0.75rem 1.25rem;
    border-radius: 9999px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    cursor: pointer;
    line-height: 23px;
    transition: background-color 0.3s ease, transform 0.3s ease, padding-right 0.3s ease;
    position: relative;    
}

.button::after {
  content: "→";
  position: absolute;
  right: 1.25rem;
  top: 50%;
  transform: translateY(-50%) translateX(0);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.button:hover,
.button:focus {
    background-color: var(--hover);
    padding-right: 2.5rem;
}

.button:hover::after,
.button:focus::after {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0.25rem);
}

.button--outline {
    background-color: transparent;
    color: var(--green);
    border: 2px solid var(--green);
    font-size: 19px;
    font-weight: 600;
    padding: 0.75rem 1.25rem;
    border-radius: 9999px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    cursor: pointer;
    transition: all 0.3s ease;
    line-height: 23px;
}

.button--outline:hover,
.button-outline:focus {
    background-color: var(--green);
    color: var(--white);
}

.button--outline:disabled,
.button--outline.disabled {
    color: #aaa;
    border-color: #ccc;
    cursor: not-allowed;
    pointer-events: none;
}



/* Upravy pro mobil */
@media (max-width: 768px) {

    :root {
        --container-padding-x: 0.75rem;
    }

    h1,
    .h1 {
        font-size: 44px;
    }

    h2,
    .h2 {
        font-size: 30px;
    }

    h3,
    .h3 {
        font-size: 22px;
    }
}

.ring,
.focus-ring:focus {
    box-shadow: 0 0 0 2px var(--ring-color);
}

.ajax-progress {
    display: none;
}

.alert--warning {
    max-width: 700px;
    margin: 1rem auto;
    background-color: #fff4e5;
    border-left: 4px solid #ffa500;
    color: #663c00;
    padding: 1rem 1.25rem;
    border-radius: 4px;
    font-size: 1rem;
    line-height: 1.5;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.alert--warning::before {
    content: "⚠️";
    font-size: 1.25rem;
    flex-shrink: 0;
}


/* ====== */
.telefon::before,
.email::before,
.adresa::before {
    content: '';
    display: inline-block;
    width: 30px;
    height: 30px;
    margin-right: 0.5rem;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    vertical-align: middle;
}

.telefon::before {
    background-image: url('../../images/icons/telefon.svg');
}

.email::before {
    background-image: url('../../images/icons/email.svg');
}

.adresa::before {
    background-image: url('../../images/icons/adresa.svg');
}

.text-red.telefon::before {
    background-image: url('../../images/icons/telefon-red.svg');
}

.text-red.email::before {
    background-image: url('../../images/icons/email-red.svg');
}

.text-red.adresa::before {
    background-image: url('../../images/icons/adresa-red.svg');
}