/* Gutenberg adapters use the same visual language as the v6.7 components. */
.jl-page-content > .wp-block-group.jl-page-hero {
  width: min(1240px, calc(100% - 48px));
  margin: 36px auto 0;
  padding: clamp(38px, 5vw, 66px);
  border: 1px solid var(--border);
  border-radius: 26px;
  background: var(--surface);
  box-shadow: var(--shadow);
}
/* When hero uses the inner grid card, strip outer chrome to avoid double containers. */
.jl-page-content > .wp-block-group.jl-page-hero:has(.jl-page-hero-grid) {
  padding: 36px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
/* Home hero: same side margins as other first sections (O klubie / Trenerzy). */
.jl-page-content > .wp-block-group.jl-family-hero {
  width: min(1240px, calc(100% - 48px));
  margin: 36px auto 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.jl-page-content > .wp-block-group.jl-section {
  padding-inline: max(24px, calc((100% - 1240px) / 2));
}
.jl-page-content > .wp-block-group.jl-soft { background: var(--soft); }

/* Partner detail stories (Gutenberg) — same shell rhythm as page heroes. */
.jl-page-content > .wp-block-group.jl-coop-hero {
  width: min(1240px, calc(100% - 48px));
  margin: 36px auto 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.jl-page-content > .wp-block-group.jl-coop-hero.is-layout-constrained > *,
.jl-page-content > .wp-block-group.jl-coop-hero .wp-block-columns {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.jl-page-content .wp-block-columns.jl-coop-hero-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
  gap: 44px !important;
  align-items: center;
  min-height: 480px;
  padding: clamp(38px, 6vw, 76px);
  border: 1px solid var(--border);
  border-radius: 28px;
  background: linear-gradient(135deg, var(--surface), var(--soft));
  box-shadow: var(--shadow);
  width: 100%;
  margin-inline: 0 !important;
}
.jl-page-content .jl-madax-hero .wp-block-columns.jl-coop-hero-grid,
.jl-page-content .wp-block-group.jl-madax-hero .wp-block-columns.jl-coop-hero-grid {
  background: linear-gradient(135deg, #101014, #2e080c);
  color: #fff;
  border-color: transparent;
}
.jl-page-content .jl-madax-hero .jl-kicker,
.jl-page-content .jl-madax-hero p:not(.jl-kicker) { color: #e8e8e8; }
.jl-page-content .jl-madax-hero h1 { color: #fff; }
.jl-page-content .jl-coop-hero h1 {
  margin: 10px 0 18px;
  font: 900 clamp(2.6rem, 5.5vw, 5.4rem) / .94 var(--display);
  letter-spacing: -.05em;
  text-transform: uppercase;
}
.jl-page-content .jl-coop-hero .jl-kicker { color: var(--red); }
.jl-page-content .jl-madax-hero .jl-kicker { color: #ffb4bc; }
.jl-page-content .jl-coop-hero > p:not(.jl-kicker),
.jl-page-content .jl-coop-hero-grid > .wp-block-column > p:not(.jl-kicker):not(.jl-back-link) {
  max-width: 34rem;
  color: var(--muted);
  font-size: 1.08rem;
}
.jl-page-content .jl-coop-logo-panel {
  display: grid;
  min-height: 280px;
  place-items: center;
  align-content: center;
  gap: 18px;
  padding: 28px;
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--shadow-small);
}
.jl-page-content .jl-coop-logo-panel.jl-dark-panel,
.jl-page-content .jl-madax-hero .jl-coop-logo-panel {
  background: #fff;
}
.jl-page-content .jl-coop-logo-panel .wp-block-image,
.jl-page-content .jl-coop-logo-panel figure {
  margin: 0;
  width: 100%;
  text-align: center;
}
.jl-page-content .jl-coop-logo-panel img {
  max-width: 90%;
  max-height: 190px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.jl-page-content .jl-coop-logo-panel > p {
  margin: 0;
  padding: 8px 13px;
  border-radius: 999px;
  background: var(--soft);
  color: #111;
  font-size: .78rem;
  font-weight: 900;
  text-transform: uppercase;
}
.jl-page-content .wp-block-columns.jl-company-profile {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 40px !important;
  align-items: center;
  width: 100%;
  margin-inline: 0 !important;
}
.jl-page-content .jl-company-profile > .wp-block-column { min-width: 0; }
.jl-page-content .jl-company-profile .wp-block-image,
.jl-page-content .jl-company-profile figure { margin: 0; }
.jl-page-content .jl-company-profile img {
  width: 100%;
  border-radius: 24px;
  box-shadow: var(--shadow);
  display: block;
}
.jl-page-content .wp-block-columns.jl-link-cards,
.jl-page-content .jl-link-cards {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px !important;
  width: 100%;
  margin-inline: 0 !important;
}
.jl-page-content .jl-link-cards > a,
.jl-page-content .jl-link-cards > .wp-block-column > a,
.jl-link-cards > a {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 8px 14px;
  align-items: center;
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--card);
  color: inherit;
  text-decoration: none;
  box-shadow: var(--shadow-small);
}
.jl-page-content .jl-section.jl-copy-narrow {
  max-width: none;
}
.jl-page-content .jl-section.jl-copy-narrow > :where(h2, p, .jl-kicker) {
  max-width: 880px;
}
.jl-page-content .jl-back-link,
.jl-page-content .jl-back-link a {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--red);
  font-size: .8rem;
  font-weight: 900;
  text-decoration: none;
  text-transform: uppercase;
}
@media (max-width: 920px) {
  .jl-page-content .wp-block-columns.jl-coop-hero-grid,
  .jl-page-content .wp-block-columns.jl-company-profile {
    grid-template-columns: 1fr !important;
    min-height: 0;
    gap: 28px !important;
    padding: 30px 22px;
  }
  .jl-page-content .wp-block-columns.jl-link-cards,
  .jl-page-content .jl-link-cards {
    grid-template-columns: 1fr !important;
  }
  .jl-page-content .jl-coop-logo-panel { min-height: 220px; }
}
@media (max-width: 680px) {
  .jl-page-content > .wp-block-group.jl-coop-hero {
    width: min(100% - 28px, 1240px);
    margin-top: 16px;
  }
  .jl-page-content .jl-coop-hero h1 {
    font-size: clamp(2.35rem, 12vw, 4rem);
    line-height: .98;
  }
}

.jl-page-content > .wp-block-group.jl-page-hero h1 {
  max-width: 900px;
  margin: 10px 0 20px;
  font: 900 clamp(2.7rem, 5.5vw, 5.4rem) / .93 var(--display);
  letter-spacing: -.05em;
  text-transform: uppercase;
}
body.jl-page-oferta .jl-page-content > .wp-block-group.jl-page-hero h1 {
  font-size: clamp(2.45rem, 4.85vw, 4.85rem);
  line-height: .95;
}
body.jl-page-galeria .jl-page-content > .wp-block-group.jl-page-hero h1 {
  font-size: clamp(2.45rem, 4.85vw, 4.85rem);
  line-height: .95;
}
.jl-page-content > .wp-block-group.jl-page-hero > p:not(.jl-kicker) {
  max-width: 760px;
  color: var(--muted);
  font-size: 1.08rem;
}
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 10px; }

/*
 * Gutenberg puts jl-button* / jl-on-dark on the wrapper div.
 * Strip wrapper chrome so only the inner link paints border/fill (light + dark, mobile + desktop).
 */
.wp-block-button.jl-button,
.wp-block-button.jl-button-outline,
.wp-block-button.jl-on-dark,
.wp-block-button.jl-button-outline-light {
  display: inline-flex;
  width: auto;
  max-width: 100%;
  min-height: 0 !important;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  color: inherit !important;
  box-shadow: none !important;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-transform: none;
  transform: none !important;
}

.wp-block-button__link.wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: auto;
  max-width: 100%;
  min-height: 48px;
  padding: 12px 20px;
  border: 1px solid var(--red);
  border-radius: 10px;
  background: var(--red);
  color: #fff;
  font-size: .8rem;
  font-weight: 900;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  text-wrap: balance;
  transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
  box-sizing: border-box;
}
.wp-block-button__link.wp-element-button:hover,
.wp-block-button__link.wp-element-button:focus-visible {
  border-color: var(--red-dark);
  background: var(--red-dark);
  color: #fff;
}

.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button,
.wp-block-button.jl-button-outline > .wp-block-button__link.wp-element-button {
  border-color: var(--border);
  background: transparent;
  color: var(--ink);
}
.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:hover,
.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:focus-visible,
.wp-block-button.jl-button-outline > .wp-block-button__link.wp-element-button:hover,
.wp-block-button.jl-button-outline > .wp-block-button__link.wp-element-button:focus-visible {
  border-color: var(--red);
  color: var(--red);
  background: transparent;
}

/* Defeat core outline currentColor inheritance from a styled wrapper. */
.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:not(.has-text-color),
.wp-block-button.jl-button-outline > .wp-block-button__link.wp-element-button:not(.has-text-color) {
  color: var(--ink);
}

/* Dark panels stay dark in light mode — force readable outline labels (must beat the ink rule above). */
:is(.jl-music-section, .jl-final-cta, .jl-inline-cta-dark) .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:not(.has-text-color),
:is(.jl-music-section, .jl-final-cta, .jl-inline-cta-dark) .wp-block-button.jl-button-outline > .wp-block-button__link.wp-element-button:not(.has-text-color),
.wp-block-button.jl-on-dark > .wp-block-button__link.wp-element-button:not(.has-text-color),
.wp-block-button.jl-on-dark.is-style-outline > .wp-block-button__link.wp-element-button:not(.has-text-color) {
  border-color: rgba(255, 255, 255, .5);
  background: rgba(255, 255, 255, .04);
  color: #fff;
}
:is(.jl-music-section, .jl-final-cta, .jl-inline-cta-dark) .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:hover,
:is(.jl-music-section, .jl-final-cta, .jl-inline-cta-dark) .wp-block-button.jl-button-outline > .wp-block-button__link.wp-element-button:hover,
.wp-block-button.jl-on-dark > .wp-block-button__link.wp-element-button:hover {
  border-color: #fff;
  background: #fff;
  color: #111;
}

.jl-youtube-card .jl-youtube-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000;
}
.jl-youtube-card .jl-youtube-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.jl-youtube-card .wp-block-embed { margin: 0; }
.jl-youtube-card .wp-block-embed__wrapper { margin: 0; }

.wp-block-columns.jl-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.wp-block-columns.jl-card-grid > .wp-block-column { min-width: 0; }
.wp-block-group.jl-card {
  height: 100%;
  padding: 26px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow-small);
}
.wp-block-group.jl-card .jl-card-icon { margin: 0 0 12px; font-size: clamp(1.5rem, 2.13vw, 1.77rem); line-height: 1; }
.wp-block-columns.jl-parent-link-grid .jl-card-icon,
.jl-parent-link-grid .jl-card-icon {
  display: block;
  margin: 0 0 12px;
  font-size: clamp(1.5rem, 2.13vw, 1.77rem);
  line-height: 1;
}
.wp-block-group.jl-card h3 { margin: 0 0 8px; }
.wp-block-group.jl-card p:last-child { margin-bottom: 0; color: var(--muted); }
.wp-block-cover.jl-page-hero,
.wp-block-cover.jl-hero {
  min-height: 540px;
  border-radius: 28px;
  box-shadow: var(--shadow);
  overflow: hidden;
}

/* Small adapters for dynamic v7 records; layout remains owned by app.css. */
.jl-partner-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.jl-event-card-body { padding: 24px; }
.jl-event-card h2 a,
.jl-group-grid h3 a,
.jl-location-city-grid h3 a,
.jl-trainers-grid h3 a { color: inherit; text-decoration: none; }
.jl-event-poster { display: block; margin: 0; text-decoration: none; }
.jl-event-poster-placeholder,
.jl-event-detail-placeholder {
  display: grid;
  min-height: 260px;
  place-items: center;
  background: linear-gradient(145deg, #111, #31070b);
  color: #fff;
  font-size: 4rem;
}
.jl-event-detail-placeholder { min-height: 480px; border-radius: 20px; }
.jl-event-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.jl-event-actions > a { flex: 1 1 135px; }
.jl-group-grid article,
.jl-location-city-grid article { min-width: 0; }
.jl-group-grid .jl-button-outline,
.jl-location-city-grid .jl-button-outline { margin-top: 18px; }
.jl-group-schedule { display: grid; gap: 8px; padding: 0; list-style: none; }
.jl-group-schedule li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.jl-group-schedule li:last-child { border-bottom: 0; }
.jl-group-people-list { display: grid; gap: 8px; margin: 0 0 28px; padding: 0; list-style: none; }
.jl-group-people-list a { font-weight: 800; text-decoration: none; }
.jl-group-people-list a:hover { color: var(--red); }
.jl-group-detail-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 28px;
  align-items: start;
}
.jl-group-detail-grid > article {
  padding: 26px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow-small);
}
@media (max-width: 760px) {
  .jl-group-detail-grid { grid-template-columns: 1fr; }
}
.jl-facts { display: grid; gap: 12px; }
.jl-facts > div { display: grid; grid-template-columns: minmax(90px, 140px) 1fr; gap: 12px; }
.jl-facts dt { font-weight: 900; }
.jl-facts dd { margin: 0; }
/* FAQ search chrome lives in app.css (.jl-faq-hero); keep answer body spacing here. */
.jl-faq-grid details > div { padding: 0 20px 20px; color: var(--muted); }
.jl-faq-grid details > div > :first-child { margin-top: 0; }
.jl-trainer-profile[hidden],
.jl-trainers-grid > article[hidden] { display: none !important; }
.jl-trainer-profile > .jl-athlete-placeholder { width: 100%; aspect-ratio: 4 / 5; border-radius: 20px; }
.jl-trainers-grid .jl-athlete-placeholder { aspect-ratio: 4 / 5; }
.jl-trainers-grid > article > .jl-athlete-placeholder { width: 100%; }
.jl-athlete-placeholder > span[aria-hidden="true"] { font-size: 3rem; }
.jl-document-library > a:focus-visible,
.jl-partner-card:focus-visible { outline: 3px solid #ffbf47; outline-offset: 3px; }
.jl-news-list .jl-kicker { margin-bottom: 8px; }
.jl-entry-content { overflow-wrap: normal; word-break: normal; hyphens: none; }
.jl-entry-content :where(p, li) { line-height: 1.75; }
.jl-entry-content :where(h2, h3) { margin-top: 1.8em; }

@media (max-width: 920px) {
  .wp-block-columns.jl-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jl-partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .jl-page-content > .wp-block-group.jl-page-hero {
    width: min(100% - 28px, 1240px);
    margin-top: 16px;
    padding: 34px 23px;
    border-radius: 20px;
  }
  .jl-page-content > .wp-block-group.jl-page-hero:has(.jl-page-hero-grid) {
    padding: 16px 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .jl-page-content > .wp-block-group.jl-family-hero {
    width: min(100% - 28px, 1240px);
    margin-top: 16px;
    padding: 0;
  }
  .jl-page-content > .wp-block-group.jl-page-hero h1 { font-size: clamp(2.35rem, 12vw, 4rem); }
  .jl-page-content > .wp-block-group.jl-section { padding-inline: 18px; }
  .wp-block-columns.jl-card-grid,
  .jl-partner-grid { grid-template-columns: 1fr; }
  .wp-block-buttons,
  .wp-block-button,
  .wp-block-button__link.wp-element-button { width: 100%; }
  .wp-block-buttons.jl-cta-row,
  .wp-block-buttons.jl-dual-actions,
  .wp-block-buttons.jl-center {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 10px;
    width: 100%;
    margin-inline: auto;
  }
  .jl-final-cta .wp-block-buttons.jl-cta-row,
  .jl-final-cta .wp-block-buttons.jl-center {
    justify-content: center;
    align-items: center;
    margin-inline: auto;
  }
  .jl-final-cta .jl-contact-links {
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .wp-block-buttons.jl-cta-row > .wp-block-button,
  .wp-block-buttons.jl-dual-actions > .wp-block-button,
  .wp-block-buttons.jl-center > .wp-block-button {
    flex: 1 1 calc(50% - 10px);
    width: auto;
    min-width: min(100%, 168px);
    max-width: 100%;
  }
  .wp-block-buttons.jl-cta-row > .wp-block-button.jl-button,
  .wp-block-buttons.jl-dual-actions > .wp-block-button.jl-button,
  .wp-block-buttons.jl-center > .wp-block-button.jl-button { order: -1; }
  .wp-block-buttons.jl-cta-row .wp-block-button__link.wp-element-button,
  .wp-block-buttons.jl-dual-actions .wp-block-button__link.wp-element-button,
  .wp-block-buttons.jl-center .wp-block-button__link.wp-element-button {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
  .jl-facts > div { grid-template-columns: 1fr; gap: 2px; }
  .jl-event-detail-placeholder { min-height: 340px; }

  /* Start-page hero: keep Zapisz / FAQ on one row despite font scaling. */
  .jl-family-hero-copy .wp-block-buttons.jl-cta-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 8px;
    width: 100%;
  }
  .jl-family-hero-copy .wp-block-buttons.jl-cta-row > .wp-block-button.jl-button,
  .jl-family-hero-copy .wp-block-buttons.jl-cta-row > .wp-block-button.jl-button-outline,
  .jl-family-hero-copy .wp-block-buttons.jl-cta-row > .wp-block-button {
    flex: 1 1 0;
    width: auto;
    max-width: none;
    min-width: 0;
  }
  .jl-family-hero-copy .wp-block-buttons.jl-cta-row .wp-block-button__link.wp-element-button {
    width: 100%;
    min-height: 44px;
    padding: 10px 8px;
    font-size: clamp(0.7rem, 3vw, 0.86rem);
    line-height: 1.15;
    letter-spacing: 0.01em;
    text-align: center;
  }
}
