.trail-story__track { margin-top: 32px; }
.trail-story__track > .trail-story__panel { min-width: 0; }
.trail-page-intro { position: relative; isolation: isolate; overflow: hidden; padding: clamp(76px, 11vw, 156px) var(--container-gutter) var(--trail-section-space); color: var(--c-ink-900); }
.trail-page-intro__mark { display: none; }
.trail-page-intro__inner { width: min(100%, 1240px); margin: 0 auto; }
.trail-page-intro__eyebrow, .trail-section__kicker { margin: 0 0 18px; color: var(--c-ink-500); font: var(--fw-regular) var(--fs-label) / 1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; }
.trail-page-intro__title { max-width: none; margin: 0; color: var(--c-ink-900); font-family: var(--font-display); font-size: clamp(34px, 4.6vw, 64px); font-stretch: 116%; font-weight: var(--fw-regular); letter-spacing: -.055em; line-height: .94; text-transform: uppercase; }
.trail-page-intro__body { max-width: 62ch; margin: clamp(28px, 4vw, 52px) 0 0; color: var(--c-ink-600); font-size: clamp(17px, 1.65vw, 22px); line-height: 1.58; }
.trail-page-intro__nav { display: grid; width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 1120px; margin: clamp(44px, 6vw, 80px) auto 0; }
.trail-page-intro__link { display: flex; min-height: 60px; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; border: 1px solid var(--c-ink-900); border-radius: 999px; color: var(--c-ink-900); font: var(--fw-bold) 12px / 1.15 var(--font-display); letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: color 160ms ease, background-color 160ms ease, transform 160ms ease; }
.trail-page-intro__link span:last-child { font-size: 22px; line-height: .8; }
.trail-page-intro__link:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); transform: translateY(-2px); }
.trail-page-intro__nav .wp-block-buttons { display: grid; grid-template-columns: inherit; gap: inherit; margin: 0; }
.trail-page-intro__nav .wp-block-button { width: 100%; margin: 0; }
.trail-page-intro__nav .wp-block-button__link { display: flex; width: 100%; min-height: 60px; box-sizing: border-box; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; border: 1px solid var(--c-ink-900); border-radius: 999px; background: transparent; color: var(--c-ink-900); font: var(--fw-bold) 12px / 1.15 var(--font-display); letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: color 160ms ease, background-color 160ms ease, transform 160ms ease; }
.trail-page-intro__nav .wp-block-button__link::after { font-size: 22px; line-height: .8; content: '→'; }
.trail-page-intro__nav .wp-block-button__link:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); transform: translateY(-2px); }
.trail-button-group { display: flex; width: 100%; max-width: 1120px; flex-wrap: wrap; justify-content: center; gap: 12px; margin: clamp(44px, 6vw, 80px) auto 0; }
.trail-page-intro__nav .trail-button-group { grid-column: 1 / -1; margin-top: 0; }
.trail-button { width: auto; max-width: 100%; min-width: 0; flex: 0 1 auto; }
.trail-button__link { display: inline-flex; width: auto; max-width: 100%; min-height: 60px; box-sizing: border-box; align-items: center; justify-content: space-between; gap: clamp(24px, 4vw, 56px); padding: 14px 18px; border: 1px solid var(--c-ink-900); border-radius: 999px; background: transparent; color: var(--c-ink-900); font: var(--fw-bold) 12px / 1.15 var(--font-display); letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: color 160ms ease, background-color 160ms ease, transform 160ms ease; }
.trail-button__link::after { font-size: 22px; line-height: .8; content: '→'; }
.trail-button__link:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); transform: translateY(-2px); }
.division-page__hero .trail-button-group { max-width: 640px; margin-top: 0; }
.division-page__hero .trail-button__link { border-color: var(--c-white); color: var(--c-white); text-shadow: 0 2px 20px rgba(0, 0, 0, .8); }
.division-page__hero .trail-button__link:is(:hover, :focus-visible) { background: var(--c-white); color: var(--c-ink-900); text-shadow: none; }
.editor-styles-wrapper .trail-page-intro__nav > .block-editor-inner-blocks { width: 100%; grid-column: 1 / -1; }
.editor-styles-wrapper .trail-button-group > .block-editor-inner-blocks { width: 100%; grid-column: 1 / -1; }
.editor-styles-wrapper .trail-button-group > .block-editor-inner-blocks > .block-editor-block-list__layout { display: flex; width: 100%; flex-wrap: wrap; justify-content: center; gap: 12px; }
.editor-styles-wrapper .trail-button-group .wp-block-trail-button { width: auto; max-width: 100%; min-width: 0; flex: 0 1 auto; margin: 0; }
.editor-styles-wrapper .trail-button-group__add { display: flex; width: 100%; flex: 0 0 100%; justify-content: center; margin-top: 8px; }
.editor-styles-wrapper .trail-button-group__add-button.components-button { display: grid; width: 44px; height: 44px; padding: 0; place-items: center; border: 1px solid #3858e9 !important; border-radius: 50%; background: #3858e9 !important; box-shadow: none !important; color: #fff !important; }
.editor-styles-wrapper .trail-button-group__add-button.components-button span { color: #fff; font: 400 30px/1 Arial, sans-serif; }
.editor-styles-wrapper .trail-button-group__add-button.components-button:is(:hover, :focus-visible) { border-color: #2145ce !important; background: #2145ce !important; color: #fff !important; }
.block-editor-block-preview .trail-button-group__add { display: none; }
.editor-styles-wrapper .trail-editor-hero .block-editor-inner-blocks { width: min(100%, 640px); }
.editor-styles-wrapper .trail-editor-hero .trail-button__link { border-color: var(--c-white); color: var(--c-white); }
.trail-athletes-section { --trail-athlete-card-width: 296px; position: relative; isolation: isolate; overflow: visible; padding: var(--trail-section-space) var(--container-gutter); color: var(--c-ink-900); }
.trail-athletes-section--heading { padding-bottom: clamp(24px, 4vw, 52px); }
.trail-athletes-section--rail { padding-top: clamp(24px, 4vw, 52px); padding-bottom: var(--trail-section-space); }
.trail-athletes-section::before { display: none; }
.trail-athletes-section__inner { width: min(100%, 1240px); margin: 0 auto; }
.trail-athletes-section__kicker { margin: 0 0 18px; color: var(--c-ink-500); font: var(--fw-regular) var(--fs-label) / 1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; }
.trail-athletes-section__title { max-width: none; margin: 0; color: var(--c-ink-900); font-family: var(--font-display); font-size: clamp(34px, 4.4vw, 60px); font-stretch: 116%; font-weight: var(--fw-regular); letter-spacing: -.055em; line-height: .94; text-transform: uppercase; }
.trail-athletes-section__lead { max-width: 58ch; margin: 28px 0 0; color: var(--c-ink-600); font-size: clamp(17px, 1.6vw, 21px); line-height: 1.55; }
.trail-athletes-section .trail-athletes-grid:first-of-type { margin-top: 0; }
.trail-athletes-grid { display: grid; min-width: 0; gap: 24px; padding-top: clamp(38px, 5vw, 66px); border-top: 1px solid var(--c-ink-200); }
.trail-athletes-grid + .trail-athletes-grid { margin-top: clamp(48px, 7vw, 88px); }
.trail-athletes-grid__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.trail-athletes-grid .trail-section__kicker { margin-bottom: 10px; color: var(--c-ink-500); }
.trail-athletes-grid__header h3 { margin: 0; color: var(--c-ink-900); font-family: var(--font-display); font-size: clamp(26px, 3vw, 40px); font-stretch: 112%; font-weight: var(--fw-regular); letter-spacing: -.04em; line-height: .98; text-transform: uppercase; }
.trail-athletes-grid__controls { display: flex; align-items: center; justify-content: flex-end; }
.trail-athletes-grid__buttons { display: flex; gap: 0; overflow: hidden; border: 1px solid var(--c-ink-900); border-radius: 999px; background: rgba(255, 255, 255, .48); backdrop-filter: blur(10px); }
.trail-athletes-grid__buttons button { display: grid; width: 54px; min-width: 54px; min-height: 52px; padding: 0; place-items: center; border: 0; border-radius: 0; background: transparent; color: var(--c-ink-900); font-size: 24px; line-height: 1; cursor: pointer; touch-action: manipulation; transition: color 180ms ease, background-color 180ms ease, transform 180ms ease; }
/* SVG arrows instead of the ←/→ glyphs: a glyph sits off-centre and differs per system font. Sized by the button font-size. */
.trail-athletes-grid__buttons svg { display: block; width: 1em; height: 1em; }
.trail-athletes-grid__buttons button + button { border-left: 1px solid var(--c-ink-900); }
.trail-athletes-grid__buttons button:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); transform: scale(1.05); }
.trail-athletes-grid__buttons button:disabled { color: var(--c-ink-400); cursor: not-allowed; }
.trail-athletes-grid__buttons button:disabled:hover { background: transparent; color: var(--c-ink-400); transform: none; }
.trail-athletes-grid__stage { position: relative; display: grid; min-width: 0; gap: 24px; }
.trail-athletes-grid__rail { position: relative; min-width: 0; }
.trail-athletes-grid__track { display: flex; min-width: 0; gap: clamp(16px, 2vw, 26px); overflow-x: auto; padding: 28px 0 64px; scrollbar-width: none; }
.trail-athletes-grid__track::-webkit-scrollbar { display: none; }
.trail-athletes-grid__track:focus-visible { outline: 3px solid var(--c-sky-500); outline-offset: 6px; }
.trail-athletes-grid__track > .trail-athlete-card { flex: 0 0 var(--trail-athlete-card-width); }
/* Miejsce na poświatę bieżącej karty (rozmyta, powiększona, przesunięta w dół), żeby nie była ucinana */
/* Glow za kartą (hover / aktywna) wychodzi daleko poza kartę: szyna ma duży zapas na glow (padding),
   który ujemny margines oddaje, więc odstępy na stronie się nie zmieniają. Na boki zapas wygasza maska,
   pod którą widać też skrawek następnej karty. Zapas nie łapie kliknięć (pointer-events), tylko karty. */
.trail-athletes-grid__rail.swiper { --rail-bleed: 120px; overflow: hidden; margin: -84px calc(-1 * var(--rail-bleed)) -170px; padding: 150px var(--rail-bleed) 170px; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--rail-bleed), #000 calc(100% - var(--rail-bleed)), transparent); mask-image: linear-gradient(90deg, transparent, #000 var(--rail-bleed), #000 calc(100% - var(--rail-bleed)), transparent); }
.trail-athletes-grid__rail.swiper .trail-athletes-grid__track { pointer-events: auto; }
@media (max-width: 767px) { .trail-athletes-grid__rail.swiper { margin: -74px calc(-1 * var(--container-gutter)) -90px; padding: 90px 0 90px; -webkit-mask-image: none; mask-image: none; } }
.trail-athletes-grid__rail.swiper .trail-athletes-grid__track { gap: 0; overflow: visible; padding: 0; }
.trail-athletes-grid__rail.swiper .trail-athlete-card { width: var(--trail-athlete-card-width); height: auto; flex-shrink: 0; }
:is(body.trail-wordpress, .editor-styles-wrapper, .trail-card-preview) .trail-athlete-card { --trail-card-glow: rgba(54, 143, 103, .78); display: block; width: var(--trail-athlete-card-width); min-height: 0; position: relative; isolation: isolate; overflow: visible; margin: 0; padding: 0; background: transparent; color: var(--c-ink-900); container-type: inline-size; }
:is(body.trail-wordpress, .editor-styles-wrapper, .trail-card-preview) .trail-athlete-card::before { content: none; }
:is(body.trail-wordpress, .editor-styles-wrapper, .trail-card-preview) .trail-athlete-card[data-tier="gold"] { --trail-card-glow: rgba(213, 151, 50, .82); }
:is(body.trail-wordpress, .editor-styles-wrapper, .trail-card-preview) .trail-athlete-card[data-tier="silver"] { --trail-card-glow: rgba(167, 175, 191, .82); }
:is(body.trail-wordpress, .editor-styles-wrapper, .trail-card-preview) .trail-athlete-card[data-tier="bronze"] { --trail-card-glow: rgba(175, 112, 53, .76); }
:is(body.trail-wordpress, .editor-styles-wrapper, .trail-card-preview) .trail-athlete-card::after { content: ''; position: absolute; z-index: -1; inset: 12px; border-radius: 6%; background: var(--trail-card-glow); filter: blur(38px); opacity: 0; pointer-events: none; transform: none; transition: opacity 520ms ease, transform 680ms cubic-bezier(.16, 1, .3, 1), filter 680ms cubic-bezier(.16, 1, .3, 1), inset 680ms cubic-bezier(.16, 1, .3, 1); }
:is(body.trail-wordpress, .editor-styles-wrapper, .trail-card-preview) .trail-athlete-card h3 { position: absolute; top: 61.5%; left: 8%; z-index: 2; width: 84%; margin: 0; color: var(--c-ink-900); font-family: var(--font-display); font-size: 6.4cqw; font-weight: var(--fw-black); letter-spacing: .14em; line-height: 1.18; text-align: center; text-transform: uppercase; overflow-wrap: anywhere; }
.trail-athlete-card__surname.is-own-line { display: block; }
.trail-athlete-card__visual { position: relative; z-index: 1; aspect-ratio: 140.8 / 239.6; isolation: isolate; overflow: hidden; transform-origin: center center; backface-visibility: hidden; filter: drop-shadow(0 12px 18px rgba(48, 41, 26, .19)); transition: transform 620ms cubic-bezier(.16, 1, .3, 1), filter 620ms cubic-bezier(.16, 1, .3, 1); }
.trail-athlete-card__visual::after { content: ''; position: absolute; z-index: 4; inset: 0; pointer-events: none; background: linear-gradient(106deg, rgba(255, 255, 255, 0) 34%, rgba(255, 255, 255, .12) 42%, rgba(255, 255, 255, .82) 50%, rgba(255, 255, 255, .16) 58%, rgba(255, 255, 255, 0) 66%); background-position: 175% 0; background-repeat: no-repeat; background-size: 240% 100%; mix-blend-mode: screen; opacity: 0; }
@media (hover: hover) { body.trail-wordpress .trail-athlete-card:hover::after { opacity: 1; filter: blur(40px); inset: -6px; transform: translateY(-10px); } .trail-athlete-card:hover .trail-athlete-card__visual { filter: drop-shadow(0 8px 30px rgba(48, 41, 26, .28)); transform: translate3d(0, -10px, 0); } .trail-athlete-card:hover .trail-athlete-card__visual::after { opacity: .96; animation: trail-card-shine 1450ms cubic-bezier(.22, .61, .36, 1) both; } }
/* Glow: a solid card-shaped plate blurred, so it spreads by the same amount on every side; it follows the 10px lift of the card. Phone (centered rail): softer and tighter than the desktop hover. */
body.trail-wordpress .trail-athletes-grid.is-centered .trail-athlete-card.swiper-slide-active::after { opacity: .6; filter: blur(24px); inset: -2px; transform: translateY(-10px); }
.trail-athletes-grid.is-centered .trail-athlete-card.swiper-slide-active .trail-athlete-card__visual { filter: drop-shadow(0 8px 30px rgba(48, 41, 26, .28)); transform: translate3d(0, -10px, 0); }
.trail-athletes-grid.is-centered .trail-athlete-card.swiper-slide-active .trail-athlete-card__visual::after { opacity: .96; animation: trail-card-shine 1450ms cubic-bezier(.22, .61, .36, 1) both; }
@keyframes trail-card-shine { from { background-position: 175% 0; } to { background-position: -130% 0; } }
.trail-athlete-card__frame { position: absolute; inset: 0; z-index: 0; display: block; width: 100%; height: 100%; max-width: none; }
/* Clipped only top and bottom: a zoomed photo may spill sideways over the frame, so elbows are not cut off (the card itself still clips at its edge). */
.trail-athlete-card__portrait { position: absolute; top: 4%; left: 28%; z-index: 1; width: 67%; height: 57%; overflow: hidden; overflow-x: visible; overflow-y: clip; }
/* Kadr z panelu (includes/photo-crop.php): punkt w kadrze i powiększenie */
/* Poziomo / Pionowo shift the photo by up to a whole box either way at any zoom (the same for coach cards). */
.trail-athlete-card__portrait img, .trail-coach__media img { object-position: 50% 50%; transform-origin: 50% 50%; transform: translate(calc(50% - var(--crop-x, 50%)), calc(50% - var(--crop-y, 50%))) scale(var(--crop-zoom, 1)); }
.trail-athlete-card__portrait img { display: block; width: 100%; height: 100%; object-fit: cover; }
.trail-athlete-card__logo { position: absolute; top: 93.78%; left: 56.01%; z-index: 3; display: block; box-sizing: content-box; width: 23.25%; max-width: none; height: auto; margin: -.3cqw 0 0 -.3cqw; padding: .3cqw; background: #fff; }
.trail-athlete-card__frame, .trail-athlete-card__portrait img, .trail-athlete-card__flag, .trail-athlete-card__logo { user-select: none; -webkit-user-select: none; -webkit-user-drag: none; pointer-events: none; }
/* Bez białego tła — tło zasłaniało górę z ramki. Blok przesunięty w górę i w lewo, żeby flaga nie wchodziła na zbocze góry. */
.trail-athlete-card__scores { position: absolute; top: 3.6%; left: 12%; z-index: 2; display: grid; gap: 2.6cqw; margin: 0; padding: 1.4cqw; font-family: var(--font-core); }
.trail-athlete-card__scores > div { display: flex; flex-direction: column-reverse; }
/* ITRA asks for a "View on ITRA" link per runner; sized to sit within the width of a three-digit score. */
.trail-athlete-card__itra-link { margin-bottom: -1cqw; color: var(--c-ink-900); font-size: 2.15cqw; font-weight: 700; line-height: 1.2; white-space: nowrap; text-decoration: underline; text-underline-offset: .4cqw; }
/* ITRA attribution under the rail: update date, then the official badge (min. 120 px wide, clear space of half its height) and the source line. */
.trail-athletes-grid__itra { display: flex; flex-wrap: wrap; align-items: flex-end; column-gap: 24px; margin-top: 48px; color: var(--c-ink-500); font-size: 13px; line-height: 1.4; }
/* Text baseline on the baseline of "COMPATIBLE WITH" in the badge (2px above its bottom edge, inside the 18px clear space). */
.trail-athletes-grid__itra p { margin: 0 0 16px; }
.trail-athletes-grid__itra img { display: block; width: 308px; height: auto; margin: 18px 0; }
/* Phone: badge, source line and date each on their own row, pushed below the glow of the active card. */
@media (max-width: 767px) {
  .trail-athletes-grid__itra { flex-direction: column; align-items: flex-start; row-gap: 8px; margin-top: 28px; }
  .trail-athletes-grid__itra p { margin: 0; }
  .trail-athletes-grid__itra img { width: 205px; margin: 0 0 4px; }
}
.trail-athletes-grid__itra a { color: var(--c-ink-900); text-decoration: underline; text-underline-offset: 3px; }
.trail-athlete-card__scores dt { font-size: 3.7cqw; line-height: 1.1; font-weight: 700; }
.trail-athlete-card__scores dd { margin: 0; font-size: 7.1cqw; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.trail-athlete-card__country dd { line-height: 0; }
.trail-athlete-card__flag { display: block; width: 10.5cqw; height: 7cqw; box-sizing: border-box; border: max(1px, .35cqw) solid #111; object-fit: cover; }
.trail-athlete-card__description { position: absolute; top: 76.5%; left: 13%; z-index: 2; width: 81%; max-height: 5.95em; margin: 0; overflow: hidden; color: var(--c-ink-900); font-family: var(--font-core); font-size: 3.45cqw; font-weight: 650; letter-spacing: -.01em; line-height: 1.22; }
/* Each paragraph of the description (Enter in the editor) is its own line; the gap shows where one ends. Room: 4 lines. */
.trail-athlete-card .trail-athlete-card__description > p { max-width: none; margin: 0; padding: 0; color: inherit; font: inherit; letter-spacing: inherit; line-height: inherit; text-transform: none; }
.trail-athlete-card .trail-athlete-card__description > p + p { margin-top: .35em; }
.trail-athlete-card__description strong { font-weight: 800; }
.trail-sekcja-calendar { padding: var(--trail-section-space) var(--container-gutter); color: var(--c-ink-900); }
.trail-sekcja-calendar__inner, .trail-sekcja-join__inner { width: min(100%, 1240px); margin: 0 auto; }
.trail-sekcja-calendar__kicker { margin: 0 0 18px; color: var(--c-ink-500); font: var(--fw-regular) var(--fs-label) / 1 var(--font-display); letter-spacing: .18em; text-transform: uppercase; }
.trail-sekcja-calendar__title { max-width: none; margin: 0; font-family: var(--font-display); font-size: clamp(34px, 4.4vw, 60px); font-stretch: 116%; font-weight: var(--fw-regular); letter-spacing: -.045em; line-height: 1; text-transform: uppercase; }
.trail-sekcja-calendar .trail-calendar { margin-top: clamp(44px, 6vw, 72px); }
.trail-sekcja-join { padding: var(--trail-section-space) var(--container-gutter); color: var(--c-ink-900); }
.trail-sekcja-join__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 420px); gap: clamp(32px, 7vw, 120px); align-items: end; }
.trail-sekcja-join h2 { max-width: 11ch; margin: 0; font-family: var(--font-display); font-size: clamp(34px, 4.4vw, 60px); font-stretch: 116%; font-weight: var(--fw-regular); letter-spacing: -.055em; line-height: .94; text-transform: uppercase; }
.trail-sekcja-join p { margin: 0; font-size: clamp(17px, 1.65vw, 21px); line-height: 1.55; }
.trail-sekcja-join a { display: inline-flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 48px; margin-top: 28px; padding: 12px 18px; border: 1px solid var(--c-ink-900); border-radius: 999px; color: var(--c-ink-900); font: var(--fw-bold) 12px / 1 var(--font-display); letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.trail-sekcja-join a:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); }
@media (max-width: 700px) { .trail-athletes-section { --trail-athlete-card-width: 262px; } .trail-page-intro__nav, .trail-page-intro__nav .wp-block-buttons, .trail-button-group, .division-page__hero .trail-button-group, .editor-styles-wrapper .trail-button-group > .block-editor-inner-blocks > .block-editor-block-list__layout { grid-template-columns: 1fr; } .trail-athletes-grid__header { align-items: flex-start; flex-direction: column; } .trail-calendar__item { grid-template-columns: 1fr; gap: 8px; } .trail-calendar__item a { justify-self: start; margin-top: 8px; } .trail-sekcja-join__grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .trail-story__track, .trail-athletes-grid__track { scroll-behavior: auto; scroll-snap-type: none; } .trail-athlete-card__visual, .trail-page-intro__link { transition: none; } .trail-athlete-card__visual::after { display: none; } }
.editor-styles-wrapper .wp-block[data-type="trail/hero"], .editor-styles-wrapper .wp-block[data-type="trail/page-intro"], .editor-styles-wrapper .wp-block.trail-athletes-section, .editor-styles-wrapper .wp-block.trail-sekcja-calendar, .editor-styles-wrapper .wp-block.trail-sekcja-join { max-width: 1240px; margin-right: auto; margin-left: auto; }
.editor-styles-wrapper .trail-page-intro.trail-editor-page-intro { padding: 44px; }
.editor-styles-wrapper .trail-page-intro.trail-editor-page-intro .trail-page-intro__title { max-width: none; font-size: clamp(32px, 3.8vw, 50px); }
.editor-styles-wrapper .trail-page-intro.trail-editor-page-intro .trail-page-intro__body { max-width: 60ch; font-size: 17px; }
.editor-styles-wrapper .trail-page-intro.trail-editor-page-intro .trail-page-intro__nav { margin-top: 32px; }
.editor-styles-wrapper .trail-page-intro.trail-editor-page-intro .trail-page-intro__nav span { display: flex; min-height: 48px; align-items: center; justify-content: space-between; padding: 10px 16px; border: 1px solid var(--c-ink-900); border-radius: 999px; font: var(--fw-bold) 12px / 1 var(--font-display); letter-spacing: .1em; text-transform: uppercase; }
.editor-styles-wrapper .trail-athletes-section { min-height: 0; padding: 48px; }
.editor-styles-wrapper .trail-athletes-section__title { font-size: clamp(32px, 3.8vw, 50px); }
@media (max-width: 700px) { .editor-styles-wrapper .trail-page-intro.trail-editor-page-intro, .editor-styles-wrapper .trail-athletes-section { padding: 28px; } }
.trail-page-intro__logo { display: block; width: min(390px, 78vw); height: auto; margin: 0 0 32px; }
.trail-page-intro--centered { min-height: min(820px, calc(100svh - 78px)); display: grid; align-items: center; text-align: center; }
.trail-page-intro--centered .trail-page-intro__inner { display: grid; justify-items: center; }
.trail-page-intro--centered .trail-page-intro__body { margin-inline: auto; }
.trail-page-intro--centered .trail-page-intro__nav { width: 100%; margin-inline: auto; }
.trail-page-intro__signoff { width: 100%; justify-self: end; margin-top: clamp(48px, 7vw, 90px); text-align: right; }
.trail-page-intro__signoff > p { margin: 0; font: var(--fw-regular) clamp(22px, 3vw, 38px)/1 var(--font-display); letter-spacing: -.03em; }
.trail-page-intro__signatures { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px clamp(18px, 2.7vw, 38px); margin-top: 12px; }
/* Caveat leans right: the top of the last letter (e.g. „ł” in „Michał”) sticks out past the text box. Safari clips a
   rotated element to its box, so the padding gives that overhang room; the negative margin keeps the spacing. */
.trail-page-intro__signatures :is(span, p) { display: block; margin: 0 -.25em 0 0; padding: 0 .25em 0 0; color: var(--c-ink-900); font: 600 clamp(23px, 2.4vw, 34px)/1.15 var(--font-signature); letter-spacing: .01em; transform: rotate(-2deg); }
.trail-page-intro__signatures :is(span, p):nth-child(even) { transform: rotate(1.5deg) translateY(3px); }
.trail-page-intro--pattern { min-height: 0; display: block; padding-bottom: 0; }
.trail-page-intro--pattern:not(:has(+ .trail-page-intro__nav--pattern, + .trail-page-intro__signoff--pattern)) { padding-bottom: var(--trail-section-space); }
.trail-page-intro--pattern .trail-page-intro__inner > .trail-page-intro__logo { width: min(390px, 78vw); margin: 0 0 32px; }
.trail-page-intro--pattern .trail-page-intro__logo img { display: block; width: 100%; height: auto; }
.trail-page-intro--pattern .trail-page-intro__inner > :is(.trail-page-intro__body, p) { max-width: 62ch; margin: clamp(28px, 4vw, 52px) auto 0; color: var(--c-ink-600); font: 400 clamp(17px, 1.65vw, 22px)/1.58 var(--font-core); }
/* Longer intro pasted as several paragraphs: the editor makes new paragraphs without the body class, so every paragraph gets the body style; the following ones sit closer. */
.trail-page-intro--pattern .trail-page-intro__inner > p + p { margin-top: 1em; }
.trail-page-intro__nav--pattern { box-sizing: border-box; display: block; width: 100%; max-width: none; margin: 0; padding: clamp(44px, 6vw, 80px) var(--container-gutter) 0; }
.trail-page-intro__nav--pattern > .trail-button-group { width: 100%; max-width: 1120px; margin: 0 auto; }
.trail-page-intro__nav--pattern .trail-button { flex: 0 1 330px; }
/* Four buttons (Fundacja: … + Kalendarz) share one row by the length of their labels, each label on one line. */
/* A row that cannot hold all four (longer labels, narrower window) wraps with buttons at their own width, never one button stretched over a whole row. */
.trail-page-intro__nav--pattern > .trail-button-group:has(> :nth-child(4)) { max-width: 1240px; container-type: inline-size; }
.trail-page-intro__nav--pattern .trail-button-group:has(> :nth-child(4)) .trail-button { flex: 0 1 auto; }
.trail-page-intro__nav--pattern .trail-button-group:has(> :nth-child(4)) .trail-button__link { width: 100%; white-space: nowrap; }
@container (min-width: 1200px) { .trail-page-intro__nav--pattern .trail-button-group:has(> :nth-child(4)):not(:has(> :nth-child(5))) .trail-button { flex: 1 1 auto; } }
.trail-page-intro__nav--pattern .trail-button__link { display: flex; width: 100%; }
/* The next section brings its own top space; only a nav that ends the page needs bottom space (no doubled gap). */
.trail-page-intro__nav--pattern:last-child { padding-bottom: var(--trail-section-space); }
.trail-content-section:has(+ .trail-athletes-section--rail) { padding-bottom: clamp(24px, 4vw, 52px); }
.trail-page-intro__signoff { color: var(--c-ink-900); }
.trail-page-intro__signoff--pattern { box-sizing: border-box; width: 100%; margin: 0; padding: clamp(48px, 7vw, 90px) var(--container-gutter) var(--trail-section-space); }
.trail-page-intro__signoff--pattern > p, .trail-page-intro__signoff--pattern > .trail-page-intro__signatures { width: min(100%, 1240px); max-width: 1240px; margin-inline: auto; }
.trail-page-intro__signoff--pattern > .trail-page-intro__signatures { margin-top: 12px; }
.trail-calendar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; width: 100%; }
.trail-calendar [hidden] { display: none !important; }
.trail-calendar__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.trail-calendar__views, .trail-calendar__paging { display: inline-flex; align-items: center; overflow: hidden; border: 1px solid var(--c-ink-900); border-radius: 999px; background: rgba(255,255,255,.82); }
.trail-calendar__views button, .trail-calendar__paging button { min-height: 46px; border: 0; border-radius: 0; padding: 10px 18px; background: transparent; color: var(--c-ink-900); font: 700 11px/1 var(--font-display); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.trail-calendar__views button + button, .trail-calendar__paging > * + * { border-left: 1px solid var(--c-ink-900); }
.trail-calendar__views button[aria-pressed="true"], .trail-calendar__views button:is(:hover,:focus-visible), .trail-calendar__paging button:is(:hover,:focus-visible) { background: var(--c-ink-900); color: var(--c-white); }
.trail-calendar__paging p { min-width: 152px; margin: 0; padding: 0 18px; text-align: center; font: 700 12px/1 var(--font-display); letter-spacing: .08em; text-transform: uppercase; }
.trail-calendar__paging button:disabled { opacity: .35; cursor: not-allowed; }
.trail-calendar__weekdays, .trail-calendar__month-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.trail-calendar__weekdays span { padding: 12px; border-bottom: 1px solid var(--c-ink-900); font: 700 11px/1 var(--font-display); text-align: center; text-transform: uppercase; }
.trail-calendar__day, .trail-calendar__blank { min-height: 132px; padding: 10px; border-right: 1px solid var(--c-ink-200); border-bottom: 1px solid var(--c-ink-200); }
.trail-calendar__day:nth-child(7n+1), .trail-calendar__blank:nth-child(7n+1) { border-left: 1px solid var(--c-ink-200); }
.trail-calendar__day-number { display: block; color: var(--c-ink-500); font-variant-numeric: tabular-nums; }
.trail-calendar__month-event { display: block; margin-top: 7px; padding: 7px; border-radius: 4px; background: var(--c-ink-900); color: var(--c-white); font-size: 12px; line-height: 1.25; text-decoration: none; }
.trail-calendar__month-event.is-past { background: var(--c-ink-400); }
/* Formularz: jeden wygląd na każdej stronie — biała ramka z czarną obwódką jak w Kontakcie.
   Pola 16 px, żeby iPhone nie powiększał strony przy wpisywaniu; błąd pod polem, tekstem i kolorem. */
.trail-form-wrap { width: 100%; }
.ds-form.trail-form { display: grid; gap: 18px; width: 100%; max-width: none; margin: 0; padding: clamp(24px, 3.5vw, 44px); border: 1px solid var(--c-ink-900); background: var(--c-white); color: var(--c-ink-900); text-align: left; }
.trail-form[hidden] { display: none; }
.trail-form__honeypot { position: absolute; left: -10000px; }
.trail-form .ds-form__row { display: grid; gap: 8px; margin: 0; }
.trail-form .ds-form__row label { color: var(--c-ink-500); font: 700 11px/1.3 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
.trail-form .ds-form__row :is(input, textarea) { box-sizing: border-box; width: 100%; min-width: 0; min-height: 52px; padding: 12px 14px; border: 1px solid #b9bcbf; border-radius: 0; background: var(--c-white); color: var(--c-ink-900); font: 400 16px/1.5 var(--font-core); }
.trail-form .ds-form__row textarea { min-height: 140px; resize: vertical; }
.ds-form.trail-form :is(input, textarea):focus-visible { border-color: var(--c-ink-900); outline: 2px solid var(--c-ink-900); outline-offset: 0; }
.trail-form .is-invalid :is(input, textarea) { border-color: var(--c-pink-700); }
.trail-form .ds-form__check { display: grid; gap: 6px; }
.trail-form .ds-form__consent { display: flex; gap: 12px; align-items: flex-start; margin: 0; color: var(--c-ink-600); cursor: pointer; }
.trail-form .ds-form__consent span { color: inherit; font: 400 14px/1.45 var(--font-core); letter-spacing: 0; text-transform: none; }
.trail-form .ds-form__consent input { width: 20px; height: 20px; min-height: 20px; margin: 1px 0 0; flex: none; accent-color: var(--c-ink-900); }
.trail-form .ds-form__error { margin: 0; color: var(--c-pink-700); font: 600 13px/1.4 var(--font-core); }
.trail-form__notice { margin: 0; padding: 12px 14px; border-left: 3px solid var(--c-pink-700); background: var(--c-pink-50); color: var(--c-ink-900); font: 600 14px/1.45 var(--font-core); }
.trail-form .ds-form__submit { justify-self: start; min-height: 48px; margin: 0; padding: 12px 26px; border: 1px solid var(--c-ink-900); border-radius: 999px; background: var(--c-ink-900); color: var(--c-white); font: 700 12px/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: background-color 160ms ease, color 160ms ease; }
.trail-form .ds-form__submit:is(:hover, :focus-visible) { background: var(--c-white); color: var(--c-ink-900); }
.trail-form .ds-form__submit:focus-visible { outline: 2px solid var(--c-ink-900); outline-offset: 3px; }
.trail-form .ds-form__submit:disabled { opacity: .6; cursor: progress; }
.trail-form .ds-form__privacy { margin: 0; color: var(--c-ink-500); font-size: 13px; line-height: 1.5; }
.trail-form .ds-form__privacy a { color: inherit; text-underline-offset: 3px; }
.trail-form-success { display: flex; align-items: center; gap: 16px; margin: 0; padding: clamp(24px, 3.5vw, 44px); border: 1px solid var(--c-ink-900); background: var(--c-white); color: var(--c-ink-900); font: 400 clamp(19px, 1.8vw, 24px)/1.35 var(--font-core); text-align: left; }
.trail-form-success::before { content: "✓"; display: grid; flex: 0 0 40px; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: var(--c-ink-900); color: var(--c-white); font-size: 20px; line-height: 1; }
.trail-form-success:focus { outline: none; }
.trail-form-success:focus-visible { outline: 2px solid var(--c-ink-900); outline-offset: 3px; }
/* Dwie kolumny (imię | e-mail) tam, gdzie ramka jest szeroka, np. zgłoszenie do Sekcji */
@media (min-width: 701px) {
  .trail-form--join { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .trail-form--join > :not(.ds-form__row--name, .ds-form__row--email) { grid-column: 1 / -1; }
}
.trail-editor-dynamic-block { min-height: 120px; padding: 28px; border: 1px dashed #777; background: #fff; color: #202328; }
@media (max-width: 800px) { .trail-calendar__toolbar { align-items: stretch; flex-direction: column; } .trail-calendar__views, .trail-calendar__paging { justify-content: space-between; } .trail-calendar__weekdays { display: none; } .trail-calendar__month-grid { grid-template-columns: 1fr; gap: 10px; } .trail-calendar__blank, .trail-calendar__day:not(.has-events) { display: none; } .trail-calendar__day { min-height: 0; border: 1px solid var(--c-ink-200); } }

/* Kalendarz: filtr, kolejne terminy, podgląd */
.trail-calendar [hidden] { display: none !important; }
.trail-main [id], .trail-calendar { scroll-margin-top: calc(var(--header-height, 80px) + 16px); }
.trail-calendar__more { display: block; min-height: 44px; margin: 28px auto 0; padding: 0 20px; border: 1px solid var(--c-ink-900); border-radius: 999px; background: var(--c-white); color: var(--c-ink-900); font: 700 12px/1 var(--font-display); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.trail-calendar__more:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); }
.trail-calendar__toolbar { flex-wrap: wrap; }
.trail-calendar__filter-field { display: inline-flex; align-items: center; min-height: 46px; margin-right: auto; overflow: hidden; border: 1px solid var(--c-ink-900); border-radius: 999px; background: var(--c-white); }
.trail-calendar__filter-field label { align-self: stretch; display: flex; align-items: center; padding: 0 16px; border-right: 1px solid var(--c-ink-900); color: var(--c-ink-900); font: 700 11px/1 var(--font-display); letter-spacing: .1em; text-transform: uppercase; }
.trail-calendar__filter-field select { width: 100%; min-width: 220px; max-width: 420px; text-overflow: ellipsis; min-height: 44px; padding: 0 44px 0 16px; border: 0; border-radius: 0; appearance: none; background: var(--c-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231c2024' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 18px center; color: var(--c-ink-900); font: 600 15px/1.2 var(--font-core); cursor: pointer; }
.trail-calendar__filter-field:focus-within { outline: 3px solid var(--c-ink-900); outline-offset: 3px; }
.trail-calendar__filter-field select:focus { outline: none; }
@media (max-width: 800px) { .trail-calendar__filter-field { width: 100%; margin-right: 0; } .trail-calendar__filter-field select { flex: 1; min-width: 0; } }
.trail-calendar__status { display: inline-block; margin: 6px 0 0; padding: 3px 10px; border-radius: 999px; background: var(--c-amber-100, #fff1c2); color: var(--c-ink-900); font-size: 12px; font-weight: 700; }
span.trail-calendar__month-event { cursor: default; }

/* Zajęcia regularne — kafle */
.trail-programs__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); margin: clamp(32px, 5vw, 56px) 0 0; padding: 0; list-style: none; }
.trail-program { display: flex; min-width: 0; }
.trail-program__card { position: relative; display: flex; width: 100%; aspect-ratio: 1; flex-direction: column; border: 1px solid var(--c-ink-900); background: var(--c-white); }
.trail-program:not(.has-media) .trail-program__card { background-image: url('/wp-content/themes/trail-fse/assets/sygnet-watermark.svg'); background-position: right 18px bottom 18px; background-repeat: no-repeat; background-size: 132px auto; }
.trail-program__media { flex: 0 0 auto; aspect-ratio: 16 / 9; overflow: hidden; border-bottom: 1px solid var(--c-ink-900); }
.trail-program__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.trail-program__body { display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; gap: 12px; padding: clamp(18px, 2vw, 26px); }
.trail-program__logo img { display: block; width: auto; max-width: 120px; height: 40px; object-fit: contain; object-position: left center; }
.trail-program__title { margin: 0; color: var(--c-ink-900); font: 700 clamp(17px, 1.5vw, 21px)/1.15 var(--font-display); letter-spacing: .02em; text-transform: uppercase; }
.trail-program__text { color: var(--c-ink-600); font-size: 16px; line-height: 1.55; }
.trail-program__text p { margin: 0 0 .6em; }
.trail-programs.is-enhanced .trail-program__text { flex: 1 1 0; min-height: 3.1em; overflow: hidden; }
.trail-programs.is-enhanced .trail-program__text p { display: -webkit-box; margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: var(--trail-lines, 6); line-clamp: var(--trail-lines, 6); }
.trail-program__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-top: auto; padding-top: 4px; }
.trail-program__link, .trail-program__more { display: inline-flex; align-items: center; gap: 10px; padding: 10px 0 6px; border: 0; background: none; box-shadow: inset 0 -1px 0 currentColor; color: var(--c-ink-900); font: 700 12px/1 var(--font-display); letter-spacing: .1em; text-decoration: none; text-transform: uppercase; cursor: pointer; }
.trail-program__link:is(:hover, :focus-visible), .trail-program__more:is(:hover, :focus-visible) { box-shadow: inset 0 -2px 0 currentColor; color: var(--c-ink-900); }
.trail-program__more[hidden] { display: none; }
.trail-program-dialog { width: min(640px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0; border: 1px solid var(--c-ink-900); background: var(--c-white); color: var(--c-ink-900); }
.trail-program-dialog::backdrop { background: rgba(28, 32, 36, .6); }
/* An open modal dialog locks the page behind it, so only the dialog scrolls. */
html:has(dialog:modal) { overflow: hidden; }
.trail-program-dialog { overscroll-behavior: contain; }
.trail-program-dialog__title:focus { outline: none; }
.trail-program-dialog__text a { color: var(--c-ink-900); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.trail-program-dialog__media { aspect-ratio: 16 / 9; overflow: hidden; border-bottom: 1px solid var(--c-ink-900); background: var(--c-ink-50); }
.trail-program-dialog__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.trail-program-dialog__inner { display: grid; gap: 18px; padding: clamp(24px, 4vw, 40px); }
.trail-program-dialog__title { margin: 0; font: 700 clamp(20px, 2.4vw, 28px)/1.1 var(--font-display); text-transform: uppercase; }
.trail-program-dialog__text { color: var(--c-ink-600); font-size: 17px; line-height: 1.65; }
.trail-program-dialog__text p { margin: 0 0 .8em; }
.trail-program-dialog__close { justify-self: start; min-height: 44px; padding: 0 22px; border: 1px solid var(--c-ink-900); border-radius: 999px; background: var(--c-ink-900); color: var(--c-white); font: 700 12px/1 var(--font-display); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }

/* Trenerzy — portrety */
/* Trenerzy: ta sama karuzela co karty zawodników (.trail-athletes-grid__*). */
.trail-coaches { --trail-coach-card-width: 440px; position: relative; display: grid; margin-top: clamp(32px, 5vw, 56px); }
.trail-athletes-grid__track > .trail-coach__card { flex: 0 0 var(--trail-coach-card-width); }
.trail-athletes-grid__rail.swiper .trail-coach__card { width: var(--trail-coach-card-width); height: auto; flex-shrink: 0; }
@media (max-width: 767px) { .trail-coaches { --trail-coach-card-width: min(82vw, 360px); } }
/* Karta trenera 1:1 z projektem 675 × 900 (100cqw = 675 px projektu, 1 px ≈ 0.148cqw); „czytaj więcej” obraca ją na rewers.
   Wariant dark: szara karta (przód i rewers), light: biała. */
.trail-coach__card { position: relative; aspect-ratio: 3 / 4; container-type: inline-size; font-family: var(--font-core); transition: transform 620ms cubic-bezier(.16, 1, .3, 1); will-change: transform; }
.trail-coach__card::before { content: ""; position: absolute; z-index: -1; inset: 12px; background: rgba(50, 55, 59, .7); filter: blur(38px); opacity: 0; pointer-events: none; transition: opacity 520ms ease, inset 680ms cubic-bezier(.16, 1, .3, 1); }
.trail-coach__inner { position: absolute; inset: 0; }
/* The shown side is on top; frontend.js turns the card in two halves and swaps which side is on top at
   edge-on. At rest nothing is 3D, so the text is sharp at any browser zoom. */
/* Each side is its own stacking context (z-index), so nothing of the side underneath shows through. */
.trail-coach__face { z-index: 1; }
.trail-coach__card:not(.is-flipped) .trail-coach__front, .trail-coach__card.is-flipped .trail-coach__back { z-index: 2; }
/* At rest the side underneath is hidden, so it can never show through (e.g. while the carousel slides). It is
   shown from the start of a turn (.is-turning), which leaves the first half of the turn to paint it before the swap. */
.trail-coach__card:not(.is-turning).is-flipped .trail-coach__front, .trail-coach__card:not(.is-turning):not(.is-flipped) .trail-coach__back { visibility: hidden; }
/* During the turn the side underneath is painted but fully transparent: Safari can draw a layer of it (e.g. the
   scrolling back text) above the side on top while something moves, and transparent there is nothing to see. */
.trail-coach__card.is-turning:not(.is-flipped) .trail-coach__back, .trail-coach__card.is-turning.is-flipped .trail-coach__front { opacity: 0; }
.trail-coach__face { --coach-bg: var(--c-white); --coach-fg: #32373b; --coach-accent: #32373b; --coach-label: #32373b; --coach-btn-bg: #32373b; --coach-btn-fg: var(--c-white); --coach-band: rgba(50, 55, 59, .08); position: absolute; inset: 0; overflow: hidden; background: var(--coach-bg); color: var(--coach-fg); box-shadow: 0 12px 24px rgba(28, 32, 36, .16); outline: 1px solid var(--c-ink-200); outline-offset: -1px; }
.trail-coach__card[data-variant="dark"] .trail-coach__face { --coach-bg: #32373b; --coach-fg: var(--c-white); --coach-accent: #eff612; --coach-label: #eff612; --coach-btn-bg: #eff612; --coach-btn-fg: #32373b; --coach-band: rgba(0, 0, 0, .25); outline: 0; }
.trail-coach__front::after { content: ""; position: absolute; z-index: 6; inset: 0; pointer-events: none; background: linear-gradient(106deg, rgba(255, 255, 255, 0) 34%, rgba(255, 255, 255, .05) 42%, rgba(255, 255, 255, .22) 50%, rgba(255, 255, 255, .06) 58%, rgba(255, 255, 255, 0) 66%) 175% 0 / 240% 100% no-repeat; opacity: 0; }
@media (hover: hover) {
  /* The card is its own layer from the start (will-change), so it is snapped to whole pixels once, on load: the lift
     is smooth (transform) and nothing jumps by half a pixel when it starts. */
  .trail-coach__card:hover { transform: translateY(-10px); }
  .trail-coach__card:hover::before { opacity: 1; inset: -6px; }
  .trail-coach__card:not(.is-flipped):hover .trail-coach__front::after { opacity: 1; animation: trail-card-shine 1450ms cubic-bezier(.22, .61, .36, 1) both; }
}
/* Kropki i pionowy napis TRAIL (wycięty w kolorze tła), jak w projekcie: koło 378 px od (-113, -34). */
.trail-coach__halftone { position: absolute; top: -5.07cqw; left: -16.81cqw; width: 56cqw; aspect-ratio: 1; background: var(--coach-fg); -webkit-mask: url(coach-halftone.webp) center / contain no-repeat; mask: url(coach-halftone.webp) center / contain no-repeat; pointer-events: none; }
.trail-coach__halftone::after { content: ""; position: absolute; top: 8.77cqw; left: 22.45cqw; width: 5.35cqw; height: 34.46cqw; background: var(--coach-bg); -webkit-mask: url(coach-trail.webp) center / contain no-repeat; mask: url(coach-trail.webp) center / contain no-repeat; }
/* Zdjęcie 2:3 jak w projekcie (630 × 947 px od (-77, 93)); dół chowa się pod krawędzią karty. Kadr jak u zawodnika. */
.trail-coach__media { position: absolute; top: 13.81cqw; left: -11.48cqw; width: 93.33cqw; height: 140.3cqw; }
.trail-coach__media img { width: 100%; height: 100%; object-fit: cover; }
.trail-coach__initials { position: absolute; inset: 0 0 30%; display: grid; place-items: center; color: var(--coach-fg); opacity: .16; font: 800 30cqw/1 var(--font-core); letter-spacing: -.04em; }
.trail-coach__head { position: absolute; z-index: 2; top: 42.1cqw; right: 2cqw; left: 52.67cqw; }
.trail-coach__role { margin: 0; color: var(--coach-fg); font: 700 4.1cqw/1 var(--font-core); letter-spacing: .2em; text-transform: uppercase; }
.trail-coach__name { margin: 5.85cqw 0 0; color: var(--coach-accent); font: 700 4.1cqw/1.18 var(--font-core); letter-spacing: .02em; text-transform: uppercase; overflow-wrap: anywhere; }
.trail-coach__license { position: absolute; z-index: 2; top: 81.6cqw; right: 4.44cqw; margin: 0; color: var(--coach-fg); font: 700 2.4cqw/1 var(--font-core); letter-spacing: .14em; }
.trail-coach__license[hidden], .trail-coach__description[hidden] { display: none; }
.trail-coach__band { position: absolute; z-index: 1; top: 85.78cqw; right: 0; bottom: 0; left: 0; background: var(--coach-band); }
.trail-coach__description { position: absolute; z-index: 2; top: 88.7cqw; left: 8.74cqw; width: 82.4cqw; display: -webkit-box; margin: 0; overflow: hidden; color: var(--coach-fg); font: 700 3.26cqw/1.42 var(--font-core); -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
.trail-coach__flip { position: absolute; z-index: 3; top: 113.8cqw; right: 8cqw; display: inline-flex; min-width: 44px; min-height: max(28px, 4.4cqw); align-items: center; justify-content: center; margin: 0; padding: 0 1.2em; border: 0; border-radius: 999px; background: var(--coach-btn-bg); color: var(--coach-btn-fg); font: 700 max(13px, 2.2cqw)/1 var(--font-core); text-box: trim-both cap alphabetic; box-shadow: 0 .6cqw 1.2cqw rgba(0, 0, 0, .3); cursor: pointer; transition: filter 200ms ease; }
.trail-coach__flip[hidden] { display: none; }
.trail-coach__flip:is(:hover, :focus-visible) { filter: brightness(1.12); }
.trail-coach__flip:focus-visible { outline: 3px solid var(--coach-fg); outline-offset: 3px; }
.trail-coach__contact { position: absolute; z-index: 2; top: 123.5cqw; right: 8cqw; left: 9.93cqw; margin: 0; color: var(--coach-fg); font: 700 2.37cqw/1.375 var(--font-core); letter-spacing: .12em; text-transform: uppercase; }
.trail-coach__contact span { display: block; color: var(--coach-label); letter-spacing: .2em; }
.trail-coach__mail { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.trail-coach__mail:is(:hover, :focus-visible) { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.trail-coach__mail:focus-visible { outline: 3px solid var(--coach-fg); outline-offset: 3px; }
/* Rewers: tytuł obok kropek, opis od 353 px, kontakt w tym samym miejscu co z przodu. */
.trail-coach__back .trail-coach__head { top: 18.9cqw; left: 44.52cqw; }
.trail-coach__back .trail-coach__role { font-weight: 400; }
.trail-coach__back .trail-coach__name { margin-top: 3.6cqw; }
.trail-coach__back .trail-coach__contact { right: 24cqw; }
.trail-coach__bio { position: absolute; top: 52.3cqw; right: 6cqw; bottom: 22cqw; left: 10cqw; padding-right: 4cqw; overflow-y: auto; color: var(--coach-fg); font-size: 2.52cqw; line-height: 1.45; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--coach-fg) 35%, transparent) transparent; }
.trail-coach__bio::-webkit-scrollbar { width: 4px; }
.trail-coach__bio::-webkit-scrollbar-track { background: transparent; }
.trail-coach__bio::-webkit-scrollbar-thumb { border-radius: 4px; background: color-mix(in srgb, var(--coach-fg) 35%, transparent); }
.trail-coach__bio p { margin: 0; }
.trail-coach__bio p + p { margin-top: .99em; }
/* Line heights and text positions in whole pixels: with fractional ones, single lines shifted by a pixel
   when the card became one layer for the turn (browsers without round() keep the values above). */
.trail-coach__head { top: round(42.1cqw, 1px); }
.trail-coach__back .trail-coach__head { top: round(18.9cqw, 1px); }
.trail-coach__name { margin-top: round(5.85cqw, 1px); line-height: round(4.84cqw, 1px); }
.trail-coach__back .trail-coach__name { margin-top: round(3.6cqw, 1px); }
.trail-coach__license { top: round(81.6cqw, 1px); }
.trail-coach__description { top: round(88.7cqw, 1px); line-height: round(4.63cqw, 1px); }
.trail-coach__flip { top: round(113.8cqw, 1px); }
.trail-coach__contact { top: round(123.5cqw, 1px); line-height: round(3.26cqw, 1px); }
.trail-coach__bio { top: round(52.3cqw, 1px); line-height: round(3.65cqw, 1px); }
.trail-coach__bio p + p { margin-top: round(2.5cqw, 1px); }
/* Wąska karta (telefon): drobne teksty nie schodzą poniżej czytelnego rozmiaru, układ zostaje jak w projekcie. */
@container (max-width: 400px) {
  .trail-coach__description { font-size: 13px; line-height: 18px; -webkit-line-clamp: 4; }
  .trail-coach__license { font-size: 11px; }
  .trail-coach__flip { min-height: 28px; font-size: 12px; }
  .trail-coach__contact { top: round(119cqw, 1px); font-size: 11px; line-height: 15px; letter-spacing: .08em; }
  .trail-coach__bio { font-size: 13px; line-height: 19px; }
  .trail-coach__bio p + p { margin-top: 13px; }
}

@media (max-width: 900px) {
  .trail-programs__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .trail-programs__list { grid-template-columns: 1fr; }
  .trail-program__card { aspect-ratio: auto; min-height: 280px; }
}
@media (prefers-reduced-motion: reduce) { .trail-coach__card { transition: none; } .trail-coach__front::after { display: none; } }

/* Logotypy partnerów — zawijają się do kolejnych wierszy, każdy wiersz wyśrodkowany */
.trail-partners { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(28px, 4vw, 48px) clamp(32px, 5vw, 72px); margin-top: clamp(28px, 4vw, 48px); }
.trail-partners > .wp-block-image { display: flex; flex: 0 1 180px; height: 88px; align-items: center; justify-content: center; margin: 0; }
.trail-partners > .wp-block-image a { display: flex; height: 100%; align-items: center; justify-content: center; }
.trail-partners > .wp-block-image img { width: auto !important; max-width: 100%; height: auto !important; max-height: 72px; object-fit: contain; }
.trail-partners > .wp-block-image a:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: 6px; }
@media (max-width: 600px) { .trail-partners > .wp-block-image { flex-basis: calc(50% - 16px); height: 72px; } .trail-partners > .wp-block-image img { max-height: 56px; } }

/* Kalendarz — oś czasu: duża data, pod tytułem godziny i miejsce */
.trail-calendar__timeline { display: grid; border-bottom: 1px solid var(--c-ink-200); }
.trail-calendar__item { display: grid; grid-template-columns: 104px minmax(0, 1fr) auto 96px; column-gap: clamp(20px, 3vw, 40px); align-items: center; padding: clamp(20px, 2.4vw, 28px) 0; border-top: 1px solid var(--c-ink-200); }
.trail-calendar__item:focus { outline: none; }
.trail-calendar__item:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: 4px; }
.trail-calendar__item.is-past { opacity: .5; filter: grayscale(1); }
.trail-calendar__date { display: grid; align-self: start; gap: 6px; color: var(--c-ink-900); }
.trail-calendar__date-day { font: var(--fw-regular) clamp(40px, 4vw, 54px)/.85 var(--font-display); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.trail-calendar__date-month { font: 700 12px/1.3 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
.trail-calendar__date-weekday { color: var(--c-ink-500); font-size: 14px; line-height: 1.3; }
.trail-calendar__copy h3 { margin: 0; color: var(--c-ink-900); font: var(--fw-regular) clamp(20px, 2.2vw, 30px)/1.1 var(--font-display); letter-spacing: -.03em; text-transform: uppercase; }
.trail-calendar__meta { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 10px 0 0; color: var(--c-ink-600); font-size: 16px; line-height: 1.4; }
.trail-calendar__meta span:first-child { font-variant-numeric: tabular-nums; font-weight: 600; }
.trail-calendar__actions a { display: inline-flex; min-height: 44px; align-items: center; padding: 0 18px; border: 1px solid var(--c-ink-900); border-radius: 999px; color: var(--c-ink-900); font: var(--fw-bold) 11px/1 var(--font-display); letter-spacing: .12em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.trail-calendar__actions a:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); }
.trail-calendar__logo { display: grid; width: 96px; height: 72px; place-items: center; padding: 8px; border-left: 1px solid var(--c-ink-200); }
.trail-calendar__logo:empty { border-left-color: transparent; }
.trail-calendar__logo img { width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 800px) {
  .trail-calendar__item { grid-template-columns: 76px minmax(0, 1fr); row-gap: 14px; align-items: start; }
  .trail-calendar__date { grid-row: 1 / span 3; }
  .trail-calendar__date-day { font-size: 36px; }
  .trail-calendar__copy, .trail-calendar__actions, .trail-calendar__logo { grid-column: 2; }
  .trail-calendar__actions:empty, .trail-calendar__logo:empty { display: none; }
  .trail-calendar__logo { width: 88px; height: 56px; padding: 0; border-left: 0; place-items: center start; }
}
/* Widok miesiąca: linki bez globalnego zielonego hovera z theme.json */
a.trail-calendar__month-event:is(:hover, :focus-visible) { background: var(--c-ink-600); color: var(--c-white); text-decoration: underline; text-underline-offset: 3px; }
a.trail-calendar__month-event:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: 2px; }
.trail-partners a:is(:hover, :focus-visible) { color: inherit; }

/* Wstęp z nagłówkiem (np. „O nas” na stronie głównej): wyśrodkowany, bo pod nim stoją wyśrodkowane logotypy partnerów; tytuł z szerokim rozstawem liter jak w makiecie */
.trail-page-intro--heading { text-align: center; }
.trail-page-intro--heading .trail-page-intro__title { max-width: 24ch; margin-inline: auto; font-stretch: 118%; font-weight: var(--fw-bold); letter-spacing: .13em; line-height: 1.02; text-wrap: balance; }
.trail-page-intro--heading .trail-page-intro__inner > :is(.trail-page-intro__body, p) { max-width: 68ch; margin-inline: auto; }
/* Przyciski pod wstępem wyrównanym do lewej stoją pod tekstem, nie na środku */
.trail-page-intro:not(.trail-page-intro--centered):not(.trail-page-intro--heading) + .trail-page-intro__nav--pattern > .trail-button-group { max-width: 1240px; justify-content: flex-start; }
/* Telefon: szeroki rozstaw liter wypychał najdłuższe słowo („SPOŁECZNOŚĆ”) poza ekran */
@media (max-width: 480px) { .trail-page-intro--heading .trail-page-intro__title { font-size: clamp(26px, 8vw, 34px); letter-spacing: .05em; overflow-wrap: anywhere; } }

/* Kalendarz: filtry serii / typu / dywizji, plakietki, kolor wydarzenia, odwołane terminy */
.trail-calendar__filters { display: flex; flex-wrap: wrap; gap: 12px; margin-right: auto; }
.trail-calendar__filters .trail-calendar__filter-field { margin-right: 0; }
.trail-calendar__filters .trail-calendar__filter-field select { min-width: 180px; }
/* Szeroki ekran: widoki, filtry i miesiąc w jednym rzędzie; filtry oddają miejsce (napis skraca się wielokropkiem) */
@media (min-width: 1360px) { .trail-calendar__toolbar:has(.trail-calendar__filters) { flex-wrap: nowrap; gap: 12px; } .trail-calendar__toolbar > :is(.trail-calendar__views, .trail-calendar__paging) { flex: none; } .trail-calendar__filters { flex: 0 1 auto; min-width: 0; flex-wrap: nowrap; } .trail-calendar__filters .trail-calendar__filter-field { flex: 0 1 auto; min-width: 0; } .trail-calendar__filters .trail-calendar__filter-field select { min-width: 0; padding: 0 34px 0 12px; background-position: right 14px center; } .trail-calendar__filters .trail-calendar__filter-field label { padding: 0 12px; } }
.trail-calendar__badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.trail-calendar__badge { display: inline-block; padding: 3px 10px; border: 1px solid var(--c-ink-900); border-radius: 999px; color: var(--c-ink-900); font: 700 11px/1.2 var(--font-display); letter-spacing: .08em; text-transform: uppercase; }
.trail-calendar__badge--cancelled { border-color: #8a2424; background: #fcf0f1; color: #8a2424; }
.trail-calendar__badge--draft { border-color: var(--c-amber-700, #a0813b); background: var(--c-amber-100, #fff3d7); }
.trail-calendar__item.has-color { box-shadow: inset 4px 0 0 var(--trail-event-color); padding-left: 16px; }
.trail-calendar__item.is-cancelled .trail-calendar__time, .trail-calendar__item.is-cancelled h3 { text-decoration: line-through; text-decoration-thickness: 2px; }
.trail-calendar__month-event.has-color { box-shadow: inset 4px 0 0 var(--trail-event-color); padding-left: 10px; }
.trail-calendar__month-event.is-cancelled { background: var(--c-ink-100); color: var(--c-ink-600); text-decoration: line-through; }
button.trail-calendar__month-event { width: 100%; border: 0; font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
button.trail-calendar__month-event:is(:hover, :focus-visible) { background: var(--c-ink-600); color: var(--c-white); }
button.trail-calendar__month-event:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: 2px; }
.trail-calendar__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.trail-calendar__edit { min-height: 44px; padding: 0 18px; border: 1px solid var(--c-ink-900); border-radius: 999px; background: var(--c-ink-900); color: var(--c-white); font: var(--fw-bold, 700) 11px/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.trail-calendar__edit:is(:hover, :focus-visible) { background: var(--c-white); color: var(--c-ink-900); }
@media (max-width: 800px) { .trail-calendar__filters { width: 100%; margin-right: 0; } .trail-calendar__filters .trail-calendar__filter-field { width: 100%; } }
/* Logo wydarzenia / serii: większe pole, logo zawsze na środku */
.trail-calendar__logo { align-self: center; width: 128px; height: 88px; padding: 4px 0 4px 16px; }
.trail-calendar__logo img { object-fit: contain; object-position: center; }
.trail-calendar__item { grid-template-columns: 104px minmax(0, 1fr) auto 128px; }
@media (max-width: 800px) { .trail-calendar__item { grid-template-columns: 76px minmax(0, 1fr); } .trail-calendar__logo { width: 112px; height: 72px; padding: 0; } }
/* Panel admina pracuje tylko na widoku miesiąca */
.trail-calendar.is-admin-preview .trail-calendar__toolbar { justify-content: flex-end; }
/* Biegniemy razem z: wszystkie logotypy w polu tej samej wysokości, większe niż wcześniej */
.trail-partners > .wp-block-image { flex: 0 1 280px; height: 150px; }
.trail-partners > .wp-block-image a { width: 100%; }
.trail-partners > .wp-block-image img { width: auto !important; max-width: 100%; height: 100% !important; max-height: none; object-fit: contain; }
@media (max-width: 600px) { .trail-partners > .wp-block-image { flex-basis: calc(50% - 16px); height: 100px; } .trail-partners > .wp-block-image img { max-height: none; } }
/* Karuzela (frontend.js), gdy logotypy nie mieszczą się w jednym rzędzie: jeden rząd na stronę, paski pod spodem */
.trail-partners > .wp-block-image[hidden] { display: none; }
.trail-partners.is-carousel { row-gap: 16px; }
.trail-partners > .ds-wspolnie-rotator__controls { flex: 0 0 100%; }
.trail-partners > .is-in { animation: trail-partners-in 500ms ease; }
@keyframes trail-partners-in { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .trail-partners > .is-in { animation: none; } }
/* Edytor: obraz ma tu dodatkowe opakowanie (zmiana rozmiaru), więc logo dostaje tę samą wysokość co na stronie */
.editor-styles-wrapper .trail-partners > .wp-block-image .components-resizable-box__container { width: auto !important; max-width: 100%; height: 100% !important; margin: 0 auto; }
.editor-styles-wrapper .trail-partners > .wp-block-image .components-placeholder { min-height: 0; height: 100%; }
/* Miejsce z pinezką: przycisk otwierający mapkę dojazdu pod terminem */
.trail-calendar__place { display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 4px; cursor: pointer; }
.trail-calendar__place::before { content: ''; width: 10px; height: 14px; background: currentColor; clip-path: path('M5 0C2.2 0 0 2.2 0 5c0 3.8 5 9 5 9s5-5.2 5-9c0-2.8-2.2-5-5-5zm0 7a2 2 0 1 1 0-4 2 2 0 0 1 0 4z'); flex: 0 0 auto; }
.trail-calendar__place:is(:hover, :focus-visible) { color: var(--c-ink-900); text-decoration-style: solid; }
.trail-calendar__place:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: 3px; }
.trail-calendar__map { margin-top: 16px; max-width: 560px; }
.trail-calendar__map-canvas { display: block; width: 100%; height: 240px; border: 1px solid var(--c-ink-200); background: var(--c-ink-100, #eceeef); isolation: isolate; }
.trail-map-pin { background: none; border: 0; }
.trail-map-pin svg { display: block; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .35)); }
.trail-calendar__map-info { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 10px 0 0; color: var(--c-ink-600); font-size: 15px; }
.trail-calendar__map-info a { color: var(--c-ink-900); font-weight: 600; }
/* Dokumenty do pobrania */
.trail-documents { margin-top: clamp(32px, 5vw, 56px); }
.trail-documents__list { margin: 0; padding: 0; border-top: 1px solid var(--c-ink-200); list-style: none; }
.trail-document { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; margin: 0; padding: clamp(20px, 2.4vw, 28px) 0; border-bottom: 1px solid var(--c-ink-200); scroll-margin-top: calc(var(--header-height, 80px) + 16px); }
.trail-document__copy { flex: 1 1 320px; min-width: 0; }
.trail-content-section .trail-document__title, .trail-document__title { margin: 0; color: var(--c-ink-900); font: var(--fw-regular) clamp(20px, 2vw, 26px)/1.15 var(--font-display); letter-spacing: -.02em; text-transform: uppercase; }
.trail-documents .trail-document__description { margin: 8px 0 0; color: var(--c-ink-600); font-size: 16px; line-height: 1.5; }
.trail-documents .trail-document__meta { margin: 8px 0 0; color: var(--c-ink-500); font: 700 11px/1.3 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
.trail-document__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.trail-document__button { display: inline-flex; min-height: 44px; align-items: center; padding: 0 20px; border: 1px solid var(--c-ink-900); border-radius: 999px; color: var(--c-ink-900); font: 700 11px/1 var(--font-display); letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.trail-document__button--primary { background: var(--c-ink-900); color: var(--c-white); }
.trail-document__button:is(:hover, :focus-visible) { background: var(--c-ink-700); border-color: var(--c-ink-700); color: var(--c-white); }
.trail-document__button:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: 3px; }
.trail-documents__empty { color: var(--c-ink-600); }
/* Widok miesiąca: kolor wydarzenia wypełnia cały kafelek; tekst ciemny albo biały dla kontrastu.
   Odwołane zostają szare z paskiem koloru z boku. Oś czasu bez zmian (pasek z boku). */
.trail-calendar__month-event.has-color:not(.is-cancelled) { background: var(--trail-event-fill, var(--trail-event-color)); color: var(--trail-event-text, var(--c-white)); box-shadow: none; padding-left: 7px; }
:is(a, button).trail-calendar__month-event.has-color:not(.is-cancelled):is(:hover, :focus-visible) { background: var(--trail-event-fill, var(--trail-event-color)); color: var(--trail-event-text, var(--c-white)); filter: brightness(.9); text-decoration: underline; text-underline-offset: 3px; }
/* Widok miesiąca na telefonie: siatka tygodni, w dniu kolorowe paski z godziną (maks. 3 i „+N”),
   stuknięcie w dzień pokazuje pod siatką jego wydarzenia z godzinami, miejscem i trenerami */
.trail-calendar__day-select, .trail-calendar__day-panel, .trail-calendar__month-event-details { display: none; }
@media (max-width: 800px) {
  .trail-calendar__weekdays { display: grid; }
  .trail-calendar__weekdays span { padding: 8px 0; font-size: 10px; }
  .trail-calendar__month-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0; }
  .trail-calendar__blank, .trail-calendar__day:not(.has-events) { display: block; }
  .trail-calendar__day, .trail-calendar__blank { position: relative; min-height: 76px; padding: 4px 3px; border-width: 0 1px 1px 0; border-style: solid; border-color: var(--c-ink-200); }
  .trail-calendar__day-number { display: inline-flex; width: 24px; height: 24px; align-items: center; justify-content: center; margin-bottom: 2px; border-radius: 50%; color: var(--c-ink-600); font-size: 12px; }
  .trail-calendar__day.is-today .trail-calendar__day-number { color: var(--c-ink-900); font-weight: 800; box-shadow: inset 0 0 0 1px var(--c-ink-900); }
  .trail-calendar__day.is-selected .trail-calendar__day-number { background: var(--c-ink-900); color: var(--c-white); box-shadow: none; }
  .trail-calendar__day.is-selected { background: var(--c-ink-50, #f6f6f6); }
  .trail-calendar__day-select { display: block; position: absolute; inset: 0; width: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
  .trail-calendar__day-select:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: -3px; }
  .trail-calendar__day .trail-calendar__month-event { display: block; height: 16px; margin: 2px 0 0; padding: 0 3px; overflow: hidden; border-radius: 3px; font-size: 10px; font-weight: 700; line-height: 16px; white-space: nowrap; box-shadow: none; pointer-events: none; font-variant-numeric: tabular-nums; }
  .trail-calendar__day .trail-calendar__month-event-title { display: none; }
  .trail-calendar__day .trail-calendar__month-event.is-cancelled { box-shadow: inset 3px 0 0 var(--trail-event-color, var(--c-ink-400)); }
  .trail-calendar__day .trail-calendar__month-event.is-overflow { display: none; }
  .trail-calendar__day[data-more]::after { content: attr(data-more); display: block; margin-top: 2px; color: var(--c-ink-600); font-size: 10px; font-weight: 700; line-height: 1.2; }
  .trail-calendar__day-panel { display: block; margin-top: 20px; }
  .trail-calendar__day-panel-title { margin: 0 0 4px; color: var(--c-ink-900); font: 700 12px/1.3 var(--font-display); letter-spacing: .1em; text-transform: uppercase; }
  .trail-calendar__day-panel .trail-calendar__month-event { display: grid; gap: 4px; width: 100%; margin-top: 8px; padding: 12px 14px; font-size: 16px; font-weight: 600; line-height: 1.3; text-align: left; }
  .trail-calendar__day-panel .trail-calendar__month-event-details { display: block; order: 2; font-size: 13px; font-weight: 400; opacity: .9; }
  .trail-calendar__day-panel .trail-calendar__month-event-title { order: 1; }
}
/* Telefon: przełącznik widoku na dwie równe połowy, pasek miesiąca ze strzałkami przy nazwie */
@media (max-width: 800px) {
  .trail-calendar__views { display: grid; grid-template-columns: 1fr 1fr; }
  .trail-calendar__paging { display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px; }
  .trail-calendar__paging > * + * { border-left: 0; }
  .trail-calendar__paging p { min-width: 0; border-inline: 1px solid var(--c-ink-900); line-height: 46px; }
  .trail-calendar__paging button { padding: 0; }
  .trail-calendar__day, .trail-calendar__blank { min-height: 64px; }
}
/* Telefon: filtr na pełną szerokość (strzałka przy prawej krawędzi), lżejsza ramka fokusu */
@media (max-width: 800px) {
  .trail-calendar__filters .trail-calendar__filter-field select { max-width: none; }
  .trail-calendar__filter-field:focus-within { outline-width: 2px; outline-offset: 2px; }
}
/* Telefon, oś czasu: data | treść | małe logo; „Szczegóły” pod treścią, bez pustych rzędów */
@media (max-width: 800px) {
  .trail-calendar__item { grid-template-columns: 84px minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 12px; row-gap: 12px; align-items: start; }
  .trail-calendar__date-month { white-space: nowrap; }
  .trail-calendar__date-weekday { font-size: 13px; }
  .trail-calendar__date { grid-column: 1; grid-row: 1 / span 2; }
  .trail-calendar__copy { grid-column: 2; grid-row: 1; }
  .trail-calendar__logo { grid-column: 3; grid-row: 1; align-self: start; width: 56px; height: 56px; padding: 0; border: 0; place-items: start end; }
  .trail-calendar__logo img { object-position: right top; }
  .trail-calendar__logo:empty { display: none; }
  .trail-calendar__actions { grid-column: 2 / -1; grid-row: 2; margin: 0; }
  .trail-calendar__actions:empty { display: none; }
  .trail-calendar__actions a, .trail-calendar__edit { min-height: 40px; }
  .trail-calendar__copy h3 { font-size: 20px; }
  .trail-calendar__meta { gap: 2px 14px; font-size: 15px; }
}

/* Aktualności: układ magazynowy (wpis wiodący + 4 obok, niżej siatka) */
.trail-content-section .trail-news, .trail-news { margin-top: clamp(42px, 6vw, 72px); }
.trail-news__featured { display: grid; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)); gap: clamp(28px, 3vw, 40px) clamp(20px, 2.4vw, 32px); align-items: start; }
.trail-news__featured--full .trail-news-item--lead { grid-row: span 2; }
.trail-news__featured--three { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.trail-news__featured--three .trail-news-item--lead { grid-row: span 2; }
.trail-news__featured--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trail-news__featured--wide { grid-template-columns: minmax(0, 1fr); }
.trail-news__featured--wide .trail-news-item__link { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 24px clamp(28px, 4vw, 64px); align-items: center; }
.trail-news__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(36px, 4vw, 56px) clamp(20px, 2.4vw, 32px); }
.trail-news__body { margin-top: clamp(40px, 5vw, 64px); }
.trail-news__featured + .trail-news__body { padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--c-ink-200); }
.trail-news-item { margin: 0; min-width: 0; }
.trail-news-item__link { display: block; color: inherit; text-decoration: none; }
.trail-news-item__link:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: 4px; }
.trail-news-item__media { position: relative; display: grid; aspect-ratio: 3 / 2; place-items: center; overflow: hidden; background: var(--c-ink-50); }
.trail-news-item--lead .trail-news-item__media { aspect-ratio: 4 / 3; }
.trail-news-item__media > img:not(.trail-news-item__mark) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.trail-news-item__link:is(:hover, :focus-visible) .trail-news-item__media > img:not(.trail-news-item__mark) { transform: scale(1.03); }
.trail-news-item__mark { width: 26%; height: auto; opacity: .14; }
.trail-content-section .trail-news-item__meta, .trail-news-item__meta { margin: 16px 0 0; color: var(--c-ink-500); font: 700 11px/1.3 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
.trail-content-section .trail-news-item__title, .trail-news-item__title { margin: 10px 0 0; color: var(--c-ink-900); font: var(--fw-regular) clamp(20px, 1.9vw, 26px)/1.1 var(--font-display); letter-spacing: -.02em; text-transform: uppercase; }
.trail-content-section .trail-news-item--lead .trail-news-item__title, .trail-news-item--lead .trail-news-item__title { font-size: clamp(28px, 3.4vw, 48px); line-height: 1; letter-spacing: -.04em; }
.trail-content-section .trail-news-item--side .trail-news-item__title, .trail-news-item--side .trail-news-item__title { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.15; }
.trail-news-item__link:is(:hover, :focus-visible) .trail-news-item__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.trail-content-section .trail-news-item__excerpt, .trail-news-item__excerpt { margin: 12px 0 0; color: var(--c-ink-600); font-size: 16px; line-height: 1.55; }
.trail-content-section .trail-news-item--lead .trail-news-item__excerpt, .trail-news-item--lead .trail-news-item__excerpt { max-width: 60ch; font-size: clamp(16px, 1.3vw, 19px); }
.trail-content-section .trail-news__featured--pair .trail-news-item__title, .trail-news__featured--pair .trail-news-item__title { font-size: clamp(22px, 2vw, 28px); }
/* Dwa wpisy: niższe zdjęcia, żeby para nie zajmowała całego ekranu */
.trail-news__featured--pair .trail-news-item__media { aspect-ratio: 16 / 9; }
.trail-news__featured--wide .trail-news-item__body > :first-child { margin-top: 0; }
.trail-news__pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 20px; margin-top: clamp(48px, 6vw, 80px); }
.trail-news__page { color: var(--c-ink-500); font: 700 11px/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
@media (max-width: 1000px) {
  .trail-news__featured--full, .trail-news__featured--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trail-news__featured--full .trail-news-item--lead, .trail-news__featured--three .trail-news-item--lead { grid-column: 1 / -1; grid-row: auto; }
  .trail-news__featured--wide .trail-news-item__link { grid-template-columns: minmax(0, 1fr); }
  .trail-news__featured--wide .trail-news-item__body > :first-child { margin-top: 16px; }
  .trail-news__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .trail-news__featured, .trail-news__grid { grid-template-columns: minmax(0, 1fr); }
  .trail-news__featured { gap: 20px; }
  .trail-news-item--lead { margin-bottom: 12px; }
  .trail-news__featured--pair { grid-template-columns: minmax(0, 1fr); }
  .trail-news-item--side .trail-news-item__link { display: grid; grid-template-columns: 38% minmax(0, 1fr); column-gap: 14px; align-items: start; }
  .trail-content-section .trail-news-item--side .trail-news-item__meta, .trail-news-item--side .trail-news-item__meta { margin-top: 0; }
  .trail-content-section .trail-news-item--side .trail-news-item__title, .trail-news-item--side .trail-news-item__title { margin-top: 6px; }
}

/* Aktualności: filtr po tagach i boczna kolumna ze starszymi wpisami (lista: zdjęcie + tytuł) */
.trail-news__filter { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: clamp(28px, 4vw, 44px); }
.trail-news__filter .trail-calendar__filter-field { margin-right: 0; }
/* Napis jak „Kategorie” w filtrze obok (.trail-calendar__filter-field label), wyśrodkowany obok ikony */
.trail-news__filter .trail-button__link { min-height: 46px; justify-content: center; gap: 12px; padding: 0 18px 0 20px; font: 700 11px/1 var(--font-display); letter-spacing: .1em; }
/* Ikona kalendarza zamiast strzałki; na telefonie zostaje sama ikona */
.trail-news__filter .trail-button__link::after { content: none; }
.trail-news__calendar-icon { display: block; flex: 0 0 auto; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; }
/* Telefon: filtr i okrągły przycisk z ikoną kalendarza w jednym rzędzie; napis zostaje dla czytników ekranu */
@media (max-width: 600px) {
  .trail-news__filter { flex-wrap: nowrap; gap: 8px; }
  .trail-news__filter .trail-calendar__filter-field { flex: 1 1 auto; min-width: 0; }
  .trail-news__filter .trail-calendar__filter-field select { min-width: 0; }
  .trail-news__filter .trail-button { flex: 0 0 auto; }
  .trail-news__filter .trail-button__link { width: 46px; height: 46px; padding: 0; justify-content: center; gap: 0; border-radius: 50%; }
  .trail-news__calendar-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
.trail-news__body--aside { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(32px, 4vw, 56px); align-items: start; }
.trail-news__body--aside .trail-news__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trail-news__aside { position: sticky; top: calc(var(--header-height, 80px) + 24px); grid-column: 2; grid-row: 1; }
.trail-content-section .trail-news__aside-title, .trail-news__aside-title { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--c-ink-900); color: var(--c-ink-900); font: 700 11px/1.3 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
.trail-news__aside-list { margin: 0; padding: 0; list-style: none; }
.trail-news__aside-list > li { margin: 0; border-bottom: 1px solid var(--c-ink-200); }
.trail-news-item--mini .trail-news-item__link { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: start; padding: 14px 0; }
.trail-news-item--mini .trail-news-item__link:not(:has(.trail-news-item__media)) { grid-template-columns: minmax(0, 1fr); }
.trail-news-item--mini .trail-news-item__media { aspect-ratio: 4 / 3; }
.trail-content-section .trail-news-item--mini .trail-news-item__meta, .trail-news-item--mini .trail-news-item__meta { margin: 0; font-size: 10px; }
.trail-content-section .trail-news-item--mini .trail-news-item__title, .trail-news-item--mini .trail-news-item__title { margin: 6px 0 0; font-size: 15px; line-height: 1.2; letter-spacing: -.01em; }
.trail-news-item--mini .trail-news-item__link:is(:hover, :focus-visible) .trail-news-item__title { text-underline-offset: 3px; }
@media (max-width: 1000px) {
  .trail-news__body--aside { grid-template-columns: minmax(0, 1fr); }
  .trail-news__aside { position: static; grid-column: auto; grid-row: auto; }
}
@media (max-width: 600px) {
  .trail-news__body--aside .trail-news__grid { grid-template-columns: minmax(0, 1fr); }
  .trail-news-item--mini .trail-news-item__link { grid-template-columns: 112px minmax(0, 1fr); }
}

/* Galeria: siatka okładek albumów */
.trail-content-section .trail-gallery, .trail-gallery { margin-top: clamp(42px, 6vw, 72px); }
.trail-gallery__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(36px, 4vw, 56px) clamp(20px, 2.4vw, 32px); }
.trail-album-card { margin: 0; min-width: 0; }
.trail-album-card__link { display: grid; color: inherit; text-decoration: none; }
.trail-album-card__link:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: 4px; }
.trail-album-card__cover { display: grid; aspect-ratio: 4 / 3; place-items: center; overflow: hidden; background: var(--c-ink-50); }
.trail-album-card__cover > img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.trail-album-card__link:is(:hover, :focus-visible) .trail-album-card__cover > img { transform: scale(1.03); }
.trail-album-card__cover--empty > img { width: 26%; height: auto; opacity: .14; }
.trail-album-card__title { margin-top: 16px; color: var(--c-ink-900); font: var(--fw-regular) clamp(20px, 1.9vw, 26px)/1.1 var(--font-display); letter-spacing: -.02em; text-transform: uppercase; }
.trail-album-card__link:is(:hover, :focus-visible) .trail-album-card__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.trail-album-card__meta { margin-top: 10px; color: var(--c-ink-500); font: 700 11px/1.3 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
@media (max-width: 1000px) { .trail-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .trail-gallery__grid { gap: 28px 14px; }
  .trail-album-card__title { margin-top: 10px; font-size: 16px; line-height: 1.15; }
  .trail-album-card__meta { margin-top: 6px; font-size: 10px; letter-spacing: .08em; }
}

.trail-lightbox { position: fixed; inset: 0; width: auto; max-width: none; height: auto; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(12, 14, 16, .94); color: var(--c-white); }
.trail-lightbox::backdrop { background: transparent; }
.trail-lightbox__figure { display: grid; height: 100%; margin: 0; padding: 56px 72px 44px; place-items: center; grid-template-rows: minmax(0, 1fr) auto; gap: 12px; }
.trail-lightbox__image { max-width: 100%; max-height: 100%; object-fit: contain; }
.trail-lightbox__caption { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 18px; text-align: center; }
.trail-lightbox__title { color: var(--c-white); font: var(--fw-regular) 16px/1.2 var(--font-display); text-transform: uppercase; }
.trail-lightbox__counter { color: rgba(255, 255, 255, .7); font: 700 11px/1 var(--font-display); letter-spacing: .12em; }
.trail-lightbox__more { display: inline-flex; min-height: 36px; align-items: center; padding: 0 16px; border: 1px solid rgba(255, 255, 255, .6); border-radius: 999px; color: var(--c-white); font: 700 11px/1 var(--font-display); letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.trail-lightbox__more:is(:hover, :focus-visible) { background: var(--c-white); color: var(--c-ink-900); }
.trail-lightbox__more[hidden] { display: none; }
.trail-lightbox__button { position: absolute; display: grid; width: 48px; height: 48px; place-items: center; padding: 0; border: 1px solid rgba(255, 255, 255, .5); border-radius: 50%; background: transparent; color: var(--c-white); line-height: 0; cursor: pointer; }
.trail-lightbox__button svg { display: block; }
.trail-lightbox__button:is(:hover, :focus-visible) { background: var(--c-white); color: var(--c-ink-900); }
.trail-lightbox__button:focus-visible { outline: 2px solid var(--c-white); outline-offset: 3px; }
.trail-lightbox__button[hidden] { display: none; }
.trail-lightbox__button--prev { top: 50%; left: 14px; transform: translateY(-50%); }
.trail-lightbox__button--next { top: 50%; right: 14px; transform: translateY(-50%); }
.trail-lightbox__button--close { top: 12px; right: 14px; }
@media (max-width: 600px) { .trail-lightbox__figure { padding: 64px 8px 72px; } .trail-lightbox__button--prev, .trail-lightbox__button--next { top: auto; bottom: 14px; transform: none; } }

/* Kalendarz bez terminów: widoki działają dalej, a w miejscu listy stoi komunikat (tekst w ustawieniach bloku) */
.trail-calendar__empty--state { margin: 0; padding: clamp(32px, 5vw, 56px) 0; border-top: 1px solid var(--c-ink-200); color: var(--c-ink-500); font: var(--fw-regular) clamp(20px, 2.2vw, 30px)/1.15 var(--font-display); letter-spacing: -.03em; text-transform: uppercase; }
.trail-calendar__months > .trail-calendar__empty--state { margin-bottom: 20px; padding: 0 0 20px; border-top: 0; border-bottom: 1px solid var(--c-ink-200); font-size: clamp(18px, 1.8vw, 24px); }

/* Telefon, oś czasu: data i logo w jednym wierszu, tytuł na całą szerokość, pod nim fakty i „Szczegóły” */
@media (max-width: 600px) {
  .trail-calendar__item { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto; grid-template-areas: "date logo" "copy copy" "actions actions"; row-gap: 10px; column-gap: 12px; }
  /* Kolorowy pasek w marginesie, poza tekstem — treść stoi w tej samej linii co nagłówek i filtry */
  .trail-calendar__item.has-color { position: relative; box-shadow: none; }
  /* Oś czasu wysunięta o 12px w lewo, żeby linie między terminami dochodziły do kolorowego paska */
  .trail-calendar__timeline { margin-left: -12px; }
  .trail-calendar__item, .trail-calendar__item.has-color, .trail-calendar__timeline > .trail-calendar__empty--state { padding-left: 12px; }
  .trail-calendar__item.has-color::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 4px; background: var(--trail-event-color); }
  .trail-calendar__date { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; grid-area: date; align-self: center; }
  .trail-calendar__date-day { font-size: 30px; }
  .trail-calendar__date-weekday { font-size: 14px; }
  .trail-calendar__logo { grid-area: logo; width: 52px; height: 40px; align-self: center; }
  .trail-calendar__logo img { object-position: right center; }
  .trail-calendar__copy { grid-area: copy; }
  .trail-calendar__copy h3 { font-size: 21px; }
  .trail-calendar__actions { grid-area: actions; }
}

/* Telefon: wstęp do czytania od lewej (logo zostaje na środku); przyciski pod nim mają szerokość
   swojego tekstu i układają się po kilka w rzędzie, zamiast po jednym na całą szerokość. */
@media (max-width: 700px) {
  .trail-page-intro--centered :is(.trail-page-intro__body, .trail-page-intro__inner > p), .trail-page-intro--heading :is(.trail-page-intro__body, .trail-page-intro__inner > p) { text-align: left; }
  .trail-page-intro__nav--pattern > .trail-button-group { justify-content: flex-start; gap: 8px; }
  .trail-page-intro__nav--pattern .trail-button { flex: 0 1 auto; }
  .trail-page-intro__nav--pattern .trail-button__link { width: auto; min-height: 40px; gap: 8px; padding: 8px 12px; font-size: 10.5px; letter-spacing: .07em; }
  .trail-page-intro__nav--pattern .trail-button__link::after { font-size: 16px; }
}

/* Telefon: wpis bez zdjęcia nie pokazuje szarego kafla z sygnetem (zajmował pół ekranu) */
@media (max-width: 767px) {
  .trail-news-item__media:has(> .trail-news-item__mark) { display: none; }
  .trail-news-item--side .trail-news-item__link:has(.trail-news-item__mark) { display: block; }
}

/* Kalendarz: karta terminu, widok tygodnia i dnia, filtry na telefonie */
.trail-calendar__list { display: contents; }
.trail-calendar__details { display: inline-flex; min-height: 44px; align-items: center; padding: 0 18px; border: 1px solid var(--c-ink-900); border-radius: 999px; background: transparent; color: var(--c-ink-900); font: var(--fw-bold) 11px/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; cursor: pointer; }
.trail-calendar__details:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); }
.trail-calendar__close { display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 1px solid var(--c-ink-900); border-radius: 999px; background: var(--c-white); color: var(--c-ink-900); font: 400 24px/1 var(--font-core); cursor: pointer; }
.trail-calendar__close:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); }
.trail-calendar dialog { padding: 0; border: 0; color: var(--c-ink-900); }
.trail-calendar dialog::backdrop { background: rgba(28, 32, 36, .55); }

.trail-calendar__card { width: min(560px, calc(100% - 32px)); max-height: calc(100% - 32px); overflow-x: hidden; border-radius: 12px; background: var(--c-white); }
.trail-calendar__card-inner { display: grid; gap: 18px; padding: clamp(20px, 3vw, 28px); }
/* Nagłówek w jednym rzędzie z przyciskiem zamknięcia; logo w kolumnie etykiet, nazwa tam, gdzie zaczynają się wartości */
.trail-calendar__card-head { display: grid; grid-template-columns: 148px minmax(0, 1fr) 44px; column-gap: 12px; align-items: center; }
.trail-calendar__card-head > div:nth-child(2) { min-width: 0; }
.trail-calendar__card .trail-calendar__badges { margin: 0 0 8px; }
/* Nagłówki w karcie i arkuszu: sekcje motywu (.trail-section h2 itp.) mają własne, duże h2 — tu mają nie działać */
.trail-calendar .trail-calendar__card-title { max-width: none; margin: 0; color: var(--c-ink-900); font: var(--fw-regular) clamp(20px, 2.2vw, 26px)/1.15 var(--font-display); font-stretch: normal; letter-spacing: -.01em; text-transform: uppercase; overflow-wrap: anywhere; }
.trail-calendar__card-facts { display: grid; gap: 10px; margin: 4px 0 0; }
.trail-calendar__card-facts > div { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 12px; }
.trail-calendar__card-facts dt { color: var(--c-ink-900); font-weight: 700; }
.trail-calendar__card-facts dt::after { content: ':'; }
.trail-calendar__card-facts dd { min-width: 0; margin: 0; color: var(--c-ink-700, #454b50); overflow-wrap: anywhere; }
.trail-calendar__card-facts :is(dt, dd) { font-size: 16px; line-height: 1.45; }
.trail-calendar__card-facts .trail-calendar__meta { display: inline; margin: 0; font-size: inherit; }
.trail-calendar__card .trail-calendar__map { margin-top: 10px; }
.trail-calendar__card-actions { margin: 6px 0 0; }
.trail-calendar__card-link { display: inline-flex; min-height: 46px; align-items: center; padding: 0 22px; border-radius: 999px; background: var(--c-ink-900); color: var(--c-white); font: var(--fw-bold) 11px/1 var(--font-display); letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.trail-calendar__card-link:is(:hover, :focus-visible) { background: var(--c-ink-600); color: var(--c-white); }
.trail-calendar__card-inner.is-cancelled :is(.trail-calendar__card-title, .trail-calendar__card-facts > div:first-child dd) { text-decoration: line-through; text-decoration-thickness: 1px; }

.trail-calendar__slot { display: grid; gap: 2px; width: 100%; margin-top: 7px; padding: 8px; border: 0; border-radius: 4px; background: var(--c-ink-900); color: var(--c-white); font: inherit; font-size: 13px; line-height: 1.25; text-align: left; cursor: pointer; }
.trail-calendar__slot.has-color { box-shadow: inset 4px 0 0 var(--trail-event-color); padding-left: 12px; }
.trail-calendar__slot.has-color:not(.is-cancelled) { background: var(--trail-event-fill, var(--trail-event-color)); color: var(--trail-event-text, var(--c-white)); box-shadow: none; }
.trail-calendar__slot.is-past { background: var(--c-ink-400); }
.trail-calendar__slot.is-cancelled { background: var(--c-ink-100); color: var(--c-ink-600); }
.trail-calendar__slot.is-cancelled :is(.trail-calendar__slot-time, .trail-calendar__slot-title) { text-decoration: line-through; }
.trail-calendar__slot:is(:hover, :focus-visible) { filter: brightness(.88); }
.trail-calendar__slot:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: 2px; }
.trail-calendar__slot-time { font-variant-numeric: tabular-nums; opacity: .9; }
.trail-calendar__slot-title { font-weight: 700; }
.trail-calendar__slot-details { font-size: 14px; opacity: .9; }
.trail-calendar__slot .trail-calendar__badge { justify-self: start; margin-top: 4px; }

.trail-calendar__week-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--c-ink-900); }
.trail-calendar__week-day { min-height: 220px; padding: 0 8px 12px; border-right: 1px solid var(--c-ink-200); border-bottom: 1px solid var(--c-ink-200); }
.trail-calendar__week-day:first-child { border-left: 1px solid var(--c-ink-200); }
.trail-calendar__week-day.is-today { background: var(--c-ink-50, #f6f6f6); }
.trail-calendar__week-head { display: flex; width: calc(100% + 16px); align-items: baseline; justify-content: space-between; gap: 6px; margin: 0 -8px; padding: 12px 8px; border: 0; border-bottom: 1px solid var(--c-ink-200); background: transparent; color: var(--c-ink-900); font: inherit; cursor: pointer; }
.trail-calendar__week-head:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); }
.trail-calendar__week-weekday { font: 700 11px/1 var(--font-display); letter-spacing: .1em; text-transform: uppercase; }
.trail-calendar__week-date { font-size: 14px; font-variant-numeric: tabular-nums; }
.trail-calendar__week > .trail-calendar__empty, .trail-calendar__day-list > .trail-calendar__empty { margin: 16px 0 0; color: var(--c-ink-600); }

.trail-calendar__strip { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.trail-calendar__strip-day { position: relative; display: grid; gap: 4px; justify-items: center; min-height: 64px; padding: 10px 0; border: 1px solid var(--c-ink-200); border-radius: 10px; background: var(--c-white); color: var(--c-ink-900); font: inherit; cursor: pointer; }
.trail-calendar__strip-day span { font: 700 10px/1 var(--font-display); letter-spacing: .1em; text-transform: uppercase; }
.trail-calendar__strip-day strong { font-size: 18px; font-variant-numeric: tabular-nums; }
.trail-calendar__strip-day.has-events::after { content: ''; position: absolute; bottom: 6px; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.trail-calendar__strip-day.is-today { border-color: var(--c-ink-900); }
.trail-calendar__strip-day[aria-pressed="true"] { border-color: var(--c-ink-900); background: var(--c-ink-900); color: var(--c-white); }
.trail-calendar__strip-day:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: 2px; }
.trail-calendar__day-list { display: grid; gap: 8px; margin-top: 16px; }
.trail-calendar__day-list .trail-calendar__slot { margin: 0; padding: 14px 16px; font-size: 15px; }
.trail-calendar__day-list .trail-calendar__slot.has-color { padding-left: 20px; }
.trail-calendar__day-list .trail-calendar__slot-title { font-size: 18px; }

.trail-calendar__filters-toggle, .trail-calendar__chips { display: none; }
.trail-calendar__sheet { width: 100%; max-width: 100%; max-height: 85vh; margin: auto 0 0; border-radius: 16px 16px 0 0; background: var(--c-white); }
.trail-calendar__sheet[open] { display: flex; flex-direction: column; }
.trail-calendar__sheet-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 16px 8px; }
.trail-calendar .trail-calendar__sheet-head h2 { max-width: none; margin: 0; color: var(--c-ink-900); font-stretch: normal; font: 700 13px/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
.trail-calendar__sheet-body { display: grid; gap: 20px; overflow-y: auto; padding: 8px 16px 20px; }
.trail-calendar__sheet-group { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.trail-calendar__sheet-group legend { margin-bottom: 10px; padding: 0; color: var(--c-ink-500); font: 700 11px/1.2 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
.trail-calendar__pill { position: relative; }
.trail-calendar__pill input { position: absolute; opacity: 0; pointer-events: none; }
.trail-calendar__pill span { display: inline-flex; min-height: 40px; align-items: center; padding: 0 16px; border: 1px solid var(--c-ink-900); border-radius: 999px; font-size: 15px; font-weight: 600; cursor: pointer; }
.trail-calendar__pill input:checked + span { background: var(--c-ink-900); color: var(--c-white); }
.trail-calendar__pill input:focus-visible + span { outline: 3px solid var(--c-ink-900); outline-offset: 2px; }
.trail-calendar__sheet-foot { display: grid; grid-template-columns: auto 1fr; gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--c-ink-200); }
.trail-calendar__sheet-foot button { min-height: 48px; padding: 0 18px; border: 1px solid var(--c-ink-900); border-radius: 999px; background: var(--c-white); color: var(--c-ink-900); font: 700 11px/1 var(--font-display); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.trail-calendar__sheet-foot [data-calendar-sheet-apply] { background: var(--c-ink-900); color: var(--c-white); }
.trail-calendar__chip { display: inline-flex; min-height: 36px; align-items: center; gap: 8px; padding: 0 12px 0 14px; border: 0; border-radius: 999px; background: var(--c-ink-900); color: var(--c-white); font: 600 14px/1 var(--font-core); cursor: pointer; }
.trail-calendar__chip::after { content: '×'; font-size: 18px; line-height: 1; }

@media (max-width: 800px) {
  .trail-calendar__views { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .trail-calendar__views button { padding: 10px 4px; font-size: 10px; letter-spacing: .06em; }
  .trail-calendar__filters { display: none; }
  .trail-calendar__filters-toggle { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 6px; border: 1px solid var(--c-ink-900); border-radius: 999px; background: var(--c-white); color: var(--c-ink-900); font: 700 11px/1 var(--font-display); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
  .trail-calendar__chips:not(:empty) { display: flex; flex-wrap: wrap; gap: 8px; margin-top: -12px; }
  .trail-calendar__week-grid { grid-template-columns: 1fr; border-top: 0; }
  .trail-calendar__week-day { min-height: 0; padding: 0 12px 12px; border: 1px solid var(--c-ink-200); border-top: 0; }
  .trail-calendar__week-day:first-child { border-top: 1px solid var(--c-ink-200); }
  .trail-calendar__week-day.is-empty { padding-bottom: 0; }
  .trail-calendar__week-head { width: calc(100% + 24px); margin: 0 -12px; padding: 12px; }
  .trail-calendar__week-day.is-empty .trail-calendar__week-head { border-bottom: 0; color: var(--c-ink-500); }
  .trail-calendar__strip { gap: 4px; }
  .trail-calendar__paging p { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .trail-calendar__strip-day { min-height: 58px; border-radius: 8px; }
      .trail-calendar__card-facts > div { grid-template-columns: 1fr; gap: 0; }
}

/* Zapisy: „Zapisz się” wypełnione obok obrysowanego „Szczegóły”; „Brak miejsc” jako zwykły tekst */
.trail-calendar__signup { display: inline-flex; min-height: 44px; min-width: 140px; box-sizing: border-box; align-items: center; justify-content: center; padding: 0 18px; border: 1px solid var(--c-ink-900); border-radius: 999px; background: var(--c-ink-900); color: var(--c-white); font: var(--fw-bold) 11px/1 var(--font-display); letter-spacing: .12em; text-decoration: none; text-transform: uppercase; white-space: nowrap; cursor: pointer; transition: background-color 160ms ease, color 160ms ease; }
.trail-calendar__actions a.trail-calendar__signup { background: var(--c-ink-900); color: var(--c-white); }
:is(.trail-calendar__signup, .trail-calendar__actions a.trail-calendar__signup):is(:hover, :focus-visible) { background: var(--c-white); color: var(--c-ink-900); }
.trail-calendar__signup:focus-visible { outline: 3px solid var(--c-ink-900); outline-offset: 2px; }
.trail-calendar__full { display: inline-flex; min-height: 44px; min-width: 140px; box-sizing: border-box; align-items: center; justify-content: center; padding: 0 18px; border: 1px solid transparent; color: var(--c-ink-500); font: var(--fw-bold) 11px/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.trail-calendar__card-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.trail-calendar__card-inner :is(.trail-form, .trail-form-success) { padding: 0; border: 0; }
.trail-calendar__card-inner .trail-form-success { font-size: 18px; }
.trail-form .ds-form__hint { margin: 0; color: var(--c-ink-500); font: 400 13px/1.4 var(--font-core); }
.trail-event-facts__signup { margin: 20px 0 0; }
.trail-signup-dialog { padding: 0; border: 0; color: var(--c-ink-900); }
.trail-signup-dialog::backdrop { background: rgba(28, 32, 36, .55); }




/* Wysyłanie formularza: kręcące się kółko w przycisku, dopóki serwer nie odpowie */
.trail-form[aria-busy="true"] .ds-form__submit { display: inline-flex; align-items: center; justify-content: center; gap: 10px; opacity: 1; cursor: progress; }
.trail-form[aria-busy="true"] .ds-form__submit::before { content: ""; width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: trail-spin .7s linear infinite; }
@keyframes trail-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .trail-form[aria-busy="true"] .ds-form__submit::before { animation-duration: 2s; } }

/* Karta terminu (krok 1): data duża jak na osi czasu, pod nią fakty, mapa i „Zapisz się →” */
.trail-calendar__card-when { display: flex; align-items: center; gap: 14px; margin: 0; color: var(--c-ink-900); }
.trail-calendar__card-day { font: var(--fw-regular) 48px/.85 var(--font-display); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.trail-calendar__card-date { display: grid; gap: 3px; color: var(--c-ink-600); font-size: 15px; line-height: 1.35; }
.trail-calendar__card-date strong { color: var(--c-ink-900); font-weight: 700; font-variant-numeric: tabular-nums; }
.trail-calendar__card-actions .trail-calendar__signup { min-height: 46px; padding: 0 22px; }

/* Formularz zapisu (krok 2): jeden wiersz z nazwą i terminem, pod nim pola; „Wróć” obok „Zapisz się” */
.trail-signup__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--c-ink-200); }
.trail-signup__summary { display: grid; gap: 3px; min-width: 0; margin: 0; }
.trail-signup__summary strong { color: var(--c-ink-900); font: var(--fw-regular) 20px/1.15 var(--font-display); letter-spacing: -.01em; text-transform: uppercase; }
.trail-signup__summary span { color: var(--c-ink-600); font-size: 15px; }
.is-signup :is(.trail-form, .trail-form-success) { padding: 0; border: 0; }
.is-signup .trail-form-success { font-size: 18px; }
.is-signup .trail-form { gap: 14px; }
.is-signup .trail-form :is(.ds-form__hint, .ds-form__privacy) { color: var(--c-ink-500); font-size: 13px; line-height: 1.5; }
/* Consents: same text size as the hints, each one kept close to the field it belongs to. */
.is-signup .trail-form .ds-form__consent { gap: 10px; }
.is-signup .trail-form .ds-form__consent span { font-size: 13px; line-height: 1.5; }
.is-signup .trail-form .ds-form__consent input { width: 18px; height: 18px; min-height: 18px; }
.is-signup .trail-form .ds-form__row + .ds-form__check { margin-top: -4px; }
.is-signup .trail-form .ds-form__check + .ds-form__row { margin-top: 6px; }
.is-signup .trail-form .ds-form__privacy { margin-top: 4px; padding-top: 14px; border-top: 1px solid var(--c-ink-200); }
.trail-form__actions { display: flex; gap: 10px; align-items: center; }
.trail-form__actions .ds-form__submit { flex: 1; }
.trail-signup__back { min-height: 48px; padding: 0 20px; border: 1px solid var(--c-ink-900); border-radius: 999px; background: var(--c-white); color: var(--c-ink-900); font: 700 12px/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; cursor: pointer; }
.trail-signup__back:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); }
.trail-signup__back:focus-visible { outline: 2px solid var(--c-ink-900); outline-offset: 3px; }
/* Telefon: formularz na cały ekran, przyciski przyklejone do dołu */
@media (max-width: 800px) {
  .trail-calendar__card.is-signup { width: 100%; max-width: 100%; height: 100%; max-height: 100%; margin: 0; border-radius: 0; }
  .is-signup .trail-calendar__card-inner { gap: 14px; padding: 16px; }
  .is-signup .trail-form__actions { position: sticky; bottom: 0; z-index: 1; margin: 0 -16px -16px; padding: 12px 16px 16px; border-top: 1px solid var(--c-ink-200); background: var(--c-white); }
  .trail-calendar__card-day { font-size: 40px; }
}
.trail-calendar__card .trail-calendar__map-canvas { height: 200px; }
.trail-calendar__card-actions .trail-calendar__card-link { border: 1px solid var(--c-ink-900); background: var(--c-white); color: var(--c-ink-900); }
.trail-calendar__card-actions .trail-calendar__card-link:is(:hover, :focus-visible) { background: var(--c-ink-900); color: var(--c-white); }
@media (max-width: 800px) { .trail-calendar__card-actions { display: grid; } .trail-calendar__card-actions > * { justify-content: center; } }

/* Panel admina: tylko widok miesiąca */
.trail-calendar.is-admin-preview .trail-calendar__views { display: none; }
@media (max-width: 800px) { .trail-calendar__day .trail-calendar__month-event-signups { display: none; } }

/* Kilka logotypów wydarzenia (maks. 4, należą do serii): same logotypy w rzędzie, bez obwódek.
   Każdy mieści się w takim samym prostokącie (--logo-w × --logo-h), więc szerokie napisy
   i kwadratowe znaczki zajmują równe miejsce. Nigdy na siebie nie nachodzą. */
.trail-logos { display: flex; align-items: center; gap: var(--gap, 10px); --logo-w: 56px; --logo-h: 40px; }
.trail-logos__item { display: flex; flex: none; width: var(--logo-w); height: var(--logo-h); align-items: center; justify-content: center; }
.trail-logos__item img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }

/* Oś czasu: kolumna logo mieści 4 logotypy i jest dosunięta do przycisków (wiersze w jednej
   linii); kolumna przycisków mieści „Zapisz się” + „Szczegóły”. Węższy ekran = mniejsze logo. */
@media (min-width: 801px) {
  .trail-calendar__item { grid-template-columns: 104px minmax(0, 1fr) var(--logos-col, 320px) 250px; }
  .trail-calendar__item > .trail-calendar__date { grid-area: 1 / 1; }
  .trail-calendar__item > .trail-calendar__copy { grid-area: 1 / 2; }
  .trail-calendar__item > .trail-calendar__logo { grid-area: 1 / 3; width: auto; height: auto; padding: 0; border: 0; justify-self: end; }
  .trail-calendar__item > .trail-calendar__actions { grid-area: 1 / 4; flex-wrap: nowrap; justify-content: flex-end; }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .trail-calendar__item { --logos-col: 240px; column-gap: 20px; }
  .trail-calendar__logo.trail-logos { --logo-w: 88px; --logo-h: 52px; --gap: 8px; }
  .trail-calendar__logo.trail-logos[data-count="2"] { --logo-w: 76px; --logo-h: 46px; }
  .trail-calendar__logo.trail-logos[data-count="3"] { --logo-w: 70px; --logo-h: 42px; }
  .trail-calendar__logo.trail-logos[data-count="4"] { --logo-w: 54px; --logo-h: 36px; }
}
.trail-calendar__logo.trail-logos { justify-content: flex-end; padding: 0; border: 0; --logo-w: 112px; --logo-h: 64px; }
.trail-calendar__logo.trail-logos[data-count="2"] { --logo-w: 96px; --logo-h: 56px; }
.trail-calendar__logo.trail-logos[data-count="3"] { --logo-w: 92px; --logo-h: 52px; }
.trail-calendar__logo.trail-logos[data-count="4"] { --logo-w: 68px; --logo-h: 44px; }
.trail-calendar__logo:not(.trail-logos) { visibility: hidden; }

/* Karta terminu (krok 1).
   Komputer: tytuł i „×”, duża data, fakty w dwóch kolumnach, mapa na całą szerokość; na dole szary
   pasek: „Zapisz się” po lewej, logotypy po prawej.
   Telefon: tytuł i „×” przyklejone u góry, logotypy na początku treści, „Zapisz się” przyklejone na dole. */
.trail-calendar__card-head { grid-template-columns: minmax(0, 1fr) 44px; }
.trail-calendar__card .trail-calendar__card-facts { gap: 14px 24px; }
.trail-calendar__card .trail-calendar__card-facts > div { grid-template-columns: 1fr; gap: 2px; }
/* Etykiety małe i szare, treść zwykłą wagą — jak w ramce terminu na stronie wydarzenia, żeby od razu było widać, co jest opisem, a co informacją. */
.trail-calendar__card .trail-calendar__card-facts dt { color: var(--c-ink-500); font: 700 11px/1.6 var(--font-display); letter-spacing: .14em; text-transform: uppercase; }
.trail-calendar__card .trail-calendar__card-facts dt::after { content: none; }
.trail-calendar__card .trail-calendar__card-facts dd { color: var(--c-ink-900); font-size: 16px; font-weight: var(--fw-regular, 400); line-height: 1.5; }
.trail-calendar__card .trail-calendar__map { max-width: none; margin: 0; }
.trail-calendar__card .trail-calendar__map-canvas { border-radius: 10px; }
/* Adres stoi tuż nad mapą */
.trail-card-place + .trail-calendar__map { margin-top: -8px; }
.trail-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; }
.trail-card-foot .trail-calendar__card-actions { margin: 0; }
.trail-card-logos { --logo-w: 76px; --logo-h: 48px; --gap: 18px; }
@media (min-width: 801px) {
  .trail-calendar__card:not(.is-signup) { width: min(720px, calc(100% - 32px)); }
  .trail-calendar__card .trail-calendar__card-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trail-calendar__card-inner:has(> .trail-card-foot) { padding-bottom: 0; }
  .trail-card-foot { flex-wrap: wrap; margin: 6px calc(clamp(20px, 3vw, 28px) * -1) 0; padding: 18px clamp(20px, 3vw, 28px); border-top: 1px solid var(--c-ink-200, #d5d8db); background: var(--c-ink-50, #f6f7f7); }
  .trail-card-foot .trail-card-logos { margin-left: auto; }
}
@media (max-width: 800px) {
  .trail-calendar__card:not(.is-signup) .trail-calendar__card-inner { display: flex; flex-direction: column; gap: 18px; padding-top: 0; padding-bottom: 0; }
  .trail-calendar__card:not(.is-signup) .trail-calendar__card-head { position: sticky; top: 0; z-index: 2; order: 0; margin: 0 -20px; padding: 18px 20px 14px; border-bottom: 1px solid var(--c-ink-200, #d5d8db); background: var(--c-white, #fff); }
  .trail-card-foot { display: contents; }
  .trail-card-foot .trail-card-logos { order: 1; }
  .trail-calendar__card:not(.is-signup) .trail-calendar__card-inner > :not(.trail-calendar__card-head, .trail-card-foot) { order: 2; }
  .trail-card-foot .trail-calendar__card-actions { position: sticky; bottom: 0; z-index: 2; order: 3; margin: 0 -20px; padding: 14px 20px 18px; border-top: 1px solid var(--c-ink-200, #d5d8db); background: var(--c-white, #fff); }
  .trail-card-logos { flex-wrap: wrap; --logo-w: 64px; --logo-h: 40px; --gap: 16px; }
}

/* Formularz zapisu (krok 2) */
.trail-signup__bar .trail-logos--bar { --logo-w: 52px; --logo-h: 34px; --gap: 8px; margin-right: 4px; }
.trail-signup__bar .trail-logos--bar:empty { display: none; }
.trail-signup__summary { flex: 1; }

/* Kafelki tygodnia i miesiąca są wąskie: małe logotypy w rzędzie pod tytułem, na białej plakietce,
   żeby były widoczne na kolorowym tle kafelka */
.trail-logos--tile { flex-wrap: wrap; margin-top: 8px; --logo-w: 44px; --logo-h: 30px; --gap: 5px; }
.trail-logos--tile .trail-logos__item { padding: 2px; border-radius: 3px; background: #fff; }
.trail-calendar__month-event .trail-logos--tile { display: flex; }
/* Widok dnia jest szeroki: logotypy w prawym górnym rogu kafelka */
.trail-calendar__day-list .has-logos { position: relative; padding-right: calc(var(--logos) * 76px + 24px) !important; }
.trail-calendar__day-list .trail-logos--tile { position: absolute; top: 12px; right: 12px; flex-wrap: nowrap; margin: 0; --logo-w: 68px; --logo-h: 44px; --gap: 8px; }
.trail-calendar__day-list .trail-logos--tile .trail-logos__item { padding: 3px; }

@media (max-width: 800px) {
  .trail-calendar__logo.trail-logos, .trail-calendar__logo.trail-logos[data-count] { width: auto; height: auto; justify-content: flex-end; --logo-w: 60px; --logo-h: 38px; --gap: 8px; }
  .trail-calendar__logo.trail-logos[data-count="4"] { --logo-w: 48px; --logo-h: 32px; }
  .trail-calendar__logo:not(.trail-logos) { display: none; }
  .trail-calendar__day .trail-logos--tile { display: none; }
  .trail-calendar__day-list .has-logos, .trail-calendar__day-panel .has-logos { position: relative; padding-right: 14px !important; }
  .trail-calendar__day-list .trail-logos--tile, .trail-calendar__day-panel .trail-logos--tile { position: static; flex-wrap: wrap; margin-top: 8px; --logo-w: 56px; --logo-h: 36px; --gap: 6px; }
}

/* Hover: „Zapisz się” odwraca kolory jak przycisk w formularzu (reguła wyżej), „Szczegóły”
   i „Strona wydarzenia” dostają jasnoszare tło. */
:is(.trail-calendar__details, .trail-calendar__actions a:not(.trail-calendar__signup), .trail-calendar__card-actions .trail-calendar__card-link):is(:hover, :focus-visible) { background: var(--c-ink-100, #eceeef); color: var(--c-ink-900); }
/* Logotypy w kafelkach: białe plakietki, żeby były czytelne na kolorowym tle */
.trail-logos--tile .trail-logos__item { padding: 3px; border-radius: 4px; background: #fff; }
/* Widok dnia: logotypy w kwadratach, bez białej plakietki. Tydzień i miesiąc: logotypy wyśrodkowane. */
.trail-calendar__day-list .trail-logos--tile { --logo-w: 52px; --logo-h: 52px; }
.trail-calendar__day-list .trail-logos--tile .trail-logos__item, .trail-calendar__day-panel .trail-logos--tile .trail-logos__item { padding: 0; border-radius: 0; background: none; }
.trail-calendar__day-list .has-logos { padding-right: calc(var(--logos) * 60px + 24px) !important; }
:is(.trail-calendar__week-day, .trail-calendar__day) .trail-logos--tile { justify-content: center; }
@media (max-width: 800px) {
  .trail-calendar__day-list .has-logos { padding-right: 14px !important; }
  .trail-calendar__day-list .trail-logos--tile, .trail-calendar__day-panel .trail-logos--tile { --logo-w: 44px; --logo-h: 44px; }
}

/* Pojedyncza karta zawodnika wstawiona we wpis: szerokość z bloku (wysokość idzie za nią), wyrównanie z paska narzędzi */
body.trail-wordpress .wp-block-trail-athlete-card { max-width: 100%; margin: clamp(32px, 5vw, 56px) 0; }
body.trail-wordpress .wp-block-trail-athlete-card.aligncenter { margin-inline: auto; }
body.trail-wordpress .wp-block-trail-athlete-card.alignleft { float: left; margin: 8px clamp(24px, 4vw, 48px) 24px 0; }
body.trail-wordpress .wp-block-trail-athlete-card.alignright { float: right; margin: 8px 0 24px clamp(24px, 4vw, 48px); }
@media (max-width: 600px) { body.trail-wordpress .wp-block-trail-athlete-card:is(.alignleft, .alignright) { float: none; margin: 32px auto; } }

/* Facebook / Instagram icons in page content (block trail/social-links): the footer's icons, larger and dark. */
.trail-socials { display: flex; flex-wrap: wrap; gap: 20px; margin-block: var(--space-6, 24px); }
.trail-socials.has-text-align-center { justify-content: center; }
.trail-socials.has-text-align-right { justify-content: flex-end; }
.trail-socials__item { display: inline-flex; color: var(--c-ink-900); transition: opacity 180ms ease; }
.trail-socials__item svg { display: block; width: 48px; height: 48px; fill: currentColor; }
.trail-socials__item:is(:hover, :focus-visible) { opacity: .7; }

/* Kalendarz, oś czasu: fakty terminu jako lista z ikonami (godzina, miejsce, trenerzy), równo do lewej. */
.trail-calendar__item .trail-calendar__meta { display: grid; gap: 6px; justify-items: start; margin-top: 12px; }
.trail-calendar__item .trail-calendar__meta > * { display: inline-flex; align-items: flex-start; gap: 10px; text-align: left; }
.trail-calendar__item .trail-calendar__meta > .trail-calendar__time { font-weight: 700; }
.trail-calendar__item .trail-calendar__meta > :is(.trail-calendar__time, .trail-calendar__coaches)::before { content: ""; flex: 0 0 18px; width: 18px; height: 18px; margin-top: 1px; background: var(--c-ink-500); -webkit-mask: var(--trail-icon) center / contain no-repeat; mask: var(--trail-icon) center / contain no-repeat; }
.trail-calendar__item .trail-calendar__time { --trail-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.trail-calendar__item .trail-calendar__coaches { --trail-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20c.6-3.6 3.3-5.5 6.5-5.5s5.9 1.9 6.5 5.5M16 4.6a3.5 3.5 0 0 1 0 6.8M18 14.8c2 .6 3.2 2.4 3.5 5.2'/%3E%3C/svg%3E"); }
.trail-calendar__item .trail-calendar__meta .trail-calendar__place::before { margin: 3px 4px 0; }
/* Szerszy ekran: treść na całą wolną szerokość, logotypy i „Szczegóły” jedno pod drugim w kolumnie po prawej. */
@media (min-width: 801px) {
  .trail-calendar__item { grid-template-columns: 104px minmax(0, 1fr) auto; grid-template-areas: "date copy logo" "date copy actions"; align-items: start; row-gap: 16px; }
  .trail-calendar__item .trail-calendar__date { grid-area: date; }
  .trail-calendar__item .trail-calendar__copy { grid-area: copy; }
  .trail-calendar__item .trail-calendar__logo { grid-area: logo; justify-self: end; align-self: start; }
  .trail-calendar__item .trail-calendar__actions { grid-area: actions; justify-self: end; align-self: end; }
}
