/* Atelier: counters, features, steps, FAQ and call to action.
   Kept apart from theme.css; colours come from the palette variables, so
   the blocks follow the section look (light, accent, dark, photo). */

.mf-icon { width: 1.5em; height: 1.5em; flex: none; }

/* Counters */
.stats__header { text-align: center; }
.stats__header .heading { margin-inline: auto; }
.stats__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr)); gap: clamp(1.75rem, 3vw, 2.5rem) clamp(1rem, 3vw, 2.5rem); text-align: center; }
.stat { display: grid; justify-items: center; gap: .35rem; }
.stat__icon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: color-mix(in srgb, var(--mf-accent, #a4522b) 12%, transparent); color: var(--mf-accent, #a4522b); margin-bottom: .35rem; }
.stat__icon .mf-icon { width: 1.6rem; height: 1.6rem; }
.stat__value { font-family: var(--mf-font-heading, Georgia, serif); font-weight: 500; font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.stat__label { color: var(--mf-muted, #6e665c); font-size: .95rem; letter-spacing: .02em; }
.stats--row .stat + .stat { position: relative; }
@media (min-width: 720px) {
    .stats--row .stat + .stat::before { content: ""; position: absolute; left: calc(clamp(1rem, 3vw, 2.5rem) / -2); top: 15%; bottom: 15%; border-left: 1px solid color-mix(in srgb, var(--mf-text, #1f1b16) 14%, transparent); }
}
.stats--cards .stat { padding: clamp(1.5rem, 3vw, 2.25rem) 1rem; border-radius: var(--mf-radius, 8px); background: var(--mf-surface, #fffdf9); box-shadow: 0 1px 0 color-mix(in srgb, var(--mf-text, #1f1b16) 6%, transparent); }

/* Features ("Prečo ja") */
.features__list { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 4vw, 3.5rem); }
.features--grid .features__list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.features--list .features__list { max-width: 820px; }
.feature { display: flex; gap: 1rem; align-items: flex-start; }
.features--grid .feature { flex-direction: column; }
.feature__icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 12px; background: color-mix(in srgb, var(--mf-accent, #a4522b) 12%, transparent); color: var(--mf-accent, #a4522b); flex: none; }
.feature__title { font-size: 1.35rem; margin-bottom: .35em; }
.feature__text { color: var(--mf-muted, #6e665c); margin: 0; }

/* Steps ("Ako to prebieha") */
.steps__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2rem; }
.step { position: relative; display: grid; gap: .5rem; align-content: start; }
.step__mark { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; border: 1px solid var(--mf-accent, #a4522b); background: var(--mf-bg, #f7f3ec); color: var(--mf-accent, #a4522b); font-family: var(--mf-font-heading, Georgia, serif); font-size: 1.25rem; position: relative; z-index: 1; }
.step__title { font-size: 1.3rem; margin: .5rem 0 0; }
.step__text { color: var(--mf-muted, #6e665c); margin: 0; }
.mf-section[class*="mf-section--bg-"] .step__mark { background: var(--mf-surface, #fffdf9); }
@media (min-width: 820px) {
    .steps__list { grid-template-columns: repeat(var(--steps, 4), minmax(0, 1fr)); gap: 2.5rem 2rem; }
    /* A thin line joins the marks of one row */
    .step:not(:last-child)::after { content: ""; position: absolute; top: 1.5rem; left: 3.5rem; right: -1.5rem; border-top: 1px dashed color-mix(in srgb, var(--mf-accent, #a4522b) 55%, transparent); }
    .step:nth-child(4n)::after { display: none; }
}
@media (max-width: 819px) {
    .step { grid-template-columns: 3rem 1fr; column-gap: 1rem; }
    .step__mark { grid-row: span 2; }
    .step__title { margin: 0; align-self: center; }
    .step__text { grid-column: 2; }
}

/* FAQ */
.faq__inner { display: grid; gap: 0 clamp(2rem, 6vw, 5rem); }
@media (min-width: 960px) {
    .faq__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); align-items: start; }
    .faq__inner .section__header { position: sticky; top: 6rem; }
}
.faq__list { border-top: 1px solid color-mix(in srgb, var(--mf-text, #1f1b16) 14%, transparent); }
.faq__item { border-bottom: 1px solid color-mix(in srgb, var(--mf-text, #1f1b16) 14%, transparent); }
.faq__item summary { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1.2rem 0; cursor: pointer; list-style: none; font-family: var(--mf-font-heading, Georgia, serif); font-size: 1.2rem; line-height: 1.3; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: ""; flex: none; width: .7rem; height: .7rem; border-right: 1.5px solid var(--mf-accent, #a4522b); border-bottom: 1.5px solid var(--mf-accent, #a4522b); transform: rotate(45deg) translate(-2px, -2px); transition: transform .2s ease; }
.faq__item[open] summary::after { transform: rotate(-135deg) translate(-2px, -2px); }
.faq__item summary:hover { color: var(--mf-accent, #a4522b); }
.faq__answer { padding: 0 2rem 1.4rem 0; color: var(--mf-muted, #6e665c); }

/* Call to action: an accent panel; on a coloured or photo section the
   section itself is the panel, so the box drops its own background */
.cta__box {
    --mf-text: var(--mfx-accent-contrast, #fff);
    --mf-muted: color-mix(in srgb, var(--mfx-accent-contrast, #fff) 80%, transparent);
    --mf-accent: var(--mfx-accent-contrast, #fff);
    --mf-accent-contrast: var(--mfx-accent, #a4522b);
    display: grid; justify-items: center; gap: 1rem; text-align: center;
    padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.5rem, 5vw, 4rem);
    border-radius: var(--mf-radius, 10px);
    background: var(--mfx-accent, #a4522b);
    color: var(--mf-text);
}
.mf-section--bg-accent .cta__box, .mf-section--bg-dark .cta__box, .mf-section--bg-image .cta__box {
    --mf-text: inherit; --mf-muted: inherit; --mf-accent: inherit; --mf-accent-contrast: inherit;
    padding: 0; background: none; border-radius: 0;
}
.mf-section--bg-dark .cta__box, .mf-section--bg-image .cta__box { --mf-accent: var(--mfx-accent); --mf-accent-contrast: var(--mfx-accent-contrast); }
.mf-section--bg-accent .cta__box { --mf-accent: var(--mfx-accent-contrast); --mf-accent-contrast: var(--mfx-accent); }
.cta__icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; border: 1px solid color-mix(in srgb, currentColor 35%, transparent); }
.cta__title { margin: 0; }
.cta__text { margin: 0; max-width: 36em; color: var(--mf-muted); font-size: 1.1rem; }
.cta__button { margin-top: .5rem; }
@media (min-width: 820px) {
    .cta--split .cta__box { grid-template-columns: auto 1fr auto; justify-items: start; text-align: left; align-items: center; gap: 1.5rem 2rem; }
    .cta--split .cta__box:not(:has(.cta__icon)) { grid-template-columns: 1fr auto; }
    .cta--split .cta__button { margin: 0; }
}

/* "Rozšírené" block settings: screens and heading alignment */
@media (max-width: 819px) { .mf-section--only-desktop, .mf-only-desktop { display: none; } }
@media (min-width: 820px) { .mf-section--only-mobile, .mf-only-mobile { display: none; } }
.mf-section--align-center .section__header { text-align: center; }
.mf-section--align-center .section__header .lead { margin-inline: auto; }
.mf-section--align-left .section__header, .mf-section--align-left .stats__header { text-align: left; }
.mf-section--align-left .stats__list, .mf-section--align-left .cta__box { text-align: left; justify-items: start; }

/* Own colours, gradient and photo overlay ("Rozšírené", Profi and Štúdio).
   The text tone swaps the palette variables like the preset backgrounds. */
.mf-section--custom { background: var(--mf-custom-bg); color: var(--mf-text); }
.mf-section--custom > .section { background: transparent; }
.mf-section--overlay::before { background: var(--mf-overlay); }
.mf-section--tone-light {
    --mf-text: #f7f3ec;
    --mf-muted: color-mix(in srgb, #f7f3ec 78%, transparent);
    --mf-bg: rgba(255, 255, 255, .08);
    --mf-surface: rgba(255, 255, 255, .1);
    color: var(--mf-text);
}
.mf-section--tone-dark {
    --mf-text: #1f1b16;
    --mf-muted: rgba(31, 27, 22, .72);
    --mf-bg: rgba(255, 255, 255, .55);
    --mf-surface: rgba(255, 255, 255, .72);
    color: var(--mf-text);
}

/* Portfolio layouts. --mf-cols, --mf-gap and --mf-radius come from the
   block's layout details; without them the theme's values stay. */
.gallery a { border-radius: var(--mf-radius, 4px); }
.gallery--masonry { column-gap: var(--mf-gap, 1rem); }
.gallery--masonry li { margin-bottom: var(--mf-gap, 1rem); }
.gallery--grid { gap: var(--mf-gap, 1rem); }
@media (min-width: 720px) {
    .mf-section--cols .gallery--masonry { columns: var(--mf-cols); }
    .mf-section--cols .gallery--grid { grid-template-columns: repeat(var(--mf-cols), minmax(0, 1fr)); }
    .mf-section--cols .gallery--mosaic { grid-template-columns: repeat(var(--mf-cols), minmax(0, 1fr)); }
}

.gallery--justified { --row: 240px; display: flex; flex-wrap: wrap; gap: var(--mf-gap, .75rem); }
.gallery--justified li { flex: calc(var(--r, 1.5) * 100) 1 calc(var(--r, 1.5) * var(--row)); }
.gallery--justified a, .gallery--justified img { height: 100%; }
.gallery--justified img { aspect-ratio: var(--r, 1.5); object-fit: cover; }
.gallery--justified::after { content: ""; flex: 10000 1 0; }
@media (max-width: 719px) { .gallery--justified { --row: 150px; } }

.gallery--mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; gap: var(--mf-gap, 1rem); }
.gallery--mosaic li { aspect-ratio: 1; }
.gallery--mosaic li:nth-child(7n + 1) { grid-column: span 2; grid-row: span 2; }
.gallery--mosaic a, .gallery--mosaic img { width: 100%; height: 100%; }
.gallery--mosaic img { object-fit: cover; }
@media (max-width: 719px) { .gallery--mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Sliders: portfolio and testimonials scroll sideways, arrows on the sides */
[data-carousel] { position: relative; }
.gallery--slider, .quotes--slider .quotes__list { display: flex; gap: var(--mf-gap, 1rem); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.gallery--slider::-webkit-scrollbar, .quotes--slider .quotes__list::-webkit-scrollbar { display: none; }
.gallery--slider li { flex: 0 0 auto; scroll-snap-align: start; }
.gallery--slider img { height: clamp(240px, 42vw, 520px); width: auto; }
@media (min-width: 720px) {
    .mf-section--cols .gallery--slider li { flex-basis: calc((100% - (var(--mf-cols) - 1) * var(--mf-gap, 1rem)) / var(--mf-cols)); }
    .mf-section--cols .gallery--slider img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
}
.slider__nav {
    position: absolute; top: 50%; z-index: 2; transform: translateY(-50%);
    display: grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0;
    border: 0; border-radius: 50%; cursor: pointer;
    background: var(--mf-surface, #fffdf9); color: var(--mf-text, #1f1b16);
    box-shadow: 0 4px 18px rgba(0, 0, 0, .16); transition: opacity .2s ease;
}
.slider__nav--prev { left: -.6rem; }
.slider__nav--next { right: -.6rem; }
.slider__nav:disabled { opacity: 0; pointer-events: none; }
.slider__nav .mf-icon { width: 1.3rem; height: 1.3rem; }

/* Hover effects on photos */
.mf-section--hover-none .gallery a:hover img { transform: none; }
.mf-section--hover-lift .gallery a { transition: transform .3s ease, box-shadow .3s ease; }
.mf-section--hover-lift .gallery a:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(0, 0, 0, .2); }
.mf-section--hover-lift .gallery a:hover img { transform: none; }
.mf-section--hover-gray .gallery img { filter: grayscale(1); transition: filter .5s ease, transform .5s ease; }
.mf-section--hover-gray .gallery a:hover img { filter: none; }
@media (prefers-reduced-motion: reduce) { .gallery a, .gallery img { transition: none !important; } }

/* Testimonials: under each other (theme), or glass cards in a grid or a
   slider. Soft accent light behind the cards gives the blur something to
   show; on a photo or coloured section the section itself does that. */
.quote__stars { display: inline-flex; margin: 0 0 .6rem; gap: .1rem; font-size: 1.05rem; line-height: 1; color: color-mix(in srgb, var(--mf-muted, #6e665c) 35%, transparent); }
.quote__stars .is-on { color: var(--mf-accent, #a4522b); }
.quote__author { display: flex; align-items: center; gap: .85rem; }
.quote__who { display: grid; gap: .1rem; }
.quote__who strong { font-weight: 600; color: var(--mf-text, #1f1b16); }
.quote__who small { font-size: .85rem; color: var(--mf-muted, #6e665c); }
.quote__avatar { flex: none; width: 3rem; height: 3rem; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px color-mix(in srgb, var(--mf-surface, #fffdf9) 80%, transparent); }
.quote__avatar--initial { display: grid; place-items: center; background: color-mix(in srgb, var(--mf-accent, #a4522b) 16%, var(--mf-surface, #fffdf9)); color: var(--mf-accent, #a4522b); font: 500 1.25rem/1 var(--mf-font-heading, Georgia, serif); }
.quote__author:has(.quote__avatar)::before, .quotes--grid .quote__author::before, .quotes--slider .quote__author::before { content: none; }
.quotes--stack .quote__author { justify-content: flex-start; }

.quotes--grid, .quotes--slider { position: relative; isolation: isolate; }
.quotes--grid::before, .quotes--slider::before {
    content: ""; position: absolute; z-index: -1; inset: 8% 4%; pointer-events: none;
    background:
        radial-gradient(40% 55% at 18% 30%, color-mix(in srgb, var(--mf-accent, #a4522b) 30%, transparent), transparent 70%),
        radial-gradient(35% 50% at 82% 70%, color-mix(in srgb, var(--mf-accent, #a4522b) 22%, transparent), transparent 70%);
    filter: blur(40px);
}
.mf-section--bg-image .quotes--grid::before, .mf-section--bg-image .quotes--slider::before { display: none; }
.quotes--grid .quotes__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: var(--mf-gap, 1.5rem); align-items: stretch; }
.quotes--grid .quote, .quotes--slider .quote {
    position: relative; display: flex; flex-direction: column; gap: 1.25rem; margin: 0;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border-radius: var(--mf-radius, 16px);
    background: color-mix(in srgb, var(--mf-surface, #fffdf9) 62%, transparent);
    -webkit-backdrop-filter: blur(18px) saturate(1.3); backdrop-filter: blur(18px) saturate(1.3);
    border: 1px solid color-mix(in srgb, var(--mf-surface, #fffdf9) 70%, transparent);
    box-shadow: 0 1px 0 color-mix(in srgb, #fff 40%, transparent) inset, 0 24px 48px -24px rgba(20, 16, 12, .28);
}
.quotes--grid blockquote, .quotes--slider blockquote { flex: 1; font-size: clamp(1.05rem, 1.5vw, 1.2rem); line-height: 1.55; }
.quotes--grid .quote__author, .quotes--slider .quote__author { margin: 0; padding-top: 1.1rem; border-top: 1px solid color-mix(in srgb, var(--mf-text, #1f1b16) 10%, transparent); }
.quote__mark { display: block; height: 1.6rem; margin-bottom: -.5rem; font: 400 4rem/1 var(--mf-font-heading, Georgia, serif); color: var(--mf-accent, #a4522b); opacity: .8; }

/* Whole cards in view: three on wide screens, two on tablets, one and a
   peek of the next on phones; arrows under the cards, not over the text */
.quotes--slider .quotes__list { --per: 3; gap: var(--mf-gap, 1.5rem); padding: 1rem 1.5rem 3.5rem; margin: -1rem -1.5rem -2.5rem; scroll-padding-inline: 1.5rem; align-items: stretch; }
.quotes--slider .quote { flex: 0 0 calc((100% - (var(--per) - 1) * var(--mf-gap, 1.5rem)) / var(--per)); scroll-snap-align: start; }
@media (max-width: 1023px) { .quotes--slider .quotes__list { --per: 2; } }
@media (max-width: 639px) { .quotes--slider .quote { flex-basis: 86%; } }
.quotes__nav { display: flex; justify-content: flex-end; gap: .5rem; margin-top: .5rem; }
.quotes__nav .slider__nav { position: static; transform: none; }
.quotes__nav .slider__nav:disabled { opacity: .35; }

/* Services: cards (theme), a list or photo and text taking turns */
.services--cards .card { border-radius: var(--mf-radius, 6px); }
@media (min-width: 820px) { .mf-section--cols .services--cards { grid-template-columns: repeat(var(--mf-cols), minmax(0, 1fr)); } }
.services--list { grid-template-columns: 1fr; gap: 1rem; }
.services--list .card { display: grid; grid-template-columns: minmax(0, 220px) 1fr; align-items: center; border-radius: var(--mf-radius, 6px); }
.services--list .card:not(:has(.card__media)) { grid-template-columns: 1fr; }
.services--list .card__media { height: 100%; aspect-ratio: 4 / 3; }
@media (max-width: 600px) { .services--list .card { grid-template-columns: 110px 1fr; } .services--list .card__body { padding: 1rem; } }
.services--zigzag { grid-template-columns: 1fr; gap: clamp(2.5rem, 6vw, 5rem); }
.services--zigzag .card { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(1.5rem, 4vw, 4rem); background: none; border-radius: 0; overflow: visible; }
.services--zigzag .card:not(:has(.card__media)) { grid-template-columns: 1fr; }
.services--zigzag .card:nth-child(even) .card__media { order: 2; }
.services--zigzag .card__media { aspect-ratio: 4 / 3; border-radius: var(--mf-radius, 6px); }
.services--zigzag .card__body { padding: 0; }
.services--zigzag h3 { font-size: clamp(1.6rem, 3vw, 2.2rem); }
@media (max-width: 719px) {
    .services--zigzag .card { grid-template-columns: 1fr; }
    .services--zigzag .card:nth-child(even) .card__media { order: 0; }
}

/* Font sizes per block ("Rozšírené"): headings and running text */
.mf-section--heading-small .heading { font-size: clamp(1.6rem, 3vw, 2.3rem); }
.mf-section--heading-large .heading { font-size: clamp(2.3rem, 5vw, 3.8rem); }
.mf-section--heading-xlarge .heading { font-size: clamp(2.7rem, 7vw, 5.2rem); letter-spacing: -0.015em; }
.mf-section--heading-small .display { font-size: clamp(2rem, 4.5vw, 3.6rem); }
.mf-section--heading-large .display { font-size: clamp(2.8rem, 7vw, 5.8rem); }
.mf-section--heading-xlarge .display { font-size: clamp(3.2rem, 9vw, 7rem); letter-spacing: -0.02em; }
.mf-section--text-small { font-size: .9375rem; }
.mf-section--text-large { font-size: 1.1875rem; }
.mf-section--text-small .lead { font-size: clamp(.98rem, 1.4vw, 1.1rem); }
.mf-section--text-large .lead { font-size: clamp(1.15rem, 1.9vw, 1.45rem); }
.mf-section--text-small .quote blockquote { font-size: clamp(1.15rem, 2vw, 1.5rem); }
.mf-section--text-large .quote blockquote { font-size: clamp(1.5rem, 3vw, 2.2rem); }
.mf-section--text-small .quotes--grid blockquote, .mf-section--text-small .quotes--slider blockquote { font-size: .98rem; }
.mf-section--text-large .quotes--grid blockquote, .mf-section--text-large .quotes--slider blockquote { font-size: clamp(1.15rem, 1.8vw, 1.4rem); }
.mf-section--text-small .cta__text { font-size: 1rem; }
.mf-section--text-large .cta__text { font-size: 1.3rem; }
.mf-section--text-small .card h3, .mf-section--text-small .feature__title { font-size: 1.2rem; }
.mf-section--text-large .card h3, .mf-section--text-large .feature__title { font-size: 1.75rem; }

/* Cenník with the photographer's own packages: photo, length and a booking link */
.price--photo { overflow: hidden; }
.price__photo { display: block; width: calc(100% + 4rem); max-width: none; margin: -2rem -2rem 1.25rem; aspect-ratio: 3 / 2; object-fit: cover; }
.price__amount .price__time { margin-left: .75rem; color: var(--mf-muted, #6e665c); font-size: .95rem; font-weight: 400; }
.pricing--own .price { display: flex; flex-direction: column; }
.price__book { align-self: flex-start; margin-top: auto; }
.pricing--own .price > :nth-last-child(2) { margin-bottom: 1.25rem; }
/* Booking on the left, gift on the right, both as tall as the taller one; once
   they wrap (blocks.js sets is-stacked) each takes the full width */
.price__actions { margin-top: auto; display: flex; flex-wrap: wrap; align-items: stretch; gap: .6rem; }
.price__actions > .button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; margin-top: 0; align-self: stretch; }
.price__actions .price__gift-button { margin-left: auto; }
.price__actions.is-stacked { display: grid; grid-auto-rows: 1fr; }
.price__actions.is-stacked > .button { margin-left: 0; padding-left: 1rem; padding-right: 1rem; }
.price__actions:not(:has(> :not([hidden]))) { display: none; }
.price__gift-off { display: inline-block; flex: none; white-space: nowrap; padding: .1em .5em; border-radius: 999px; background: var(--mf-accent, #a4522b); color: var(--mf-accent-contrast, #fff); font-size: .8em; line-height: 1.4; }
/* On coloured, dark, photo or own-colour sections the accent may match the
   background, so the discount turns into an outline in the button's colour */
:is(.mf-section--bg-accent, .mf-section--bg-dark, .mf-section--bg-image, .mf-section--custom) .price__gift-off { background: transparent; color: inherit; box-shadow: inset 0 0 0 1px currentColor; }

/* Header and footer looks from Vzhľad (site-header--*, site-footer--*).
   Colours come from the palette, so every look follows it. */
.site-header { transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
.site-header--static { position: relative; }
.site-header--dark { background: color-mix(in srgb, var(--mf-text, #1f1b16) 95%, transparent); color: var(--mf-bg, #f7f3ec); border-bottom-color: transparent; }
.site-header--accent { background: var(--mf-accent, #a4522b); color: var(--mf-accent-contrast, #fff); border-bottom-color: transparent; }
.site-header--dark .site-nav a, .site-header--accent .site-nav a { color: inherit; opacity: .78; }
.site-header--dark .site-nav a:hover, .site-header--dark .site-nav a[aria-current],
.site-header--accent .site-nav a:hover, .site-header--accent .site-nav a[aria-current] { opacity: 1; }
/* Transparent: lies over a full-screen photo and turns solid once the page scrolls */
body:has(.hero--fullscreen) .site-header--transparent { margin-bottom: calc(-1 * var(--mf-header-h, 4.25rem)); }
body:has(.hero--fullscreen) .site-header--transparent:not(.is-scrolled) { background: transparent; backdrop-filter: none; border-bottom-color: rgba(255, 255, 255, .2); color: #fff; }
body:has(.hero--fullscreen) .site-header--transparent:not(.is-scrolled) .site-nav a { color: inherit; opacity: .85; }
body:has(.hero--fullscreen) .site-header--transparent:not(.is-scrolled) .site-nav a:hover { opacity: 1; }
body:has(.hero--fullscreen) .site-header--transparent:not(.is-scrolled) .site-header__logo { filter: drop-shadow(0 1px 6px rgba(0, 0, 0, .35)); }
/* Logo in the middle, the menu under it */
.site-header--center .site-header__inner { flex-direction: column; justify-content: center; gap: .4rem; padding-block: .9rem; }
.site-header--center .site-nav ul { justify-content: center; flex-wrap: wrap; gap: .35rem 1.75rem; }
.site-header__brand:has(.site-header__logo) { line-height: 0; }
.site-header__logo { display: block; height: 44px; width: auto; max-width: min(240px, 55vw); object-fit: contain; }
.site-header--logo-s .site-header__logo { height: 32px; }
.site-header--logo-l .site-header__logo { height: 64px; }
@media (max-width: 760px) {
    .site-header--center .site-header__inner { flex-direction: row; justify-content: space-between; padding-block: 0; }
    .site-header--dark .site-nav { background: var(--mf-text, #1f1b16); }
    .site-header--accent .site-nav { background: var(--mf-accent, #a4522b); }
    body:has(.hero--fullscreen) .site-header--transparent:not(.is-scrolled) .site-nav { background: rgba(20, 16, 12, .94); }
}

.site-footer__note { padding-bottom: 1.25rem; }
.site-footer__note p { margin: 0; max-width: 62ch; line-height: 1.6; }
.site-footer--dark, .site-footer--accent { border-top: 0; padding-top: clamp(2rem, 5vw, 3rem); }
.site-footer--dark { background: var(--mf-text, #1f1b16); color: color-mix(in srgb, var(--mf-bg, #f7f3ec) 72%, transparent); }
.site-footer--accent { background: var(--mf-accent, #a4522b); color: color-mix(in srgb, var(--mf-accent-contrast, #fff) 82%, transparent); }
.site-footer--dark .site-footer__made:hover { color: var(--mf-bg, #f7f3ec); }
.site-footer--accent .site-footer__made:hover { color: var(--mf-accent-contrast, #fff); }
.site-footer--dark .platform-band, .site-footer--accent .platform-band { margin-top: clamp(2rem, 5vw, 3rem); }

/* "Preskočiť na obsah" for keyboard and screen reader users, visible on focus */
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 80; background: var(--mf-accent, #a4522b); color: var(--mf-accent-contrast, #fff); padding: .55rem 1rem; border-radius: 999px; text-decoration: none; }
.skip-link:focus { top: 1rem; }

/* Profile links (Profil): icons in the contact block and the footer */
.social-links { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.social-links a { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid color-mix(in srgb, currentColor 22%, transparent); color: inherit; transition: background .2s, color .2s, border-color .2s; }
.social-links a:hover, .social-links a:focus-visible { background: var(--mf-accent, #a4522b); border-color: var(--mf-accent, #a4522b); color: var(--mf-accent-contrast, #fff); }
.social-links__icon { width: 1.15rem; height: 1.15rem; }
.contact__social.social-links a { font-weight: 400; }
.site-footer__social { margin: 0 0 1.25rem; }

/* Contact: cards with icons, side by side, or a simple list. Parts come
   from Profil unless the block has its own, and each can be hidden. */
.contact__inner { display: grid; gap: clamp(1.75rem, 4vw, 2.75rem); }
.contact__intro { display: grid; gap: 1rem; justify-items: start; }
.contact__intro .lead { margin: 0; max-width: 60ch; }
.contact__button { margin-top: .5rem; }
.contact__items { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--mf-gap, 1rem); }
.contact__card { display: grid; gap: .35rem; justify-items: start; min-width: 0; }
.contact__icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: color-mix(in srgb, var(--mf-accent, #a4522b) 12%, transparent); color: var(--mf-accent, #a4522b); }
.contact__icon .mf-icon { width: 1.35rem; height: 1.35rem; }
.contact__label { margin-top: .4rem; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--mf-muted, #6e665c); }
.contact__value { font-family: var(--mf-font-heading, Georgia, serif); font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.3; color: inherit; text-decoration: none; overflow-wrap: anywhere; }
a.contact__value:hover { color: var(--mf-accent, #a4522b); }
.contact .social-links { margin: 0; }

.contact--cards .contact__intro { justify-items: center; text-align: center; }
.contact--cards .contact__intro .lead { margin-inline: auto; }
.contact--cards .contact__items { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.contact--cards .contact__items--1, .contact--cards .contact__items--2 { max-width: 760px; width: 100%; margin-inline: auto; }
.contact--cards .contact__card { justify-items: center; text-align: center; padding: clamp(1.5rem, 3vw, 2.25rem) 1.25rem; border-radius: var(--mf-radius, 14px); background: var(--mf-surface, #fffdf9); box-shadow: 0 1px 0 color-mix(in srgb, var(--mf-text, #1f1b16) 6%, transparent), 0 18px 40px -30px rgba(0, 0, 0, .35); }
.contact--cards .contact__social { justify-content: center; }

.contact--split .contact__card { grid-template-columns: 3rem 1fr; grid-template-rows: auto auto; column-gap: 1rem; row-gap: .1rem; align-items: center; padding: 1.1rem 1.25rem; border-radius: var(--mf-radius, 14px); background: var(--mf-surface, #fffdf9); }
.contact--split .contact__icon { grid-row: span 2; }
.contact--split .contact__label { margin: 0; }
@media (min-width: 860px) {
    .contact--split .contact__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: center; gap: clamp(2rem, 6vw, 5rem); }
}

.contact--simple .contact__card { grid-template-columns: 2.5rem 1fr; grid-template-rows: auto auto; column-gap: .9rem; row-gap: 0; align-items: center; }
.contact--simple .contact__icon { grid-row: span 2; width: 2.5rem; height: 2.5rem; }
.contact--simple .contact__label { margin: 0; }

.mf-section--align-center .contact__intro { justify-items: center; text-align: center; }

/* Rozšírené for every block with cards: columns, gap, corners and the card
   look (--mf-cols, --mf-gap, --mf-radius and mf-section--cards-* come from
   BlockAdvanced) */
.pricing { gap: var(--mf-gap, 1.5rem); }
.price { border-radius: var(--mf-radius, 8px); overflow: hidden; }
.features__list { gap: var(--mf-gap, clamp(1.5rem, 3vw, 2.5rem)) var(--mf-gap, clamp(1.5rem, 4vw, 3.5rem)); }
.stats__list, .steps__list { gap: var(--mf-gap, 2rem); }
.about__media img { border-radius: var(--mf-radius, 4px); }
.booking { border-radius: var(--mf-radius, 18px); }
.price__photo { border-radius: 0; }
@media (min-width: 820px) {
    .mf-section--cols .pricing,
    .mf-section--cols .features--grid .features__list,
    .mf-section--cols .quotes--grid .quotes__list,
    .mf-section--cols .stats__list,
    .mf-section--cols .steps__list { grid-template-columns: repeat(var(--mf-cols), minmax(0, 1fr)); }
    .mf-section--cols .quotes--slider .quote { flex-basis: calc((100% - (var(--mf-cols) - 1) * var(--mf-gap, 1rem)) / var(--mf-cols)); }
}

/* Card look: the same items in every block */
:is(.mf-section--cards-flat, .mf-section--cards-outline, .mf-section--cards-shadow) :is(.price, .quotes .quote, .feature, .stat, .step, .services .card, .faq__item, .contact__card, .bpkg__card) {
    border-radius: var(--mf-radius, 10px);
}
.mf-section--cards-flat :is(.price, .quotes .quote, .stats--cards .stat, .services .card, .contact__card, .bpkg__card) { border-color: transparent; box-shadow: none; background: transparent; }
.mf-section--cards-flat .contact__card { padding-inline: 0; }
.mf-section--cards-outline :is(.price, .quotes .quote, .feature, .stat, .step, .services .card, .faq__item, .contact__card, .bpkg__card) {
    border: 1px solid color-mix(in srgb, var(--mf-text, #1f1b16) 14%, transparent); box-shadow: none; background: var(--mf-surface, #fffdf9);
}
.mf-section--cards-shadow :is(.price, .quotes .quote, .feature, .stat, .step, .services .card, .faq__item, .contact__card, .bpkg__card) {
    border: 1px solid transparent; background: var(--mf-surface, #fffdf9);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 22px 44px -26px rgba(0, 0, 0, .35);
}
:is(.mf-section--cards-outline, .mf-section--cards-shadow) :is(.feature, .stats--row .stat, .step) { padding: clamp(1.25rem, 2.5vw, 1.75rem); }
:is(.mf-section--cards-outline, .mf-section--cards-shadow) .stats--row .stat + .stat::before { display: none; }
:is(.mf-section--cards-outline, .mf-section--cards-shadow) .faq__list { display: grid; gap: .75rem; border-top: 0; }
:is(.mf-section--cards-outline, .mf-section--cards-shadow) .faq__item summary { padding-inline: 1.25rem; }
:is(.mf-section--cards-outline, .mf-section--cards-shadow) .faq__answer { padding-inline: 1.25rem; }
:is(.mf-section--cards-outline, .mf-section--cards-shadow) .quotes--stack .quote { padding: clamp(1.5rem, 3vw, 2.25rem); }
:is(.mf-section--cards-outline, .mf-section--cards-shadow) .price--featured { border-color: var(--mf-accent, #a4522b); }

/* Projects: cards, the list page and each project's page */
.projects { display: grid; grid-template-columns: repeat(var(--mf-columns, 3), minmax(0, 1fr)); gap: var(--mf-gap, 1.5rem); }
.project-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.project-card__media { transition: transform .5s ease; }
.project-card__link:hover .project-card__media { transform: scale(1.03); }
.project-card__media--empty { display: block; background: color-mix(in srgb, var(--mf-text, #000) 8%, var(--mf-bg, #f7f3ec)); }
.project-card { position: relative; }
.project-card__body { display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.project-card__body h3 { margin: 0; }
.project-card__meta { font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--mf-accent, #a4522b) !important; }
.project-card__more { margin-top: auto; padding-top: .5rem; font-weight: 600; font-size: .95rem; color: var(--mf-accent, #a4522b); }
.project-card__more::after { content: " →"; }
.project-card__draft { position: absolute; top: .75rem; left: .75rem; padding: .25rem .7rem; border-radius: var(--mf-control-radius, 999px); background: var(--mf-text, #1d1a16); color: var(--mf-bg, #fff); font-size: .75rem; font-weight: 600; }
.project-card.is-draft .project-card__media { opacity: .6; }
.projects--list { grid-template-columns: 1fr; }
.projects--list .project-card__link { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: center; }
.projects--list .project-card__frame, .projects--list .project-card__media { height: 100%; }
.projects--list .project-card__media { aspect-ratio: 4 / 3; }
.projects--list .project-card__body h3 { font-size: clamp(1.6rem, 3vw, 2.3rem); }

/* Without a frame a card is its photo and text, so the photo keeps all its
   corners. A framed card (S rámikom, S tieňom) is one rounded piece. */
.projects .card { background: transparent; border-radius: 0; overflow: visible; }
.project-card__frame { display: block; overflow: hidden; border-radius: var(--mf-radius, var(--mf-media-radius, 6px)); }
.projects--cards .project-card__body { padding: 1.1rem 0 0; }
.projects--list .project-card__body { padding: 1rem 0 1rem clamp(1.5rem, 4vw, 3rem); }
:is(.mf-section--cards-outline, .mf-section--cards-shadow) .projects .card { overflow: hidden; border-radius: var(--mf-radius, var(--mf-media-radius, 10px)); background: var(--mf-surface, #fffdf9); }
.mf-section--cards-outline .projects .card { border: 1px solid color-mix(in srgb, var(--mf-text, #1f1b16) 14%, transparent); }
.mf-section--cards-shadow .projects .card { box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 22px 44px -26px rgba(0, 0, 0, .35); }
:is(.mf-section--cards-outline, .mf-section--cards-shadow) .project-card__frame { border-radius: 0; }
:is(.mf-section--cards-outline, .mf-section--cards-shadow) .projects--cards .project-card__body { padding: 1.5rem; }
:is(.mf-section--cards-outline, .mf-section--cards-shadow) .projects--list .project-card__body { padding: clamp(1.5rem, 4vw, 3rem); }

/* Services the same way: "Bez rámika" leaves the photo whole */
.mf-section--cards-flat :is(.services--cards, .services--list) .card { border-radius: 0; overflow: visible; }
.mf-section--cards-flat :is(.services--cards, .services--list) .card__media { border-radius: var(--mf-radius, var(--mf-media-radius, 6px)); }
.mf-section--cards-flat .services--cards .card__body { padding-inline: 0; }
.mf-section--cards-flat .services--list .card__body { padding-block: 0; }
.projects__more { margin: 2.5rem 0 0; text-align: center; }
.button--ghost { background: transparent; color: var(--mf-text, #1f1b16); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--mf-text, #000) 25%, transparent); }
.projects__empty { color: var(--mf-muted, #6e665c); }

.projects-page__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; }
.projects-filter { display: flex; flex-wrap: wrap; gap: .5rem; }
.projects-filter a { padding: .45rem 1rem; border-radius: var(--mf-radius, var(--mf-control-radius, 999px)); text-decoration: none; font-size: .92rem; color: var(--mf-muted, #6e665c); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--mf-text, #000) 15%, transparent); }
.projects-filter a[aria-current] { background: var(--mf-text, #1f1b16); color: var(--mf-bg, #fff); box-shadow: none; }
.projects-new { display: flex; gap: .75rem; margin: 0 0 2.5rem; }
.projects-new input { flex: 1; min-width: 0; padding: .8rem 1rem; border: 1px solid color-mix(in srgb, var(--mf-text, #000) 18%, transparent); border-radius: var(--mf-radius, var(--mf-control-radius, 999px)); font: inherit; background: var(--mf-surface, #fff); color: inherit; }
.projects-new input:focus { outline: 2px solid var(--mf-accent, #a4522b); outline-offset: 1px; border-color: transparent; }
:where(.projects-new) button { font: inherit; }
.projects-new .button { border: 0; cursor: pointer; }
.projects-new__error { color: #b42318; margin: -1rem 0 2rem; }

.project-hero { position: relative; display: grid; min-height: min(78vh, 760px); align-items: end; color: #fff; background: #1d1a16; overflow: hidden; }
.project-hero__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.project-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, .62)); }
.project-hero__text { position: relative; z-index: 1; padding-block: clamp(3rem, 8vw, 6rem) clamp(2.5rem, 6vw, 4.5rem); }
.project-hero__text .lead { color: rgba(255, 255, 255, .88); }
.project-hero__meta { margin: 0 0 .75rem; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; opacity: .9; }
.project-hero__back { margin: 0 0 1.5rem; }
.project-hero__back a { color: inherit; text-decoration: none; font-size: .92rem; opacity: .85; }
.project-hero--plain { min-height: 0; color: var(--mf-text, #1f1b16); background: var(--mf-bg, #f7f3ec); }
.project-hero--plain::after { display: none; }
.project-hero--plain .lead { color: var(--mf-muted, #6e665c); }

.post-head { padding-bottom: 0; }
.post-head__inner { width: min(860px, 100% - 2rem); text-align: center; }
.post-head__back { margin: 0 0 1.5rem; }
.post-head__back a { color: var(--mf-muted, #6e665c); text-decoration: none; font-size: .92rem; }
.post-head__meta { margin: 0 0 .75rem; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; color: var(--mf-accent, #a4522b); }
.post-head .lead { color: var(--mf-muted, #6e665c); }
.post-head__cover { margin-top: clamp(2rem, 5vw, 3.5rem); width: min(1100px, 100% - 2rem); }
.post-head__cover img { display: block; width: 100%; max-height: 72vh; object-fit: cover; border-radius: var(--mf-radius, var(--mf-media-radius, 6px)); }
/* Blog post layouts: cover (full-width photo under a gradient) and sidebar */
.post-hero { position: relative; display: grid; align-items: end; min-height: min(86vh, 820px); color: #fff; background: #1d1a16; overflow: hidden; }
.post-hero__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.post-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .35) 0%, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, .15) 55%, rgba(0, 0, 0, .75) 100%); }
.post-hero__text { position: relative; z-index: 1; padding-block: clamp(3rem, 8vw, 6rem) clamp(2.5rem, 6vw, 4.5rem); }
.post-hero__text > * { max-width: 52rem; }
.post-hero__text h1 { color: inherit; margin: 0 0 1rem; text-wrap: balance; }
.post-hero__text .lead { color: rgba(255, 255, 255, .88); max-width: 42rem; }
.post-hero__back { margin: 0 0 1.5rem; }
.post-hero__back a { color: inherit; text-decoration: none; font-size: .92rem; opacity: .85; }
.post-hero__meta { margin: 0 0 .75rem; font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; opacity: .9; }
.post--cover .post-body { padding-top: clamp(1rem, 3vw, 2rem); }

.post-head--sidebar .post-head__inner { text-align: left; width: min(var(--mf-container, 1200px), 100% - var(--mf-gutter, 2rem)); }
.post-head--sidebar h1 { max-width: 22ch; }
.post-head--sidebar .lead { max-width: 42rem; }
.post-head--sidebar .post-head__cover { width: min(var(--mf-container, 1200px), 100% - var(--mf-gutter, 2rem)); }
.post-body--sidebar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 300px); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; padding-block: clamp(1.5rem, 4vw, 3rem) clamp(3rem, 6vw, 5rem); }
.post-body--sidebar .post-body__main .container,
.post-body--sidebar .post-body__main [class*="__inner"] { width: 100%; }
.post-body--sidebar .post-body__main .section { padding-block: clamp(1rem, 2.5vw, 1.75rem); }
.post-aside { position: sticky; top: calc(var(--mf-header-h, 72px) + 1.5rem); display: grid; gap: 1.25rem; }
.post-aside__box { padding: 1.25rem; border-radius: var(--mf-radius, var(--mf-media-radius, 6px)); background: var(--mf-surface, #fffdf9); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--mf-text, #000) 10%, transparent); }
.post-aside__box p { margin: 0 0 .5rem; }
.post-aside__box .button { margin-top: .5rem; }
.post-aside__label { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--mf-accent, #a4522b); }
.post-aside__name { font-family: var(--mf-font-heading, Georgia, serif); font-size: 1.35rem; line-height: 1.2; }
.post-aside__muted { color: var(--mf-muted, #6e665c); }
.post-aside__topics { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.post-aside__topics a { display: inline-block; padding: .3rem .8rem; border-radius: var(--mf-radius, var(--mf-control-radius, 999px)); font-size: .88rem; text-decoration: none; color: inherit; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--mf-text, #000) 15%, transparent); }
.post-aside__topics a[aria-current] { background: var(--mf-text, #1f1b16); color: var(--mf-bg, #fff); box-shadow: none; }
.post-aside__latest { display: grid; gap: .9rem; margin: 0; padding: 0; list-style: none; }
.post-aside__latest a { display: grid; grid-template-columns: 64px 1fr; gap: .75rem; align-items: center; text-decoration: none; color: inherit; }
.post-aside__latest img { width: 64px; height: 64px; object-fit: cover; border-radius: calc(var(--mf-radius, var(--mf-media-radius, 6px)) * .6); }
.post-aside__latest strong { display: block; font-weight: 600; font-size: .95rem; line-height: 1.3; }
.post-aside__latest small { color: var(--mf-muted, #6e665c); }
@media (max-width: 900px) {
    .post-body--sidebar { grid-template-columns: 1fr; }
    .post-aside { position: static; }
}
.projects-upgrade { margin: 0 0 2.5rem; padding: .25rem 0 .25rem 1rem; border-left: 2px solid var(--mf-accent, #a4522b); }
.projects-upgrade a { font-weight: 600; }

.story-text__inner { width: min(760px, 100% - 2rem); }
.story-text--wide .story-text__inner { width: min(1100px, 100% - 2rem); }
.story-photos__inner { margin-inline: auto; }
.story-photos__grid { display: grid; gap: var(--mf-gap, 1rem); list-style: none; margin: 0; padding: 0; }
.story-photos__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.story-photos__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.story-photos__grid img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: var(--mf-radius, 0); }
.story-photos__grid--2 img, .story-photos__grid--3 img { aspect-ratio: 4 / 5; }
.story-photos--single .story-photos__grid { width: min(760px, 100%); margin-inline: auto; }
.story-photos--full .story-photos__grid img { border-radius: 0; max-height: 92vh; }
.story-photos__caption { margin-top: .75rem; text-align: center; font-size: .92rem; color: var(--mf-muted, #6e665c); }
.story-quote__inner { width: min(860px, 100% - 2rem); margin: 0 auto; text-align: center; }
.story-quote blockquote { margin: 0; font-family: var(--mf-font-heading, Georgia, serif); font-size: clamp(1.5rem, 3.2vw, 2.4rem); line-height: 1.35; }
.story-quote blockquote::before { content: "“"; display: block; font-size: 3em; line-height: .6; color: var(--mf-accent, #a4522b); }
.story-quote figcaption { margin-top: 1.25rem; color: var(--mf-muted, #6e665c); }
/* Text a fotka: the photo on either side, always above the text on a phone */
.media-text__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(1.5rem, 5vw, 4.5rem); width: min(1100px, 100% - 2rem); }
.media-text__inner:not(:has(.media-text__media)) { grid-template-columns: minmax(0, 1fr); width: min(760px, 100% - 2rem); }
.media-text--right .media-text__media { order: 2; }
.media-text__media { margin: 0; overflow: hidden; border-radius: var(--mf-radius, var(--mf-media-radius, 6px)); }
.media-text__media a, .media-text__media img { display: block; width: 100%; height: 100%; }
.media-text__media img { object-fit: cover; aspect-ratio: 4 / 5; }
.media-text__media--landscape img { aspect-ratio: 3 / 2; }
.media-text__media--square img { aspect-ratio: 1; }
.media-text__text .heading { margin-top: 0; }
@media (max-width: 719px) {
    .media-text__inner { grid-template-columns: minmax(0, 1fr); }
    .media-text--right .media-text__media { order: 0; }
}

/* Nadpis: a heading of its own between the parts of a story */
.story-heading { padding-bottom: 0; }
.story-heading + [data-mf-block] > .section, .story-heading + .section { padding-top: clamp(1rem, 2vw, 1.5rem); }
.story-heading__inner { width: min(760px, 100% - 2rem); }
.story-heading--center .story-heading__inner { text-align: center; }
.story-heading__kicker { margin: 0 0 .5rem; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--mf-accent, #a4522b); }
.story-heading__title { margin: 0; font-family: var(--mf-font-heading, Georgia, serif); line-height: 1.15; }
.story-heading--h2 .story-heading__title { font-size: clamp(2rem, 4vw, 3rem); }
.story-heading--h3 .story-heading__title { font-size: clamp(1.6rem, 3vw, 2.2rem); }
.story-heading--h4 .story-heading__title { font-size: clamp(1.3rem, 2.2vw, 1.6rem); }
.story-heading--h5 .story-heading__title { font-size: 1.15rem; }
.story-heading--h6 .story-heading__title { font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; }
.story-heading__intro { margin: .9rem 0 0; font-size: 1.1rem; color: var(--mf-muted, #6e665c); }

/* Oddeľovač */
.story-divider { padding-block: clamp(1.5rem, 4vw, 3rem); color: color-mix(in srgb, var(--mf-text, #1f1b16) 22%, transparent); }
.story-divider__inner { display: flex; align-items: center; justify-content: center; gap: 1rem; width: min(1100px, 100% - 2rem); }
.story-divider__line { flex: 1; height: 1px; background: currentColor; }
.story-divider--short .story-divider__inner { width: min(160px, 100% - 2rem); }
.story-divider--short .story-divider__line { height: 2px; background: var(--mf-accent, #a4522b); }
.story-divider__label { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--mf-muted, #6e665c); white-space: nowrap; }
.story-divider__dots { display: flex; gap: .9rem; }
.story-divider__dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--mf-accent, #a4522b); }
.story-divider__ornament { width: min(240px, 60%); height: auto; fill: none; stroke: var(--mf-accent, #a4522b); stroke-width: 1.2; stroke-linecap: round; }
.story-divider--space { padding-block: clamp(1.5rem, 4vw, 3rem); }

/* Formatted text from the editor */
.prose :is(h2, h3, h4) { margin: 1.6em 0 .5em; font-family: var(--mf-font-heading, Georgia, serif); line-height: 1.2; }
.prose > :first-child { margin-top: 0; }
.prose h2 { font-size: clamp(1.6rem, 3vw, 2.1rem); }
.prose h3 { font-size: clamp(1.3rem, 2.4vw, 1.6rem); }
.prose h4 { font-size: 1.15rem; }
.prose :is(ul, ol) { padding-left: 1.3em; }
.prose li + li { margin-top: .35em; }
.prose blockquote { margin: 1.5em 0; padding: .2em 0 .2em 1.2em; border-left: 3px solid var(--mf-accent, #a4522b); font-family: var(--mf-font-heading, Georgia, serif); font-size: 1.2em; font-style: italic; }
.prose hr { margin: 2em 0; border: 0; border-top: 1px solid color-mix(in srgb, var(--mf-text, #1f1b16) 18%, transparent); }
.prose a { color: var(--mf-accent, #a4522b); }

.story-video__inner { width: min(1000px, 100% - 2rem); margin: 0 auto; }
.story-video__frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--mf-radius, 6px); overflow: hidden; background: #000; }
.story-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.story-video figcaption { margin-top: .75rem; text-align: center; font-size: .92rem; color: var(--mf-muted, #6e665c); }

@media (max-width: 900px) {
    .projects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .projects--list { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .projects, .projects--list .project-card__link { grid-template-columns: 1fr; }
    .projects--list .project-card__body { padding: 1.1rem 0 0; }
    .story-photos__grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .story-photos__grid--3 li:first-child { grid-column: 1 / -1; }
    .projects-new { flex-direction: column; }
}

/* Gallery "Prehliadka": the stage stays on screen for as many screens as there
   are photos. Each next photo is uncovered from below as the page scrolls
   (--r from 0 to 1, set by blocks.js) while it drifts up a little. */
.showcase { position: relative; height: calc(var(--count, 1) * 100svh); background: #0c0c0c; color: #fff; }
.showcase__stage { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.showcase__slide { position: absolute; inset: 0; display: block; clip-path: inset(calc((1 - var(--r, 0)) * 100%) 0 0 0); cursor: zoom-in; }
.showcase__slide img { width: 100%; height: 112%; margin-top: -6%; object-fit: cover; transform: translateY(calc((1 - var(--r, 0)) * 9%)) scale(calc(1.08 - var(--r, 0) * .08)); will-change: transform; }
.showcase__blur { display: none; }
.mf-section--fit-contain .showcase__slide, .mf-section--fit-blur .showcase__slide { background: #0c0c0c; }
.mf-section--fit-contain .showcase__slide img, .mf-section--fit-blur .showcase__slide img { position: relative; height: 100%; margin: 0; object-fit: contain; object-position: center !important; transform: scale(calc(1.04 - var(--r, 0) * .04)); }
.mf-section--fit-blur .showcase__blur { display: block; position: absolute; inset: -40px; background-size: cover; background-position: center; filter: blur(32px) brightness(.55) saturate(1.2); transform: scale(1.1); }
.showcase__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, .6), rgba(0, 0, 0, 0) 45%), linear-gradient(to bottom, rgba(0, 0, 0, .35), rgba(0, 0, 0, 0) 25%); pointer-events: none; }
.showcase__ui { position: absolute; inset: 0; display: grid; align-content: end; gap: 1.5rem; padding: clamp(1.25rem, 4vw, 3.5rem); pointer-events: none; }
.showcase__intro { max-width: 36rem; transition: opacity .5s ease, transform .5s ease; }
.showcase.is-moving .showcase__intro { opacity: 0; transform: translateY(-1rem); }
.showcase__title { margin: 0 0 .75rem; color: #fff; }
.showcase__text { margin: 0; font-size: 1.05rem; color: rgba(255, 255, 255, .85); }
.showcase__foot { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: .5rem 1.5rem; }
.showcase__count { margin: 0; font-size: .8rem; letter-spacing: .14em; color: rgba(255, 255, 255, .7); font-variant-numeric: tabular-nums; }
.showcase__count b { font-family: var(--mf-font-heading, Georgia, serif); font-size: 2.2rem; font-weight: 400; letter-spacing: 0; color: #fff; }
.showcase__caption { margin: 0; font-size: .9rem; color: rgba(255, 255, 255, .8); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.showcase__bar { grid-column: 1 / -1; height: 2px; background: rgba(255, 255, 255, .22); overflow: hidden; }
.showcase__bar i { display: block; height: 100%; width: 100%; background: #fff; transform-origin: left; transform: scaleX(var(--p, 0)); }
.showcase__hint { position: absolute; right: clamp(1.25rem, 4vw, 3.5rem); top: 50%; writing-mode: vertical-rl; font-size: .68rem; letter-spacing: .3em; text-transform: uppercase; color: rgba(255, 255, 255, .7); transition: opacity .4s ease; }
.showcase.is-moving .showcase__hint { opacity: 0; }
/* Less motion, or the editor's narrow preview without scripts: photos one under another */
@media (prefers-reduced-motion: reduce) {
    .showcase { height: auto; }
    .showcase__stage { position: relative; height: auto; }
    .showcase__slide { position: relative; height: 90svh; clip-path: none; }
    .showcase__slide img { height: 100%; margin: 0; transform: none; }
    .showcase__shade, .showcase__foot, .showcase__hint { display: none; }
    .showcase__ui { position: absolute; inset: 0 0 auto; height: 90svh; }
}

/* Vložený príspevok: a post, video or song from another service */
.embed__inner { display: grid; justify-items: center; gap: 1.5rem; }
.embed__title { margin: 0; text-align: center; }
.embed__figure { width: 100%; margin: 0; display: grid; justify-items: center; gap: .85rem; }
.embed__frame { position: relative; width: 100%; overflow: hidden; border-radius: var(--mf-radius, 6px); background: color-mix(in srgb, var(--mf-text, #1f1b16) 6%, transparent); }
.embed__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.embed--video .embed__frame { max-width: 860px; aspect-ratio: 16 / 9; }
.embed--wide.embed--video .embed__frame { max-width: none; }
.embed--vertical .embed__frame { max-width: 340px; aspect-ratio: 9 / 16; min-height: 560px; }
.embed--post .embed__frame { max-width: 480px; height: 720px; }
.embed--audio .embed__frame { max-width: 640px; height: 152px; border-radius: 12px; }
.embed--playlist .embed__frame { max-width: 640px; height: 380px; border-radius: 12px; }
.embed--wide.embed--audio .embed__frame, .embed--wide.embed--playlist .embed__frame { max-width: none; }
.embed--audio .embed__frame:not(.is-loaded) { height: auto; min-height: 200px; }
.embed__caption { color: var(--mf-muted, #6e665c); text-align: center; font-size: .95rem; }
.embed__notice { margin: 0 auto; max-width: 560px; padding: 1rem 1.25rem; border: 1px dashed currentColor; border-radius: 10px; opacity: .75; text-align: center; }

/* Mapa */
.map { --mf-container: 1100px; }
.map__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.map__info .heading { margin-top: 0; }
.map__address { display: flex; gap: .6rem; align-items: flex-start; margin: 0 0 .75rem; font-size: 1.1rem; }
.map__icon { flex: none; width: 1.3em; height: 1.3em; margin-top: .1em; color: var(--mf-accent, #a4522b); }
.map__text { margin: 0 0 1.25rem; color: var(--mf-muted, #6e665c); }
.map__frame { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--mf-radius, 6px); background: color-mix(in srgb, var(--mf-text, #1f1b16) 6%, transparent); }
.map__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map--wide .map__inner { grid-template-columns: 1fr; }
.map--wide .map__info { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 2rem; }
.map--wide .map__info .heading { flex-basis: 100%; }
.map--wide .map__address, .map--wide .map__text { margin: 0; }
.map--wide .map__route { margin-left: auto; }
.map--wide .map__frame { aspect-ratio: 21 / 9; }
@media (max-width: 760px) {
    .map__inner { grid-template-columns: 1fr; }
    .map__frame, .map--wide .map__frame { aspect-ratio: 4 / 3; }
    .map--wide .map__route { margin-left: 0; }
}

/* Logá */
.logos .section__header { text-align: center; }
.logos__list { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: clamp(1.5rem, 4vw, 3.5rem); margin: 0; padding: 0; list-style: none; }
.logos__item img { display: block; max-width: 160px; max-height: 64px; width: auto; height: auto; object-fit: contain; transition: filter .25s ease, opacity .25s ease; }
.logos--grid .logos__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1rem; }
.logos--grid .logos__item { display: grid; place-items: center; aspect-ratio: 3 / 2; padding: 1.25rem; border-radius: var(--mf-radius, 6px); background: color-mix(in srgb, var(--mf-text, #1f1b16) 4%, transparent); }
.logos--grid .logos__item a { display: contents; }
.logos--muted .logos__item img { filter: grayscale(1); opacity: .65; }
.logos--muted .logos__item:hover img, .logos--muted .logos__item a:focus-visible img { filter: none; opacity: 1; }

/* Footer: "made with" and, for listed sites, the town page in the catalog */
.site-footer__platform { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; }
.site-footer__catalog { opacity: .8; }
