
  html { scroll-behavior: smooth; }
  body { margin: 0; background: #f3f2f2; color: #201e1d; font-family: "Source Serif 4", Georgia, serif; -webkit-font-smoothing: antialiased; }
  * { box-sizing: border-box; }
  a { color: #201e1d; text-decoration: none; }
  a:hover { color: #605d5d; }
  ::selection { background: #d7d3d3; }
  :focus-visible { outline: 2px solid #201e1d; outline-offset: 2px; }
  @media (max-width: 767px) {
    .m-kont-outer { padding-top: 6px !important; }
    .m-kont-form { order: 1; padding-top: 0 !important; }
    .m-kont-form > h2, .m-kont-form > p { display: none !important; }
    .m-kont-info { order: 2; padding-top: clamp(30px,5vw,42px); }
    .m-kont-photo { order: 3; grid-column: 1 / -1 !important; }
    .m-kont-mail { font-size: 21px !important; font-weight: 600; letter-spacing: -0.01em; color: #201e1d; }
  }
  .m-fld { border: 1px solid rgba(32,30,29,0.18); }
  .m-fld:focus { border-color: rgba(32,30,29,0.42); }
  .m-fld::placeholder { color: #8d8a89; }
  .m-kont-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 22px; }
  .m-kont-wide { grid-column: 1 / -1; }
  @media (max-width: 1023px) {
    .m-uvod-form { grid-template-columns: 1fr !important; gap: 15px !important; }
    .m-uvod-kont { flex-direction: column; align-items: flex-start; gap: 12px; }
  }
  @media (min-width: 1024px) {
    .m-uvod-kont > div { flex-basis: 100%; margin-top: 10px; }
  }
  @media (max-width: 767px) {
    [data-page="pUvod"] .m-ft-kontakt { display: none !important; }
    .m-kont-grid { grid-template-columns: 1fr; gap: 13px; }
    .m-kont-grid .m-fld { min-height: 44px !important; padding-top: 9px !important; padding-bottom: 9px !important; }
    .m-kont-grid textarea.m-fld { min-height: 70px !important; }
    .m-kont-grid label { margin-bottom: -2px; }
    .m-kont-wide > p { margin-top: -2px !important; }
  }
  details summary::-webkit-details-marker { display: none; }
  details summary { list-style: none; cursor: pointer; }
  @keyframes rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
  @media (max-width: 767px) {
    .m-burger { display: inline-flex !important; }
    .m-nav { display: none !important; }
    .m-nav[data-open="true"] { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 0 !important; width: 100%; padding: 4px 0 8px; font-size: 18px; }
    .m-nav[data-open="true"] > span, .m-nav[data-open="true"] > a { width: 100%; }
    .m-nav[data-open="true"] a { min-height: 44px; display: flex; align-items: center; }
    .m-nav[data-open="true"] > a { margin-top: 12px; }
    .m-nav[data-open="true"] span[style*="position: absolute"] { display: none !important; }
    .m-nav[data-open="true"] > span > a { font-weight: 400; }
    .m-nav[data-open="true"] > span:has(> span[style*="position: absolute"]) > a { font-weight: 600; }
    .m-brand img { height: 34px !important; }
    .m-brand-name { font-size: 20px !important; white-space: nowrap; }
    .m-brand-sub { font-size: 12px !important; }
    header .m-brand-sub { display: none; }
    header .m-brand { gap: 10px !important; }
    .m-pad { padding-left: 24px !important; padding-right: 24px !important; }
    .m-h1 { font-size: 39px !important; line-height: 1.06 !important; letter-spacing: -0.02em !important; }
    .m-hero-photo { margin-left: -24px !important; margin-right: -24px !important; }
    .m-hero-ph { aspect-ratio: 1 !important; }
    .m-hero-ph img { object-position: 34% 44% !important; }
    .m-tile-ph { aspect-ratio: 4/3 !important; }
    /* Svatba: výřez posunutý dolů, aby byla vidět větší část šatů. */
    .m-tiles > div:nth-child(1) .m-tile-ph img { object-position: 42% 62% !important; }
    .m-pf-ph { aspect-ratio: 4/3 !important; }
    /* Kompaktní mozaika: vlevo vertikální snímek přes oba řádky, vpravo dva
       menší nad sebou. Levá dlaždice se natáhne na výšku pravého sloupce,
       takže spodní hrany obou sloupců lícují. */
    .m-pf-row { display: grid !important; grid-template-columns: 1fr 1fr !important; grid-template-rows: auto auto !important; gap: 9px !important; align-items: stretch !important; }
    .m-pf-a { grid-column: 1; grid-row: 1 / span 2; }
    .m-pf-off { grid-column: 2; grid-row: 1; }
    .m-pf-c { grid-column: 2; grid-row: 2; }
    .m-pf-a .m-pf-ph { aspect-ratio: auto !important; height: 100% !important; }
    .m-pf-off .m-pf-ph, .m-pf-c .m-pf-ph { aspect-ratio: 3/2 !important; }
    .m-pf-off { margin-top: 0 !important; }
    .m-quotes { gap: 34px !important; }
    .m-pf-main { padding-bottom: 0 !important; }
    .m-cenik-p { display: block !important; }
    .m-cenik-desk { display: none !important; }
    .m-cenik-note { display: none !important; }
    #cenik-svatba { margin-bottom: 24px !important; }
    .m-faq-ctaline, .m-ftr-line { display: none !important; }
    .m-faq-cta { padding-top: clamp(34px,4.4vw,52px) !important; gap: 22px clamp(18px,2.4vw,36px) !important; }
    .m-sub-main { padding-bottom: 0 !important; }
    #cenik-poukaz { margin-bottom: 0 !important; }
    div[style*="--m: art"] { margin-bottom: 0 !important; }
    .m-xl-fix { padding-top: 50px !important; }

    .m-hero-sec { display: flex; flex-direction: column; padding-top: 18px !important; }
    .m-hero-row { display: contents !important; }
    .m-h1 { order: 1; margin-top: 0 !important; }
    .m-hero-photo { order: 2; margin-top: 28px; flex: 0 0 auto !important; }
    .m-hero-text { order: 3; margin-top: 26px; flex: 0 0 auto !important; }
    .m-only { display: block !important; }
    .m-desk-p, .m-hero-p2, .m-hero-p3 { display: none !important; }
    .m-hero-p2 { margin-top: 14px !important; }
    .m-hero-p3 { margin-top: 11px !important; }
    .m-hero-cta { margin-top: 20px !important; }
    .m-tiles { gap: 22px !important; }
    .m-tile-h2 { margin: 13px 0 5px !important; }
    .m-tile-p { margin-bottom: 8px !important; }
    .m-tap { min-height: 44px; display: inline-flex !important; align-items: center; }
  }
  @media (min-width: 768px) and (max-width: 999px) {
    .m-burger { display: inline-flex !important; }
    .m-nav { display: none !important; }
    .m-nav[data-open="true"] { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 0 !important; width: 100%; padding: 4px 0 8px; font-size: 18px; }
    .m-nav[data-open="true"] > span, .m-nav[data-open="true"] > a { width: 100%; }
    .m-nav[data-open="true"] a { min-height: 44px; display: flex; align-items: center; }
    .m-nav[data-open="true"] > a { margin-top: 12px; }
    .m-nav[data-open="true"] span[style*="position: absolute"] { display: none !important; }
    .m-nav[data-open="true"] > span > a { font-weight: 400; }
    .m-nav[data-open="true"] > span:has(> span[style*="position: absolute"]) > a { font-weight: 600; }
  }
  /* Tablet na výšku: samostatný layout titulky (768–999 px). */
  @media (min-width: 768px) and (max-width: 999px) {
    .m-hero-row { flex-direction: column !important; flex-wrap: nowrap !important; gap: 30px !important; }
    .m-hero-text { flex: 0 0 auto !important; width: 100%; max-width: 640px; }
    .m-hero-photo { flex: 0 0 auto !important; width: 100%; }
    .m-hero-cta { flex-wrap: nowrap !important; }
    .m-tiles { grid-template-columns: 1fr 1fr !important; gap: 28px 24px !important; }
    /* Inspirace: kompaktní horizontální editorial blok přes celou šířku. */
    .m-tiles > div:nth-child(3) { grid-column: 1 / -1; display: grid !important; grid-template-columns: 57% 1fr; grid-template-rows: 1fr auto auto auto 1fr; column-gap: 26px; align-items: start; }
    .m-tiles > div:nth-child(3) > .m-tile-ph { grid-column: 1; grid-row: 1 / -1; }
    .m-tiles > div:nth-child(3) > .m-tile-h2 { grid-column: 2; grid-row: 2; margin-top: 0 !important; }
    .m-tiles > div:nth-child(3) > .m-tile-p { grid-column: 2; grid-row: 3; }
    .m-tiles > div:nth-child(3) > a { grid-column: 2; grid-row: 4; }
    /* Tip z blogu: kompaktní horizontální editorial blok (sekundární obsah). */
    .m-tip-row { flex-wrap: nowrap !important; align-items: center !important; gap: 26px !important; }
    .m-tip-photo { flex: 0 0 50% !important; min-width: 0; }
    .m-tip-text { flex: 1 1 auto !important; min-width: 0; }
    .m-tip-text > p:nth-of-type(2) { max-width: 42ch !important; }
    .m-quotes { grid-template-columns: 1fr !important; gap: 30px !important; }
    .m-kont-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
    .m-kont-grid > div { max-width: none !important; }
    .m-ftr-nav { gap: 18px 26px !important; }
    /* Blog: dva skutečné sloupce článků. Vnitřní grid článku má auto-fit
       minmax(280px) a text span 2 — v poloviční šířce by se lámal, proto
       jeden sloupec: fotografie nahoře, text pod ní. */
    .m-blog-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: clamp(24px,3vw,38px) !important; row-gap: clamp(34px,4vw,52px) !important; align-items: start; }
    .m-blog-list > article { grid-template-columns: minmax(0, 1fr) !important; gap: 18px !important; }
    .m-blog-list > article > div:nth-child(2) { grid-column: 1 !important; }
    .m-blog-list > article h2 { max-width: none !important; font-size: 23px !important; }
    .m-blog-list > article p:nth-of-type(2) { max-width: none !important; }
    /* Oddělovací linka patří mezi řádky, ne nad druhý článek prvního řádku. */
    .m-blog-list > article:nth-child(2) { border-top: 0 !important; padding-top: 0 !important; }
    /* Ceník — svatební balíčky: Velký + Střední vedle sebe, Malý horizontálně. */
    .m-pkg-wed { grid-template-columns: 1fr 1fr !important; }
    .m-pkg-wed > div:nth-child(3) { grid-column: 1 / -1; display: grid !important; grid-template-columns: 43% 1fr; grid-template-rows: 1fr auto auto auto 1fr; column-gap: 30px; align-items: start; }
    .m-pkg-wed > div:nth-child(3) > div:first-child { grid-column: 1; grid-row: 1 / -1; }
    .m-pkg-wed > div:nth-child(3) > h3 { grid-column: 2; grid-row: 2; margin-top: 0 !important; }
    .m-pkg-wed > div:nth-child(3) > p { grid-column: 2; grid-row: 3; margin-top: 14px !important; }
    .m-pkg-wed > div:nth-child(3) > ul { grid-column: 2; grid-row: 4; }
    .m-pf-row { display: grid !important; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 20px !important; }
    .m-pf-a { grid-row: 1 / span 2; }
    .m-pf-off { grid-column: 2; grid-row: 1; margin-top: 0 !important; }
    .m-pf-c { grid-column: 2; grid-row: 2; }
    .m-pf-a .m-pf-ph { aspect-ratio: 3/4 !important; }
    .m-pf-off .m-pf-ph, .m-pf-c .m-pf-ph { aspect-ratio: 3/2 !important; }
  }
  @media (min-width: 768px) and (max-width: 1024px) {
    .m-tap { min-height: 44px; display: inline-flex !important; align-items: center; }
    div[style*="--m: art"] { margin-bottom: 0 !important; }
  }
  @media (max-width: 1024px) {
    .m-lb-close { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; top: 10px !important; right: 12px !important; }
  }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
  }

  /* ---- Galerie portfolia — izolovaný blok, platí VÝHRADNĚ pro .m-gal-cols ----
     Skutečné sloupce v DOM místo CSS multi-column (WebKit počítá fragmentaci
     multi-column nespolehlivě). Rozdělení dlaždic řídí vložený skript na
     /portfolio/; sloupce se adresují přes data-col, nikdy přes nth-child.
     Žádný z těchto selektorů se nemůže uplatnit jinde — třída .m-gal-cols je
     v celém webu na jediném elementu. */
  .m-gal-cols { display: flex !important; align-items: flex-start; gap: 24px; }
  .m-gal-cols > .m-gal-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 24px; margin: 0; }
  /* Neaktivní sloupec se řídí režimem, nikoli :empty — na mobilu drží skrytou
     dlaždici 23 (tedy prázdný není) a na tabletu obsahuje bílé znaky. */
  .m-gal-cols[data-mode="m"] > [data-col="3"] { display: none; }
  .m-gal-cols[data-mode="t"] > [data-col="3"] { display: none; }
  .m-gal-cols > .m-gal-col > [data-i] { margin: 0 !important; }
  @media (max-width: 767px) {
    .m-gal-cols { flex-wrap: wrap; gap: 9px !important; margin-left: calc(9px - clamp(20px,5vw,60px)); margin-right: calc(9px - clamp(20px,5vw,60px)); }
    .m-gal-cols > .m-gal-col { gap: 9px; }
    .m-gal-cols > [data-i="0"] { flex: 0 0 100%; margin: 0 0 9px !important; }
    .m-gal-cols > .m-gal-col > [data-i="23"] { display: none !important; }
  }

  /* ---- iPad mini na výšku (700–767 px) — POUZE sekce Svatba/Portréty/Inspirace
     na titulní straně. Samostatný blok na konci stylopisu; do žádného
     existujícího @media se nezasahuje. Mimo tento rozsah se neuplatní. ---- */
  @media (min-width: 700px) and (max-width: 767px) {
    .m-tiles { grid-template-columns: 1fr 1fr !important; gap: 28px 24px !important; }
    .m-tiles > div:nth-child(3) { grid-column: 1 / -1; display: grid !important; grid-template-columns: 57% 1fr; grid-template-rows: 1fr auto auto auto 1fr; column-gap: 26px; align-items: start; }
    .m-tiles > div:nth-child(3) > .m-tile-ph { grid-column: 1; grid-row: 1 / -1; }
    .m-tiles > div:nth-child(3) > .m-tile-h2 { grid-column: 2; grid-row: 2; margin-top: 0 !important; }
    .m-tiles > div:nth-child(3) > .m-tile-p { grid-column: 2; grid-row: 3; }
    .m-tiles > div:nth-child(3) > a { grid-column: 2; grid-row: 4; }
  }

  /* ---- iPad mini na výšku (700–767 px) — POUZE svatební balíčky na Ceníku.
     Stejné řešení jako tabletová varianta 768–999 px. Samostatný blok,
     do existujících @media se nezasahuje. ---- */
  @media (min-width: 700px) and (max-width: 767px) {
    .m-pkg-wed { grid-template-columns: 1fr 1fr !important; }
    .m-pkg-wed > div:nth-child(3) { grid-column: 1 / -1; display: grid !important; grid-template-columns: 43% 1fr; grid-template-rows: 1fr auto auto auto 1fr; column-gap: 30px; align-items: start; }
    .m-pkg-wed > div:nth-child(3) > div:first-child { grid-column: 1; grid-row: 1 / -1; }
    .m-pkg-wed > div:nth-child(3) > h3 { grid-column: 2; grid-row: 2; margin-top: 0 !important; }
    .m-pkg-wed > div:nth-child(3) > p { grid-column: 2; grid-row: 3; margin-top: 14px !important; }
    .m-pkg-wed > div:nth-child(3) > ul { grid-column: 2; grid-row: 4; }
  }

  /* ---- iPad mini na výšku (700–767 px) — POUZE seznam článků na Blogu.
     Stejné rozložení jako tabletová varianta 768–999 px. Samostatný blok,
     do existujících @media se nezasahuje. ---- */
  @media (min-width: 700px) and (max-width: 767px) {
    .m-blog-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: clamp(24px,3vw,38px) !important; }
    .m-blog-list > article { grid-template-columns: minmax(0, 1fr) !important; gap: 18px !important; }
    .m-blog-list > article > div:nth-child(2) { grid-column: 1 !important; }
    .m-blog-list > article h2 { max-width: none !important; font-size: 23px !important; }
    .m-blog-list > article p:nth-of-type(2) { max-width: none !important; }
    .m-blog-list > article:nth-child(2) { border-top: 0 !important; padding-top: 0 !important; }
  }
  /* hover stavy přenesené ze style-hover atributů MASTERu */
  [style-hover="color: #201e1d"]:hover { color: #201e1d !important; }
  [style-hover="background: #444141; color: #f3f2f2"]:hover { background: #444141 !important; color: #f3f2f2 !important; }
  [style-hover="background: #444141"]:hover { background: #444141 !important; }
  [style-hover="box-shadow: inset 0 0 0 1px #201e1d; color: #201e1d"]:hover { box-shadow: inset 0 0 0 1px #201e1d !important; color: #201e1d !important; }
  [style-hover="opacity: 0.7"]:hover { opacity: 0.7 !important; }
  [style-hover="color: #605d5d"]:hover { color: #605d5d !important; }
  [style-hover="opacity: 1"]:hover { opacity: 1 !important; }
