/* Shared styles for lineage/kickboxing/jiu-jitsu/mma pages to match index/testimonials visual system */

body.program-page .white-rectangle,
body.program-page .inner-section,
body.program-page .inner-section-pay,
body.program-page .content-wrapper {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.program-page .inner-section {
  max-width: 1060px;
  margin: 0 auto;
  padding: clamp(22px, 3vw, 38px) 20px 46px;
}

body.program-page .inner-section-pay {
  max-width: 1060px;
  margin: 0 auto;
  padding: clamp(22px, 3vw, 38px) 20px 46px;
}

body.program-page .inner-title,
body.program-page h2,
body.program-page h3 {
  color: #f9fbff !important;
  text-align: center;
}

body.program-page h2 {
  max-width: 900px;
  margin: 34px auto 14px;
  font-size: clamp(22px, 2.8vw, 30px);
  line-height: 1.2;
}

body.program-page h1 {
  color: #f9fbff !important;
  font-size: clamp(24px, 4vw, 32px);
  line-height: 1.3;
}

body.program-page .program-seo-title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

body.program-page p,
body.program-page li,
body.program-page .credential-note {
  color: #dce6ff !important;
  line-height: 1.75;
  background: transparent !important;
}

body.program-page .program-lede {
  font-size: clamp(1rem, 1.4vw, 1.08rem);
}

body.program-page .lineage_div,
body.program-page .content-card,
body.program-page .instruct_bio,
body.program-page .competition-resources-simple,
body.program-page .program-cta,
body.program-page:not(.contact-page) .inner-section > p {
  background: linear-gradient(180deg, rgba(18, 25, 41, 0.78) 0%, rgba(10, 15, 27, 0.78) 100%);
  border: 1px solid rgba(254, 229, 0, 0.74);
  border-radius: 8px;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);
  padding: clamp(26px, 3.4vw, 38px);
  margin: 0 auto 24px;
}

body.program-page .inner-section > p {
  max-width: 900px;
}

body.program-page .content-card p {
  margin: 0 0 12px;
}

body.program-page .content-card,
body.program-page .lineage_div,
body.program-page .instruct_bio,
body.program-page .program-cta {
  max-width: 900px;
  margin-inline: auto;
}

body.program-page .content-card p:last-child {
  margin-bottom: 0;
}

body.program-page .program-copy {
  max-width: 900px;
  margin: 0 auto 22px;
}

body.program-page .program-copy.content-card {
  margin-bottom: 26px;
}

body.program-page .program-copy p {
  margin: 0 0 14px;
  text-align: left !important;
}

body.program-page .program-copy p:last-child {
  margin-bottom: 0;
}

body.program-page .lineage_div,
body.program-page .instruct_bio {
  text-align: left;
}

body.program-page .lineage_div p,
body.program-page .lineage_div li,
body.program-page .instruct_bio p,
body.program-page .instruct_bio li {
  text-align: left !important;
}

body.program-page .credential-note {
  display: block;
  width: 100%;
  text-align: center !important;
}

body.program-page .lineage_div p.credential-note {
  text-align: center !important;
}

body.jjsubwrestling-page .inner-section p {
  text-align: left !important;
}

body.kickboxing-page .content-card p {
  text-align: left !important;
}

body.mma-page .inner-section p {
  text-align: left !important;
}

body.program-page main a { color: #fee500; }
body.program-page main a:hover { color: #fff; }

body.program-page .competition-resources-simple strong {
  color: #f9fbff !important;
}

body.program-page .competition-resources-simple,
body.program-page .competition-resources-simple p {
  text-align: left !important;
}

body.program-page .competition-resources-simple {
  width: min(100%, 900px);
  max-width: 100%;
  margin-inline: auto;
}

body.program-page .competition-resources-simple h3 {
  margin: 0 0 1rem;
}

body.program-page .competition-resources-simple ul {
  margin: 0;
  padding-left: 1.25rem;
}

body.program-page .competition-resources-simple li {
  margin: 0 0 0.8rem;
  line-height: 1.6;
}

body.program-page .competition-resources-simple li:last-child {
  margin-bottom: 0;
}

body.program-page .competition-resources-simple a {
  color: #fee500 !important;
}

body.program-page .center {
  display: block;
  width: min(100%, 960px);
  height: auto;
  border-radius: 10px;
  border: 1px solid rgba(254, 229, 0, 0.72);
  box-shadow: var(--site-card-shadow, 0 6px 18px rgba(0, 0, 0, 0.35));
  margin: 0 auto 26px;
  object-fit: cover;
}

body.program-page .button-container {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

body.program-page .schedule-button {
  display: inline-block;
  background: #fee500;
  color: #101522 !important;
  padding: 14px 36px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 700;
  box-shadow: 0 12px 22px rgba(0, 0, 0, 0.22);
  transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

body.program-page .schedule-button:hover {
  background: #fff07a;
  box-shadow: 0 16px 28px rgba(0, 0, 0, 0.3);
  transform: translateY(-1px);
}

body.program-page .program-cta {
  margin-top: 34px;
  text-align: center;
}

body.program-page .program-cta h2 {
  margin-top: 0;
}

body.program-page .program-cta p {
  max-width: 680px;
  margin: 0 auto 18px;
  text-align: center !important;
}

/* Class payment page */
body.program-page .payment-discount-callout {
  max-width: min(100%, 760px);
  margin: 8px auto 18px;
}

body.program-page .payment-intro,
body.program-page .payment-section-intro {
  max-width: 760px;
  margin: 0 auto 20px;
  text-align: center;
}

body.program-page .payment-help {
  max-width: 900px;
  margin-inline: auto;
}

body.program-page .payment-help h2,
body.program-page .payment-overview-card h3 {
  margin-top: 0;
}

body.program-page .payment-frequency-grid,
body.program-page .payment-overview-grid {
  display: grid;
  gap: 14px;
}

body.program-page .payment-frequency-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 18px 0;
}

body.program-page .payment-frequency-item {
  background: rgba(10, 14, 24, 0.45);
  border: 1px solid var(--site-border, #3a4f7a);
  border-radius: 10px;
  padding: 14px;
  text-align: center;
}

body.program-page .payment-frequency-item strong,
body.program-page .payment-frequency-item span {
  display: block;
}

body.program-page .payment-frequency-item strong {
  color: #f9fbff;
  margin-bottom: 4px;
}

body.program-page .payment-frequency-item span {
  color: #dce6ff;
  line-height: 1.45;
}

body.program-page .payment-frequency-item.is-recurring {
  border-color: #fee500;
}

body.program-page .payment-frequency-item.is-one-time {
  border-color: var(--site-hover, #5f82c9);
}

body.program-page .payment-subscription-alert,
body.program-page .payment-billing-reminder {
  background: rgba(254, 229, 0, 0.12);
  border: 1px solid rgba(254, 229, 0, 0.75);
  border-radius: 10px;
  color: #fff7b0 !important;
  line-height: 1.6;
  text-align: center;
}

body.program-page .payment-subscription-alert {
  max-width: 820px;
  margin: 18px auto 0;
  padding: 16px 18px;
}

body.program-page .payment-billing-reminder {
  max-width: 820px;
  margin: 0 auto 18px;
  padding: 12px 16px;
}

body.program-page .payment-subscription-alert strong,
body.program-page .payment-billing-reminder strong {
  color: #fee500;
}

body.program-page .payment-note {
  max-width: 760px;
  margin: 10px auto 0;
  text-align: center;
}

body.program-page .payment-overview-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 1060px;
  margin: 0 auto 24px;
}

body.program-page .payment-overview-card {
  margin-bottom: 0;
  text-align: center;
}

body.program-page .payment-overview-card p {
  margin: 0;
}

body.program-page .payment-section {
  max-width: 1060px;
  margin: 0 auto 28px;
}

body.program-page .payment-section-kicker {
  color: #fee500 !important;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin: 0 0 6px;
  text-align: center;
  text-transform: uppercase;
}

body.program-page .payment-section stripe-pricing-table {
  display: block;
  overflow: hidden;
  border-radius: 10px;
}

body.program-page .payment-table-placeholder {
  background: rgba(14, 20, 34, 0.62);
  border: 1px dashed rgba(254, 229, 0, 0.72);
  border-radius: 8px;
  color: #dce6ff;
  display: grid;
  gap: 8px;
  margin: 0 auto 18px;
  max-width: 860px;
  padding: 18px;
  text-align: left;
}

body.program-page .payment-table-placeholder strong {
  color: #f9fbff;
}

body.program-page .payment-table-placeholder code {
  background: rgba(0, 0, 0, 0.35);
  border-radius: 6px;
  color: #fff7b0;
  display: block;
  font-size: 0.86rem;
  line-height: 1.5;
  overflow-x: auto;
  padding: 10px 12px;
  white-space: nowrap;
}

@media (max-width: 900px) {
  body.program-page .payment-overview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  body.program-page .payment-frequency-grid,
  body.program-page .payment-overview-grid {
    grid-template-columns: 1fr;
  }

  body.program-page .image-item {
    flex-basis: 100%;
  }
}

/* Links/partners cards */
body.program-page .image-item {
  background: linear-gradient(180deg, rgba(18, 25, 41, 0.78) 0%, rgba(10, 15, 27, 0.78) 100%);
  border: 1px solid rgba(254, 229, 0, 0.72);
  border-radius: 8px;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);
  color: var(--site-text-soft, #dce6ff);
  flex: 0 1 calc(33.333% - 18px);
  padding: 16px;
}

body.program-page .image-item:hover {
  border-color: var(--site-hover, #7eb0ff);
  box-shadow: var(--site-card-shadow-hover, 0 10px 24px rgba(0, 0, 0, 0.45));
}

body.program-page .image-item a {
  color: inherit;
  text-decoration: none;
}

body.program-page .image-item p {
  color: var(--site-text-soft, #dce6ff) !important;
  background: transparent !important;
  font-size: 0.96rem;
  line-height: 1.45;
  text-align: center;
}

body.program-page .image-grid {
  gap: 18px;
  justify-content: center;
}

body.program-page .image-item img {
  display: block;
  margin: 0 auto 12px;
  max-height: 140px;
  object-fit: contain;
}

@media (max-width: 600px) {
  body.links-page .image-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  body.links-page .image-item {
    flex: initial;
    padding: 14px 12px;
  }

body.links-page .image-item p {
  font-size: 1rem;
  line-height: 1.4;
  max-width: 42ch;
  overflow-wrap: break-word;
}

@supports (text-wrap: pretty) {
  body.links-page .image-item p {
    text-wrap: pretty;
  }
}

  body.links-page .image-item img {
    max-height: 96px;
  }
}

@media (max-width: 430px) {
  body.links-page .image-grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: 260px;
    margin-inline: auto;
  }

  body.links-page .image-item {
    padding: 16px 14px;
  }
}

/* Embedded forms/maps/calendars */
body.program-page iframe,
body.program-page .container,
body.program-page .two-column-container,
body.program-page .calendar-container,
body.program-page .actions-container,
body.program-page #dailysched,
body.program-page #frameCogWaiv {
  background: var(--site-surface-soft, #1a2236) !important;
  border: 1px solid rgba(254, 229, 0, 0.72) !important;
  color: var(--site-text-soft, #dce6ff) !important;
  border-radius: 10px !important;
}

body.program-page #frameCogWaiv {
  display: block;
  margin: 0 auto 28px;
  max-width: 960px;
  min-height: 780px;
  width: 100%;
}

body.program-page .waiver-intro,
body.program-page .waiver-next-step {
  max-width: 900px;
  text-align: center !important;
}

body.program-page .waiver-next-step {
  margin-top: 28px !important;
}

body.program-page .location a,
body.program-page .day,
body.program-page .time,
body.program-page #day-info-title,
body.program-page #day-info-content {
  color: var(--site-text-soft, #dce6ff) !important;
}

body.program-page p.payment-note {
  text-align: center !important;
}

body.program-page .payment-help p.payment-note {
  text-align: center !important;
}

body.program-page section.content-card.payment-help p {
  text-align: center !important;
}

/* Blog page */
body.blog-page .blog-intro {
  max-width: 900px;
  margin: 0 auto 22px;
  text-align: center;
}

body.blog-page .blog-feature {
  max-width: 960px;
  margin-inline: auto;
}

body.blog-page .blog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 20px auto;
  max-width: 1060px;
}

body.blog-page .blog-card {
  margin-bottom: 0;
}

body.blog-page .blog-card h2,
body.blog-page .blog-feature h2 {
  line-height: 1.3;
  margin-top: 0;
}

body.blog-page .blog-card h2 a {
  color: var(--site-text, #f9fbff) !important;
  text-decoration: none;
}

body.blog-page .blog-card h2 a:hover,
body.blog-page .blog-read-more:hover {
  color: #fff !important;
}

body.blog-page .blog-card p,
body.blog-page .blog-feature p {
  text-align: left !important;
}

body.blog-page .blog-article,
body.blog-page .blog-article h2,
body.blog-page .blog-article p,
body.blog-page article.inner-section > p {
  text-align: left !important;
}

body.blog-page .blog-read-more {
  color: #fee500 !important;
  display: inline-block;
  font-weight: 700;
  margin-top: 10px;
  text-decoration: none;
}

body.blog-page .blog-article {
  max-width: 920px;
  margin-inline: auto;
}

body.blog-page .inner-section {
  padding-top: clamp(22px, 3vw, 38px);
}

body.blog-page .content-card.blog-article:first-of-type,
body.blog-page .content-card.blog-card:first-of-type {
  margin-top: 0;
}

body.blog-page .blog-article h2 {
  margin-top: 0;
}

body.blog-page .button-container {
  gap: 12px;
  flex-wrap: wrap;
}

@media (max-width: 900px) {
  body.blog-page .blog-grid {
    grid-template-columns: 1fr;
  }
}

/* Contact page embed sizing */
body.contact-page .inner-section {
  max-width: 1080px;
  padding-inline: 20px;
}

body.contact-page .contact-intro,
body.contact-page .contact-note {
  max-width: 760px;
  margin: 0 auto 24px;
  text-align: center !important;
}

body.contact-page .contact-methods {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 8px auto 34px;
  max-width: 980px;
}

body.contact-page .contact-method {
  border: 1px solid rgba(254, 229, 0, 0.72);
  border-radius: 8px;
  padding: 16px;
  text-align: center;
  text-decoration: none;
  background: rgba(14, 20, 34, 0.54);
}

body.contact-page .contact-method strong,
body.contact-page .contact-method span {
  display: block;
}

/* About page */
body.about-page .inner-section {
  max-width: 1100px;
}

body.about-page .about-section {
  margin: 0 auto 30px;
}

body.about-page .about-section:last-child {
  margin-bottom: 0;
}

body.about-page .about-container {
  background: linear-gradient(180deg, rgba(18, 25, 41, 0.78) 0%, rgba(10, 15, 27, 0.78) 100%);
  border: 1px solid rgba(254, 229, 0, 0.74);
  border-radius: 8px;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);
  max-width: 1060px;
  margin: 0 auto;
  padding: clamp(24px, 3.4vw, 36px) clamp(18px, 3vw, 28px);
}

body.about-page .about-section h1,
body.about-page .about-section h2 {
  color: #f9fbff !important;
  text-align: center;
  margin: 0 0 10px;
}

body.about-page .about-section h1 {
  font-size: clamp(24px, 4vw, 32px);
  line-height: 1.3;
}

body.about-page .about-section h2 {
  font-size: clamp(20px, 2.8vw, 30px);
}

body.about-page .about-text,
body.about-page .team-intro,
body.about-page .cta-text {
  background: transparent !important;
}

body.about-page .about-text p,
body.about-page .team-intro,
body.about-page .cta-text {
  font-size: 1.05rem;
  line-height: 1.75;
  color: #dce6ff !important;
  text-align: left !important;
  max-width: 900px;
  margin: 0 auto 1rem;
}

body.about-page .about-text p:last-child,
body.about-page .team-intro:last-child,
body.about-page .cta-text:last-child {
  margin-bottom: 0;
}

body.about-page .about-text {
  background: linear-gradient(180deg, rgba(18, 25, 41, 0.78) 0%, rgba(10, 15, 27, 0.78) 100%);
  border: 1px solid rgba(254, 229, 0, 0.74);
  border-radius: 8px;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);
  padding: clamp(20px, 3vw, 28px);
}

body.about-page .philosophy-grid,
body.about-page .team-grid {
  display: grid;
  gap: 20px;
}

body.about-page .philosophy-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.about-page .team-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.about-page .philosophy-card,
body.about-page .team-card {
  background: linear-gradient(180deg, rgba(18, 25, 41, 0.78) 0%, rgba(10, 15, 27, 0.78) 100%);
  border: 1px solid rgba(254, 229, 0, 0.74);
  border-radius: 8px;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);
  transition: border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

body.about-page .philosophy-card:hover,
body.about-page .team-card:hover {
  border-color: #fff07a;
  transform: translateY(-3px);
  box-shadow: var(--site-card-shadow-hover, 0 10px 22px rgba(0, 0, 0, 0.45));
}

body.about-page .philosophy-card {
  padding: 24px 18px;
  text-align: left;
}

body.about-page .team-card {
  padding: 18px 14px;
  text-align: left;
}

body.about-page .philosophy-card h3,
body.about-page .team-card h3 {
  color: #f9fbff !important;
  margin-bottom: 8px;
  text-align: center;
}

body.about-page .philosophy-card p,
body.about-page .team-card p:last-child,
body.about-page .team-role {
  color: #dce6ff !important;
  background: transparent !important;
}

body.about-page .team-intro {
  margin-bottom: 1.8rem;
}

body.about-page .team-role {
  font-size: 0.84rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  text-align: center !important;
}

body.about-page .cta-buttons {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

body.about-page .btn {
  display: inline-block;
  padding: 14px 36px;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.15s ease;
}

body.about-page .btn-primary {
  background: #fee500 !important;
  color: #101522 !important;
}

body.about-page .btn-primary:hover {
  background: #fff07a !important;
  transform: translateY(-2px);
}

body.about-page .btn-secondary {
  background: transparent;
  color: #fee500 !important;
  border: 1px solid rgba(254, 229, 0, 0.74);
}

body.about-page .btn-secondary:hover {
  background: var(--site-surface-deep, #203050);
  transform: translateY(-2px);
}

body.about-page .about-team-cta {
  margin-top: 2rem;
}

@media (max-width: 980px) {
  body.about-page .philosophy-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.about-page .team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  body.about-page .about-section {
    margin-bottom: 22px;
  }

  body.about-page .philosophy-grid,
  body.about-page .team-grid {
    grid-template-columns: 1fr;
  }

  body.about-page .cta-buttons {
    flex-direction: column;
    align-items: center;
  }

  body.about-page .btn {
    width: 100%;
    max-width: 280px;
    text-align: center;
  }
}

body.contact-page .contact-method strong {
  color: #f9fbff;
  margin-bottom: 6px;
}

body.contact-page .contact-method span {
  color: #dce6ff;
}

body.contact-page .contact-form-shell {
  background: #ffffff;
  border-radius: 8px;
  padding: 0 0 0 20px;
  margin: 0 auto 24px;
  max-width: 960px;
  overflow: hidden;
}

body.contact-page #frameCogCont {
  display: block;
  width: 100%;
  min-height: 760px;
  margin: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.contact-page iframe[src*="google.com/maps"] {
  display: block;
  width: 100%;
  max-width: 960px;
  margin: 0 auto 30px;
}

@media (max-width: 760px) {
  body.contact-page .contact-methods {
    grid-template-columns: 1fr;
  }
}
