/* SCC page corrections. Loaded after the original page and visual-control CSS. */

/* The shared fixed header already reserves body space. Anchored headings need
   their own clearance, including theme pages and the WordPress admin bar. */
html { scroll-padding-top: 108px; }
body.scc-global-nav-active [id]:not(#scc-global-header):not(#scc-global-menu),
body.scc-global-nav-active .scc-home section,
body.scc-global-nav-active .scc-athlete section,
body.scc-global-nav-active .scc-team section {
  scroll-margin-top: calc(var(--sg-height, 68px) + 32px) !important;
}
body.admin-bar.scc-global-nav-active [id]:not(#scc-global-header):not(#scc-global-menu) {
  scroll-margin-top: calc(var(--sg-height, 68px) + 78px) !important;
}

/* A theme colour override makes these three dark sections pale. Pair their
   actual pale background with dark headings, copy, labels, numbers and arrows. */
.scc-athlete .sa-process,
.scc-executive .se-process,
.scc-personal .sp-process {
  background: #f7f7f5 !important;
  color: #19352d !important;
}
:is(.scc-athlete .sa-process, .scc-executive .se-process,
    .scc-personal .sp-process) :is(h2, h3, strong, li) {
  color: #19352d !important;
  text-shadow: none !important;
}
:is(.scc-athlete .sa-process, .scc-executive .se-process,
    .scc-personal .sp-process) :is(p, small) {
  color: #3b453d !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
:is(.scc-athlete .sa-process, .scc-executive .se-process,
    .scc-personal .sp-process) :is(.sa-eyebrow, .se-eyebrow, .sp-eyebrow) {
  color: #355b41 !important;
}
:is(.scc-athlete .sa-process, .scc-executive .se-process,
    .scc-personal .sp-process) :is(.sa-process__steps, .se-process__steps, .sp-process__steps) li {
  border-color: #aabbaa !important;
}
:is(.scc-athlete .sa-process, .scc-executive .se-process,
    .scc-personal .sp-process) :is(.sa-process__steps, .se-process__steps, .sp-process__steps) li span {
  color: #3b6246 !important;
}
:is(.scc-athlete .sa-process, .scc-executive .se-process,
    .scc-personal .sp-process) :is(.sa-process__steps, .se-process__steps, .sp-process__steps) li::after {
  color: #385b40 !important;
  background: #f7f7f5 !important;
}
.scc-academy .ac-vision__number { color: #58725f !important; }

/* Site-wide mobile text flow: only editorial grids and tables are stacked.
   Navigation, galleries and media controls keep their own layouts. */
@media (max-width: 767px) {
  html { scroll-padding-top: 88px; }
  body.scc-global-nav-active { overflow-x: clip; }
  :is(.scc-home, .scc-pco, .scc-athlete, .scc-executive,
      .scc-personal, .scc-corporate, .scc-team,
      .scc-community, .scc-academy) :is(h1, h2, h3, p, li, td, th) {
    min-width: 0;
    max-width: 100%;
    word-break: normal !important;
    overflow-wrap: break-word;
    white-space: normal;
  }
  :is(.scc-home, .scc-pco, .scc-athlete, .scc-executive,
      .scc-personal, .scc-corporate, .scc-team,
      .scc-community, .scc-academy) :is(table, tbody, tr, td, th) {
    max-width: 100%;
  }
  body.scc-global-nav-active :is(.scc-home, .scc-pco, .scc-athlete,
      .scc-executive, .scc-personal, .scc-corporate, .scc-team,
      .scc-community, .scc-academy) :is(section, h1, h2, h3)[id] {
    scroll-margin-top: 88px !important;
  }
  body.admin-bar.scc-global-nav-active :is(.scc-home, .scc-pco, .scc-athlete,
      .scc-executive, .scc-personal, .scc-corporate, .scc-team,
      .scc-community, .scc-academy) :is(section, h1, h2, h3)[id] {
    scroll-margin-top: 134px !important;
  }

  /* On these two photo-first heroes the mobile image becomes a separate
     panel, exposing a light copy panel beneath it. */
  .scc-personal .sp-hero,
  .scc-community .co-hero {
    background: #f7f7f4 !important;
    color: #19352d !important;
  }
  :is(.scc-personal .sp-hero__content, .scc-community .co-hero__inner)
    :is(h1, h2, p, small, span, .sp-eyebrow, .co-eyebrow) {
    color: #19352d !important;
    text-shadow: none !important;
  }
  .scc-personal .sp-hero__content .sp-button,
  .scc-community .co-hero__inner .co-button {
    color: #162a21 !important;
  }
}

/* Athlete concerns: real number / heading / explanation elements. */
.scc-athlete .sa-concerns__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.scc-athlete .sa-concerns__cards li { min-width: 0; word-break: normal; overflow-wrap: break-word; }
.scc-athlete .sa-concerns__cards .sa-concerns__number {
  display: block;
  color: #526c57;
  margin: 0 0 18px;
  font: 700 12px/1.4 Arial, sans-serif;
}
.scc-athlete .sa-concerns__cards h3 {
  margin: 0;
  color: #18382c;
  font-size: clamp(16px, 1.35vw, 20px);
  font-weight: 700;
  line-height: 1.6;
}
.scc-athlete .sa-concerns__cards p {
  margin: 12px 0 0;
  color: #3e4940;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.8;
}

/* Season-long cycle: the description belongs to each named step. */
.scc-team .st-cycle__steps--clear li { min-width: 0; }
.scc-team .st-cycle__steps--clear .st-cycle__number {
  display: block;
  flex: none;
  color: #dec78d !important;
  font: 700 12px/1.4 Arial, sans-serif;
}
.scc-team .st-cycle__step-text { min-width: 0; }
.scc-team .st-cycle__step-text strong {
  display: block;
  color: #fff;
  font-size: clamp(17px, 1.7vw, 23px);
  line-height: 1.45;
}
.scc-team .st-cycle__step-text small {
  display: block;
  margin-top: 8px;
  color: #e1e9df !important;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
}
.scc-team .st-cycle__loop {
  margin-top: 26px !important;
  color: #e1cd9d !important;
  font-size: 13px !important;
  font-weight: 650;
  line-height: 1.8 !important;
  text-align: right;
}
.scc-team .st-cycle__loop span { font-size: 23px; vertical-align: -2px; }

/* Four distinct functions branch from the team's current position and goal. */
.scc-team .st-role { background: #eff2ed !important; color: #19352d !important; }
.scc-team .st-role > .st-shell > h2 { max-width: 970px; color: #19352d !important; }
.scc-team .st-role > .st-shell > h2 i { color: #517056 !important; }
.scc-team .st-role__intro { max-width: 780px; margin: 32px 0 42px; }
.scc-team .st-role__intro h3,
.scc-team .st-role__explain h3 { color: #19352d !important; font-size: clamp(20px, 2.2vw, 29px); }
.scc-team .st-role__intro p,
.scc-team .st-role__explain p { color: #3b453d !important; margin-top: 16px; line-height: 1.95; }
.scc-team .st-role__model {
  position: relative;
  width: 100%;
  max-width: 1120px;
  min-height: 580px;
  margin: 0 auto;
  padding: 42px 45px;
  box-sizing: border-box;
  background: #dce6db;
  overflow: hidden;
  isolation: isolate;
}
.scc-team .st-role__model * { box-sizing: border-box; }
.scc-team .st-role__lines {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  fill: none;
  stroke: #668874;
  stroke-width: 2.5;
}
.scc-team .st-role__functions {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(170px, auto));
  column-gap: 30%;
  row-gap: 142px;
  z-index: 1;
}
.scc-team .st-role__function {
  min-width: 0;
  padding: 24px;
  border: 1px solid #b6c9b6;
  background: #fbfcf9;
  color: #18342d;
}
.scc-team .st-role__function span {
  display: block;
  color: #53715b;
  font: 700 11px/1.4 Arial, sans-serif;
  letter-spacing: .11em;
}
.scc-team .st-role__function strong {
  display: block;
  margin-top: 12px;
  color: #173b2a;
  font-size: 20px;
  line-height: 1.5;
}
.scc-team .st-role__function p {
  margin: 8px 0 0 !important;
  color: #3b483f !important;
  font-size: 13px;
  line-height: 1.7;
}
.scc-team .st-role__core {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 248px;
  min-height: 205px;
  padding: 22px;
  border: 6px solid #dce6db;
  background: #19382c;
  text-align: center;
  color: #fff;
}
.scc-team .st-role__core small { color: #dfcf9e; font: 700 10px/1.5 Arial, sans-serif; letter-spacing: .15em; }
.scc-team .st-role__core strong { color: #fff; margin-top: 10px; font-size: 21px; line-height: 1.55; }
.scc-team .st-role__core strong span { color: #dfcf9e; }
.scc-team .st-role__explain { max-width: 870px; margin: 43px auto 0; }
.scc-team .st-role__explain p strong { color: #173b2a; font-size: 20px; }

@media (max-width: 900px) {
  .scc-team .st-role__model { min-height: 500px; padding: 28px; }
  .scc-team .st-role__functions { column-gap: 26%; row-gap: 110px; grid-template-rows: repeat(2, minmax(150px, auto)); }
  .scc-team .st-role__function { padding: 18px; }
  .scc-team .st-role__function strong { font-size: 17px; }
  .scc-team .st-role__core { width: 205px; min-height: 180px; }
}

@media (max-width: 900px) {
  .scc-athlete .sa-concerns__cards {
    display: block !important;
    width: 100% !important;
    border: 0 !important;
  }
  .scc-athlete .sa-concerns__cards li {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 0 10px !important;
    padding: 20px 21px 22px !important;
    border: 1px solid #b2c1b2 !important;
    background: #fafbf8;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  .scc-athlete .sa-concerns__cards .sa-concerns__number {
    display: block !important;
    margin: 0 0 10px !important;
    color: #3d6148 !important;
    font-size: 13px !important;
  }
  .scc-athlete .sa-concerns__text { display: block; width: 100%; min-width: 0; }
  .scc-athlete .sa-concerns__cards h3 {
    font-size: clamp(18px, 5vw, 21px) !important;
    line-height: 1.55 !important;
    letter-spacing: .015em;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  .scc-athlete .sa-concerns__cards p { margin-top: 9px !important; font-size: 14px !important; line-height: 1.75 !important; }

  .scc-team .st-cycle__steps--clear { display: block !important; border-left: 0 !important; }
  .scc-team .st-cycle__steps--clear li {
    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 14px !important;
    min-height: 92px !important;
    padding: 16px 14px !important;
    border-right: 0 !important;
    white-space: normal !important;
  }
  .scc-team .st-cycle__steps--clear .st-cycle__number { font-size: 13px !important; }
  .scc-team .st-cycle__step-text { display: block; min-width: 0; }
  .scc-team .st-cycle__step-text strong {
    font-size: clamp(20px, 5.5vw, 24px) !important;
    line-height: 1.45 !important;
    white-space: normal !important;
    word-break: keep-all !important;
  }
  .scc-team .st-cycle__step-text small { margin-top: 4px; font-size: 13px !important; line-height: 1.6 !important; }
  .scc-team .st-cycle__steps--clear li:not(:last-child)::after {
    content: '↓' !important;
    top: auto !important;
    right: 13px !important;
    bottom: -14px !important;
    font-size: 20px !important;
    background: #10251f !important;
  }
  .scc-team .st-cycle__loop { margin-top: 23px !important; text-align: left; font-size: 13px !important; }

  .scc-team .st-role__intro { margin: 22px 0 28px; }
  .scc-team .st-role__intro h3, .scc-team .st-role__explain h3 { font-size: 20px; line-height: 1.6; }
  .scc-team .st-role__model {
    width: 100%;
    min-width: 0;
    min-height: 0;
    max-width: 550px;
    padding: 20px;
    overflow: visible;
  }
  .scc-team .st-role__lines { display: none; }
  .scc-team .st-role__core {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    width: 100%;
    min-height: 150px;
    border: 0;
    padding: 23px 15px;
  }
  .scc-team .st-role__core::after {
    content: '↓';
    position: absolute;
    bottom: -31px;
    left: calc(50% - 10px);
    color: #2e5a3e;
    font-size: 24px;
    line-height: 1;
  }
  .scc-team .st-role__core strong { font-size: 21px; }
  .scc-team .st-role__functions {
    display: block;
    margin: 40px 0 0 13px;
    padding: 0 0 0 22px;
    border-left: 2px solid #6c9877;
  }
  .scc-team .st-role__function {
    position: relative;
    min-width: 0;
    min-height: 0;
    margin: 0 0 12px;
    padding: 17px 18px;
  }
  .scc-team .st-role__function:last-child { margin-bottom: 0; }
  .scc-team .st-role__function::before {
    content: '';
    position: absolute;
    top: 32px;
    left: -24px;
    width: 22px;
    border-top: 2px solid #6c9877;
  }
  .scc-team .st-role__function span { font-size: 11px; }
  .scc-team .st-role__function strong { font-size: 18px; }
  .scc-team .st-role__function p { font-size: 13px; }
  .scc-team .st-role__explain { margin: 30px auto 0; }
  .scc-team .st-role__explain p strong { font-size: 18px; }
}
