/* ==========================================================================
   Zdravé spaní Zlín – vzhled webu (child theme pro YOOtheme Pro)
   Načítá se automaticky přes YOOtheme (~theme/css/custom.css) po theme.css.
   ========================================================================== */

/* Fonty (hostované lokálně, variabilní) ----------------------------------- */
@font-face {
    font-family: 'Source Serif 4';
    font-style: normal;
    font-weight: 600 700;
    font-display: swap;
    src: url(../fonts/SourceSerif4-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Source Serif 4';
    font-style: normal;
    font-weight: 600 700;
    font-display: swap;
    src: url(../fonts/SourceSerif4-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url(../fonts/Inter-latin-ext.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url(../fonts/Inter-latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Barvy a základ --------------------------------------------------------- */
:root {
    --zs-green: #2f4a35;
    --zs-green-dark: #233a29;
    --zs-bg: #fbf9f5;
    --zs-sand: #f1ebe1;
    --zs-line: #e8e1d5;
    --zs-text: #3a3833;
    --zs-heading: #1d1c19;
    --zs-muted: #6f6a61;
    --zs-serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
    --zs-sans: 'Inter', 'Segoe UI', Arial, sans-serif;
    --zs-radius: 8px;
}

html {
    font-family: var(--zs-sans);
    font-size: 16px;
    line-height: 1.6;
    color: var(--zs-text);
    background: var(--zs-bg);
}
body, .tm-page { background: var(--zs-bg); }

h1, h2, h3, h4, h5, h6,
.uk-h1, .uk-h2, .uk-h3, .uk-h4, .uk-h5, .uk-h6,
.uk-heading-small, .uk-heading-medium, .uk-heading-large {
    font-family: var(--zs-serif);
    font-weight: 700;
    color: var(--zs-heading);
    letter-spacing: -0.01em;
    text-transform: none;
}
h1, .uk-h1 { font-size: clamp(2rem, 3.2vw, 2.75rem); line-height: 1.12; }
h2, .uk-h2 { font-size: clamp(1.75rem, 2.6vw, 2.3rem); line-height: 1.15; }
h3, .uk-h3 { font-size: 1.45rem; line-height: 1.25; }
h4, .uk-h4 { font-size: 1.15rem; line-height: 1.3; }
h5, .uk-h5 { font-size: 1.05rem; line-height: 1.35; }
.uk-heading-medium { font-size: clamp(2.4rem, 4.6vw, 4rem); line-height: 1.06; letter-spacing: -0.02em; }

/* nadpisy bez dekorací stylu tech-space */
.uk-heading-divider, .uk-heading-bullet, .uk-heading-line { border: 0; }
h1 span, h2 span { color: inherit; }

a, .uk-link { color: var(--zs-green); }
a:hover, .uk-link:hover { color: var(--zs-green-dark); }

.uk-text-lead { font-family: var(--zs-sans); font-size: 1.15rem; line-height: 1.55; color: #4c4840; }
.uk-text-muted { color: var(--zs-muted) !important; }
.uk-text-meta { color: var(--zs-muted); }
.uk-text-primary { color: var(--zs-green) !important; }

.uk-section-default { background: var(--zs-bg); }
.uk-section-muted { background: var(--zs-sand); }
.uk-section-primary { background: var(--zs-green); }
.uk-section-large { padding-top: 80px; padding-bottom: 80px; }
@media (max-width: 959px) {
    .uk-section-large { padding-top: 56px; padding-bottom: 56px; }
}

/* Tlačítka ---------------------------------------------------------------- */
.uk-button {
    font-family: var(--zs-sans);
    font-weight: 600;
    font-size: 15px;
    line-height: 50px;
    padding: 0 26px;
    border-radius: 6px !important;
    border-width: 1.5px;
    border-style: solid;
    margin-left: 0;
    letter-spacing: 0;
}
.uk-button .uk-icon { margin-left: 4px; }
.uk-button .uk-icon:first-child { margin-left: 0; margin-right: 8px; }
.uk-button-small { line-height: 40px; padding: 0 18px; font-size: 14px; }

.uk-button-primary { background: var(--zs-green); border-color: var(--zs-green); color: #fff; }
.uk-button-primary:hover, .uk-button-primary:focus { background: var(--zs-green-dark); border-color: var(--zs-green-dark); color: #fff; }

.uk-button-default { background: transparent; border-color: #3a3833; color: var(--zs-heading); }
.uk-button-default:hover, .uk-button-default:focus { background: var(--zs-heading); border-color: var(--zs-heading); color: #fff; }

.uk-button-secondary { background: #fff; border-color: #fff; color: var(--zs-green); }
.uk-button-secondary:hover, .uk-button-secondary:focus { background: var(--zs-sand); border-color: var(--zs-sand); color: var(--zs-green-dark); }

.uk-light .uk-button-default { background: transparent; border-color: rgba(255,255,255,.75); color: #fff; }
.uk-light .uk-button-default:hover { background: #fff; border-color: #fff; color: var(--zs-green); }

.uk-button-text {
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.5;
    padding: 0;
    border: 0;
    color: var(--zs-heading);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.uk-button-text::before { display: none; }
.uk-button-text::after {
    content: "";
    display: inline-block;
    width: 12px; height: 12px;
    margin-left: 6px;
    vertical-align: -1px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1 6h9M6.5 2.5 10 6l-3.5 3.5' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1 6h9M6.5 2.5 10 6l-3.5 3.5' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Globální prvky (podstránky, ZOO katalog, formulář) -------------------- */
.uk-card-default {
    background: #fff;
    border: 1px solid var(--zs-line);
    border-radius: var(--zs-radius);
    box-shadow: none;
}
.uk-card-default .uk-card-media-top, .uk-card-default .uk-card-media-top img { border-radius: var(--zs-radius) var(--zs-radius) 0 0; }
.uk-pagination > .uk-active > * { background: var(--zs-green); color: #fff; border-radius: 4px; }
.uk-pagination > * > :hover { color: var(--zs-green); }
.uk-breadcrumb > * > * { font-size: 13px; color: var(--zs-muted); }
.uk-breadcrumb > :last-child > * { color: var(--zs-heading); }

#userForm .rsform-submit-button {
    background: var(--zs-green);
    border: 1.5px solid var(--zs-green);
    color: #fff;
    border-radius: 6px;
    padding: 12px 24px;
    font: 600 15px/1.2 var(--zs-sans);
}
#userForm .rsform-submit-button:hover { background: var(--zs-green-dark); border-color: var(--zs-green-dark); cursor: pointer; }
#userForm input[type=text], #userForm input[type=email], #userForm input[type=tel], #userForm textarea {
    border: 1px solid #d9d1c3;
    border-radius: 6px;
    background: #fff;
    padding: 10px 12px;
}
#userForm input:focus, #userForm textarea:focus { outline: none; border-color: var(--zs-green); box-shadow: 0 0 0 3px rgba(47,74,53,.12); }

/* Hlavička --------------------------------------------------------------- */
.tm-header .uk-navbar-container:not(.uk-navbar-transparent),
.tm-header-mobile .uk-navbar-container:not(.uk-navbar-transparent) {
    background: rgba(251, 249, 245, .96);
    border-bottom: 1px solid var(--zs-line);
}
.tm-header .uk-navbar-nav > li > a {
    font-family: var(--zs-sans);
    font-size: 15px;
    font-weight: 500;
    color: var(--zs-heading);
    min-height: 88px;
    padding: 0 16px;
    text-transform: none;
    letter-spacing: 0;
}
.tm-header .uk-navbar-nav > li > a::before,
.tm-header .uk-navbar-nav > li > a::after { display: none; }
.tm-header .uk-navbar-nav > li:hover > a,
.tm-header .uk-navbar-nav > li > a:focus,
.tm-header .uk-navbar-nav > li.uk-active > a { color: var(--zs-green); }
.tm-header .uk-navbar-nav > li.uk-active > a { box-shadow: inset 0 -2px 0 var(--zs-green); }
.tm-header .uk-navbar-nav { gap: 0; }
.tm-header .uk-navbar-right > .uk-navbar-item,
.tm-header .uk-navbar-right > div:not(.uk-navbar-nav) { margin-left: 20px; }
.tm-header .uk-logo img { max-height: 54px; width: auto; }
.tm-header .uk-navbar { flex-wrap: nowrap; }
.zs-header-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 46px;
    line-height: 1;
    padding: 0 20px;
    font-size: 14.5px;
    white-space: nowrap;
}
.zs-header-cta.uk-button .uk-icon { margin: 0 8px 0 0; }
.zs-header-cta .uk-icon svg { display: block; }
.zs-header-cta, .zs-header-cta:hover { color: #fff !important; }
/* užší desktop: zhuštěné menu, tlačítko jen s ikonou */
@media (max-width: 1399px) {
    .tm-header .uk-navbar-nav > li > a { padding: 0 10px; font-size: 14.5px; }
    .tm-header .uk-logo img { max-height: 44px; }
    .tm-header .uk-navbar-right > div:not(.uk-navbar-nav) { margin-left: 12px; }
    .zs-header-cta { padding: 0; width: 46px; }
    .zs-header-cta.uk-button .uk-icon { margin: 0; }
    .zs-header-cta-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* Úvodní sekce (hero) ---------------------------------------------------- */
.zs-hero .uk-section { min-height: 560px; display: flex; align-items: center; }
.zs-hero .uk-section > .uk-container,
.zs-hero .uk-section > div { width: 100%; }
.zs-hero .uk-heading-medium { margin-bottom: 18px; }
.zs-hero .uk-text-lead { color: #4c4840; }
.zs-hero-buttons .uk-grid > * { width: 100%; }
.zs-hero-buttons .uk-button { min-width: 240px; text-align: left; display: inline-flex; justify-content: space-between; align-items: center; }
@media (min-width: 640px) {
    .zs-hero-buttons .uk-grid { flex-direction: column; align-items: flex-start; }
    .zs-hero-buttons .uk-grid > * { width: auto; }
}
@media (max-width: 959px) {
    .zs-hero .uk-section { min-height: 480px; }
    .zs-hero .uk-position-cover { background-image: linear-gradient(180deg, rgba(247,243,236,.92) 0%, rgba(247,243,236,.85) 60%, rgba(247,243,236,.55) 100%) !important; }
}

/* Pruh pod hero */
.zs-strip { border-bottom: 1px solid var(--zs-line); background: #fff; }
.zs-strip-text {
    margin: 0;
    padding: 22px 0;
    text-align: center;
    font-size: 15px;
    font-weight: 500;
    color: var(--zs-heading);
}
.zs-strip-text .uk-icon { color: var(--zs-heading); margin-right: 8px; vertical-align: -4px; }

/* Karty (kategorie + produkty) ----------------------------------------- */
.zs-cards .uk-card-default {
    background: #fff;
    border: 1px solid var(--zs-line);
    border-radius: var(--zs-radius);
    box-shadow: none;
    overflow: hidden;
    transition: box-shadow .2s ease, transform .2s ease;
}
.zs-cards .uk-card-default:hover { box-shadow: 0 10px 28px rgba(40, 34, 24, .08); transform: translateY(-2px); }
.zs-cards .uk-card-media-top img { display: block; width: 100%; object-fit: cover; }
.zs-cards .uk-card-body { padding: 16px 18px; }
.zs-cards .el-title { margin: 0; }

.zs-cat-cards .uk-card-media-top img { aspect-ratio: 800 / 760; }
.zs-cat-cards .uk-card-body {
    position: relative;
    padding-right: 60px;
    min-height: 62px;
    display: flex;
    align-items: center;
}
.zs-cat-cards .el-title { font-size: 1.05rem; font-family: var(--zs-serif); }
.zs-cat-cards .uk-card-body::after {
    content: "";
    position: absolute;
    right: 16px; top: 50%;
    width: 30px; height: 30px;
    margin-top: -15px;
    border-radius: 50%;
    background: var(--zs-sand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6h8M6.5 2.5 10 6l-3.5 3.5' fill='none' stroke='%231d1c19' stroke-width='1.4'/%3E%3C/svg%3E") center / 12px no-repeat;
    transition: background-color .2s ease;
}
.zs-cat-cards .uk-card-default:hover .uk-card-body::after { background-color: #e4dac8; }

.zs-product-cards .uk-card-media-top { padding: 18px 18px 0; background: #fff; }
.zs-product-cards .uk-card-media-top img { aspect-ratio: 600 / 420; object-fit: contain; }
.zs-product-cards .el-title { font-family: var(--zs-sans); font-size: 15px; font-weight: 600; }
.zs-product-cards .uk-card-body { padding-top: 12px; }
.zs-product-cards .el-link { margin-top: 4px !important; }

@media (max-width: 639px) {
    .zs-cards .uk-card-body { padding: 12px 12px; }
    .zs-cat-cards .uk-card-body { padding-right: 44px; min-height: 52px; }
    .zs-cat-cards .el-title { font-size: .95rem; line-height: 1.25; }
    .zs-cat-cards .uk-card-body::after { right: 10px; width: 26px; height: 26px; margin-top: -13px; }
    .zs-product-cards .uk-card-media-top { padding: 10px 10px 0; }
    .zs-product-cards .el-title { font-size: 14px; }
}

/* Proč si vybrat právě nás ------------------------------------------------ */
.zs-why .el-image { width: 72px; height: 72px; color: var(--zs-green); }
/* liniové ikony – uk-svg jinak plní cesty barvou textu */
.zs-why svg.el-image *, .zs-eshop-text svg * { fill: none !important; }
.zs-why svg.el-image [fill="#fff"] { fill: var(--zs-sand) !important; }
.zs-why .el-title { font-size: 1.1rem; margin-top: 18px !important; }
.zs-why .el-content { color: #57534b; font-size: 15px; line-height: 1.6; max-width: 220px; margin-left: auto; margin-right: auto; }
.zs-why .uk-grid-divider > :not(.uk-first-column)::before { border-left-color: #ddd3c3; }

/* Poradíme s výběrem ------------------------------------------------------ */
.zs-advice .uk-section { min-height: 380px; display: flex; align-items: center; }
.zs-advice .uk-section > div { width: 100%; }
@media (max-width: 959px) {
    .zs-advice .uk-position-cover { background-image: linear-gradient(180deg, rgba(241,235,225,.94) 0%, rgba(241,235,225,.8) 70%, rgba(241,235,225,.5) 100%) !important; }
}

/* E-shop banner ----------------------------------------------------------- */
.zs-eshop.uk-grid {
    margin-left: 0;
    position: relative;
    overflow: hidden;
    align-items: center;
    gap: 24px;
    padding: 30px 44px;
    background: var(--zs-sand);
    border: 1px solid var(--zs-line);
    border-radius: 10px;
}
.zs-eshop.uk-grid > * { padding-left: 0 !important; margin-top: 0 !important; }
.zs-eshop::after {
    content: "";
    position: absolute;
    right: -18px; bottom: -26px;
    width: 140px; height: 140px;
    background: url(../../../images/novy-web/ikony/list.svg) center / contain no-repeat;
    opacity: .14;
    pointer-events: none;
}
.zs-eshop > :last-child { position: relative; z-index: 1; margin-right: 90px; }
.zs-eshop-text { display: flex; align-items: center; gap: 32px; }
.zs-eshop-text svg, .zs-eshop-text img { flex: none; width: 52px; height: 52px; color: var(--zs-heading); }
.zs-eshop-text svg * { stroke: var(--zs-heading); }
.zs-eshop-title { font-size: 1.35rem; margin: 0 0 4px; }
.zs-eshop-text p { margin: 0; color: #57534b; font-size: 15px; }
.zs-eshop .uk-button-default { line-height: 46px; }
@media (max-width: 959px) {
    .zs-eshop.uk-grid { padding: 26px 24px; }
    .zs-eshop > :last-child { margin-right: 0; }
    .zs-eshop-text { gap: 20px; }
}

/* Prodejna (zelená sekce v patičce) -------------------------------------- */
.zs-store .uk-section { padding-top: 70px; padding-bottom: 70px; }
.zs-eyebrow p {
    font-family: var(--zs-sans);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(255,255,255,.82);
}
.zs-store h2 { color: #fff; }
.zs-store .uk-text-lead, .zs-store p { color: rgba(255,255,255,.9); }
.zs-contact-list {
    list-style: none;
    margin: 28px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 18px 40px;
    font-size: 14.5px;
    color: #fff;
}
.zs-contact-list li { display: flex; align-items: center; gap: 12px; }
.zs-contact-list li > span:last-child { display: flex; flex-direction: column; }
.zs-contact-list li > span:last-child:not(:has(strong)) { display: block; }
.zs-contact-list strong { font-weight: 600; }
.zs-contact-list small { font-size: 12px; opacity: .8; }
.zs-contact-list a { color: #fff; }
.zs-store-buttons .uk-button { min-width: 230px; }
@media (max-width: 959px) {
    .zs-store .uk-position-cover { background-image: linear-gradient(180deg, rgba(47,74,53,.95) 0%, rgba(47,74,53,.9) 70%, rgba(47,74,53,.75) 100%) !important; }
}

/* Patička ---------------------------------------------------------------- */
.zs-footer .uk-section { padding-top: 44px; padding-bottom: 44px; }
.zs-footer, .zs-footer .uk-section { background: var(--zs-bg); }
.zs-footer .el-title, .zs-footer h3 { font-family: var(--zs-sans); font-size: 14px; font-weight: 600; letter-spacing: 0; }
.zs-footer .uk-text-small, .zs-footer .uk-text-small p { font-size: 13px; line-height: 1.6; color: var(--zs-muted); }
.zs-footer a { color: var(--zs-muted); }
.zs-footer a:hover { color: var(--zs-green); }
.zs-footer-list li { font-size: 13px; line-height: 1.6; padding: 0; margin: 0 !important; }
.zs-footer-list a { color: var(--zs-muted) !important; }
@media (min-width: 960px) {
    .zs-footer-row > :not(:first-child) { border-left: 1px solid var(--zs-line); }
    .zs-footer-row > :not(:first-child) > * { padding-left: 10px; }
}
