/* 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: 18px 20px 30px;
}

body.program-page .inner-section-pay {
  padding: 18px 20px 30px;
}

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

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

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 .lineage_div,
body.program-page .content-card,
body.program-page .instruct_bio,
body.program-page .competition-resources-simple,
body.program-page .inner-section > p {
  background: linear-gradient(180deg, var(--site-surface, #1f2a44) 0%, var(--site-surface-deep, #182033) 100%);
  border: 1px solid var(--site-border, #3a4f7a);
  border-radius: 10px;
  box-shadow: var(--site-card-shadow, 0 6px 18px rgba(0, 0, 0, 0.35));
  padding: 18px;
  margin-bottom: 18px;
}

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

body.program-page .content-card 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: fit-content;
  max-width: 100%;
  margin-inline: auto;
}

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

body.program-page .center {
  border-radius: 10px;
  border: 1px solid var(--site-border, #3a4f7a);
  box-shadow: var(--site-card-shadow, 0 6px 18px rgba(0, 0, 0, 0.35));
  margin-bottom: 20px;
}

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

body.program-page .schedule-button {
  display: inline-block;
  background: #3b78ee;
  color: #fff !important;
  padding: 14px 36px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 700;
}

body.program-page .schedule-button:hover {
  background: #2a5fd4;
}

/* 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(31, 42, 68, 0.75);
  border: 1px dashed var(--site-hover, #7eb0ff);
  border-radius: 10px;
  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;
  }
}

/* Links/partners cards */
body.program-page .image-item {
  background: linear-gradient(180deg, var(--site-surface, #1f2a44) 0%, var(--site-surface-deep, #182033) 100%);
  border: 1px solid var(--site-border, #3a4f7a);
  border-radius: 10px;
  box-shadow: var(--site-card-shadow, 0 6px 18px rgba(0, 0, 0, 0.35));
  color: var(--site-text-soft, #dce6ff);
  padding: 12px;
}

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;
  text-align: center;
}

/* 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 {
  background: var(--site-surface-soft, #1a2236) !important;
  border: 1px solid var(--site-border, #3a4f7a) !important;
  color: var(--site-text-soft, #dce6ff) !important;
  border-radius: 10px !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 .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: 1200px;
  padding-inline: 12px;
}

body.contact-page .contact-form-shell {
  background: #ffffff;
  border-radius: 10px;
  padding: 0 0 0 28px;
  margin: 0 auto 18px;
  max-width: 1000px;
  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: 1000px;
  margin: 0 auto;
}
