/* Swimming profile modules on pages 247 and 868. Existing headers and menus remain unchanged. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile { color: #1f2937; }
/* GeneratePress adds its content padding to every classic group wrapper.
   These structural wrappers share the original first H2 content edge. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .wp-block-group__inner-container {
  padding: 0;
  margin: 0;
  max-width: none;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-section { margin: 0; padding: 0; display: flow-root; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-section + .ssv-profile-section { border-top: 1px solid #e4eaf0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile h2 {
  display: inline-flex;
  align-items: center;
  font-size: 26px;
  line-height: 1.1;
  font-weight: 700;
  gap: 12px;
  margin: 1.3em 0 1em;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile h2::before { margin-top: 0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile h3 { font-size: 21px; line-height: 1.25; font-weight: 700; color: #0f2942; margin: 0 0 14px; padding-bottom: 8px; border-bottom: 2px solid #e4eaf0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-team-category-title { font-size: 22px; line-height: 1.25; font-weight: 700; color: #01509b; margin: 12px 0 24px; padding: 0 0 0 10px; border-left: 4px solid #fbbf24; border-bottom: 0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-team-group-title { font-size: 19px; line-height: 1.3; font-weight: 700; color: #0f2942; margin: 0 0 10px; padding: 0; border: 0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-team-group + .ssv-team-group { margin-top: 28px; padding-top: 20px; border-top: 1px solid #e4eaf0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile p { line-height: 1.75; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-offers,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-venues {
  display: grid;
  gap: 22px;
  margin: 24px 0;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-offers { grid-template-columns: repeat(3,minmax(0,1fr)); }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-offer {
  min-width: 0;
  border: 1px solid rgba(1,80,155,.14);
  border-top: 4px solid #01509b;
  padding: 25px;
  border-radius: 12px;
  background: white;
  box-shadow: 0 10px 28px rgba(15,23,42,.05);
  display: flex;
  flex-direction: column;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-offer p { font-size: .96rem; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-offer p:last-child { margin-top: auto; margin-bottom: 0; padding-top: 8px; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-result {
  background: #f2f6fa;
  border-left: 4px solid #ffbe00;
  border-radius: 0 10px 10px 0;
  padding: 24px 28px;
  margin-top: 26px;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-result p:last-child { margin-bottom: 0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-team-columns,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-contact-columns {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 36px;
  align-items: start;
  margin: 0;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-team-photo figure { margin: 0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-team-photo img { width: 100%; height: auto; border-radius: 12px; display: block; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-venues { grid-template-columns: repeat(2,minmax(0,1fr)); }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-venue { padding: 22px 25px; border-radius: 10px; background: #f4f6f8; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-venue p { margin-bottom: 0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-steps { padding-left: 24px; margin: 22px 0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-steps li { padding-left: 6px; margin-bottom: 18px; line-height: 1.7; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-contact-form .ssv-kontakt { width: 100%; max-width: none; margin: 0; padding: 0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-contact-form .ssv-request { width: 100%; max-width: none; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile a { text-underline-offset: .18em; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile a:focus-visible { outline: 3px solid #01509b; outline-offset: 4px; }
body:is(.page-id-247, .page-id-868, .page-id-2243) :is(.ssv-profile-section, #ssv-kontakt) { scroll-margin-top: 25px; }
@media(max-width:900px) {
  body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-offers { grid-template-columns: 1fr; }
  body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-team-columns,
  body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-contact-columns { grid-template-columns: 1fr; gap: 24px; }
}
@media(max-width:600px) {
  body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-section { padding: 0; }
  body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-venues { grid-template-columns: 1fr; }
  body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-profile-result { padding: 20px; }
}

/* Training cards and contact form: same 5px blue/yellow accent as homepage cards. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-form .ssv-request {
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(1, 80, 155, .14);
}
/* Compensate the former 4px border so content positions and card heights stay intact. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer { padding-top: 28px; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-form .ssv-request { padding-top: 3px; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer::before,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-form .ssv-request::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: linear-gradient(90deg, var(--news-primary, #01509b), var(--news-accent, #ffbe00));
  pointer-events: none;
}


/* Contact section: heading in the text column; shared top and bottom edges. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile #kontakt-schwimmen {
  border-top: 1px solid #e4eaf0;
  padding-top: 24px;
  padding-bottom: 24px;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-copy,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-copy > .block-editor-inner-blocks,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-copy > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: flex;
  flex-direction: column;
  row-gap: 24px;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-copy > .block-editor-inner-blocks,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-copy > .block-editor-inner-blocks > .block-editor-block-list__layout {
  flex: 1;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-copy :is(h2, p, ol) {
  margin-top: 0;
  margin-bottom: 0;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-copy > p:last-child,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-copy .block-editor-block-list__layout > [data-type="core/paragraph"]:last-child {
  margin-top: auto;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-form .ssv-kontakt,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-form .ssv-request {
  height: 100%;
}


/* Compact initial message field and equal visible spacing around the contact steps. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-form textarea {
  height: 110px;
  min-height: 110px;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-contact-copy .ssv-profile-steps > li:last-child {
  margin-bottom: 0;
}


/* Training links match the existing event/news card read-more links. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer p:last-child a {
  display: block;
  clear: both;
  color: var(--news-primary, #01509b);
  font-size: .98rem;
  line-height: 1.72;
  font-weight: 700;
  text-decoration: none;
  position: relative;
  padding-right: 18px;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer p:last-child a::after {
  content: "→";
  position: absolute;
  right: 0;
  top: 0;
  transition: transform .2s ease;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer p:last-child a:hover,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer p:last-child a:focus-visible {
  color: var(--news-primary, #01509b);
  text-decoration: none;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer p:last-child a:hover::after {
  transform: translateX(3px);
}


/* Website decision P-009: one normal-weight text link with an adjacent, uniform arrow. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer p:last-child {
  font-size: .98rem;
  line-height: 1.72;
  min-height: calc(3.44em + 8px);
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer p:last-child a,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile :is(.ssv-news-cards, .ssv-event-cards) .read-more {
  display: inline;
  color: var(--news-primary, #01509b);
  font-size: .98rem;
  line-height: 1.72;
  font-weight: 400;
  text-decoration: none;
  padding-right: 0;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer p:last-child a::after,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile :is(.ssv-news-cards, .ssv-event-cards) .read-more::after {
  content: "→";
  display: inline;
  position: static;
  margin-left: 8px;
  font-family: inherit;
  font-size: 1em;
  font-weight: 400;
  color: inherit;
  white-space: nowrap;
  pointer-events: none;
  transform: none;
  transition: none;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer p:last-child a:hover::after,
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile :is(.ssv-news-cards, .ssv-event-cards) .read-more:hover::after {
  transform: none;
}
/* Equal footer starts for the known one/two-line group actions; automatic card height. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile :is(.ssv-news-cards, .ssv-event-cards) > li {
  display: flex;
  flex-direction: column;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile :is(.ssv-news-cards, .ssv-event-cards) .wp-block-latest-posts__post-excerpt {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile :is(.ssv-news-cards, .ssv-event-cards) .wp-block-latest-posts__post-excerpt .read-more {
  align-self: flex-start;
  margin-top: auto;
  padding-top: 14px;
}


/* Subgrid shares the footer track even when an action wraps onto three lines. */
@supports (grid-template-rows: subgrid) {
  body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    row-gap: 14px;
  }
  body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer :is(h3, p) {
    margin-top: 0;
    margin-bottom: 0;
  }
  body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-swim-profile .ssv-profile-offer p:last-child {
    min-height: 0;
  }
}

/* Team group wrappers: keep the editor structure aligned with the category heading. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-team-group { margin: 0; padding: 0; }
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-team-group > .wp-block-group__inner-container { margin: 0; padding: 0; max-width: none; }

/* Masters category: match the measured 4px + 40px category transition.
   Descendant heading selector covers GeneratePress and Gutenberg wrappers. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-team-group:has(.ssv-team-category-title) {
  margin-top: 0;
  padding-top: 44px;
  border-top: 0;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-team-group:has(.ssv-team-category-title) .ssv-team-category-title {
  margin-top: 0;
}

/* Category transition after a group: stable across heading text and anchor edits. */
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-team-group:has(+ .ssv-team-category-title) {
  margin-bottom: 0;
  padding-bottom: 4px;
}
body:is(.page-id-247, .page-id-868, .page-id-2243) .ssv-team-group + .ssv-team-category-title {
  margin-top: 40px;
  padding-top: 0;
  border-top: 0;
}

/* Kindergruppen category: increased gap below the training groups H2. */
body:is(.page-id-247, .page-id-868, .page-id-2243) h2.wp-block-heading + .ssv-team-category-title {
  margin-top: 20px;
}

/* Training card anchor targets: one text line of space above the H3 on navigation. */
body:is(.page-id-247, .page-id-868, .page-id-2243) h3.ssv-team-category-title:is(#kindertraining, #nachwuchs-wettkampf, #masters, #andere-trainingsgruppen) {
  scroll-margin-top: 25.5px;
}

/* SSV ABOUT SPACING START */
/* Page 868: 24px between content blocks, 40px before heading text. */
body.page-id-868 .entry-content p {
  margin-top: 0;
  margin-bottom: 24px;
  line-height: 1.75;
}
body.page-id-868 .entry-content h2 {
  display: flex;
  margin-top: 0;
  margin-bottom: 24px;
  padding-top: 16px;
}
body.page-id-868 .entry-content > :is(p, h2, figure, .wp-block-group, .wp-block-media-text) {
  margin-top: 0;
  margin-bottom: 24px;
}
body.page-id-868 .entry-content .ssv-profile-section > .wp-block-group__inner-container > p:last-child,
body.page-id-868 .entry-content .wp-block-media-text__content > p:last-child {
  margin-bottom: 0;
}
body.page-id-868 .entry-content .ssv-profile-result {
  margin-top: 0;
  margin-bottom: 0;
}
body.page-id-868 .entry-content .ssv-profile-result p {
  margin-bottom: 16px;
}
body.page-id-868 .entry-content .ssv-profile-result p:last-child,
body.page-id-868 .entry-content > :last-child {
  margin-bottom: 0;
}
/* SSV ABOUT SPACING END */