/* Readability pass, September 2026.
 * Keep the imported content and artwork; replace pixel-locked text geometry.
 * Scoped after site.css so archived Wix fidelity rules cannot shrink mobile copy.
 */
:root {
  --gps-copy-size: clamp(1rem, 0.96rem + 0.15vw, 1.0625rem);
  --gps-small-size: 0.875rem;
  --gps-title-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.25rem);
  --gps-section-size: clamp(1.5rem, 1.15rem + 1.5vw, 2rem);
}

/* Actual, unscaled type on a shared centre line, including tablet widths. */
.gps-home-hero {
  display: grid;
  height: auto;
  min-height: 397px;
  padding: 24px 0 48px;
}

.gps-home-hero__inner {
  position: static;
  display: flex;
  height: auto;
  align-items: center;
  flex-direction: column;
}

.gps-home-hero__logo {
  position: static;
  display: grid;
  width: 200px;
  height: 190px;
  min-height: 0;
  place-items: center;
  margin: 0 0 20px;
  transform: none;
}

.gps-logo--hero {
  width: 200px;
  height: 190px;
  max-height: none;
  /* The source PNG includes generous transparent padding. Crop that padding,
   * not the logo itself, while keeping its original aspect ratio. */
  object-fit: cover;
  object-position: center 28%;
}

.gps-home-hero h1 {
  position: static;
  width: 100%;
  height: auto;
  margin: 0 0 18px;
  font-family: var(--gps-display);
  font-size: var(--gps-title-size);
  font-weight: 400;
  letter-spacing: 0.07em;
  line-height: 1.25;
  transform: none;
}

.gps-home-hero p {
  position: static;
  width: 100%;
  max-width: 960px;
  margin: 0;
  font-family: var(--gps-display);
  font-size: clamp(1.125rem, 0.875rem + 1.1vw, 1.75rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.45;
}

.gps-founder {
  height: auto;
  padding-block: 64px;
}

.gps-founder__inner {
  transform: none;
}

.gps-founder__title {
  left: auto;
  height: auto;
  font-family: var(--gps-display);
  font-size: var(--gps-section-size);
  letter-spacing: 0.08em;
  line-height: 1.3;
  transform: none;
}

.gps-founder__card {
  left: auto;
  width: 100%;
  height: auto;
  min-height: 0;
  padding: 28px;
}

.gps-founder__card h3 {
  margin-bottom: 12px;
  font-size: 1.25rem;
  line-height: 1.4;
}

#main-content .gps-founder__card p.gps-founder__subtitle {
  font-size: 1.125rem;
  line-height: 1.55;
}

.gps-founder__rule {
  margin-block: 20px 24px;
}

.gps-founder__biography {
  width: 100%;
  text-align: left;
}

.gps-news-band {
  height: auto;
  padding-block: 64px;
}

.gps-news-band__inner,
.gps-room__inner {
  width: min(100% - 40px, 980px);
  max-width: 980px;
}

.gps-news-band__inner h2,
.gps-room__inner h2 {
  height: auto;
  font-family: var(--gps-display);
  font-size: var(--gps-section-size);
  letter-spacing: 0.04em;
  line-height: 1.3;
  -webkit-text-stroke: 0;
  transform: none;
}

.gps-news-band__composition {
  width: 100%;
  height: auto;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  margin-inline: 0;
}

.gps-news-band__card {
  width: 100%;
  height: auto;
  min-height: 175px;
  margin: 0;
}

.gps-news-band__card p {
  font-size: clamp(1.25rem, 1rem + 0.6vw, 1.625rem);
  line-height: 1.55;
}

.gps-news-band__card .gps-news-band__season {
  height: auto;
  line-height: 1.5;
}

.gps-news-band__media {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 419 / 272;
  margin: 0;
}

.gps-news-band__media video {
  width: 100%;
  height: 100%;
}

.gps-news-band__link {
  width: 100%;
  height: auto;
  min-height: 44px;
  font-size: 1rem;
}

.gps-room {
  height: auto;
  padding-block: 54px;
}

#main-content .gps-room__inner > p:not(.gps-room__address) {
  margin-bottom: 12px;
  text-align: left;
}

.gps-room__address {
  font-size: clamp(1.125rem, 1rem + 0.4vw, 1.375rem);
  line-height: 1.5;
}

/* Long copy uses the existing, non-condensed Madefor Text face. Brand headings
 * keep their own faces. Never reduce body copy to fit a fixed-height box. */
#main-content :is(.gps-prose, .gps-founder__biography, .gps-room__inner,
  .gps-club-band__copy, .gps-page-hero__intro, .gps-discipline-row__copy,
  .gps-discipline-section__content, .gps-team-intro__copy, .gps-association-copy,
  .gps-actualites-event__body, .gps-article-content, .gps-fit-ladies-copy,
  .gps-legal-copy) :is(p, li) {
  font-family: var(--gps-body);
  font-size: var(--gps-copy-size);
  line-height: 1.65;
}

#main-content .gps-room__address {
  font-family: var(--gps-headline);
  font-size: clamp(1.125rem, 1rem + 0.4vw, 1.375rem);
}

#main-content :is(.gps-prose, .gps-association-copy) blockquote p {
  font-size: clamp(1.125rem, 1rem + 0.4vw, 1.25rem);
}

#main-content :is(.gps-button, .gps-text-link, .gps-eyebrow,
  .gps-club-band__link, .gps-disciplines-cta, .gps-discipline-intro__return,
  .gps-association-back, .gps-team-back a, .gps-planning-tabs a,
  .gps-post-meta, .gps-breadcrumbs, .gps-tags a,
  .gps-article-comments__status, .gps-article-share, .gps-post-navigation span,
  .gps-association-social-card figcaption, .gps-association-social-card > a > strong,
  .gps-association-copy cite, .gps-prose figcaption) {
  font-size: var(--gps-small-size);
  line-height: 1.5;
}

#main-content :is(.gps-button, .gps-club-band__link, .gps-disciplines-cta) {
  min-height: 44px;
  letter-spacing: 0.04em;
  white-space: normal;
}

#main-content :is(.gps-page-hero h1, .gps-discipline-intro h1,
  .gps-team-hero h1, .gps-association-hero h1, .gps-local-hero h1, .gps-legal-header h1,
  .gps-article-header h1) {
  height: auto;
  max-width: 100%;
  font-size: var(--gps-title-size);
  letter-spacing: 0.025em;
  line-height: 1.3;
  white-space: normal;
  transform: none;
}

#main-content :is(.gps-club-page, .gps-disciplines-page, .gps-pricing-page) > .gps-page-hero,
#main-content.gps-club-page > .gps-page-hero,
#main-content.gps-disciplines-page > .gps-page-hero,
#main-content.gps-pricing-page > .gps-page-hero {
  height: auto;
  min-height: 0;
  padding-block: 28px;
}

#main-content :is(.gps-page-hero__subtitle, .gps-team-hero p) {
  height: auto;
  font-size: 1.125rem;
  line-height: 1.5;
}

#main-content :is(.gps-discipline-row__card h2, .gps-discipline-section h2,
  .gps-team-intro__title, .gps-association-copy h3, .gps-schedule-info__copy h3) {
  height: auto;
  font-size: clamp(1.25rem, 1.05rem + 0.7vw, 1.5rem);
  line-height: 1.4;
}

.gps-club-band,
.gps-club-band__inner,
.gps-club-band--coaches .gps-club-band__content h2,
.gps-team-intro,
.gps-pricing-lead,
.gps-pricing-rates__body {
  height: auto;
}

.gps-discipline-row__copy {
  text-align: left;
}

#main-content .gps-discipline-intro {
  height: auto;
  min-height: 0;
  padding-block: 28px;
  overflow: visible;
}

#main-content .gps-discipline-summary {
  font-family: var(--gps-body);
  font-size: 1rem;
  line-height: 1.6;
}

#main-content .gps-discipline-section h2 {
  padding-block: 10px;
}

#main-content .gps-pricing-timeline__row {
  height: auto;
  min-height: 140px;
  padding-block: 18px;
}

.gps-pricing-lead {
  padding-block: 8px 32px;
}

#main-content .gps-pricing-lead p,
#main-content .gps-actualites-event__body p {
  margin-bottom: 0.7em;
}

#main-content .gps-schedule-session p {
  font-size: 1rem;
  line-height: 1.5;
}

#main-content .gps-schedule-info {
  height: auto;
  min-height: 357px;
  padding-bottom: 26px;
}

#main-content .gps-association-page > .gps-association-chapter:first-of-type blockquote,
#main-content.gps-association-page > .gps-association-chapter:first-of-type blockquote {
  height: auto;
}

#main-content .gps-association-copy blockquote cite {
  position: static;
  margin-top: 10px;
}

/* Editorial pages: one readable hierarchy on both the native blog and events. */
#main-content.gps-blog-index > .gps-page-hero--blog h1 {
  color: #fff;
  font-family: var(--gps-display);
}

#main-content.gps-blog-index .gps-post-card h2,
#main-content .gps-actualites-event__copy h2,
#main-content .gps-article-content h2,
#main-content .gps-related > .gps-container > h2 {
  font-size: var(--gps-section-size);
  line-height: 1.3;
}

#main-content .gps-article-content h3 {
  font-size: 1.375rem;
  line-height: 1.4;
}

#main-content .gps-post-card__body > p:not(.gps-post-meta) {
  display: block;
  overflow: visible;
  font-family: var(--gps-body);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-line-clamp: unset;
}

#main-content .gps-related .gps-post-card h2 {
  font-size: 1.25rem;
  line-height: 1.35;
}

#main-content .gps-actualites-event__inner {
  height: auto;
  min-height: 0;
  padding-block: 56px;
}

#main-content .gps-actualites-event__copy h2 {
  width: auto;
  min-height: 0;
  margin-bottom: 24px;
}

#main-content .gps-actualites-event :is(.gps-actualites-event__copy, .gps-actualites-event__media) {
  margin-top: 0;
}

.gps-actualites-lead figure {
  transform: none;
}

#main-content .gps-actualites-event__meta,
#main-content .gps-actualites-event__meta small,
#main-content .gps-actualites-event__meta strong {
  font-size: var(--gps-small-size);
  line-height: 1.5;
}

#main-content .gps-local-hero {
  height: auto;
  min-height: 0;
  padding-block: 32px;
}

#main-content .gps-local-hero__subtitle {
  height: auto;
  margin-top: 14px;
  font-size: clamp(1.125rem, 1rem + 0.8vw, 1.625rem);
  line-height: 1.4;
  transform: none;
}

#main-content .gps-local-intro {
  height: auto;
  padding-block: 28px;
}

#main-content .gps-local-editorial__content :is(h2, h4, blockquote, p) {
  height: auto;
}

#main-content .gps-local-editorial__content p {
  margin-bottom: 0.8em;
  text-align: left;
}

#main-content .gps-local-editorial__content > p:last-child a {
  height: auto;
  min-height: 44px;
}

/* Footer links must wrap when enlarged; retain the original grey background. */
.gps-footer-contact {
  height: auto;
  color: var(--gps-charcoal);
}

.gps-footer-grid {
  height: auto;
}

.gps-footer-sitemap,
.gps-footer-navigation a {
  width: auto;
  height: auto;
  font-family: var(--gps-body);
  font-size: var(--gps-small-size);
  line-height: 1.5;
}

.gps-footer-navigation li:nth-child(n) a {
  width: auto;
}

.gps-footer-address address p,
.gps-footer-address > p {
  font-family: var(--gps-body);
  font-size: 1rem;
  overflow-wrap: anywhere;
}

@media (min-width: 761px) {
  .gps-disciplines-page .gps-discipline-row {
    grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
    gap: 32px;
    align-items: center;
  }

  .gps-disciplines-page .gps-discipline-row--reverse {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.65fr);
  }

  .gps-founder__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 640px);
  }
}

@media (min-width: 981px) {
  /* Centre the text itself, not just its container. Keep this scoped to the
   * desktop home page so the other pages and mobile copy are unchanged. */
  #main-content.gps-home :is(h1, h2, h3, p),
  #main-content.gps-home .gps-room__inner > p {
    text-align: center;
  }

  #main-content.gps-home .gps-founder__rule {
    margin-inline: auto;
  }

  #main-content .gps-discipline-intro__inner,
  #main-content .gps-discipline-body > .gps-container {
    width: min(100% - 40px, 980px);
  }

  #main-content .gps-discipline-intro h1 {
    width: auto;
    margin-left: 0;
  }

  #main-content .gps-discipline-summary {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 32px;
    padding-left: 24px;
    margin-left: 0;
  }

  #main-content .gps-discipline-summary li:nth-child(3) {
    top: auto;
  }

  #main-content .gps-actualites-event__inner {
    width: min(100% - 40px, 980px);
    align-items: center;
  }

  #main-content .gps-actualites-event:nth-child(-n + 3) .gps-actualites-event__inner {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: 48px;
    padding-inline: 0;
  }

  #main-content .gps-actualites-event:nth-child(-n + 3) :is(.gps-actualites-event__copy, .gps-actualites-event__body, .gps-actualites-event__media) {
    width: 100%;
    margin-left: 0;
  }

  #main-content .gps-actualites-event--split .gps-actualites-event__inner {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr) minmax(0, 0.8fr);
    padding-inline: 0;
  }

  #main-content .gps-pricing-timeline__row {
    grid-template-columns: minmax(0, 0.4fr) minmax(0, 0.6fr);
  }
}

@media (max-width: 760px) {
  .gps-home-hero {
    min-height: 0;
    padding-block: 30px 40px;
  }

  .gps-home-hero__logo,
  .gps-logo--hero {
    width: 160px;
    height: 140px;
  }

  .gps-founder {
    padding-block: 42px;
  }

  .gps-founder__card {
    padding: 24px 20px;
  }

  .gps-news-band__composition {
    grid-template-columns: minmax(0, 1fr);
  }

  .gps-news-band__inner,
  .gps-room__inner {
    width: calc(100% - 30px);
  }

  .gps-news-band,
  .gps-room {
    padding-block: 42px;
  }

  #main-content .gps-blog-list {
    width: calc(100% - 30px);
    gap: 32px;
  }

  #main-content .gps-post-card {
    grid-template-columns: minmax(0, 1fr);
  }

  #main-content .gps-post-card__image {
    height: auto;
    min-height: 0;
    aspect-ratio: 8 / 5;
  }

  #main-content.gps-blog-index .gps-post-card__body {
    padding: 20px 0 24px;
  }

  #main-content .gps-related .gps-blog-grid--three {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  #main-content .gps-article-share {
    flex-wrap: wrap;
    padding-block: 12px;
  }

  #main-content :is(.gps-article-header, .gps-article-content, .gps-article-footer) {
    width: calc(100% - 40px);
  }

  #main-content .gps-actualites-event__inner,
  #main-content .gps-actualites-event--split .gps-actualites-event__inner {
    width: calc(100% - 30px);
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    padding-block: 36px;
  }

  #main-content .gps-actualites-event :is(.gps-actualites-event__media, .gps-actualites-event__copy) {
    grid-column: auto;
    grid-row: auto;
    order: initial;
  }

  #main-content .gps-actualites-event__copy {
    padding: 24px 20px;
  }

  #main-content .gps-actualites-event__media img {
    max-height: 420px;
  }

  #main-content .gps-page-hero__subtitle {
    font-size: 1rem;
  }

  #main-content .gps-pricing-timeline__row {
    min-height: 0;
  }

  #main-content .page-numbers {
    min-width: 40px;
    height: 40px;
    font-size: 1rem;
  }

  .gps-association-hero .gps-association-container {
    flex-wrap: wrap;
  }
}
