/* Festiwalowe Mazury - design system v2 ("Wygląd 2.0", dev109).
   Ładowany PO app.css tylko wtedy, gdy włączony jest przełącznik „Wygląd 2.0” (Ustawienia > Wygląd): wycofanie = odznaczenie pola. Nowe komponenty mają własne klasy
   (fm8-pc*, fm8-cover*, ds-*), więc nie walczą specyficznością ze starymi regułami; stare reguły zostają w public.css i app.css bez zmian do etapu dev112.
   Kolory: granat nocny + zieleń Mazur, złoto tylko jako akcent (przycisk biletu, liczniki). Etykiety w Inter (bez czcionki mono, której nie ma w paczce). */

/* ================================================================== 1. Tokeny */
:root {
  --ds-night-950: #031e25; --ds-night-900: #062f36; --ds-night-800: #07424a; --ds-night-700: #0a5561;
  --ds-teal-600: #0a7873; --ds-teal-500: #0b7d7f; --ds-green-400: #12907f; --ds-mint-300: #7ee6df;
  --ds-tint-100: #e9f3f1; --ds-tint-50: #f3f6f4; --ds-white: #fff;
  --ds-gold-300: #f7d47c; --ds-gold-400: #f2c15c; --ds-gold-500: #e6ad3c; --ds-gold-600: #d79b2d; --ds-on-gold: #2b1c00;
  --ds-text: #062f36; --ds-text-soft: #4b666c; --ds-link: #0a7873;
  --ds-line: rgba(7, 60, 66, .12); --ds-line-strong: rgba(7, 60, 66, .24);
  --ds-danger: #a8412c; --ds-info: #244a7a;
  --ds-r-card: 22px; --ds-r-panel: 26px; --ds-r-ctl: 14px; --ds-r-pill: 999px;
  --ds-sh-1: 0 1px 2px rgba(3, 30, 37, .08), 0 10px 26px rgba(3, 30, 37, .09);
  --ds-sh-2: 0 1px 2px rgba(3, 30, 37, .10), 0 18px 40px rgba(3, 30, 37, .18);
  --ds-sh-3: 0 2px 4px rgba(3, 30, 37, .12), 0 34px 64px rgba(3, 30, 37, .28);
  --ds-ease: cubic-bezier(.2, .7, .2, 1);
  --ds-display: var(--fm-display, "Barlow Condensed", "Arial Narrow", sans-serif);
  --ds-sans: var(--fmec-font, "Inter", "Inter Fallback", system-ui, sans-serif);
  /* typografia w rem: 1 rem = 16 px */
  --ds-fs-label: .75rem; --ds-fs-caption: .8125rem; --ds-fs-body-sm: .875rem; --ds-fs-body: 1rem;
  --ds-fs-lead: clamp(1rem, 1.4vw, 1.1875rem);
  --ds-fs-h4: 1.125rem; --ds-fs-h3: clamp(1.25rem, 1.7vw, 1.45rem);
  --ds-fs-h2: clamp(1.75rem, 3.1vw, 2.5rem); --ds-fs-h1: clamp(2.125rem, 4.6vw, 3.625rem);
}

/* Tokeny starych rodzin wskazują teraz na system: dwie zmienne używane w ok. 20 miejscach nie były nigdzie zdefiniowane (linki traciły kolor),
   kolor tekstu miękkiego i morskiego akcentu miał kontrast poniżej AA (4,2 i 3,4:1). */
:root, .fmec-page {
  --fmec-ink: var(--ds-night-900);
  --fmec-muted: var(--ds-text-soft);
  --fmec-aqua: var(--ds-teal-600);
  --fmec-aqua-dark: #08666b;
  --fmec-accent: var(--ds-teal-600);
  --fm8-muted: var(--ds-text-soft);
  --fm8-ink: var(--ds-night-900);
  --pg-mono: var(--ds-sans);
}

/* Etykiety (kickery, daty, meta) były zapisane czcionką IBM Plex Mono, której nie ma w paczce: u każdego renderowała się inna czcionka systemowa. Teraz Inter. */
.fm8-merge-sub, .fmec-ft-name small, .fmec-ft-kicker, .fmec-ft-col h3, .fmec-ft-owner-copy span, .fmec-swipe-cue, .fmec-ad-tag, .fmec-adband-meta, .fmec-adpop-mini i, .fmec-tvstrip-media small { font-family: var(--ds-sans); }

/* Nagłówki nigdy z ujemnym odstępem liter (litery się zlewały: „ŁA”, „EŁK”). Gradient tytułów na jasnym tle (kontrast ok. 2:1) czeka na etap kolorów (dev111). Pierwsza linia H1 głównej była złota: złoto jest tylko akcentem. */
.fmec-page :is(h1, h2, h3) { letter-spacing: .008em; }
.fm8-home-hero h1 > span { color: #fff; }

/* ================================================================== 2. Przyciski i pastylki */
.ds-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 1px solid transparent; border-radius: var(--ds-r-ctl); font: 800 .875rem / 1 var(--ds-sans); letter-spacing: .005em; text-decoration: none; cursor: pointer; transition: transform .18s var(--ds-ease), background .18s ease, border-color .18s ease, box-shadow .18s ease; }
.ds-btn:focus-visible { outline: 3px solid rgba(143, 227, 218, .9); outline-offset: 2px; }
.ds-btn--primary { color: #fff; background: linear-gradient(135deg, var(--ds-teal-500), var(--ds-night-800)); box-shadow: 0 10px 24px rgba(3, 30, 37, .22); }
.ds-btn--secondary { color: var(--ds-text); background: #fff; border-color: var(--ds-line-strong); }
.ds-btn--ghost { color: #fff; background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .3); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ds-btn--gold { color: var(--ds-on-gold); background: linear-gradient(135deg, var(--ds-gold-300), var(--ds-gold-500)); box-shadow: 0 10px 24px rgba(215, 155, 45, .32); }
.ds-btn:hover { transform: translateY(-1px); }
.ds-btn--secondary:hover { border-color: var(--ds-teal-500); }
.ds-btn--ghost:hover { background: rgba(255, 255, 255, .2); }
.ds-btn[aria-pressed="true"] { background: var(--ds-tint-100); color: var(--ds-night-800); border-color: var(--ds-green-400); }
.ds-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px; border-radius: var(--ds-r-pill); font: 800 .75rem / 1 var(--ds-sans); letter-spacing: .01em; white-space: nowrap; }
.ds-chip--label { color: var(--ds-teal-600); background: var(--ds-tint-100); text-transform: uppercase; letter-spacing: .1em; }
.ds-chip--meta { color: var(--ds-text); background: #fff; border: 1px solid var(--ds-line); }
@media (prefers-reduced-motion: reduce) { .ds-btn { transition: none; } .ds-btn:hover { transform: none; } }

/* DS-END-FOUNDATION */

/* ================================================================== 3. Karta wysoka (plakatowa) i okładka typograficzna */
.fm8-pc { --pc-night: #031e25; --pc-cap: 148px; container-type: inline-size; position: relative; isolation: isolate; display: block; min-width: 0; aspect-ratio: 2 / 3; border-radius: var(--ds-r-card); overflow: hidden; color: #fff; background: var(--pc-night); box-shadow: var(--ds-sh-2), inset 0 0 0 1px rgba(255, 255, 255, .08); transition: transform .26s var(--ds-ease), box-shadow .26s ease; }
.fm8-pc:hover, .fm8-pc:focus-within { transform: translateY(-6px); box-shadow: var(--ds-sh-3), inset 0 0 0 1px rgba(255, 255, 255, .1); }
/* cała karta jest linkiem do wydarzenia: przezroczysta warstwa nad plakatem (tabliczka z tytułem ma swój rozciągnięty link, przyciski i znaczki leżą wyżej); znaczki nie przechwytują kliknięć */
.fm8-pc-hit { position: absolute; inset: 0; z-index: 1; display: block; }
.fm8-pc-type, .fm8-pc-day { pointer-events: none; }
.fm8-pc-art { position: absolute; inset: 0; overflow: hidden; }
.fm8-pc-art > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--fm8-fx, 50%) var(--fm8-fy, 38%); transition: transform .5s var(--ds-ease); }
.fm8-pc:hover .fm8-pc-art > img { transform: scale(1.04); }
/* plakat: zawsze w całości, na rozmytej kopii samego siebie; tytuł i dane pod spodem, nic nie zasłania plakatu */
.fm8-pc[data-art="poster"] .fm8-pc-art { inset: 0 0 var(--pc-cap) 0; }
.fm8-pc[data-art="poster"] .fm8-pc-art::before { content: ""; position: absolute; inset: -12%; background: var(--fm8-art) center / cover no-repeat; filter: blur(26px) saturate(1.15) brightness(.7); }
.fm8-pc[data-art="poster"] .fm8-pc-art > img { object-fit: contain; object-position: center; }
.fm8-pc[data-art="poster"]:hover .fm8-pc-art > img { transform: none; }
.fm8-pc-type { position: absolute; z-index: 3; left: 12px; top: 12px; padding: 6px 11px; border-radius: var(--ds-r-pill); font: 800 .75rem / 1 var(--ds-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ds-mint-300); background: rgba(3, 30, 37, .66); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.fm8-pc.is-type-festival .fm8-pc-type { color: var(--ds-gold-400); }
.fm8-pc.is-type-concert .fm8-pc-type { color: #e2cbee; }
.fm8-pc-day { position: absolute; z-index: 3; right: 12px; top: 12px; width: 52px; padding: 7px 0 6px; border-radius: 15px; display: grid; gap: 1px; text-align: center; color: var(--ds-night-900); background: #fff; box-shadow: 0 8px 20px rgba(3, 30, 37, .3); }
.fm8-pc-day b { font: 800 1.75rem / .9 var(--ds-display); }
.fm8-pc-day span { font: 800 .75rem / 1 var(--ds-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--ds-teal-600); }
.fm8-pc-plate { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; display: grid; gap: 6px; padding: 46px 16px 14px; background: linear-gradient(180deg, rgba(3, 30, 37, 0) 0, rgba(3, 30, 37, .74) 46%, rgba(3, 30, 37, .95) 100%); }
.fm8-pc[data-art="poster"] .fm8-pc-plate { min-height: var(--pc-cap); align-content: start; padding: 14px 16px; background: var(--pc-night); border-top: 1px solid rgba(255, 255, 255, .08); }
.fm8-pc-chips { display: flex; flex-wrap: nowrap; gap: 6px; overflow: hidden; min-height: 26px; }
.fm8-pc-chips i { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px; border-radius: var(--ds-r-pill); font: 800 .75rem / 1 var(--ds-sans); font-style: normal; color: #fff; background: rgba(255, 255, 255, .16); }
.fm8-pc-chips i.is-price { color: var(--ds-on-gold); background: var(--ds-gold-400); }
.fm8-pc-chips i.is-price.is-free { color: #06361f; background: #9be8bd; }
.fm8-pc-chips i.is-price.is-soon { color: #05424a; background: rgba(255, 255, 255, .92); }
.fm8-pc-chips i.is-price.is-sold_out { color: #fff; background: rgba(255, 255, 255, .16); text-decoration: line-through; }
.fm8-pc-chips i.is-live { color: var(--ds-night-900); background: #fff; }
.fm8-pc-chips i.is-live::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ds-green-400); box-shadow: 0 0 0 3px rgba(18, 144, 127, .3); }
.fm8-pc-chips i.is-promo { background: transparent; box-shadow: inset 0 0 0 1px var(--ds-gold-400); color: var(--ds-gold-300); }
.fm8-pc-title { margin: 0; font: 800 1.75rem / 1 var(--ds-display); letter-spacing: .008em; text-transform: none; color: #fff; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fm8-pc-title a { color: inherit; text-decoration: none; }
.fm8-pc-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.fm8-pc-meta { margin: 0; font: 600 .8125rem / 1.35 var(--ds-sans); color: rgba(255, 255, 255, .86); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fm8-pc-more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .22s var(--ds-ease); }
.fm8-pc-more > div { min-height: 0; overflow: hidden; }
.fm8-pc-desc { margin: 4px 0 0; font: 400 .875rem / 1.45 var(--ds-sans); color: rgba(255, 255, 255, .88); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fm8-pc-actions { display: grid; gap: 8px; padding-top: 10px; }
.fm8-pc-actions > * { position: relative; z-index: 3; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 12px; border-radius: var(--ds-r-ctl); font: 800 .8125rem / 1.1 var(--ds-sans); text-align: center; text-decoration: none; cursor: pointer; transition: background .18s ease, border-color .18s ease; }
.fm8-pc-open { color: var(--ds-night-900); background: #fff; border: 1px solid #fff; }
.fm8-pc-plan { color: #fff; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .34); }
.fm8-pc-open:hover { background: var(--ds-tint-100); }
.fm8-pc-plan:hover { background: rgba(255, 255, 255, .24); }
.fm8-pc-plan[aria-pressed="true"] { color: var(--ds-night-900); background: var(--ds-mint-300); border-color: var(--ds-mint-300); }
@container (min-width: 280px) { .fm8-pc-actions { grid-template-columns: 1fr 1fr; } }
.fm8-pc a:focus-visible, .fm8-pc button:focus-visible { outline: 3px solid rgba(143, 227, 218, .95); outline-offset: 2px; }
@media (hover: hover) { .fm8-pc:hover .fm8-pc-more, .fm8-pc:focus-within .fm8-pc-more { grid-template-rows: 1fr; } }
@media (hover: none) { .fm8-pc-more { grid-template-rows: 1fr; } .fm8-pc-desc { display: none; } }
/* stany */
.fm8-pc.is-state-sold_out .fm8-pc-art { filter: grayscale(.85) brightness(.82); }
.fm8-pc:is(.is-state-cancelled, .is-state-postponed, .is-state-finished) .fm8-pc-art { filter: grayscale(1) brightness(.78); }
.fm8-pc.is-state-ongoing { box-shadow: var(--ds-sh-2), 0 0 0 2px rgba(155, 232, 189, .55); }
.fm8-pc.is-state-cancelled .fm8-pc-chips i.is-price, .fm8-pc.is-state-postponed .fm8-pc-chips i.is-price { display: none; }

/* okładka typograficzna (bez zdjęcia i bez plakatu): cyfra daty, miesiąc, miejscowość jako znak wodny; kolor wg rodzaju wydarzenia */
.fm8-cover { container-type: inline-size; position: absolute; inset: 0; overflow: hidden; color: #fff; background: radial-gradient(70% 55% at 82% 6%, rgba(255, 226, 168, .22), transparent 64%), linear-gradient(160deg, var(--c1, #0b4f5c), var(--c2, #031e25)); }
.fm8-cover::before { content: attr(data-city); position: absolute; right: -4cqw; top: 6%; bottom: 6%; writing-mode: vertical-rl; transform: rotate(180deg); font: 800 clamp(20cqw, calc(150cqw / var(--n, 6)), 54cqw) / 1 var(--ds-display); text-transform: uppercase; color: rgba(255, 255, 255, .07); white-space: nowrap; overflow: hidden; }
.fm8-cover::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 24%; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 140'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.08' stroke-width='3'%3E%3Cpath d='M0 40C120 8 240 72 360 40S600 8 720 40 960 72 1080 40 1320 8 1440 40'/%3E%3Cpath d='M0 76C120 44 240 108 360 76S600 44 720 76 960 108 1080 76 1320 44 1440 76'/%3E%3C/g%3E%3C/svg%3E") bottom / 100% 100% no-repeat; }
.fm8-cover b { position: absolute; left: 7cqw; top: 22%; font: 800 38cqw / .82 var(--ds-display); letter-spacing: .01em; color: rgba(255, 255, 255, .96); }
.fm8-cover i { position: absolute; left: 7cqw; top: calc(22% + 34cqw); font: 800 9.5cqw / 1 var(--ds-display); font-style: normal; letter-spacing: .06em; text-transform: uppercase; color: var(--ac, #f2c15c); }

/* ================================================================== 4. Szyny i siatki kart wysokich */
@media (min-width: 761px) {
  .fmec-page .fm8-swipe:not([data-n]):has(> .fm8-pc) { grid-auto-columns: minmax(243px, calc((100% - 64px) / 5)); gap: 16px; padding: 8px 4px 22px; margin: -8px -4px -6px; scroll-snap-type: x proximity; }
  .fm8-swipe:has(> .fm8-pc) > .fm8-pc { scroll-snap-align: start; }
}
@media (max-width: 760px) {
  .fmec-page [data-mobile-mode="rail"] > .fm8-pc { flex: 0 0 min(84vw, 340px) !important; max-width: min(84vw, 340px); scroll-snap-align: start; scroll-snap-stop: always; }
  .fmec-page [data-mobile-mode="rail"]:has(> .fm8-pc) { gap: 14px !important; scroll-snap-type: x mandatory; scroll-padding-inline: 16px; padding-left: 2px; padding-right: 16vw; }
}
/* wyróżnione w katalogu: liczba kart decyduje o układzie (1 i 2: karta szeroka, 3: trzy karty 4:5, 4: cztery karty 2:3), żadnej samotnej karty */
@media (min-width: 761px) {
  .fm8-featured .fm8-swipe[data-n]:has(> .fm8-pc) { display: grid; grid-auto-flow: row; grid-auto-columns: auto; gap: 20px; overflow: visible; padding: 8px 0 12px; margin: 0; }
  .fm8-featured .fm8-swipe[data-n="1"]:has(> .fm8-pc) { grid-template-columns: minmax(0, 1fr); }
  .fm8-featured .fm8-swipe[data-n="2"]:has(> .fm8-pc) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm8-featured .fm8-swipe[data-n="3"]:has(> .fm8-pc) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fm8-featured .fm8-swipe[data-n="3"] > .fm8-pc { aspect-ratio: 4 / 5; }
  .fm8-featured .fm8-swipe[data-n="4"]:has(> .fm8-pc) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) { .fm8-featured .fm8-swipe[data-n="4"]:has(> .fm8-pc) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* siatka wyników: 4 / 3 / 2 kolumny, na telefonie szyna (ta sama zasada co wszędzie) */
.fm8-pc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1099px) { .fm8-pc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .fm8-pc-grid > .fm8-pc { aspect-ratio: 4 / 5; } }
@media (max-width: 899px) { .fm8-pc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .fm8-pc-grid { display: flex; } .fm8-pc-grid > .fm8-pc { aspect-ratio: 2 / 3; } }

/* karta szeroka (1-2 wyróżnione): obraz po lewej, dane po prawej, drugi poziom zawsze otwarty */
.fm8-pc.is-wide { aspect-ratio: auto; min-height: 360px; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.fm8-pc.is-wide .fm8-pc-art { position: relative; inset: auto; min-height: 360px; }
.fm8-pc.is-wide[data-art="poster"] .fm8-pc-art { inset: auto; }
.fm8-pc.is-wide .fm8-pc-plate { position: relative; align-content: center; gap: 12px; padding: 30px 34px; background: var(--pc-night); }
.fm8-pc.is-wide .fm8-pc-title { font-size: clamp(1.9rem, 3vw, 2.75rem); -webkit-line-clamp: 3; }
.fm8-pc.is-wide .fm8-pc-more { grid-template-rows: 1fr; }
.fm8-pc.is-wide .fm8-pc-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.fm8-pc.is-wide .fm8-pc-actions > * { padding: 0 18px; }
.fm8-pc.is-wide .fm8-pc-desc { display: -webkit-box; }
@media (max-width: 760px) { .fm8-pc.is-wide { grid-template-columns: 1fr; aspect-ratio: auto; } .fm8-pc.is-wide .fm8-pc-art { min-height: 220px; } }
@media (prefers-reduced-motion: reduce) { .fm8-pc, .fm8-pc-art > img, .fm8-pc-more { transition: none; } .fm8-pc:hover, .fm8-pc:focus-within { transform: none; } .fm8-pc:hover .fm8-pc-art > img { transform: none; } }

/* DS-END-CARDS */

/* ================================================================== 5. Katalog: zwarty nagłówek (wzorzec C), przełącznik widoku, nagłówki miesięcy */
.fm8-archive.is-ds .fm8-archive-hero.is-compact { padding: 40px 0 84px; }
.fm8-archive.is-ds .fm8-archive-hero.is-compact .fm8-archive-hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px 48px; }
.fm8-archive.is-ds .fm8-archive-hero.is-compact h1 { font-size: clamp(2.125rem, 4.2vw, 3.5rem); line-height: .96; margin: 10px 0 0; }
.fm8-archive.is-ds .fm8-archive-hero.is-compact p { max-width: 58ch; margin: 12px 0 0; font-size: var(--ds-fs-lead); }
.fm8-archive.is-ds .fm8-archive-hero.is-compact .fm8-archive-history-link { display: inline-block; margin-top: 12px; }
.fm8-archive.is-ds .fm8-archive-count { display: grid; justify-items: center; gap: 4px; margin: 0; min-width: 150px; padding: 14px 22px; border-radius: var(--ds-r-card); background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); text-align: center; }
.fm8-archive.is-ds .fm8-archive-count b { margin: 0; font: 800 3.25rem / .9 var(--ds-display); color: var(--ds-gold-400); vertical-align: baseline; }
.fm8-archive.is-ds .fm8-archive-count span { font: 700 .875rem / 1.25 var(--ds-sans); color: rgba(255, 255, 255, .86); }
@media (max-width: 760px) {
  .fm8-archive.is-ds .fm8-archive-hero.is-compact { padding: 28px 0 70px; }
  .fm8-archive.is-ds .fm8-archive-hero.is-compact .fm8-archive-hero-inner { grid-template-columns: 1fr; gap: 16px; }
  .fm8-archive.is-ds .fm8-archive-count { grid-auto-flow: column; justify-content: start; justify-items: start; align-items: baseline; gap: 10px; min-width: 0; padding: 10px 16px; justify-self: start; }
  .fm8-archive.is-ds .fm8-archive-count b { font-size: 2.25rem; }
}
.fm8-archive.is-ds .fm8-results-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; min-height: 40px; margin-bottom: 8px; }
.fm8-view-switch { display: inline-flex; padding: 4px; border-radius: var(--ds-r-pill); background: #fff; border: 1px solid var(--ds-line); box-shadow: var(--ds-sh-1); margin-left: auto; }
.fm8-view-switch a { min-height: 36px; padding: 0 16px; display: inline-flex; align-items: center; border-radius: var(--ds-r-pill); font: 800 .8125rem / 1 var(--ds-sans); color: var(--ds-text); text-decoration: none; }
.fm8-view-switch a.is-active { color: #fff; background: var(--ds-night-900); }
.fm8-view-switch a:focus-visible { outline: 3px solid rgba(18, 144, 127, .5); outline-offset: 2px; }
.fm8-archive.is-ds .fm8-month { margin-top: 30px; }
.fm8-archive.is-ds .fm8-month > header { margin-bottom: 16px; }
.fm8-archive.is-ds .fm8-month > header time { letter-spacing: .01em; }
.fm8-archive.is-ds .fm8-pc-grid { padding-bottom: 6px; }

/* liczba kart w miesiącu decyduje o układzie siatki: nigdy samotna karta w rzędzie, nigdy pusta ćwiartka */
@media (min-width: 761px) {
  .fm8-pc-grid[data-n="1"] { grid-template-columns: minmax(0, 1fr); }
  .fm8-pc-grid[data-n="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm8-pc-grid[data-n="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fm8-pc-grid[data-n="3"] > .fm8-pc { aspect-ratio: 4 / 5; }
}

/* DS-END-CATALOG */

/* ================================================================== 6. Wiersz listy (C): akcje z podpisem, godzina i chipy w jednej linii */
.fm8-archive-row .fm8-row-actions { display: flex; align-items: center; gap: 10px; }
.fm8-archive-row .fm8-row-actions .fm8-row-open { display: inline-flex; align-items: center; justify-content: center; width: auto; height: 44px; min-height: 44px; padding: 0 16px; border-radius: var(--ds-r-ctl); border: 1px solid var(--ds-line-strong); background: #fff; color: var(--ds-teal-600); font: 800 .8125rem / 1 var(--ds-sans); text-decoration: none; }
.fm8-archive-row .fm8-row-actions .fm8-row-open:hover { border-color: var(--ds-teal-500); background: var(--ds-tint-100); }
.fm8-archive-row .fm8-row-actions .fm8-row-plan { width: 44px; height: 44px; min-height: 44px; border-radius: var(--ds-r-ctl); border: 1px solid var(--ds-line-strong); background: #fff; color: var(--ds-teal-600); font: 700 1.375rem / 1 var(--ds-sans); }
.fm8-archive-row .fm8-row-actions .fm8-row-plan.is-active, .fm8-archive-row .fm8-row-actions .fm8-row-plan[aria-pressed="true"] { color: #fff; background: var(--ds-teal-500); border-color: var(--ds-teal-500); }
.fm8-archive-row time, .fm8-archive-row .fm8-row-copy > span { white-space: nowrap; font-variant-numeric: tabular-nums; }
.fm8-row-copy .fm8-ticket-chip, .fm8-row-copy .fm8-row-soon { white-space: nowrap; }
@media (max-width: 640px) {
  .fm8-archive-row .fm8-row-actions .fm8-row-open { width: 44px; padding: 0; }
  .fm8-archive-row .fm8-row-actions .fm8-row-open span { display: none; }
  .fm8-archive-row .fm8-row-actions .fm8-row-open::after { content: "→"; font-size: 1.2rem; }
}

/* DS-END-ROWS */

/* ================================================================== 7. Naprawy z audytu wizualnego: tracking H1, puste połówki, samotny bilet */
/* litery tytułu nigdy nie dotykają się: ujemny tracking z public.css wyłączony na wszystkich stronach z dużym H1 */
.fmec-page :is(.fm8-single-title h1, .fm8-festival-hero.is-immersive .fm8-festival-title h1, .fm8-city-hero.is-immersive h1, .fm8-lake-hero.is-immersive h1) { letter-spacing: .012em; }
/* /mazury/: dwa teksty (woda, kultura) na całą szerokość, nie w lewej kolumnie siatki wstępu */
.fm8-region-themes { grid-column: 1 / -1; }
/* bilety: tyle kolumn, ile pul; samotna pula nie zostawia pustych pól */
.fm8-ticket-waves { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
/* „Podobne”: liczba kart decyduje o układzie (1: szeroka, 2 i 3: tyle kolumn, 4 i więcej: szyna) */
@media (min-width: 761px) {
  .fm8-related .fm8-swipe[data-n]:has(> .fm8-pc) { display: grid; grid-auto-flow: row; grid-auto-columns: auto; gap: 20px; overflow: visible; padding: 8px 0 12px; margin: 0; }
  .fm8-related .fm8-swipe[data-n="1"]:has(> .fm8-pc) { grid-template-columns: minmax(0, 1fr); }
  .fm8-related .fm8-swipe[data-n="2"]:has(> .fm8-pc) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm8-related .fm8-swipe[data-n="3"]:has(> .fm8-pc) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fm8-related .fm8-swipe[data-n="2"] > .fm8-pc, .fm8-related .fm8-swipe[data-n="3"] > .fm8-pc { aspect-ratio: 4 / 5; }
}
/* gradient akcentu w tytułach to zmienna --fm-grad (app.css :root): na jasnym tle ciemniejsza wersja (kontrast co najmniej 3:1 dla dużego pisma; jasna miała ok. 2:1),
   na ciemnych pasach wraca jasna. Zmienna zamiast nowych selektorów: nie ma wojny o specyficzność z listami :is() z app.css. */
:root { --ds-grad-bright: linear-gradient(95deg, #0e9f97 0%, #20c3b4 46%, #e6ad3c 100%); --ds-grad-ink: linear-gradient(95deg, #0a7873 0%, #12907f 48%, #b9812a 100%); --fm-grad: var(--ds-grad-ink); }
:is(.fm8-home-hero, .fm8-home-plan, .fm8-archive-hero, .fm8-trip-hero, .fm8-discover-practical, .fm8-region-practical, .b2b-panels, .b2b-faq, .b2b-types, .b2b-own, .b2b-calc, .fmec-camera-empty, .fmec-pwa-shell, .is-dark, .fmec-hv2, .fmec-ft, .fm8-single-hero, .fm8-festival-hero, .fm8-city-hero, .fm8-lake-hero) { --fm-grad: var(--ds-grad-bright); }
/* DS-END-FIXES */

/* ================================================================== 8. Telefon (do 760 px): gęstszy rytm, zwarta stopka, udostępnianie, tytuły, minimalne rozmiary */
@media (max-width: 760px) {
  /* rytm: między sekcjami ok. 20-32 px zamiast 50-130 */
  .fmec-page .fm8-home-section { padding-top: 22px; padding-bottom: 22px; }
  .fmec-page .fm8-home-plan { padding-top: 36px; padding-bottom: 36px; }
  .fmec-page .fm8-features { padding-top: 24px; padding-bottom: 12px; }
  .fmec-page .fmec-newsroom-home { padding-top: 24px; padding-bottom: 24px; }
  .fmec-page .fm8-region-hero, .fmec-page .fmec-blog-index-head { padding-bottom: 26px; }
  .fmec-page .fm8-region-intro, .fmec-page .fm8-region-popular, .fmec-page .fm8-region-directory { padding-top: 26px; padding-bottom: 18px; }
  .fmec-page .fm8-region-bridges { padding-top: 28px; padding-bottom: 28px; margin-top: 18px; }
  .fmec-page .fm8-region-practical { padding-top: 32px; padding-bottom: 32px; }
  .fmec-page .fm8-section { padding-top: 18px; padding-bottom: 18px; }
  .fmec-page .fm8-side-card { padding: 18px; }
  .fmec-page .fm8-journey { margin-top: 16px; padding-top: 18px; padding-bottom: 10px; }
  .fmec-page .fm8-city-events, .fmec-page .fm8-city-intro { padding-top: 22px; padding-bottom: 8px; }
  .fmec-page .fm8-city-sources { margin-top: 22px; padding-bottom: 24px; }
  .fmec-page .fmec-trail-intro { padding: 22px 0 6px; }
  .fmec-page .fmec-discovery-hub, .fmec-page .fmec-supporters-page { padding: 24px 0 40px; }
  .fmec-page .fmec-blog-entry-cover { margin-top: 16px; margin-bottom: 10px; }
  .fmec-page .fmec-blog-entry-layout { margin-top: 22px; }
  .fmec-page .fmec-blog-place-guide { margin-top: 22px; margin-bottom: 14px; padding: 16px; }
  .fmec-page .fmec-blog-sources { margin-top: 14px; margin-bottom: 14px; padding: 16px; }
  .fmec-page .fmec-blog-related-section { margin-top: 28px; }
  .fmec-page .fmec-blog-share { margin-top: 20px; }
  .fmec-page .fmec-news-single-image { margin-top: 16px; margin-bottom: 10px; }
  .fmec-page .fmec-news-source { margin-top: 18px; }
  .fmec-page .fmec-news-related { margin-top: 26px; }
  .fmec-page .fmec-context-nav { margin-top: 20px; }
  .b2b .b2b-section { padding-block: 30px; }

  /* stopka: marka jest w nagłówku, wydawca (pełne dane) w linii na samym dole; zostają skrót, przyciski i rozwijane kolumny */
  .fmec-ft-brand, .fmec-ft-pitch .fmec-ft-kicker, .fmec-ft-pitch p, .fmec-ft-owner { display: none; }
  .fmec-ft-inner { padding-top: 26px; padding-bottom: 8px; }
  .fmec-ft-hero { gap: 14px; padding-bottom: 18px; }
  .fmec-ft-pitch h2 { margin: 0; font-size: 1.5rem; line-height: 1.05; }
  .fmec-ft-meta { margin-top: 14px; }
  .fmec-ft-meta-inner { gap: 4px 16px; padding-top: 12px; font-size: .75rem; line-height: 1.45; }

  /* udostępnianie: jeden wiersz przycisków do przesunięcia, pierwszy „Udostępnij w aplikacji”, potem „Kopiuj link” */
  .fmec-share { margin: 14px 0 4px; padding: 12px 0; gap: 8px; }
  .fmec-share-head { display: flex; align-items: baseline; gap: 8px; }
  .fmec-share-head .fmec-kicker { display: none; }
  .fmec-share-head strong { font-size: 1rem; }
  .fmec-share-actions { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x proximity; scrollbar-width: none; }
  .fmec-share-actions::-webkit-scrollbar { display: none; }
  .fmec-share-actions > a, .fmec-share-actions > button { flex: 0 0 auto; width: auto; min-height: 40px; padding: 0 16px; scroll-snap-align: start; white-space: nowrap; }
  .fmec-share-actions > [data-fmec-share-native] { order: -2; color: #fff; background: var(--ds-night-900); border-color: var(--ds-night-900); }
  .fmec-share-actions > [data-fmec-copy-link] { order: -1; }
  .fmec-share-status:empty { display: none; }

  /* „Odkrywaj dalej”: chipy w jednym wierszu do przesunięcia zamiast pięciu wysokich przycisków */
  .fmec-page .fmec-context-nav > div, .fmec-page .fmec-blog-entry-aside > nav { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x proximity; scrollbar-width: none; }
  .fmec-page .fmec-context-nav > div::-webkit-scrollbar, .fmec-page .fmec-blog-entry-aside > nav::-webkit-scrollbar { display: none; }
  .fmec-page .fmec-context-nav > div > a, .fmec-page .fmec-blog-entry-aside > nav > a { flex: 0 0 auto; min-height: 40px; display: inline-flex; align-items: center; gap: 8px; padding: 0 16px; white-space: nowrap; scroll-snap-align: start; }
  .fmec-page .fmec-context-nav > span, .fmec-page .fmec-blog-entry-aside > span { display: block; margin-bottom: 8px; }

  /* tytuły artykułów: pięć linii, nie siedem */
  .fmec-page .fmec-blog-entry-head h1, .fmec-page .fmec-news-single h1 { font-size: clamp(1.75rem, 7.4vw, 2.25rem); line-height: 1.08; }
  .fmec-page .fmec-blog-entry-head > p { font-size: 1rem; line-height: 1.55; }

  /* nic poniżej 12 px (etykiety, daty, przypisy) */
  .fmec-page :is(.fm8-kicker, .fmec-kicker, .fmec-eyebrow, .b2b-eyebrow, .fmec-tip-source *, .fmec-tourist-contact-link, .fmec-blog-teaser-meta *, .fm8-region-portrait span, .fm8-region-portrait small, .fm8-destination small, .fm8-destination em, .fm8-quick a, .fmec-submit-progress span, .fmec-media-network-news-list span, .fm8-discover-path span, .fmec-check-tile small, .fmec-check-tile b, .fmec-trail-day strong, .fmec-citycard-city, .fmec-newsdesk-side-copy time, .fmec-app-rail-shell time, .fmec-app-rail-shell span, .fm8-agenda-item span, .fm8-agenda-main small, .fm8-season-item span, .fm8-facts span, .fm8-side-card dt, .fmec-submit-trust span, .fmec-package-surface, .fmec-package-price em, .fmec-tourist-intro a, .fm8-merge-sub, .fmec-gm-label) { font-size: .75rem; }
  .fmec-page .fm8-pc-chips i { font-size: .75rem; }

  /* strona główna: „Co tu zrobisz” jako jeden wiersz kafli do przesunięcia, numer kierunku nie nachodzi na tytuł */
  .fmec-page .fm8-features ul { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: none; }
  .fmec-page .fm8-features ul::-webkit-scrollbar { display: none; }
  .fmec-page .fm8-features li { flex: 0 0 min(78vw, 300px); scroll-snap-align: start; }
  .fmec-page .fm8-features p { font-size: .875rem; }
  .fmec-page .fm8-home-path { position: relative; }
  .fmec-page .fm8-home-path > span { position: static; display: block; margin-bottom: 2px; }

  /* strona wydarzenia i festiwalu: termin, miejsce i przycisk biletu są już w nagłówku, w sekcji biletów i w pasku zakupu; karta boczna zostaje z tym, czego tam nie ma */
  .fmec-page .fm8-side-card:not(.is-source) > h2, .fmec-page .fm8-festival-facts-card > h2 { margin: 0 0 10px; max-width: none; font-size: 1.125rem; }
  .fmec-page .fm8-side-card:not(.is-source) > dl > div:nth-child(-n+2) { display: none; }
  .fmec-page .fm8-side-card:not(.is-source):not(:has(> dl > div:nth-child(3))) > :is(h2, dl) { display: none; }
  .fmec-page .fm8-side-card .fm8-ticket-cta.is-side, .fmec-page .fm8-festival-facts-card .fm8-ticket-cta.is-side, .fmec-page .fm8-side-more { display: none; }

  /* cele dotykowe */
  .fmec-page :is(.fmec-tourist-phone, .fmec-tourist-contact-link, .fmec-emergency-source, .fmec-newscity-link, .fmec-blog-teaser-more, .fm8-inline-cta, .fm8-archive-history-link, .b2b-link) { display: inline-flex; align-items: center; min-height: 40px; }
}

/* DS-END-MOBILE */

/* ================================================================== 9. Powierzchnie formularzy i kart bocznych: zielonkawe jak okno szukania, nie białe */
:root { --ds-mint-surface: linear-gradient(165deg, #eef6f3 0%, #d9eae6 100%); --ds-mint-line: rgba(10, 150, 145, .32); --ds-mint-field: rgba(255, 255, 255, .68); --ds-mint-edge: rgba(255, 255, 255, .6); }
.fmec-page :is(.fmec-bell-card, .fmec-submit-step, .fmec-submit-progress, .fmec-contact-card, .fmec-contact-side, .b2b-form, .fm8-trip-form, .fmec-guestbook-form, .fmec-map-panel) { background: var(--ds-mint-surface); border-color: var(--ds-mint-edge); box-shadow: 0 1px 2px rgba(7, 48, 54, .06), 0 18px 44px rgba(7, 48, 54, .12), inset 0 1px 0 rgba(255, 255, 255, .7); }
.fmec-page :is(.fmec-bell-card, .fmec-submit-step, .fmec-contact-card, .b2b-form, .fm8-trip-form, .fmec-guestbook-form) :is(input:not([type="checkbox"], [type="radio"], [type="hidden"], [type="range"], [type="file"], [type="submit"], [type="button"], .fmec-hp), select, textarea) { background: var(--ds-mint-field); border: 1px solid var(--ds-mint-line); }
.fmec-page :is(.fmec-bell-card, .fmec-submit-step, .fmec-contact-card, .b2b-form, .fm8-trip-form, .fmec-guestbook-form) :is(input:not([type="checkbox"], [type="radio"], [type="hidden"], [type="range"], [type="file"], [type="submit"], [type="button"], .fmec-hp), select, textarea):focus { background: #fff; border-color: #0a9691; }
.fmec-page .fmec-bell-card :is(input, textarea)::placeholder { color: #567377; }
/* chipy i kafle w formularzu w tym samym miętowym tonie */
.fmec-page .fmec-submit-step .fmec-package-helper button { background: var(--ds-mint-field); border-color: var(--ds-mint-line); }
.fmec-page .fmec-submit-step .fmec-check-tile, .fmec-page .fmec-submit-step .fmec-offer-option { background: var(--ds-mint-field); border-color: var(--ds-mint-line); }

/* ================================================================== 10. Karty pakietów: ceny w jednej linii przy dole, wybrana wyraźnie podświetlona */
.fmec-page .fmec-package-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ds-line-strong); }
.fmec-page .fmec-package-choice { flex: 1; display: flex; flex-direction: column; align-content: normal; height: auto; gap: 9px; }
.fmec-page .fmec-package-price { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--ds-line); }
.fmec-page .fmec-package-card.is-selected { border-color: #0a9691; background: linear-gradient(180deg, #f3fbf9 0%, #d9eeea 100%); box-shadow: 0 0 0 1px #0a9691, 0 0 0 6px rgba(10, 150, 145, .16), 0 22px 46px rgba(7, 155, 150, .22); transform: none; }
.fmec-page .fmec-package-card.is-selected::before { content: ""; position: absolute; z-index: 1; left: 0; right: 0; top: 0; height: 5px; background: linear-gradient(90deg, #0a9691, #12907f 60%, #7ee6df); }
.fmec-page .fmec-package-card.is-selected .fmec-package-price { border-top-color: rgba(10, 150, 145, .4); }
.fmec-page .fmec-package-card.is-selected .fmec-package-price b { color: #076d6a; }
.fmec-page .fmec-package-card.is-selected .fmec-package-choice > strong { color: #04373b; }
/* komputer: karty dzielą wiersze siatki (subgrid), więc cena każdej karty leży w jednej linii przy dole, niezależnie od długości opisów */
@media (min-width: 761px) {
  .fmec-page .fmec-package-grid { grid-template-rows: 1fr auto; }
  .fmec-page .fmec-package-card { display: grid; grid-template-rows: subgrid; grid-row: span 2; }
}
.fmec-page .fmec-package-card:not(.is-selected):hover { border-color: rgba(10, 150, 145, .55); box-shadow: 0 10px 28px rgba(7, 48, 54, .1); }

/* ================================================================== 11. Strona główna: „Teraz na Mazurach” jako wysoka karta po prawej, nie pasek */
@media (min-width: 981px) {
  .fm8-home-hero .fm8-home-hero-inner { align-items: stretch; }
  .fm8-home-hero .fm8-home-hero-inner > div:first-child { align-self: center; }
  .fm8-home-aside { align-self: stretch; display: flex; max-width: 470px; }
  .fm8-agenda { flex: 1; display: flex; flex-direction: column; min-height: 430px; padding: 24px 22px 20px; }
  .fm8-agenda > header { margin-bottom: 16px; }
  .fm8-agenda ol { flex: 1; display: flex; flex-direction: column; gap: 12px; }
  .fm8-agenda li { display: flex; min-height: 0; }
  .fm8-agenda li > .fm8-agenda-item { flex: 1; }
  .fm8-agenda li:first-child { flex: 1.7; }
  .fm8-agenda li:first-child > .fm8-agenda-item { grid-template-columns: 88px minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; gap: 14px 16px; padding: 22px 20px; background: rgba(2, 28, 34, .56); border-color: rgba(255, 255, 255, .16); }
  .fm8-agenda li:first-child time { width: 88px; height: 96px; border-radius: 24px; }
  .fm8-agenda li:first-child time b { font-size: 2.75rem; }
  .fm8-agenda li:first-child time span { font-size: .8125rem; }
  .fm8-agenda li:first-child .fm8-agenda-main { gap: 6px; align-self: center; }
  .fm8-agenda li:first-child .fm8-agenda-main small { font-size: .8125rem; }
  .fm8-agenda li:first-child .fm8-agenda-main strong { font-size: 1.75rem; line-height: 1.08; }
  .fm8-agenda li:first-child .fm8-agenda-main em { font-size: 1rem; }
  .fm8-agenda li:first-child .fm8-agenda-meta { grid-column: 1 / -1; grid-auto-flow: column; justify-content: start; justify-items: start; gap: 8px; }
  .fm8-agenda li:first-child .fm8-agenda-meta i { font-size: .875rem; padding: 5px 13px; }
}

/* ================================================================== 12. Karta miejscowości na mapie: ten sam zielonkawy styl, większa typografia */
.fmec-page .fmec-map-panel { padding: 22px; border-radius: 26px; color: var(--ds-text); }
.fmec-page .fmec-map-panel-media { border-radius: 18px; background: #d3e6e1; margin-bottom: 20px; }
.fmec-page .fmec-map-panel .fmec-eyebrow { font-size: .8125rem; }
.fmec-page .fmec-map-panel h2 { margin: 6px 0 10px; font-size: 2.25rem; line-height: 1; letter-spacing: -.02em; color: var(--ds-night-900); }
.fmec-page .fmec-map-panel p { font-size: 1rem; line-height: 1.55; color: var(--ds-text-soft); }
.fmec-page .fmec-map-panel-water { margin-top: 16px !important; padding-top: 14px; border-top-color: var(--ds-mint-line); gap: 4px; }
.fmec-page .fmec-map-panel-water span { font-size: .75rem; letter-spacing: .1em; color: #3f6469; }
.fmec-page .fmec-map-panel-water strong { font-size: .9375rem; line-height: 1.4; color: var(--ds-night-900); }
.fmec-page .fmec-map-panel-stats { gap: 8px; margin-top: 18px; }
.fmec-page .fmec-map-panel-stats span { padding: 8px 12px; font-size: .8125rem; background: rgba(255, 255, 255, .7); color: #08555b; }
.fmec-page .fmec-map-panel-stats b { font-size: .9375rem; }
.fmec-page .fmec-map-panel-next { margin-top: 16px; padding-top: 14px; border-top-color: var(--ds-mint-line); font-size: .9375rem; line-height: 1.45; }
.fmec-page .fmec-map-panel-actions { gap: 10px; margin-top: 20px; }
.fmec-page .fmec-map-panel-actions a { min-height: 46px; padding: 0 18px; font-size: .9375rem; font-weight: 800; border-color: var(--ds-mint-line); background: rgba(255, 255, 255, .72); color: var(--ds-night-900); }
.fmec-page .fmec-map-panel-actions a:first-child { background: linear-gradient(135deg, #0b7d7f, #07585d); border-color: transparent; color: #fff; }
.fmec-page .fmec-map-panel-actions a:hover { background: #fff; border-color: #0a9691; color: #07585d; }
.fmec-page .fmec-map-panel-actions a:first-child:hover { background: linear-gradient(135deg, #0a9691, #08666a); color: #fff; }
@media (max-width: 760px) {
  .fmec-page .fmec-map-panel { padding: 18px; }
  .fmec-page .fmec-map-panel h2 { font-size: 1.75rem; }
  .fmec-page .fmec-map-panel p { font-size: .9375rem; }
}

/* DS-END-SURFACES */

/* ================================================================== 13. Standard przycisków: najazd (hover), wciśnięcie, fokus; wyraźna para „główny + drugi” w ciemnych pasach */
/* jeden efekt dla wszystkich rodzin przycisków: uniesienie o 2 px, cień, jaśniejszy kolor; wciśnięcie wraca na miejsce; fokus klawiatury z jasnym obrysem */
.fmec-page :is(.fm8-home-plan-actions > a, .fm8-home-plan-actions > button, .fmec-ft-btn, .fm8-hero-actions > a, .fm8-hero-actions > button, .fm8-ticket-cta, .fm8-buybar a, .fm8-festival-plan-link, .fm8-pc-open, .fm8-pc-plan, .fm8-row-open, .fm8-row-plan, .fm8-event-plan, .fm8-section-links a, .fm8-plan-open, .fmec-package-helper button, .fmec-bell-form button[type="submit"], .fmec-contact-form button, .fmec-submit-form .fmec-submit-nav button, .fm8-home-search button, .fm8-view-switch a, .ds-btn) {
  transition: transform .18s var(--ds-ease), box-shadow .18s ease, background-color .18s ease, background-image .18s ease, border-color .18s ease, filter .18s ease, color .18s ease;
}
.fmec-page :is(.fm8-home-plan-actions > a, .fm8-home-plan-actions > button, .fmec-ft-btn, .fm8-hero-actions > a, .fm8-hero-actions > button, .fm8-ticket-cta, .fm8-buybar a, .fm8-festival-plan-link, .fm8-pc-open, .fm8-pc-plan, .fm8-row-open, .fm8-row-plan, .fm8-event-plan, .fm8-section-links a, .fm8-plan-open, .fmec-package-helper button, .fmec-bell-form button[type="submit"], .fmec-contact-form button, .fmec-submit-form .fmec-submit-nav button, .fm8-home-search button, .ds-btn):hover {
  transform: translateY(-2px); box-shadow: 0 12px 26px rgba(3, 30, 37, .26); filter: brightness(1.06);
}
.fmec-page :is(.fm8-home-plan-actions > a, .fm8-home-plan-actions > button, .fmec-ft-btn, .fm8-hero-actions > a, .fm8-hero-actions > button, .fm8-ticket-cta, .fm8-buybar a, .fm8-festival-plan-link, .fm8-pc-open, .fm8-pc-plan, .fm8-row-open, .fm8-row-plan, .fm8-event-plan, .fm8-section-links a, .fm8-plan-open, .fmec-package-helper button, .fmec-bell-form button[type="submit"], .fmec-contact-form button, .fmec-submit-form .fmec-submit-nav button, .fm8-home-search button, .ds-btn):active {
  transform: translateY(0) scale(.985); box-shadow: 0 3px 8px rgba(3, 30, 37, .22); filter: brightness(.97);
}
.fmec-page :is(.fm8-home-plan-actions > a, .fm8-home-plan-actions > button, .fmec-ft-btn, .fm8-hero-actions > a, .fm8-hero-actions > button, .fm8-ticket-cta, .fm8-buybar a, .fm8-festival-plan-link, .fm8-pc-open, .fm8-pc-plan, .fm8-row-open, .fm8-row-plan, .fm8-event-plan, .fm8-section-links a, .fm8-plan-open, .fmec-package-helper button, .fmec-bell-form button[type="submit"], .fmec-contact-form button, .fmec-submit-form .fmec-submit-nav button, .fm8-home-search button, .ds-btn):focus-visible {
  outline: 3px solid rgba(143, 227, 218, .95); outline-offset: 3px;
}
/* strzałka w przycisku przesuwa się w prawo przy najeździe */
.fmec-page .fm8-home-plan-actions > a span[aria-hidden], .fmec-page .fmec-ft-btn span[aria-hidden] { display: inline-block; transition: transform .18s var(--ds-ease); }
.fmec-page .fm8-home-plan-actions > a:hover span[aria-hidden], .fmec-page .fmec-ft-btn:hover span[aria-hidden] { transform: translateX(4px); }

/* ciemny pas „Plan pobytu”: dwa przyciski tej samej wysokości i wagi (złoty główny, szklany drugi z wyraźnym obrysem), licznik planu złoty */
.fmec-page .fm8-home-plan-actions { gap: 14px; }
.fmec-page .fm8-home-plan-actions > a, .fmec-page .fm8-home-plan-actions > button { min-height: 56px; padding: 0 28px; font-size: 1rem; font-weight: 850; letter-spacing: .005em; border-radius: 999px; }
.fmec-page .fm8-home-plan-actions > a { background: linear-gradient(135deg, var(--ds-gold-300), var(--ds-gold-500)); border: 1px solid rgba(255, 255, 255, .35); color: var(--ds-on-gold); box-shadow: 0 14px 30px rgba(215, 155, 45, .38), inset 0 1px 0 rgba(255, 255, 255, .5); }
.fmec-page .fm8-home-plan-actions > button { background: rgba(255, 255, 255, .14); border: 1.5px solid rgba(255, 255, 255, .55); color: #fff; box-shadow: 0 8px 20px rgba(0, 14, 18, .18); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.fmec-page .fm8-home-plan-actions > button:hover { background: rgba(255, 255, 255, .26); border-color: #fff; }
.fmec-page .fm8-home-plan-actions > button span { min-width: 28px; height: 28px; font-size: .875rem; font-weight: 850; background: var(--ds-gold-400); color: var(--ds-on-gold); }
.fmec-page .fm8-home-plan-actions > a:hover { box-shadow: 0 18px 38px rgba(215, 155, 45, .5), inset 0 1px 0 rgba(255, 255, 255, .6); }

@media (prefers-reduced-motion: reduce) {
  .fmec-page :is(.fm8-home-plan-actions > a, .fm8-home-plan-actions > button, .fmec-ft-btn, .fm8-hero-actions > a, .fm8-hero-actions > button, .fm8-ticket-cta, .fm8-pc-open, .fm8-pc-plan, .fm8-row-open, .fm8-row-plan, .ds-btn):is(:hover, :active) { transform: none; }
  .fmec-page .fm8-home-plan-actions > a:hover span[aria-hidden], .fmec-page .fmec-ft-btn:hover span[aria-hidden] { transform: none; }
}

/* DS-END-BUTTONS */

/* ================================================================== 14. Strona główna: nagłówek (kicker bez ramki, tytuł), karta plakatowa po prawej; okno „Mój plan” wyśrodkowane */
.fmec-page .fm8-home-hero.fm8-home-hero .fm8-home-hero-inner > div:first-child > .fm8-kicker { display: inline-flex; align-items: center; gap: 12px; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: #e3a93a; font: 800 .875rem / 1.2 var(--ds-sans); letter-spacing: .18em; text-transform: uppercase; }
.fmec-page .fm8-home-hero.fm8-home-hero .fm8-home-hero-inner > div:first-child > .fm8-kicker::before { content: ""; flex: none; width: 34px; height: 2px; border-radius: 2px; background: currentColor; box-shadow: none; }
.fmec-page .fm8-home-hero h1 { margin-top: 18px; line-height: .9; letter-spacing: .004em; text-shadow: 0 2px 34px rgba(0, 16, 20, .38); }
.fmec-page .fm8-home-hero h1 > span { display: block; color: #fff; }
.fmec-page .fm8-home-hero h1 > em { display: block; background-image: linear-gradient(92deg, #b2f1ea 0%, #5fdccf 48%, #f2c15c 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
@media (min-width: 761px) { .fmec-page .fm8-home-hero h1 { font-size: clamp(3.5rem, 6.2vw, 6.25rem); } }
@media (max-width: 760px) { .fmec-page .fm8-home-hero.fm8-home-hero .fm8-home-hero-inner > div:first-child > .fm8-kicker { justify-content: center; text-align: center; font-size: .8125rem; letter-spacing: .14em; } .fmec-page .fm8-home-hero.fm8-home-hero .fm8-home-hero-inner > div:first-child > .fm8-kicker::before { display: none; } }

/* prawa kolumna: karta promocji = zwykła, wysoka karta plakatowa z informacjami (jak w katalogu), losowo jeden z festiwali Signature; bez skrótów pod kartą (są pod polem szukania) */
.fm8-hero-card { display: none; }
.fm8-hero-card > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.fmec-page .fm8-home-hero.fm8-home-hero .fm8-hero-card > header .fm8-kicker { background: none; padding: 0; border: 0; box-shadow: none; color: #e3a93a; font: 800 .8125rem / 1.2 var(--ds-sans); letter-spacing: .16em; text-transform: uppercase; }
.fm8-hero-card > header a { flex: none; white-space: nowrap; display: inline-flex; align-items: center; min-height: 24px; color: #fff; font: 800 .8125rem / 1.2 var(--ds-sans); text-decoration: none; opacity: .88; }
.fm8-hero-card > header a:hover, .fm8-hero-card > header a:focus-visible { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
.fm8-hero-card .fm8-pc { aspect-ratio: 2 / 3; width: 100%; box-shadow: 0 20px 48px rgba(0, 14, 18, .34); }
.fm8-hero-card .fm8-pc:hover, .fm8-hero-card .fm8-pc:focus-within { box-shadow: 0 40px 84px rgba(0, 10, 14, .58), 0 0 0 1px rgba(143, 227, 218, .28); }
.fm8-hero-slot[hidden] { display: none; }
@media (min-width: 981px) {
  .fm8-home-aside:has(> .fm8-hero-card) { display: grid; align-self: center; justify-self: end; width: 100%; max-width: 360px; }
  .fm8-home-aside:has(> .fm8-hero-card) > :not(.fm8-hero-card) { display: none; }
  .fm8-hero-card { display: grid; gap: 14px; }
}
/* telefon i tablet: karta promocji Signature zastępuje panel „Teraz na Mazurach” (te same wydarzenia są w pasie „Co dzieje się teraz” zaraz pod nagłówkiem); bez Signature zostaje panel */
@media (max-width: 980px) {
  .fm8-home-aside:has(> .fm8-hero-card.is-promo) { display: grid; justify-items: center; justify-self: stretch; width: 100%; max-width: none; }
  .fm8-home-aside:has(> .fm8-hero-card.is-promo) > :not(.fm8-hero-card) { display: none; }
  .fm8-hero-card.is-promo { display: grid; gap: 12px; width: min(100%, 320px); }
}

/* okno „Mój plan Mazur”: na środku ekranu, nagłówek i pusty stan wyśrodkowane, zamknięcie w rogu, przyciski w jednym rzędzie */
.fmec-plan-dialog[open] { display: grid; place-items: center; padding: 16px; }
.fmec-plan-dialog-inner [hidden] { display: none !important; }
.fmec-plan-dialog-inner { margin: auto; width: min(680px, 100%); background: var(--ds-mint-surface); border: 1px solid var(--ds-mint-edge); border-radius: 28px; box-shadow: 0 40px 100px rgba(0, 12, 16, .45), inset 0 1px 0 rgba(255, 255, 255, .7); position: relative; }
.fmec-plan-dialog-inner > header { display: block; position: relative; padding: 30px 72px 20px; text-align: center; border-bottom: 1px solid var(--ds-mint-line); background: none; }
.fmec-plan-dialog-inner > header > div { display: grid; justify-items: center; gap: 6px; }
.fmec-plan-dialog-inner > header span { font: 800 .8125rem / 1 var(--ds-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ds-teal-600); }
.fmec-plan-dialog-inner > header h2 { margin: 0; font: 800 clamp(2rem, 4.4vw, 2.75rem) / 1 var(--ds-display); letter-spacing: .01em; text-transform: uppercase; color: var(--ds-night-900); }
.fmec-plan-dialog-inner > header p { margin: 4px 0 0; max-width: 40ch; font-size: 1rem; line-height: 1.5; color: var(--ds-text-soft); }
.fmec-plan-dialog-inner > header > [data-plan-close] { position: absolute; top: 16px; right: 16px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--ds-mint-line); background: rgba(255, 255, 255, .7); color: var(--ds-night-900); font-size: 1.5rem; line-height: 1; cursor: pointer; transition: transform .18s var(--ds-ease), background .18s ease, border-color .18s ease; }
.fmec-plan-dialog-inner > header > [data-plan-close]:hover, .fmec-plan-dialog-inner > header > [data-plan-close]:focus-visible { transform: rotate(90deg); background: #fff; border-color: #0a9691; outline: none; }
.fmec-plan-dialog [data-plan-content] { padding: 8px 28px; }
.fmec-plan-empty { display: grid; justify-items: center; gap: 10px; padding: 34px 16px 30px; text-align: center; }
.fmec-plan-empty::before { content: "♡"; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: rgba(255, 255, 255, .72); border: 1px solid var(--ds-mint-line); color: var(--ds-teal-600); font-size: 1.9rem; line-height: 1; }
.fmec-plan-empty strong { font: 800 1.5rem / 1.15 var(--ds-sans); color: var(--ds-night-900); }
.fmec-plan-empty p { margin: 0; max-width: 44ch; font-size: 1rem; line-height: 1.55; color: var(--ds-text-soft); }
.fmec-plan-dialog-inner > footer { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 18px 24px 24px; border-top: 1px solid var(--ds-mint-line); }
.fmec-plan-dialog-inner > footer > button, .fmec-plan-dialog-inner > footer > a { width: auto; min-height: 48px; padding: 0 22px; border-radius: 999px; font: 800 .9375rem / 1 var(--ds-sans); border: 1px solid var(--ds-mint-line); background: rgba(255, 255, 255, .72); color: var(--ds-night-900); transition: transform .18s var(--ds-ease), box-shadow .18s ease, background .18s ease, border-color .18s ease; }
.fmec-plan-dialog-inner > footer > button:hover, .fmec-plan-dialog-inner > footer > a:hover, .fmec-plan-dialog-inner > footer > button:focus-visible, .fmec-plan-dialog-inner > footer > a:focus-visible { transform: translateY(-2px); background: #fff; border-color: #0a9691; box-shadow: 0 10px 22px rgba(7, 48, 54, .16); outline: none; }
.fmec-plan-dialog-inner > footer > [data-plan-export] { background: linear-gradient(135deg, #0b7d7f, #07585d); border-color: transparent; color: #fff; box-shadow: 0 12px 26px rgba(7, 88, 93, .3); }
.fmec-plan-dialog-inner > footer > [data-plan-export]:hover, .fmec-plan-dialog-inner > footer > [data-plan-export]:focus-visible { background: linear-gradient(135deg, #0a9691, #08666a); color: #fff; border-color: transparent; }
@media (max-width: 560px) {
  .fmec-plan-dialog-inner > header { padding: 26px 58px 16px; }
  .fmec-plan-dialog-inner > footer > button, .fmec-plan-dialog-inner > footer > a { flex: 1 1 calc(50% - 10px); padding: 0 12px; }
}

/* DS-END-HERO */

/* ================================================================== 15. Zamknięcie strony: udostępnianie i „Odkrywaj dalej” jako zwarte karty zamiast gołych linii na całą szerokość */
.fmec-page.fmec-page :is(.fmec-share, .fmec-social-share) { margin: 30px 0 12px; padding: 18px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 28px; border: 1px solid var(--ds-mint-line); border-radius: 24px; background: var(--ds-mint-surface); box-shadow: none; }
.fmec-page .fmec-share-head { display: grid; gap: 4px; flex: 0 0 auto; justify-items: start; }
.fmec-page .fmec-share-head strong { font-size: 1.25rem; line-height: 1.1; }
.fmec-page .fmec-share-status { flex: 1 0 100%; grid-column: auto; }
.fmec-page.fmec-page :is(.fmec-share, .fmec-social-share) :is(a, button) { min-height: 44px; padding: 0 18px; border: 1px solid var(--ds-mint-line); background: rgba(255, 255, 255, .82); color: var(--ds-night-900); font-size: .875rem; font-weight: 800; box-shadow: none; }
.fmec-page.fmec-page :is(.fmec-share, .fmec-social-share) :is(a, button):is(:hover, :focus-visible) { transform: translateY(-2px); background: #fff; border-color: var(--ds-teal-600); box-shadow: 0 10px 22px rgba(3, 30, 37, .12); outline: none; }
/* „Udostępnij w aplikacji” zostaje ciemnym, głównym przyciskiem (reguła wyżej ma wyższą specyficzność niż ta z sekcji 8) */
.fmec-page.fmec-page :is(.fmec-share, .fmec-social-share) [data-fmec-share-native] { color: #fff; background: var(--ds-night-900); border-color: var(--ds-night-900); }
.fmec-page.fmec-page :is(.fmec-share, .fmec-social-share) [data-fmec-share-native]:is(:hover, :focus-visible) { color: #fff; background: var(--ds-teal-600); border-color: var(--ds-teal-600); }
.fmec-page.fmec-page .fmec-context-nav { margin: 12px auto 36px; padding: 16px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; border: 1px solid var(--ds-mint-line); border-radius: 24px; background: var(--ds-mint-surface); }
.fmec-page.fmec-page .fmec-context-nav > span { margin: 0; }
.fmec-page.fmec-page .fmec-context-nav > div > a { min-height: 44px; padding: 0 18px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--ds-mint-line); border-radius: 999px; background: rgba(255, 255, 255, .82); color: var(--ds-night-900); font-size: .875rem; font-weight: 800; text-decoration: none; white-space: nowrap; transition: transform .18s var(--ds-ease), background .18s ease, border-color .18s ease, box-shadow .18s ease; }
.fmec-page.fmec-page .fmec-context-nav > div > a:is(:hover, :focus-visible) { transform: translateY(-2px); background: #fff; border-color: var(--ds-teal-600); box-shadow: 0 10px 22px rgba(3, 30, 37, .12); outline: none; }
.fmec-page .fmec-context-nav > div > a i { font-style: normal; transition: transform .18s var(--ds-ease); }
.fmec-page .fmec-context-nav > div > a:is(:hover, :focus-visible) i { transform: translateX(3px); }
@media (min-width: 761px) {
  .fmec-page .fmec-share-actions { flex: 1 1 auto; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
  .fmec-page.fmec-page .fmec-context-nav > div { margin-left: auto; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
}
@media (max-width: 760px) {
  .fmec-page.fmec-page :is(.fmec-share, .fmec-social-share) { margin: 22px 0 10px; padding: 16px; border-radius: 20px; flex-direction: column; align-items: stretch; gap: 10px; }
  .fmec-page.fmec-page .fmec-context-nav { display: block; margin-bottom: 26px; padding: 16px; border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) { .fmec-page .fmec-context-nav > div > a, .fmec-page .fmec-context-nav > div > a i { transition: none; } .fmec-page.fmec-page :is(.fmec-share, .fmec-social-share) :is(a, button):is(:hover, :focus-visible), .fmec-page.fmec-page .fmec-context-nav > div > a:is(:hover, :focus-visible) { transform: none; } }

/* ================================================================== 16. Telefon: „Najważniejsze informacje” festiwalu jako duże karty plakatowe w przesuwie 85/15 */
@media (max-width: 760px) {
  .fmec-page .fm8-festival-facts-card { padding: 0; border: 0; background: none; box-shadow: none; max-height: none; overflow: visible; }
  .fmec-page .fm8-festival-facts-card > h2 { margin: 0 0 12px; font-size: 1.375rem; }
  .fmec-page .fm8-festival-facts-card dl[data-mobile-mode="rail"] { display: flex; gap: 12px; margin: 0; padding: 2px 0 8px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .fmec-page .fm8-festival-facts-card dl[data-mobile-mode="rail"]::-webkit-scrollbar { display: none; }
  .fmec-page .fm8-festival-facts-card dl[data-mobile-mode="rail"] > div { flex: 0 0 calc(85% - 12px); min-height: 190px; position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; gap: 18px; padding: 20px 20px 22px; border: 0; border-radius: 26px; scroll-snap-align: start; color: #fff; background: linear-gradient(160deg, #052f38 0%, #0a5d66 100%); box-shadow: 0 16px 34px rgba(3, 30, 37, .2); }
  .fmec-page .fm8-festival-facts-card dl[data-mobile-mode="rail"] > div::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(80% 90% at 100% 0%, rgba(255, 255, 255, .16), transparent 62%); }
  .fmec-page .fm8-festival-facts-card dl[data-mobile-mode="rail"] > div:nth-child(4n + 2) { background: linear-gradient(160deg, #0a2a4a 0%, #0b5a86 100%); }
  .fmec-page .fm8-festival-facts-card dl[data-mobile-mode="rail"] > div:nth-child(4n + 3) { background: linear-gradient(160deg, #0a3d33 0%, #12907f 100%); }
  .fmec-page .fm8-festival-facts-card dl[data-mobile-mode="rail"] > div:nth-child(4n) { background: linear-gradient(160deg, #4d3306 0%, #b9812a 100%); }
  .fmec-page .fm8-festival-facts-card dl[data-mobile-mode="rail"] dt { margin: 0; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .14); color: var(--ds-mint-300); font: 800 .75rem / 1 var(--ds-sans); letter-spacing: .12em; text-transform: uppercase; }
  .fmec-page .fm8-festival-facts-card dl[data-mobile-mode="rail"] dd { margin: 0; color: #fff; font: 800 clamp(1.75rem, 8vw, 2.25rem) / 1.04 var(--ds-display); letter-spacing: .005em; overflow-wrap: anywhere; }
  .fmec-page .fm8-festival-facts-card dl[data-mobile-mode="rail"] dd a { color: var(--ds-gold-300); }
}

/* ================================================================== 17. Autopromocja: lepiej widoczna, ale delikatna (mięta, cienka złota kreska, miękki cień) */
.fmec-page .fmec-bn.is-card.is-light:not(.is-ad):not(.has-bg) .fmec-bn-link { position: relative; overflow: hidden; padding: 22px 20px 20px; gap: 12px; border: 1px solid var(--ds-mint-line); border-radius: 24px; background: linear-gradient(155deg, #f5fbf8 0%, #e6f3ef 62%, #f6efda 140%); box-shadow: 0 16px 36px rgba(6, 50, 58, .09); transition: transform .22s var(--ds-ease), box-shadow .22s ease, border-color .2s ease; }
.fmec-page .fmec-bn.is-card.is-light:not(.is-ad):not(.has-bg) .fmec-bn-link::before { content: ""; position: absolute; left: 20px; top: 0; width: 56px; height: 3px; border-radius: 0 0 3px 3px; background: #d9a52e; }
.fmec-page .fmec-bn.is-card.is-light:not(.is-ad):not(.has-bg) a.fmec-bn-link:is(:hover, :focus-visible) { transform: translateY(-3px); border-color: var(--ds-teal-600); box-shadow: 0 22px 44px rgba(6, 50, 58, .14); }
.fmec-page .fmec-bn.is-card.is-light:not(.is-ad):not(.has-bg):not(.has-cover) .fmec-bn-media { width: 60px; height: 60px; }
.fmec-page .fmec-bn.is-card.is-light:not(.is-ad):not(.has-bg) .fmec-bn-title { font-size: 1.3125rem; line-height: 1.15; letter-spacing: -.01em; color: var(--ds-night-900); }
.fmec-page .fmec-bn.is-card.is-light:not(.is-ad):not(.has-bg) .fmec-bn-text { font-size: .9375rem; line-height: 1.5; }
.fmec-page .fmec-bn.is-card.is-light:not(.is-ad):not(.has-bg) .fmec-bn-cta { padding: 11px 20px; border: 1px solid rgba(10, 120, 115, .34); background: rgba(10, 120, 115, .1); color: #075a56; font-size: .9375rem; transition: background .18s ease, color .18s ease; }
.fmec-page .fmec-bn.is-card.is-light:not(.is-ad):not(.has-bg) a.fmec-bn-link:is(:hover, :focus-visible) .fmec-bn-cta { background: var(--ds-teal-600); border-color: var(--ds-teal-600); color: #fff; }
.fmec-page .fmec-bn.is-card:not(.is-ad) .fmec-bn-tag { font-size: .6875rem; }
@media (prefers-reduced-motion: reduce) { .fmec-page .fmec-bn.is-card.is-light:not(.is-ad):not(.has-bg) .fmec-bn-link { transition: none; } .fmec-page .fmec-bn.is-card.is-light:not(.is-ad):not(.has-bg) a.fmec-bn-link:is(:hover, :focus-visible) { transform: none; } }

/* ================================================================== 18. Karty kierunków ze zdjęciem tematycznym (mapa z lotu ptaka, zachód nad miastem, amfiteatr, port): własny ton każdej karty, zdjęcie widać */
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image { --jt: 6, 70, 82; --ph: var(--fm8-journey-image, var(--fm8-city-journey-image, var(--fm8-path-image, none))); }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image.is-plan { --jt: 112, 72, 14; }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image:is(.is-events, .is-calendar) { --jt: 10, 36, 78; }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image.is-water { --jt: 8, 74, 124; }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image.is-place { --jt: 10, 76, 58; }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; align-content: normal; gap: 6px; min-height: 236px; padding: 22px; border: 0; border-radius: 26px; color: #fff; text-decoration: none; background: rgb(var(--jt)); box-shadow: 0 16px 36px rgba(3, 30, 37, .2); transition: transform .26s var(--ds-ease), box-shadow .26s ease; }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image::before { content: ""; display: block; position: absolute; inset: 0; right: 0; top: 0; width: auto; height: auto; z-index: -2; opacity: 1; border-radius: 0; background: var(--ph) center / cover no-repeat; transform: none; transition: transform .7s var(--ds-ease); }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image::after { content: ""; display: block; position: absolute; inset: 0; z-index: -1; border: 0; background: linear-gradient(0deg, rgba(var(--jt), .95) 0%, rgba(var(--jt), .72) 30%, rgba(var(--jt), .18) 64%, rgba(var(--jt), 0) 100%); }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image:is(:hover, :focus-visible) { transform: translateY(-4px); box-shadow: 0 26px 50px rgba(3, 30, 37, .3); outline: none; }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image:is(:hover, :focus-visible)::before { transform: scale(1.07) rotate(0deg); opacity: 1; }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image > :is(span, small, strong, p, b, i) { margin: 0; }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image > strong { max-width: 18ch; font: 800 clamp(1.625rem, 6vw, 2rem) / 1.04 var(--ds-display); letter-spacing: .005em; text-transform: none; color: #fff; }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-home-path).has-image > span { position: absolute; left: 22px; top: 20px; padding: 6px 12px; border-radius: 999px; background: rgba(var(--jt), .55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #bff3ee; font: 800 .75rem / 1 var(--ds-sans); letter-spacing: .12em; text-transform: uppercase; }
.fmec-page.fmec-page .fm8-city-journey-card.has-image > small { position: absolute; left: 22px; top: 20px; padding: 6px 12px; border-radius: 999px; background: rgba(var(--jt), .55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #bff3ee; font: 800 .75rem / 1 var(--ds-sans); letter-spacing: .12em; text-transform: uppercase; }
.fmec-page.fmec-page .fm8-city-journey-card.has-image > .fm8-city-journey-icon { display: none; }
.fmec-page.fmec-page :is(.fm8-journey-card, .fm8-home-path).has-image > :is(small, p) { max-width: 30ch; color: rgba(255, 255, 255, .9); font: 600 .9375rem / 1.4 var(--ds-sans); }
.fmec-page.fmec-page .fm8-city-journey-card.has-image > b { max-width: 30ch; color: rgba(255, 255, 255, .9); font: 600 .9375rem / 1.4 var(--ds-sans); }
.fmec-page.fmec-page .fm8-journey-card.has-image > b { position: absolute; right: 18px; top: 16px; display: inline-grid; place-items: center; width: 42px; height: 42px; padding: 0; border-radius: 50%; background: rgba(var(--jt), .6); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #fff; font-size: 1.125rem; line-height: 1; }
.fmec-page.fmec-page .fm8-home-path.has-image > b { color: #fff; font: 800 .8125rem / 1 var(--ds-sans); }
.fmec-page.fmec-page .fm8-city-journey-card.has-image > i { right: 18px; top: 16px; bottom: auto; display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: rgba(var(--jt), .6); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font-style: normal; }
@media (prefers-reduced-motion: reduce) { .fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image, .fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image::before { transition: none; } .fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image:is(:hover, :focus-visible), .fmec-page.fmec-page :is(.fm8-journey-card, .fm8-city-journey-card, .fm8-home-path).has-image:is(:hover, :focus-visible)::before { transform: none; } }

/* DS-END-OVERHAUL2 */

/* ================================================================== 19. Logo marki: zielona płytka jest tylko dla zapasowego „FM”; własne logo (zwykle przezroczyste) leży na białej płytce, bez zielonego tła */
.fmec-hv2 .fmec-hv2-logo.has-img, .fmec-ft-logo.has-img { background: #fff; }
.fmec-hv2 .fmec-hv2-logo.has-img img, .fmec-ft-logo.has-img img { padding: 7%; box-sizing: border-box; background: transparent; }

/* DS-END-LOGO */

/* ================================================================== 20. Kontrast (audyt 21.10.2026): drobny tekst pomocniczy i kickery w miętowych pigułkach co najmniej 4,5:1 (pomiar na 14 stronach, 1440 i 390 px) */
:root { --ds-teal-600: #08706b; --ds-link: #08706b; --fm8-aqua-dark: #076e72; --ds-muted-aa: #55696e; }
.fmec-page :is(.fmec-citycard-meta, .fmec-package-choice > small, .fmec-gm-town, .fm8-side-card dt) { color: var(--ds-muted-aa); }
.fmec-page .fmec-timeline-item.is-upcoming .fmec-timeline-year { background: #8f6413; }
/* kickery i drobne akcenty w miętowych pigułkach: ciemniejszy turkus (4,5:1); te same selektory co w app.css, więc ciemne tła (reguły o wyższej specyficzności) zostają jak były */
.fmec-page .fm8-kicker, .fmec-page .fmec-kicker, .fmec-promo .fmec-kicker,
.fmec-page :is(.fmec-news-archive-hero, .fmec-editorial-section-head, .fmec-newscities-head, .fmec-owndesk-head, .fmec-tourist-intro, .fmec-tourist-section-head, .fmec-trail-intro, .fmec-camera-heading) > :is(.fmec-eyebrow, .fmec-kicker) { color: var(--ds-teal-600); }
/* ... a tam, gdzie app.css maluje je na ciemnym pasie regułą o tej samej specyficzności, kolor pasa wraca (ds.css ładuje się później i inaczej by wygrał) */
.fmec-page :is(.fm8-home-plan, .fm8-archive-hero) .fm8-kicker { color: var(--pm-gold); }
.fmec-page :is(.fmec-news-archive-hero, .fmec-tourist-intro) > :is(.fmec-eyebrow, .fmec-kicker) { color: #8ce9e4; }
.fmec-page .fm8-section-head > a, .fmec-page .fm8-region-group > header span, .fmec-page .fm8-region-entity > b, .fmec-page .fm8-event-day span { color: var(--ds-teal-600); }

.fmec-page .b2b-panel .fmec-promo-editorial a { color: var(--ds-teal-600); }
/* DS-END-CONTRAST */
