/* B1 redesign: varianta 1B "Fotka". Tmavý podklad, kompaktní lišta, velké fotografie.
   Obsahové fragmenty zůstávají beze změny; rozložení řídí atributy data-page, data-block-id a data-media-id. */
:root {
  color-scheme: dark;
  --color-page: #1c1b1a;
  --color-band: #151514;
  --color-surface: #262523;
  --color-text: #efece6;
  --color-soft: #d9d5cd;
  --color-muted: #bdb8ae;
  --color-accent: #e8ad62;
  --color-accent-hover: #f4c88e;
  --color-accent-soft: rgba(232, 173, 98, 0.12);
  --color-border: rgba(255, 255, 255, 0.12);
  --color-field-border: rgba(255, 255, 255, 0.28);
  --color-error: #ff9b8a;
  --font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --width-shell: 80rem;
  --width-text: 40rem;
  --gutter: max(1.25rem, calc((100% - 76rem) / 2));
  --radius: 3px;
  --tile-gap: 0.375rem;
  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-section: clamp(3rem, 2rem + 4vw, 6rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: auto; }
body { margin: 0; color: var(--color-text); background: var(--color-page); font: 1.0625rem/1.65 var(--font-body); -webkit-font-smoothing: antialiased; }
img, picture, video, iframe { display: block; max-width: 100%; height: auto; }
a { color: var(--color-accent); }
a:hover { color: var(--color-accent-hover); }
a:focus-visible, summary:focus-visible, button:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
::selection { background: var(--color-accent); color: #1a1a1a; }

.skip-link { position: absolute; top: -5rem; left: var(--space-2); z-index: 10; padding: var(--space-1) var(--space-2); background: var(--color-page); color: var(--color-accent); }
.skip-link:focus { top: var(--space-1); }

/* Hlavička: kompaktní lišta */
.site-header { background: var(--color-band); border-bottom: 1px solid var(--color-border); }
.site-header__inner, .site-footer__inner { width: min(100% - 2.5rem, var(--width-shell)); margin-inline: auto; }
.site-header__inner { display: flex; align-items: center; gap: var(--space-3); min-height: 4.5rem; padding-block: var(--space-1); }
.site-brand { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; flex: 0 1 auto; min-width: 0; max-width: 100%; color: #fff; font-family: var(--font-display); font-size: 1.6rem; font-style: italic; font-weight: 700; line-height: 1.1; text-decoration: none; }
.site-brand:hover { color: #fff; }
.site-brand img { flex-shrink: 0; width: 7rem; height: auto; border-radius: var(--radius); }
.site-brand span { flex: 1 1 10rem; min-width: min-content; }
@media (max-width: 47.999rem) {
  .site-brand img { width: 5rem; }
}
.desktop-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.125rem; margin-left: auto; }
.desktop-nav a { display: block; padding: 0.6rem 0.65rem; border-bottom: 2px solid transparent; color: var(--color-soft); font-size: 0.95rem; font-weight: 600; text-decoration: none; }
.desktop-nav a:hover { color: #fff; }
.desktop-nav [aria-current="page"] { color: var(--color-accent); border-bottom-color: var(--color-accent); }
.mobile-menu { display: none; }
.mobile-menu:not([open]) nav { display: none; }

@media (max-width: 72rem) {
  .site-header__inner { flex-wrap: wrap; justify-content: space-between; }
  .desktop-nav { display: none; }
  .mobile-menu { display: block; margin-left: auto; }
  .mobile-menu[open] { flex-basis: 100%; }
  .mobile-menu summary { display: flex; align-items: center; justify-content: center; width: max-content; min-height: 2.75rem; margin-left: auto; padding: 0.4rem 1.1rem; border: 1px solid var(--color-field-border); border-radius: var(--radius); color: var(--color-text); font-weight: 600; list-style: none; cursor: pointer; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .mobile-menu nav { display: grid; gap: 0.125rem; padding-block: var(--space-1) var(--space-2); }
  .mobile-menu a { display: flex; align-items: center; min-height: 3rem; padding: 0.4rem 0.9rem; border-radius: var(--radius); color: var(--color-soft); font-size: 1.0625rem; font-weight: 600; text-decoration: none; }
  .mobile-menu a:hover { color: #fff; background: rgba(255, 255, 255, 0.05); }
  .mobile-menu [aria-current="page"] { color: var(--color-accent); background: var(--color-accent-soft); }
}

/* Hlavní oblast */
.site-main { min-height: 48vh; overflow-wrap: break-word; }
.site-main:focus:not(:focus-visible) { outline: none; }
.site-main a[href^="http"], .site-main a[href^="mailto:"] { overflow-wrap: anywhere; }
.site-main h1, .site-main h2, .site-main h3 { margin: 0; color: #fff; font-family: var(--font-display); font-weight: 700; text-wrap: balance; }
.site-main h1 { font-size: clamp(2.5rem, 1.6rem + 3.6vw, 4.25rem); line-height: 1.05; }
.site-main h2 { font-size: clamp(1.9rem, 1.4rem + 2vw, 2.75rem); line-height: 1.15; }
.site-main h3 { font-size: 1.3rem; line-height: 1.35; }
.site-main p { margin: 0 0 0.9rem; color: var(--color-soft); text-wrap: pretty; }
.site-main [data-block-id] > :last-child { margin-bottom: 0; }
.site-main [data-block-id]:empty { display: none; }

/* Převzaté obalové prvky nevytvářejí vlastní boxy; obsahové bloky jsou přímé položky mřížky sekce. */
.site-main section div:not([data-block-id], [data-gallery-grid], [data-gallery-item], [data-block-id] *, [data-gallery-item] *, form *) { display: contents; }
.site-main section:not(:has(img, a, iframe, form, [data-block-id])) { display: none; }
.site-main section { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); align-items: start; padding: var(--space-section) var(--gutter); }

/* Fotografie */
.site-main img { display: block; width: 100%; max-width: 100%; height: auto; }
.site-main a:has(> img) { display: block; overflow: hidden; border-radius: var(--radius); background: var(--color-surface); }
.site-main a:has(> img):focus-visible, .site-main [data-gallery-id]:focus-visible { outline-offset: 2px; }

/* Galerijní dlaždice: čtverec, celé snímky s diplomy a oceněními bez ořezu (ověřeno na kontaktním archu B1) */
.site-main [data-gallery-grid] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--tile-gap); }
.site-main [data-gallery-item] { min-width: 0; }
.site-main [data-gallery-id] { display: block; overflow: hidden; border-radius: var(--radius); background: var(--color-surface); }
.site-main [data-gallery-id] img,
[data-page="home"] .site-main a:has(> img[data-media-id="media-012"], > img[data-media-id="media-013"], > img[data-media-id="media-014"], > img[data-media-id="media-015"]) img,
[data-page="fotogalerie"] .site-main a:has(> img[data-media-id="media-037"], > img[data-media-id="media-038"], > img[data-media-id="media-039"]) img {
  aspect-ratio: 1 / 1; object-fit: cover; transition: transform 0.4s ease;
}
.site-main [data-gallery-id]:hover img,
[data-page="home"] .site-main :where(section:nth-of-type(6) > *) a:hover img,
[data-page="fotogalerie"] .site-main a:hover > img { transform: scale(1.04); }
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-006"],
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-007"],
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-008"],
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-009"],
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-012"],
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-020"],
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-026"],
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-027"],
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-037"],
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-038"] { object-fit: contain; transform: none; }
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-020"] { object-position: 25% 50%; }
body[data-page] .site-main a:has(> img, div) img[data-media-id="media-024"] { object-position: 50% 35%; }

/* Textové odkazy na podstránky */
.site-main a[data-link-id]:not(:has(img), [href^="http"]) { display: inline-flex; align-items: center; gap: 0.5rem; justify-self: start; min-height: 2.75rem; color: var(--color-accent); font-size: 1.125rem; font-weight: 700; text-decoration: none; }
.site-main a[data-link-id]:not(:has(img), [href^="http"])::after { content: "→"; transition: transform 0.2s ease; }
.site-main a[data-link-id]:not(:has(img), [href^="http"]):hover::after { transform: translateX(0.25rem); }

/* Formulář */
.contact-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.1rem; padding: clamp(1.25rem, 0.8rem + 2vw, 2.25rem); background: var(--color-surface); border-radius: var(--radius); }
.contact-form label { display: block; margin-bottom: 0.4rem; color: var(--color-text); font-size: 0.95rem; font-weight: 600; }
.contact-form input, .contact-form textarea { display: block; width: 100%; min-height: 3rem; padding: 0.7rem 0.85rem; border: 1px solid var(--color-field-border); border-radius: var(--radius); background: var(--color-page); color: #fff; font: inherit; }
.contact-form textarea { resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--color-accent); }
.contact-form button { justify-self: start; max-width: 100%; min-height: 3rem; padding: 0.6rem min(2rem, 5vw); border: 0; border-radius: var(--radius); background: var(--color-accent); color: #1a1a1a; font: inherit; font-weight: 700; cursor: pointer; }
.contact-form button:hover { background: var(--color-accent-hover); }
.contact-form :focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
.contact-form [aria-invalid] { border-color: var(--color-error); }
.field-error, .form-summary { margin: 0.4rem 0 0; color: var(--color-error); font-weight: 600; }
.field-error:empty, .form-summary:empty { display: none; }
.contact-honeypot { display: none; }

/* Samostatná odpověď formuláře a 404 (bez sekcí) */
.site-main > h1, .site-main > p, .site-main > form { width: min(100% - 2.5rem, var(--width-text)); margin-inline: auto; }
.site-main > h1 { margin-top: var(--space-section); margin-bottom: var(--space-3); }
.site-main > form { margin-bottom: var(--space-3); }
.site-main > p:last-child { margin-bottom: var(--space-section); }

/* ---------- Úvod ---------- */
[data-page="home"] .site-main section:nth-of-type(2) [data-block-id="home-block-001"] { color: #fff; font-family: var(--font-display); font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2.25rem); font-style: italic; line-height: 1.4; }
[data-page="home"] .site-main section:nth-of-type(2) [data-block-id="home-block-001"]::before,
[data-page="o-nas"] [data-block-id="o-nas-block-001"]::before,
[data-page="nase-prace"] [data-block-id="nase-prace-block-001"]::after { content: ""; display: block; width: 3rem; height: 3px; margin-bottom: var(--space-3); background: var(--color-accent); }
[data-page="home"] .site-main section:nth-of-type(2) img { aspect-ratio: 4 / 5; object-fit: cover; }

[data-page="home"] .site-main section:nth-of-type(3) { padding: 0; gap: 0; }
[data-page="home"] .site-main section:nth-of-type(3) a { grid-area: 1 / 1; }
[data-page="home"] .site-main section:nth-of-type(3) a:has(> img) { border-radius: 0; }
[data-page="home"] .site-main section:nth-of-type(3) img { aspect-ratio: 4 / 3; object-fit: cover; }
[data-page="home"] .site-main a[data-link-id="home-page-link-013"] { z-index: 1; align-self: end; justify-self: stretch; padding: 4rem var(--gutter) clamp(1.5rem, 1rem + 2vw, 3rem); background: linear-gradient(to top, rgba(21, 21, 20, 0.94) 35%, rgba(21, 21, 20, 0)); color: #fff; font-family: var(--font-display); font-size: clamp(1.75rem, 1.2rem + 2.2vw, 3.25rem); }
[data-page="home"] .site-main a[data-link-id="home-page-link-013"]::after { color: var(--color-accent); }

[data-page="home"] .site-main section:nth-of-type(4) ul { display: grid; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
[data-page="home"] .site-main section:nth-of-type(4) li { display: flex; align-items: baseline; gap: 0.75rem; color: var(--color-text); }
[data-page="home"] .site-main section:nth-of-type(4) li::before { content: ""; flex-shrink: 0; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--color-accent); transform: translateY(-0.1rem); }
[data-page="home"] .site-main section:nth-of-type(5) { background: var(--color-band); }
[data-page="home"] .site-main section:has(.home-training-photo) {
  grid-template-areas: "heading" "text" "link" "photo";
}
[data-page="home"] [data-block-id="home-block-005"] { grid-area: heading; }
[data-page="home"] [data-block-id="home-block-006"] { grid-area: text; }
[data-page="home"] a[data-link-id="home-page-link-014"] { grid-area: link; }
[data-page="home"] .home-training-photo { grid-area: photo; width: 100%; max-width: 22.5rem; justify-self: center; }
[data-page="home"] .home-training-photo img { aspect-ratio: 3 / 4; object-fit: contain; }
@media (min-width: 48rem) {
  [data-page="home"] .site-main section:has(.home-training-photo) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 22.5rem);
    grid-template-rows: 1fr auto auto 1fr;
    grid-template-areas: ". photo" "heading photo" "text photo" "link photo";
    column-gap: clamp(2.5rem, 5vw, 5rem);
    align-items: start;
  }
}

[data-page="home"] .site-main section:nth-of-type(6) { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--tile-gap);
  grid-template-areas: "h h" "p p" "g g" "i1 i2" "i3 i4" "lk lk" "c9 c9" "fm fm" "c10 c10" "fb fb"; }
[data-page="home"] [data-block-id="home-block-007"] { grid-area: h; text-align: center; }
[data-page="home"] [data-block-id="home-block-008"] { grid-area: p; justify-self: center; max-width: 44rem; text-align: center; }
[data-page="home"] [data-gallery-grid="home-gallery-01"] { grid-area: g; margin-bottom: calc(var(--tile-gap) - var(--space-3)); }
[data-page="home"] a:has(> img[data-media-id="media-012"]) { grid-area: i1; margin-bottom: calc(var(--tile-gap) - var(--space-3)); }
[data-page="home"] a:has(> img[data-media-id="media-013"]) { grid-area: i2; margin-bottom: calc(var(--tile-gap) - var(--space-3)); }
[data-page="home"] a:has(> img[data-media-id="media-014"]) { grid-area: i3; }
[data-page="home"] a:has(> img[data-media-id="media-015"]) { grid-area: i4; }
[data-page="home"] .site-main a[data-link-id="home-page-link-023"] { grid-area: lk; justify-self: center; padding: 0.5rem 1.75rem; border: 1px solid var(--color-accent); border-radius: var(--radius); }
[data-page="home"] .site-main a[data-link-id="home-page-link-023"]:hover { background: var(--color-accent); color: #1a1a1a; }
[data-page="home"] [data-block-id="home-block-009"] { grid-area: c9; margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-border); color: #fff; font-family: var(--font-display); font-size: clamp(1.9rem, 1.4rem + 2vw, 2.75rem); font-weight: 700; line-height: 1.15; }
[data-page="home"] .site-main section:nth-of-type(6) .contact-form { grid-area: fm; }
[data-page="home"] [data-block-id="home-block-010"] { grid-area: c10; color: var(--color-muted); }
[data-page="home"] a[data-link-id="home-page-link-024"] { grid-area: fb; margin-top: calc(var(--space-1) - var(--space-3)); }

/* ---------- O nás ---------- */
[data-page="o-nas"] [data-block-id="o-nas-block-001"] > p { display: none; }
[data-page="o-nas"] blockquote { margin: 0; color: #fff; font-family: var(--font-display); font-size: clamp(1.4rem, 1.05rem + 1.3vw, 2rem); font-style: italic; line-height: 1.45; }
[data-page="o-nas"] [data-block-id="o-nas-block-003"] { color: var(--color-soft); line-height: 1.8; }
[data-page="o-nas"] [data-block-id="o-nas-block-003"] br { display: block; content: ""; margin-top: 0.9rem; }
[data-page="o-nas"] img[data-media-id="media-017"] { aspect-ratio: 3 / 4; object-fit: cover; }

/* ---------- Služby ---------- */
[data-page="sluzby"] img[data-media-id="media-018"] { aspect-ratio: 4 / 5; object-fit: cover; }
[data-page="sluzby"] img[data-media-id="media-019"] { aspect-ratio: 3 / 4; object-fit: cover; object-position: 50% 60%; }
[data-page="sluzby"] [data-block-id="sluzby-block-005"] { padding-top: var(--space-4); border-top: 1px solid var(--color-border); }

/* ---------- Naše práce ---------- */
[data-page="nase-prace"] .site-main section { grid-template-columns: minmax(0, 52rem); padding-block: clamp(4rem, 3rem + 6vw, 8rem); }
[data-page="nase-prace"] [data-block-id="nase-prace-block-001"]::after { margin: var(--space-3) 0 0; }
[data-page="nase-prace"] [data-block-id="nase-prace-block-002"] p { color: var(--color-text); font-size: clamp(1.2rem, 1rem + 0.8vw, 1.5rem); line-height: 1.6; }

/* ---------- Fotogalerie ---------- */
[data-page="fotogalerie"] .site-main section { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--tile-gap); }
[data-page="fotogalerie"] [data-block-id] , [data-page="fotogalerie"] [data-gallery-grid] { grid-column: 1 / -1; }
[data-page="fotogalerie"] [data-block-id="fotogalerie-block-003"], [data-page="fotogalerie"] [data-block-id="fotogalerie-block-004"] { margin-top: var(--space-4); padding-bottom: 0.75rem; border-bottom: 1px solid var(--color-border); color: #fff; font-family: var(--font-display); font-size: clamp(1.4rem, 1.15rem + 1vw, 1.9rem); font-weight: 700; }
[data-page="fotogalerie"] [data-block-id="fotogalerie-block-004"] { margin-bottom: calc(var(--tile-gap) - var(--space-3) + 1rem); }

/* ---------- Ceník ---------- */
[data-page="cenik"] .site-main section { row-gap: 0; }
[data-page="cenik"] [data-block-id="cenik-block-002"] { margin-top: var(--space-3); }
[data-page="cenik"] [data-block-id="cenik-block-003"] { margin-block: var(--space-4); padding: clamp(1.25rem, 0.8rem + 2vw, 2.5rem); border: 1px solid rgba(232, 173, 98, 0.45); border-radius: var(--radius); background: var(--color-band); }
[data-page="cenik"] [data-block-id="cenik-block-003"] > p:first-child { margin-bottom: 0.5rem; color: var(--color-accent); font-family: var(--font-display); font-size: clamp(1.4rem, 1.15rem + 1vw, 1.9rem); font-weight: 700; }
[data-page="cenik"] [data-block-id="cenik-block-003"] > p:last-of-type { color: var(--color-text); }
[data-page="cenik"] [data-block-id="cenik-block-004"], [data-page="cenik"] [data-block-id="cenik-block-006"], [data-page="cenik"] [data-block-id="cenik-block-008"] { display: grid; gap: 0.5rem 3rem; padding-block: 1.75rem; border-top: 1px solid var(--color-border); }
[data-page="cenik"] [data-block-id="cenik-block-008"] { border-bottom: 1px solid var(--color-border); }
[data-page="cenik"] [data-block-id] h3 + p { margin: 0; }

/* ---------- Kontakt ---------- */
[data-page="kontakt"] .site-main section { grid-template-columns: 3.25rem minmax(0, 1fr); column-gap: var(--space-2);
  grid-template-areas: "h h" "i1 t1" "i2 t2" "i3 t3" "i4 t4" "m m"; }
[data-page="kontakt"] [data-block-id="kontakt-block-001"] { grid-area: h; margin-bottom: var(--space-2); }
[data-page="kontakt"] iframe { grid-area: m; width: 100%; height: clamp(20rem, 14rem + 18vw, 32rem); margin-top: var(--space-3); border: 0; border-radius: var(--radius); background: var(--color-surface); }
[data-page="kontakt"] img[data-embed-order] { width: 3.25rem; height: 3.25rem; padding: 0.8rem; border-radius: 50%; background: var(--color-accent); object-fit: contain; align-self: center; }
[data-page="kontakt"] img[data-media-id="media-044"] { grid-area: i1; align-self: start; }
[data-page="kontakt"] img[data-media-id="media-045"] { grid-area: i2; }
[data-page="kontakt"] img[data-media-id="media-046"] { grid-area: i3; }
[data-page="kontakt"] img[data-media-id="media-047"] { grid-area: i4; }
[data-page="kontakt"] [data-block-id="kontakt-block-002"] { grid-area: t1; }
[data-page="kontakt"] [data-block-id="kontakt-block-003"] { grid-area: t2; align-self: center; }
[data-page="kontakt"] [data-block-id="kontakt-block-004"] { grid-area: t3; align-self: center; }
[data-page="kontakt"] [data-block-id="kontakt-block-005"] { grid-area: t4; align-self: center; font-weight: 600; }
[data-page="kontakt"] [data-block-id] h3 { font-family: var(--font-body); font-size: 1.15rem; }
[data-page="kontakt"] [data-block-id] h3 a { text-decoration: none; }
[data-page="kontakt"] [data-block-id="kontakt-block-002"] p { margin-top: 0.25rem; }

/* ---------- Vrh A ---------- */
[data-page="vrh-a"] [data-block-id="vrh-a-block-001"] p { margin-top: var(--space-2); color: var(--color-accent); font-family: var(--font-display); font-size: clamp(1.4rem, 1.15rem + 1vw, 1.9rem); font-style: italic; }

/* ---------- Feny a Psi: profily ---------- */
[data-page="feny"] [data-block-id="feny-block-001"] strong,
[data-page="feny"] [data-block-id="feny-block-001"] > span,
[data-page="feny"] [data-block-id="feny-block-003"] > p:last-child > strong,
[data-page="feny"] [data-block-id="feny-block-003"] > p:last-child > strong + span,
[data-page="psi"] [data-block-id="psi-block-001"] strong { color: #fff; font-family: var(--font-display); font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.5rem); line-height: 1.2; }
[data-page="feny"] [data-block-id="feny-block-001"] p { margin-top: 0.5rem; color: var(--color-muted); }
[data-page="feny"] [data-block-id="feny-block-003"] > p:nth-child(-n+2) { display: none; }
[data-page="feny"] [data-block-id="feny-block-003"] > p:last-child, [data-page="psi"] [data-block-id="psi-block-001"] p { color: var(--color-muted); }
[data-page="feny"] [data-block-id="feny-block-002"] { color: #fff; font-size: 1.125rem; line-height: 1.8; }
[data-page="feny"] [data-block-id="feny-block-002"] > div:nth-child(6) { margin-top: var(--space-2); color: var(--color-accent); font-weight: 700; }
[data-page="feny"] [data-block-id="feny-block-002"] > p { margin: 0; color: var(--color-text); font-size: 1.0625rem; }
[data-page="feny"] [data-block-id="feny-block-002"] > div:last-child,
[data-page="feny"] [data-block-id="feny-block-004"], [data-page="psi"] [data-block-id="psi-block-002"] { margin-top: var(--space-2); padding-top: var(--space-2); border-top: 1px solid var(--color-border); color: var(--color-muted); font-size: 0.95rem; line-height: 1.6; }
[data-page="feny"] [data-block-id="feny-block-002"] > div:last-child { padding-top: 0; border-top: 0; }
[data-page="feny"] a:has(> img[data-media-id="media-042"]), [data-page="psi"] a:has(> img[data-media-id="media-043"]) { justify-self: start; max-width: 32rem; }

@media (min-width: 40rem) {
  .site-main [data-gallery-grid] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  [data-page="fotogalerie"] .site-main section { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  [data-page="home"] .site-main section:nth-of-type(3) img { aspect-ratio: 2 / 1; }
}

@media (min-width: 60rem) {
  .site-main [data-gallery-grid] { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  [data-page="home"] .site-main section:nth-of-type(2) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; column-gap: clamp(2.5rem, 5vw, 5rem); }
  [data-page="home"] .site-main section:nth-of-type(4) { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(2.5rem, 5vw, 5rem); }
  [data-page="home"] [data-block-id="home-block-002"] { grid-row: 1 / span 2; }
  [data-page="home"] [data-block-id="home-block-003"], [data-page="home"] [data-block-id="home-block-004"] { grid-column: 2; }
  [data-page="home"] .site-main section:nth-of-type(6) { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(8, auto) 1fr;
    grid-template-areas: "h h h h" "p p p p" "g g g g" "i1 i2 i3 i4" "lk lk lk lk" "c9 c9 fm fm" "c10 c10 fm fm" "fb fb fm fm" "x x fm fm"; }
  [data-page="home"] a:has(> img[data-media-id="media-012"]), [data-page="home"] a:has(> img[data-media-id="media-013"]) { margin-bottom: 0; }
  [data-page="home"] [data-block-id="home-block-009"] { margin-right: var(--space-4); }
  [data-page="home"] .site-main section:nth-of-type(6) .contact-form { margin-top: var(--space-4); margin-left: var(--space-4); }

  [data-page="o-nas"] .site-main section { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(2.5rem, 5vw, 5rem); align-items: center;
    grid-template-areas: "q a16" "h a17" "t a17"; }
  [data-page="o-nas"] [data-block-id="o-nas-block-001"] { grid-area: q; }
  [data-page="o-nas"] a:has(> img[data-media-id="media-016"]) { grid-area: a16; }
  [data-page="o-nas"] [data-block-id="o-nas-block-002"] { grid-area: h; align-self: end; margin-top: var(--space-section); }
  [data-page="o-nas"] [data-block-id="o-nas-block-003"] { grid-area: t; align-self: start; }
  [data-page="o-nas"] a:has(> img[data-media-id="media-017"]) { grid-area: a17; align-self: start; margin-top: var(--space-section); }

  [data-page="sluzby"] .site-main section { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(2.5rem, 5vw, 5rem); grid-template-rows: auto 1fr auto 1fr auto;
    grid-template-areas: "b1 a18" "b2 a18" "a19 b3" "a19 b4" "b5 b6"; }
  [data-page="sluzby"] [data-block-id="sluzby-block-001"] { grid-area: b1; margin-top: var(--space-4); }
  [data-page="sluzby"] [data-block-id="sluzby-block-002"] { grid-area: b2; }
  [data-page="sluzby"] a:has(> img[data-media-id="media-018"]) { grid-area: a18; }
  [data-page="sluzby"] a:has(> img[data-media-id="media-019"]) { grid-area: a19; margin-top: var(--space-section); }
  [data-page="sluzby"] [data-block-id="sluzby-block-003"] { grid-area: b3; margin-top: calc(var(--space-section) + var(--space-4)); }
  [data-page="sluzby"] [data-block-id="sluzby-block-004"] { grid-area: b4; }
  [data-page="sluzby"] [data-block-id="sluzby-block-005"] { grid-area: b5; margin-top: var(--space-section); }
  [data-page="sluzby"] [data-block-id="sluzby-block-006"] { grid-area: b6; margin-top: var(--space-section); padding-top: var(--space-4); border-top: 1px solid var(--color-border); }

  [data-page="fotogalerie"] .site-main section { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  [data-page="fotogalerie"] [data-block-id="fotogalerie-block-001"] { grid-column: 1 / 3; align-self: end; }
  [data-page="fotogalerie"] [data-block-id="fotogalerie-block-002"] { grid-column: 3 / 5; padding-left: var(--space-3); }

  [data-page="cenik"] .site-main section { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(2.5rem, 5vw, 5rem); }
  [data-page="cenik"] [data-block-id="cenik-block-001"] { align-self: end; }
  [data-page="cenik"] [data-block-id="cenik-block-002"] { margin-top: 0; }
  [data-page="cenik"] [data-block-id="cenik-block-003"], [data-page="cenik"] [data-block-id="cenik-block-004"],
  [data-page="cenik"] [data-block-id="cenik-block-006"], [data-page="cenik"] [data-block-id="cenik-block-008"] { grid-column: 1 / -1; }
  [data-page="cenik"] [data-block-id="cenik-block-004"], [data-page="cenik"] [data-block-id="cenik-block-006"],
  [data-page="cenik"] [data-block-id="cenik-block-008"] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }

  [data-page="kontakt"] .site-main section { grid-template-columns: 3.25rem minmax(0, 1fr) minmax(0, 1.3fr); column-gap: var(--space-3); grid-template-rows: repeat(5, auto) 1fr;
    grid-template-areas: "h h m" "i1 t1 m" "i2 t2 m" "i3 t3 m" "i4 t4 m" "x x m"; }
  [data-page="kontakt"] iframe { margin-top: 0; height: 100%; min-height: 28rem; margin-left: var(--space-4); width: calc(100% - var(--space-4)); }

  [data-page="vrh-a"] .site-main section { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; column-gap: clamp(2.5rem, 5vw, 5rem); }
  [data-page="vrh-a"] [data-block-id="vrh-a-block-001"] h1 { font-size: clamp(3.5rem, 2rem + 5vw, 6.5rem); }

  [data-page="feny"] .site-main section { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); column-gap: clamp(2.5rem, 5vw, 5rem); grid-template-rows: auto 1fr auto 1fr;
    grid-template-areas: "a41 n1" "a41 t2" "a42 r3" "a42 g4"; }
  [data-page="feny"] [data-block-id="feny-block-001"] { grid-area: n1; }
  [data-page="feny"] a:has(> img[data-media-id="media-041"]) { grid-area: a41; }
  [data-page="feny"] [data-block-id="feny-block-002"] { grid-area: t2; }
  [data-page="feny"] a:has(> img[data-media-id="media-042"]) { grid-area: a42; margin-top: var(--space-section); }
  [data-page="feny"] [data-block-id="feny-block-003"] { grid-area: r3; margin-top: var(--space-section); }
  [data-page="feny"] [data-block-id="feny-block-004"] { grid-area: g4; }
  [data-page="psi"] .site-main section { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); column-gap: clamp(2.5rem, 5vw, 5rem); grid-template-rows: auto 1fr;
    grid-template-areas: "a43 n1" "a43 g2"; }
  [data-page="psi"] [data-block-id="psi-block-001"] { grid-area: n1; }
  [data-page="psi"] a:has(> img[data-media-id="media-043"]) { grid-area: a43; }
  [data-page="psi"] [data-block-id="psi-block-002"] { grid-area: g2; }
}

/* Schválené UX doplňky; původní rozložení bloků zůstává stejné. */
.site-main > .visually-hidden { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.contact-action { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; max-width: 100%; margin-top: 0.75rem; padding: 0.5rem 0.8rem; border: 1px solid var(--color-accent); border-radius: var(--radius); font-size: 1rem; font-weight: 600; line-height: 1.4; text-align: center; text-decoration: none; }
.contact-action:hover { background: var(--color-accent-soft); }
[data-ux-addition="home-whatsapp"] { display: flex; width: fit-content; }
.form-privacy summary { min-height: 2.75rem; padding-block: 0.5rem; color: var(--color-accent); cursor: pointer; }
.form-privacy p { margin-top: 0.75rem; font-size: 0.95rem; }
.mobile-menu summary { gap: 0.65rem; }
.mobile-menu summary::after { content: ""; width: 0.5rem; height: 0.5rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-0.15rem) rotate(45deg); }
.mobile-menu[open] summary::after { transform: translateY(0.15rem) rotate(225deg); }
.lightbox { width: min(70rem, calc(100% - 1.5rem)); max-width: none; max-height: calc(100% - 1.5rem); padding: 1rem; border: 1px solid var(--color-field-border); border-radius: var(--radius); background: var(--color-page); color: var(--color-text); overflow: auto; overscroll-behavior: contain; }
.lightbox::backdrop { background: rgba(0, 0, 0, 0.85); }
.lightbox__toolbar { display: flex; justify-content: flex-end; margin-bottom: 0.75rem; }
.lightbox__content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0.75rem; }
.lightbox__figure { grid-column: 1 / -1; grid-row: 1; min-width: 0; margin: 0; }
.lightbox__image { width: 100%; height: 60vh; height: 60dvh; object-fit: contain; }
.lightbox__caption { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; justify-content: space-between; margin-top: 0.5rem; font-size: 0.95rem; }
.lightbox__original { display: inline-flex; align-items: center; min-height: 2.75rem; }
.lightbox button { min-height: 2.75rem; min-width: 2.75rem; padding: 0.5rem 0.75rem; border: 1px solid var(--color-accent); border-radius: var(--radius); background: var(--color-surface); color: var(--color-text); font: inherit; overflow-wrap: anywhere; cursor: pointer; }
.lightbox button:hover:not(:disabled) { background: var(--color-accent-soft); }
.lightbox button:disabled { opacity: 0.45; cursor: default; }
.lightbox__error { color: var(--color-error); }
.lightbox--error .lightbox__image { display: none; }

/* Patička */
.site-footer { border-top: 1px solid var(--color-border); background: var(--color-band); color: var(--color-muted); }
.site-footer__inner { padding-block: var(--space-4); font-size: 0.95rem; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
