/* Edition detail styles — extracted from Bruno's 2026 page. All selectors are
   scoped under .smc-root so they never affect other templates. Loaded only on
   edition pages (see functions.php > sumoth_enqueue_edition_css). */

/* RESET — no margin/padding on wildcard, only box-sizing */
.smc-root { box-sizing: border-box; font-family: 'Montserrat', sans-serif; width: 100%; overflow-x: hidden; }
.smc-root * { box-sizing: border-box; font-family: 'Montserrat', sans-serif; }

/* SHARED */
.smc-eyebrow { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: #f68a33; margin-bottom: 16px; }
.smc-eyebrow--blue { color: #0078ba; }
.smc-section-title { font-size: clamp(26px,3.5vw,40px); font-weight: 700; color: #231f20; letter-spacing: -0.03em; line-height: 1.1; margin-bottom: 14px; }
.smc-section-lead { font-size: 15px; color: rgba(35,31,32,0.58); line-height: 1.7; max-width: 680px; margin-bottom: 48px; }

/* THE WEEK */
.smc-week { background: #0b347c; padding: 96px 40px; }
.smc-week__inner { max-width: 900px; margin: 0 auto; }
.smc-week__eyebrow { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: #f68a33; margin-bottom: 20px; }
.smc-week__title { font-size: clamp(30px,4.5vw,52px); font-weight: 700; color: #ffffff; line-height: 1.15; letter-spacing: -0.03em; margin-bottom: 40px; }
.smc-week__body p { font-size: 16px; color: rgba(255,255,255,0.65); line-height: 1.85; margin-bottom: 28px; }
.smc-week__body p:last-child { margin-bottom: 0; }
.smc-week__body strong { color: rgba(255,255,255,0.92); font-weight: 600; }
.smc-week__photo { width: 100%; border-radius: 12px; overflow: hidden; margin: 40px 0; background: rgba(255,255,255,0.06); border: 0.5px solid rgba(255,255,255,0.10); }
.smc-week__photo img { width: 100%; height: auto; display: block; aspect-ratio: 16/7; object-fit: cover; }
.smc-week__photo-ph { width: 100%; aspect-ratio: 16/7; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px; }
.smc-week__photo-ph-icon { font-size: 32px; opacity: 0.3; }
.smc-week__photo-ph-text { font-size: 11px; font-weight: 500; color: rgba(255,255,255,0.25); letter-spacing: 0.1em; text-transform: uppercase; }
.smc-week__photo-caption { padding: 12px 16px; font-size: 11px; color: rgba(255,255,255,0.35); font-style: italic; border-top: 0.5px solid rgba(255,255,255,0.08); }
.smc-week__photo-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 40px 0; }
.smc-week__photo-row .smc-week__photo { margin: 0; }
.smc-week__photo-row .smc-week__photo-ph { aspect-ratio: 4/3; }
.smc-week__photo-row .smc-week__photo img { aspect-ratio: 4/3; }
.smc-week__quote { border-left: 3px solid #f68a33; padding: 4px 0 4px 24px; margin: 36px 0; }
.smc-week__quote p { font-size: 18px; font-weight: 600; color: rgba(255,255,255,0.85); line-height: 1.55; letter-spacing: -0.01em; margin: 0; }
.smc-week__stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 32px 0; }
.smc-week__stat { background: rgba(255,255,255,0.07); border: 0.5px solid rgba(255,255,255,0.12); border-radius: 40px; padding: 8px 18px; display: flex; align-items: center; gap: 8px; }
.smc-week__stat-num { font-size: 16px; font-weight: 700; color: #f68a33; }
.smc-week__stat-label { font-size: 11px; font-weight: 500; color: rgba(255,255,255,0.50); letter-spacing: 0.04em; }

/* THE TEAM */
.smc-team { background: #f2f4f8; padding: 96px 40px; }
.smc-team__inner { max-width: 1200px; margin: 0 auto; }
.smc-team__eyebrow { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: #0078ba; margin-bottom: 16px; }
.smc-team__title { font-size: clamp(26px,3.5vw,42px); font-weight: 700; color: #231f20; letter-spacing: -0.03em; line-height: 1.1; margin-bottom: 14px; }
.smc-team__lead { font-size: 15px; color: rgba(35,31,32,0.58); line-height: 1.75; max-width: 680px; margin-bottom: 56px; }
.smc-team__grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(240px,1fr)); gap: 14px; margin-bottom: 64px; }
.smc-team__card { background: #ffffff; border-radius: 14px; border: 0px solid rgba(35,31,32,0.07); padding: 24px 22px; display: flex; flex-direction: column; gap: 5px; transition: transform 0.2s, box-shadow 0.2s; }
.smc-team__card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(11,52,124,0.08); }
.smc-team__card-tag { font-size: 9px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #f68a33; margin-bottom: 4px; }
.smc-team__card-name { font-size: 16px; font-weight: 700; color: #231f20; letter-spacing: -0.01em; }
.smc-team__card-role { font-size: 11px; color: rgba(35,31,32,0.45); line-height: 1.45; }
.smc-team__fvm { background: #0b347c; border-radius: 16px; padding: 48px 52px; margin-bottom: 64px; }
.smc-team__fvm-tag { display: inline-block; font-size: 9px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: #f68a33; border: 0.5px solid rgba(246,138,51,0.35); padding: 4px 12px; border-radius: 40px; margin-bottom: 16px; }
.smc-team__fvm-title { font-size: 24px; font-weight: 700; color: #ffffff; letter-spacing: -0.02em; margin-bottom: 14px; }
.smc-team__fvm-body { font-size: 14px; color: rgba(255,255,255,0.58); line-height: 1.8; max-width: 620px; }
.smc-team__fvm-body strong { color: #ffffff; font-weight: 600; }
.smc-team__fvm-names { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.smc-team__fvm-name { font-size: 11px; font-weight: 600; color: rgba(255,255,255,0.70); background: rgba(255,255,255,0.08); border: 0.5px solid rgba(255,255,255,0.15); padding: 5px 14px; border-radius: 40px; }
.smc-team__fvm-name.lead { color: #f68a33; background: rgba(246,138,51,0.10); border-color: rgba(246,138,51,0.30); }
.smc-team__partners-title { font-size: 20px; font-weight: 700; color: #231f20; letter-spacing: -0.02em; margin-bottom: 8px; }
.smc-team__partners-lead { font-size: 14px; color: rgba(35,31,32,0.55); line-height: 1.7; margin-bottom: 32px; max-width: 600px; }
.smc-team__partners { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; margin-bottom: 48px; }
.smc-team__partner { background: #ffffff; border-radius: 12px; border: 0.5px solid rgba(35,31,32,0.07); padding: 24px 22px; transition: transform 0.2s, box-shadow 0.2s; }
.smc-team__partner:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(11,52,124,0.08); }
/* Uniform logo band: every partner logo scales to the same height and a capped
   width, centered vertically, contained (never stretched) whatever its shape. */
.smc-team__partner-logo { height: 52px; margin-bottom: 16px; display: flex; align-items: center; justify-content: flex-start; }
.smc-team__partner-logo a { display: flex; align-items: center; height: 100%; }
.smc-team__partner-logo img { max-height: 100%; max-width: 170px; width: auto; height: auto; object-fit: contain; display: block; }
.smc-team__partner-logo-ph { height: 40px; min-width: 120px; background: rgba(35,31,32,0.04); border: 0.5px dashed rgba(35,31,32,0.15); border-radius: 6px; display: flex; align-items: center; justify-content: center; padding: 0 14px; font-size: 10px; font-weight: 500; color: rgba(35,31,32,0.30); letter-spacing: 0.06em; text-transform: uppercase; }
.smc-team__partner-name { font-size: 14px; font-weight: 700; color: #231f20; margin-bottom: 4px; letter-spacing: -0.01em; }
.smc-team__partner-role { font-size: 10.5px; color: #0078ba; font-weight: 500; margin-bottom: 10px; }
.smc-team__partner-desc { font-size: 11.5px; color: rgba(35,31,32,0.58); line-height: 1.6; }
.smc-team__partner-desc strong { color: #231f20; font-weight: 600; }
.smc-team__social-title { font-size: 20px; font-weight: 700; color: #231f20; letter-spacing: -0.02em; margin-bottom: 8px; }
.smc-team__social-lead { font-size: 14px; color: rgba(35,31,32,0.55); line-height: 1.7; margin-bottom: 28px; max-width: 600px; }
.smc-team__social-list { display: flex; flex-wrap: wrap; gap: 10px; }
.smc-team__social-item { background: #0b347c; color: rgba(255,255,255,0.80); font-size: 12px; font-weight: 600; padding: 8px 18px; border-radius: 40px; letter-spacing: 0.02em; }

/* TEAMS GRID */
.smc-teams { background: #ffffff; padding: 96px 40px; }
.smc-teams__inner { max-width: 1400px; margin: 0 auto; }
.smc-teams__eyebrow { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: #0078ba; margin-bottom: 16px; }
.smc-teams__title { font-size: clamp(26px,3.5vw,42px); font-weight: 700; color: #231f20; letter-spacing: -0.03em; line-height: 1.1; margin-bottom: 14px; }
.smc-teams__lead { font-size: 15px; color: rgba(35,31,32,0.58); line-height: 1.75; max-width: 680px; margin-bottom: 48px; }
.smc-teams__stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 2px; border-radius: 12px; overflow: hidden; margin-bottom: 48px; }
.smc-teams__stat { background: #0b347c; padding: 28px 24px; text-align: center; }
.smc-teams__stat-number { font-size: clamp(32px,4vw,48px); font-weight: 700; color: #ffffff; letter-spacing: -0.04em; line-height: 1; margin-bottom: 8px; }
.smc-teams__stat-number span { color: #f68a33; }
.smc-teams__stat-label { font-size: 10px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.38); }
.smc-teams__filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 40px; }
.smc-teams__filter { font-size: 11px; font-weight: 500; color: rgba(35,31,32,0.55); background: #f2f4f8; border: 0.5px solid rgba(35,31,32,0.10); padding: 5px 13px; border-radius: 40px; }
/* Fleet grid: flexbox instead of CSS grid. The original `grid-template-columns:
   1fr 1fr` hit a pathological auto-placement case here (every card landed in
   column 2, column 1 left empty). Flex wrap is deterministic and collapses to a
   single column below ~536px via the min-width. */
.smc-teams__grid { display: flex; flex-wrap: wrap; gap: 16px; }
.smc-teams__grid > .smc-team-card { flex: 1 1 320px; min-width: 0; }
.smc-teams__map-wrap { margin-top: 36px; }
.smc-team-card { background: #f2f4f8; border-radius: 14px; border: 0.5px solid rgba(35,31,32,0.07); overflow: hidden; display: flex; flex-direction: column; transition: transform 0.22s ease, box-shadow 0.22s ease; }
.smc-team-card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(11,52,124,0.09); }
.smc-team-card__photos { display: grid; grid-template-columns: 1fr; gap: 2px; height: 220px; background: #dde4ef; position: relative; }
.smc-team-card__photo { background: #dde4ef; overflow: hidden; position: relative; display: flex; align-items: center; justify-content: center; }
.smc-team-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.smc-team-card__photo-label { position: absolute; bottom: 6px; left: 6px; font-size: 7.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.7); background: rgba(11,52,124,0.6); padding: 2px 7px; border-radius: 20px; backdrop-filter: blur(4px); }
.smc-team-card__photo-ph { font-size: 9px; font-weight: 500; color: rgba(35,31,32,0.25); text-align: center; padding: 8px; line-height: 1.4; }
.smc-team-card__accent { position: absolute; top: 0; left: 0; right: 0; height: 3px; background: #0078ba; z-index: 2; }
.smc-team-card__body { padding: 16px 18px 18px; flex: 1; display: flex; flex-direction: column; gap: 6px; background: #ffffff; }
.smc-team-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.smc-team-card__flag { font-size: 22px; line-height: 1; flex-shrink: 0; }
.smc-team-card__code { font-size: 9px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #0078ba; background: rgba(0,120,186,0.07); border: 0.5px solid rgba(0,120,186,0.2); padding: 3px 8px; border-radius: 20px; }
.smc-team-card__name { font-size: 15px; font-weight: 700; color: #231f20; letter-spacing: -0.01em; line-height: 1.2; }
.smc-team-card__uni { font-size: 11px; color: rgba(35,31,32,0.45); line-height: 1.4; }
.smc-team-card__boat { font-size: 11px; font-weight: 600; color: rgba(35,31,32,0.35); font-style: italic; margin-top: 2px; }
.smc-team-card__boat--ph { color: rgba(35,31,32,0.18); }

/* RESULTS */
.smc-results { background: #0b347c; padding: 96px 40px; }
.smc-results__inner { max-width: 1200px; margin: 0 auto; }
.smc-results__eyebrow { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: #f68a33; margin-bottom: 16px; }
.smc-results__title { font-size: clamp(26px,3.5vw,42px); font-weight: 700; color: #ffffff; letter-spacing: -0.03em; line-height: 1.1; margin-bottom: 14px; }
.smc-results__lead { font-size: 15px; color: rgba(255,255,255,0.55); line-height: 1.75; max-width: 680px; margin-bottom: 52px; }
.smc-podium { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-bottom: 52px; }
.smc-podium__card { background: rgba(255,255,255,0.06); border: 0.5px solid rgba(255,255,255,0.12); border-radius: 14px; padding: 28px 24px; text-align: center; }
.smc-podium__card--gold { background: rgba(246,138,51,0.15); border-color: rgba(246,138,51,0.35); }
.smc-podium__card--silver { background: rgba(192,194,201,0.12); border-color: rgba(192,194,201,0.30); }
.smc-podium__card--bronze { background: rgba(176,141,87,0.12); border-color: rgba(176,141,87,0.28); }
.smc-podium__pos { font-size: 36px; line-height: 1; margin-bottom: 10px; }
.smc-podium__team { font-size: 18px; font-weight: 700; color: #ffffff; letter-spacing: -0.01em; margin-bottom: 4px; }
.smc-podium__uni { font-size: 11px; color: rgba(255,255,255,0.45); margin-bottom: 12px; line-height: 1.4; }
.smc-podium__score { font-size: 13px; font-weight: 600; color: rgba(255,255,255,0.70); }
.smc-podium__score span { font-size: 22px; font-weight: 700; color: #ffffff; display: block; letter-spacing: -0.02em; }
.smc-results__table-wrap { overflow-x: auto; border-radius: 12px; border: 0.5px solid rgba(255,255,255,0.10); }
.smc-results__table { width: 100%; min-width: 700px; border-collapse: collapse; background: #ffffff; }
.smc-results__table thead tr { background: #0b347c; }
.smc-results__table thead th { padding: 14px 16px; font-size: 9px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.55); text-align: left; white-space: nowrap; border-right: 1px solid rgba(255,255,255,0.08); }
.smc-results__table thead th:last-child { border-right: none; }
.smc-results__table thead th.num { text-align: right; }
.smc-results__table thead th.col-s1n { color: #00BCD4; }
.smc-results__table thead th.col-s1u { color: #f68a33; }
.smc-results__table thead th.col-s2 { color: #F48FB1; }
.smc-results__table thead th.col-s3 { color: #2E6FE0; }
.smc-results__table thead th.col-tot { color: #ffffff; }
.smc-results__table tbody tr { border-bottom: 1px solid rgba(35,31,32,0.06); transition: background 0.15s; }
.smc-results__table tbody tr:last-child { border-bottom: none; }
.smc-results__table tbody tr:hover { background: rgba(0,120,186,0.04); }
.smc-results__table tbody td { padding: 12px 16px; font-size: 12px; color: #231f20; border-right: 1px solid rgba(35,31,32,0.05); vertical-align: middle; }
.smc-results__table tbody td:last-child { border-right: none; }
.td-pos { font-size: 13px; font-weight: 700; color: rgba(35,31,32,0.35); width: 36px; text-align: center; }
.td-team { font-weight: 700; font-size: 13px; color: #231f20; }
.td-flag { font-size: 16px; width: 28px; }
.td-uni { font-size: 11px; color: rgba(35,31,32,0.45); font-weight: 400; }
.td-cat { white-space: nowrap; }
.smc-cat-new { font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #0078ba; background: rgba(0,120,186,0.08); border: 0.5px solid rgba(0,120,186,0.22); padding: 3px 8px; border-radius: 20px; }
.smc-cat-upg { font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #f68a33; background: rgba(246,138,51,0.10); border: 0.5px solid rgba(246,138,51,0.30); padding: 3px 8px; border-radius: 20px; }
.td-score { text-align: right; font-size: 12px; font-weight: 500; color: rgba(35,31,32,0.60); font-variant-numeric: tabular-nums; }
.td-total { text-align: right; font-size: 14px; font-weight: 700; color: #231f20; font-variant-numeric: tabular-nums; }
.td-neg { color: rgba(200,50,50,0.70); }
.s1n-g{background:rgba(0,188,212,0.18);color:#003a40;font-weight:700}
.s1n-s{background:rgba(0,188,212,0.10);color:#003a40;font-weight:600}
.s1n-b{background:rgba(0,188,212,0.06);color:#003a40;font-weight:600}
.s1u-g{background:rgba(246,138,51,0.22);color:#7a3800;font-weight:700}
.s1u-s{background:rgba(246,138,51,0.13);color:#7a3800;font-weight:600}
.s1u-b{background:rgba(246,138,51,0.07);color:#7a3800;font-weight:600}
.s2-g{background:rgba(244,143,177,0.28);color:#6a0030;font-weight:700}
.s2-s{background:rgba(244,143,177,0.16);color:#6a0030;font-weight:600}
.s2-b{background:rgba(244,143,177,0.09);color:#6a0030;font-weight:600}
.s3-g{background:rgba(46,111,224,0.20);color:#0a2a6e;font-weight:700}
.s3-s{background:rgba(46,111,224,0.12);color:#0a2a6e;font-weight:600}
.s3-b{background:rgba(46,111,224,0.07);color:#0a2a6e;font-weight:600}
.medal{display:inline-block;width:7px;height:7px;border-radius:50%;margin-left:4px;vertical-align:middle}
.m-g{background:#f5c400}.m-s{background:#c0c2c9}.m-b{background:#b08d57}
.smc-results__legend { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 20px; }
.smc-results__legend-item { display: flex; align-items: center; gap: 8px; font-size: 11px; color: rgba(255,255,255,0.45); }
.smc-results__note { font-size: 10px; color: rgba(255,255,255,0.28); font-style: italic; margin-top: 16px; }

/* TIMETABLE */
.smc-tt { background: #f2f4f8; padding: 96px 40px; }
.smc-tt__inner { max-width: 1200px; margin: 0 auto; }
.smc-tt-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 12px; border: 0.5px solid rgba(35,31,32,0.10); box-shadow: 0 4px 20px rgba(11,52,124,0.07); margin-bottom: 24px; }
.smc-tt-sched { min-width: 780px; background: #ffffff; }
.smc-tt-hdr { display: flex; border-bottom: 2px solid rgba(11,52,124,0.18); background: #0b347c; position: sticky; top: 0; z-index: 10; border-radius: 12px 12px 0 0; }
.smc-tt-hdr-spacer { width: 88px; flex-shrink: 0; border-right: 1px solid rgba(255,255,255,0.10); }
.smc-tt-hdr-marks { flex: 1; position: relative; height: 30px; }
.smc-tt-hm { position: absolute; top: 0; bottom: 0; display: flex; flex-direction: column; align-items: flex-start; }
.smc-tt-hm-tick { width: 1px; height: 8px; background: rgba(255,255,255,0.22); margin-bottom: 2px; }
.smc-tt-hm-label { font-size: 9px; font-weight: 600; color: rgba(255,255,255,0.50); letter-spacing: 0.05em; white-space: nowrap; transform: translateX(-50%); }
.smc-tt-day { display: flex; border-bottom: 1px solid rgba(35,31,32,0.07); transition: background 0.15s; }
.smc-tt-day:last-child { border-bottom: none; border-radius: 0 0 12px 12px; }
.smc-tt-day:hover { background: rgba(0,120,186,0.02); }
.smc-tt-lbl { width: 88px; flex-shrink: 0; border-right: 1px solid rgba(35,31,32,0.07); background: #f8f9fc; padding: 10px; display: flex; flex-direction: column; gap: 2px; position: sticky; left: 0; z-index: 5; justify-content: center; }
.smc-tt-lbl-dow { font-size: 8.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #c0c2c9; }
.smc-tt-lbl-date { font-size: 14px; font-weight: 700; color: #231f20; line-height: 1.1; }
.smc-tt-lbl-tag { font-size: 8px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #0078ba; margin-top: 2px; }
.smc-tt-tl { flex: 1; position: relative; padding: 9px 0; }
.smc-tt-vl { position: absolute; top: 0; bottom: 0; width: 1px; pointer-events: none; z-index: 1; }
.smc-tt-vl-full { background: rgba(35,31,32,0.07); }
.smc-tt-vl-half { background: rgba(35,31,32,0.03); }
.smc-tt-bar { position: absolute; border-radius: 4px; padding: 0 7px; font-size: 10.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; z-index: 2; cursor: default; transition: filter 0.15s; letter-spacing: 0.01em; }
.smc-tt-bar:hover { filter: brightness(1.1); }
.smc-bar-arrival{background:#B8D4E8;color:#0b347c}.smc-bar-free{background:#dde3ea;color:#5a6a7a}.smc-bar-meas{background:#F5C800;color:#5a4000}.smc-bar-mtg{background:#231f20;color:#ffffff}.smc-bar-s1{background:#00BCD4;color:#003a40}.smc-bar-pitch{background:#D81B60;color:#ffffff}.smc-bar-s2p{background:#f68a33;color:#ffffff}.smc-bar-s2m{background:#F48FB1;color:#6a0030}.smc-bar-s3f{background:#0b347c;color:#ffffff}.smc-bar-s3pr{background:#2E6FE0;color:#ffffff}.smc-bar-open{background:#5CB85C;color:#ffffff}.smc-bar-awards{background:#0078ba;color:#ffffff}.smc-bar-photo{background:#43A047;color:#ffffff}
.smc-tt-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 20px 24px; background: #ffffff; border: 0.5px solid rgba(35,31,32,0.08); border-radius: 10px; margin-bottom: 14px; }
.smc-tt-li { display: flex; align-items: center; gap: 7px; font-size: 10.5px; font-weight: 500; color: rgba(35,31,32,0.55); }
.smc-tt-ld { width: 22px; height: 10px; border-radius: 3px; flex-shrink: 0; }
.smc-tt-note { font-size: 10px; color: #c0c2c9; font-style: italic; }

/* GPS */
.smc-gps { background: #0b347c; padding: 96px 40px; }
.smc-gps__inner { max-width: 1200px; margin: 0 auto; }
.smc-gps__title { color: #ffffff; margin-bottom: 14px; }
.smc-gps__lead { color: rgba(255,255,255,0.58); margin-bottom: 48px; max-width: 680px; }
.smc-gps-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.smc-gps-card { background: rgba(255,255,255,0.05); border: 0.5px solid rgba(255,255,255,0.10); border-radius: 14px; padding: 40px 36px; display: flex; flex-direction: column; gap: 16px; transition: background 0.2s; }
.smc-gps-card:hover { background: rgba(255,255,255,0.08); }
.smc-gps-card__stage { display: inline-flex; align-items: center; gap: 8px; font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #f68a33; margin-bottom: 4px; }
.smc-gps-card__stage-dot { width: 8px; height: 8px; border-radius: 50%; background: #f68a33; flex-shrink: 0; }
.smc-gps-card__title { font-size: 20px; font-weight: 700; color: #ffffff; letter-spacing: -0.02em; line-height: 1.2; }
.smc-gps-card__desc { font-size: 13px; color: rgba(255,255,255,0.50); line-height: 1.65; }
.smc-gps-card__status { display: inline-flex; align-items: center; gap: 7px; font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.35); border: 0.5px solid rgba(255,255,255,0.15); padding: 6px 14px; border-radius: 40px; width: fit-content; margin-top: 4px; }
.smc-gps-card__status-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,0.25); }
.smc-gps-note { font-size: 11px; color: rgba(255,255,255,0.28); margin-top: 24px; font-style: italic; }

/* JURY */
.smc-jury { background: #f2f4f8; padding: 96px 40px; }
.smc-jury__inner { max-width: 1200px; margin: 0 auto; }
.smc-jury__header { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin-bottom: 18px; }
.smc-jury__count { font-size: 11px; font-weight: 500; color: #c0c2c9; letter-spacing: 0.1em; text-transform: uppercase; padding-bottom: 4px; }
.smc-jury__intro { font-size: 15px; color: rgba(35,31,32,0.60); line-height: 1.8; max-width: 700px; margin-bottom: 36px; }
.smc-jury__intro strong { color: #231f20; font-weight: 600; }
.smc-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 52px; }
.smc-tag { font-size: 11px; font-weight: 500; color: #0078ba; background: rgba(0,120,186,0.07); border: 0.5px solid rgba(0,120,186,0.22); padding: 5px 13px; border-radius: 40px; letter-spacing: 0.02em; white-space: nowrap; }
/* Same pathological grid auto-placement as .smc-teams__grid — flexbox fix. */
.smc-grid { display: flex; flex-wrap: wrap; gap: 16px; }
.smc-grid > * { flex: 1 1 260px; min-width: 0; }
.smc-card { background: #ffffff; border-radius: 14px; border: 0.5px solid rgba(35,31,32,0.07); overflow: hidden; display: flex; flex-direction: column; transition: transform 0.22s ease, box-shadow 0.22s ease; cursor: default; }
.smc-card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(11,52,124,0.10); }
.smc-card__photo { height: 300px; background: #dde4ef; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.smc-card__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center center; display: block; }
.smc-card__accent { position: absolute; top: 0; left: 0; right: 0; height: 3px; background: #0078ba; z-index: 2; }
.smc-card__avatar { width: 70px; height: 70px; border-radius: 50%; background: #0b347c; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 600; color: rgba(255,255,255,0.65); }
.smc-card__corner { position: absolute; top: 11px; right: 11px; font-size: 8px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #0078ba; background: rgba(255,255,255,0.92); border: 0.5px solid rgba(0,120,186,0.28); padding: 3px 9px; border-radius: 40px; z-index: 2; backdrop-filter: blur(4px); }
.smc-card__body { padding: 18px 20px 20px; flex: 1; display: flex; flex-direction: column; }
.smc-card__name { font-size: 15px; font-weight: 700; color: #231f20; margin-bottom: 3px; letter-spacing: -0.01em; }
.smc-card__role { font-size: 11px; color: rgba(35,31,32,0.42); margin-bottom: 12px; line-height: 1.45; }
.smc-card__bio { font-size: 12px; color: rgba(35,31,32,0.63); line-height: 1.7; flex: 1; }

/* SPONSORS */
.smc-sponsors { background: #0b347c; padding: 80px 40px; text-align: center; }
.smc-sponsors__eyebrow { display: block; font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.22); margin-bottom: 28px; }
.smc-sponsors__lead { font-size: 16px; color: rgba(255,255,255,0.55); line-height: 1.8; max-width: 580px; margin: 0 auto 48px; }
.smc-sponsors__lead strong { color: #ffffff; font-weight: 600; }
.smc-sponsors__row { display: flex; align-items: center; justify-content: center; gap: 48px; flex-wrap: wrap; margin-bottom: 56px; }
.smc-sponsor { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.smc-sponsor__logo { display: flex; align-items: center; gap: 12px; }
.smc-sponsor__name { font-size: 10px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.22); }
.smc-sp-divider { width: 1px; height: 48px; background: rgba(255,255,255,0.10); }
.smc-sponsors__partners-title { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.22); margin-bottom: 28px; }
.smc-sponsors__partners-row { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 32px; }
.smc-sponsor-partner { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.smc-sponsor-partner__logo { height: 48px; display: flex; align-items: center; justify-content: center; }
.smc-sponsor-partner__logo img { max-height: 80px; width: auto; display: block; filter: brightness(0) invert(1); opacity: 0.75; transition: opacity 0.2s; }
.smc-sponsor-partner__logo img:hover { opacity: 1; }
.smc-sponsor-partner__logo-ph { height: 48px; min-width: 130px; background: rgba(255,255,255,0.06); border: 0.5px dashed rgba(255,255,255,0.20); border-radius: 8px; display: flex; align-items: center; justify-content: center; padding: 0 16px; font-size: 10px; font-weight: 500; color: rgba(255,255,255,0.25); letter-spacing: 0.06em; text-transform: uppercase; }
.smc-sponsor-partner__name { font-size: 10px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.22); }

/* RESPONSIVE */
@media (max-width: 768px) {
  .smc-week,.smc-team,.smc-teams,.smc-results,.smc-tt,.smc-gps,.smc-jury,.smc-sponsors{padding-left:20px;padding-right:20px}
  .smc-week__photo-row{grid-template-columns:1fr}
  .smc-team__grid{grid-template-columns:1fr 1fr}
  .smc-team__fvm{padding:32px 28px}
  .smc-team__partners{grid-template-columns:1fr}
  .smc-teams__stats{grid-template-columns:repeat(2,1fr)}
  .smc-teams__grid{grid-template-columns:1fr 1fr;gap:12px}
  .smc-podium{grid-template-columns:1fr;gap:10px}
  .smc-gps-cards{grid-template-columns:1fr}
  .smc-jury__header{flex-direction:column;align-items:flex-start}
  .smc-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
  .smc-sponsors__row{gap:32px}
}
@media (max-width: 480px) {
  .smc-team__grid{grid-template-columns:1fr}
  .smc-teams__grid{grid-template-columns:1fr}
  .smc-grid{grid-template-columns:1fr 1fr;gap:10px}
  .smc-card__photo{height:150px}
}

/* ═══════════════════════════════════════════
   MEDIA SECTION
═══════════════════════════════════════════ */
.smc-media { background: #231f20; padding: 96px 40px; }
.smc-media__inner { max-width: 1200px; margin: 0 auto; }
.smc-media__eyebrow { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: #f68a33; margin-bottom: 16px; }
.smc-media__title { font-size: clamp(26px,3.5vw,42px); font-weight: 700; color: #ffffff; letter-spacing: -0.03em; line-height: 1.1; margin-bottom: 14px; }
.smc-media__lead { font-size: 15px; color: rgba(255,255,255,0.50); line-height: 1.75; max-width: 680px; margin-bottom: 40px; }
.smc-media__embed { width: 100%; border-radius: 12px; overflow: hidden; background: rgba(255,255,255,0.04); border: 0.5px solid rgba(255,255,255,0.10); margin-bottom: 24px; line-height: 0; }
.smc-media__embed a { display: block; width: 100%; }
.smc-media__embed img { width: 100%; height: auto; display: block; aspect-ratio: 4/3; object-fit: cover; transition: opacity 0.2s; }
.smc-media__embed img:hover { opacity: 0.92; }
.smc-media__footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.smc-media__credit { font-size: 11px; color: rgba(255,255,255,0.28); font-style: italic; }
.smc-media__btn { display: inline-flex; align-items: center; gap: 10px; background: #f68a33; color: #ffffff; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 12px 24px; border-radius: 40px; text-decoration: none; transition: background 0.2s, transform 0.2s; white-space: nowrap; }
.smc-media__btn:hover { background: #e07820; transform: translateY(-1px); }
@media (max-width: 768px) { .smc-media { padding: 64px 20px; } .smc-media__footer { flex-direction: column; align-items: flex-start; } }

/* ═══════════════════════════════════════════════════════════════════════
   Grid → flex fixes.
   Several of the original CSS grids on this page hit a pathological
   auto-placement case in-browser (items skipped column 1, leaving cells
   empty). Flexbox lays them out deterministically. `gap` from the original
   grid rules still applies. Intentional layouts (podium, connected stat
   tiles) are deliberately left as grid.
   ═══════════════════════════════════════════════════════════════════════ */
.smc-week__photo-row,
.smc-team__grid,
.smc-team__partners,
.smc-gps-cards { display: flex; flex-wrap: wrap; }
.smc-week__photo-row > * { flex: 1 1 240px; min-width: 0; }
.smc-team__grid > *     { flex: 1 1 220px; min-width: 0; }
.smc-team__partners > * { flex: 1 1 260px; min-width: 0; }
.smc-gps-cards > *      { flex: 1 1 260px; min-width: 0; }

/* ═══════════════════════════════════════════════════════════════════════
   Photo polish (2026-08-31)
   - Staff avatars: raw transparent headshots were floating on a flat pale
     circle. Give them a subtle gradient + navy ring so they read as
     intentional and match the jury cards' baked-in circular look.
   - Jury photo area: same gradient behind the circular composite, for a
     consistent background across both sections.
   - Fleet: cap card width so the lone last card doesn't stretch full-width;
     every team photo is then the same size.
   ═══════════════════════════════════════════════════════════════════════ */
.smc-team__avatar {
  width: 104px; height: 104px; border-radius: 50%; margin-bottom: 14px;
  overflow: hidden;
  background: linear-gradient(155deg, #eaf0f8 0%, #d3ddec 100%);
  box-shadow: inset 0 0 0 2px rgba(11,52,124,0.20);
}
.smc-team__card img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.smc-card__photo { background: linear-gradient(155deg, #eaf0f8 0%, #d3ddec 100%); }

@media (min-width: 641px) {
  .smc-teams__grid > .smc-team-card { max-width: calc(50% - 8px); }
}

/* ── Fleet stats: 4 boxes in one horizontal row (was rendering 2×2 via the
      same grid auto-placement bug). Flex keeps the connected-tile look. ── */
.smc-teams__stats { display: flex; flex-wrap: wrap; }
.smc-teams__stats > * { flex: 1 1 0; min-width: 120px; }

/* ═══════════════════════════════════════════════════════════════════════
   Card grids → explicit CSS grid (2026-09-02).
   The flex versions left short last rows stretched and card widths uneven.
   Fixed grid columns are deterministic: every card in a breakpoint is the
   same width and a short final row stays left-aligned (no stretch). Children's
   flex-basis/max-width caps are reset so each card fills its 1fr cell.
   Column counts:  team 6 → 3-up · partners 4 → 2×2 · fleet 19 → 4-up ·
   jury 24 → 3-up max (no wide 2-up on desktop).
   ═══════════════════════════════════════════════════════════════════════ */
.smc-team__grid,
.smc-team__partners,
.smc-teams__grid,
.smc-jury .smc-grid { display: flex; flex-wrap: wrap; }

/* Flex with grow:1 to fill each row, plus a max-width cap at the exact column
   fraction. The cap is the trick: a lone card on a short last row can only grow
   to the same fraction as a full row, so nothing stretches and every card is the
   same width. The flex-basis sets how many fit per row. (CSS grid was tried but
   these specific cards hit a Chromium auto-placement bug that left column 1
   empty regardless of settings.) */
.smc-team__grid { gap: 16px; }
.smc-team__grid > * { flex: 1 1 300px; max-width: calc(33.333% - 11px); min-width: 0; }

.smc-team__partners { gap: 14px; }
.smc-team__partners > * { flex: 1 1 400px; max-width: calc(50% - 7px); min-width: 0; }

.smc-teams__grid { gap: 16px; }
.smc-teams__grid > .smc-team-card { flex: 1 1 290px; max-width: calc(25% - 12px); min-width: 0; }

.smc-jury .smc-grid { gap: 16px; }
.smc-jury .smc-grid > * { flex: 1 1 300px; max-width: calc(33.333% - 11px); min-width: 0; }

/* Staff avatars: the source PNGs place the subject small and low in a
   transparent 300×300 frame, so zoom toward the face to fill the circle. */
.smc-team__avatar { display: flex; align-items: flex-end; justify-content: center; }
.smc-team__card img { transform: scale(1.5); transform-origin: center 64%; }

/* ── Staff cards: simplified. The source headshots are transparent cut-outs
      that don't frame cleanly, so drop the photos and use clean text cards
      with a small orange accent. (Add photos back only with well-framed
      source images.) Overrides the avatar styling above. ── */
.smc-team__avatar { display: none !important; }
.smc-team__card { padding: 26px 24px; }
.smc-team__card-tag { position: relative; padding-left: 14px; margin-bottom: 8px; }
.smc-team__card-tag::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 7px; height: 7px; border-radius: 50%; background: #f68a33; }
.smc-team__card-name { font-size: 17px; margin-bottom: 6px; }
.smc-team__card-role { font-size: 12px; line-height: 1.6; color: rgba(35,31,32,0.55); }

/* ── Staff photos, framed. Bring the pictures back in a clean bordered frame.
      Landscape aspect + object-position crops the empty transparent space above
      the head so the person fills the frame instead of floating. Overrides the
      "hide photos" + circle/zoom rules above. ── */
.smc-team__card { padding: 0; overflow: hidden; }
.smc-team__card > .smc-team__avatar,
.smc-team__avatar {
  display: block !important;
  width: 100% !important; height: auto !important; aspect-ratio: 4 / 3;
  margin: 0 0 4px !important;
  border-radius: 0 !important; border: none !important; box-shadow: none !important;
  background: linear-gradient(160deg, #eef2f8 0%, #dde4ef 100%);
  overflow: hidden;
}
.smc-team__card img {
  transform: none !important;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 72%;
}
.smc-team__card-tag { margin-top: 18px; }
.smc-team__card-tag,
.smc-team__card-name,
.smc-team__card-role { padding-left: 22px; padding-right: 22px; }
.smc-team__card-role { padding-bottom: 24px; }

/* Drop the text-only orange dot now that photos are back. */
.smc-team__card-tag::before { display: none !important; }
.smc-team__card-tag { padding-left: 22px !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Year timeline (2027 edition) — the campaign across the year, in phase boxes.
   ═══════════════════════════════════════════════════════════════════════ */
.smc-year { display: flex; flex-wrap: wrap; gap: 12px; counter-reset: yr; }
.smc-year__phase {
  flex: 1 1 180px; min-width: 160px;
  background: #ffffff; border: 0.5px solid rgba(35,31,32,0.10);
  border-radius: 14px; padding: 22px 20px 24px; position: relative;
  border-top: 3px solid #0078ba;
}
.smc-year__phase--live { border-top-color: #f68a33; background: #fff8f1; }
.smc-year__phase--event { border-top-color: #0b347c; background: #0b347c; }
.smc-year__phase--event .smc-year__month { color: rgba(255,255,255,0.55); }
.smc-year__phase--event .smc-year__title { color: #ffffff; }
.smc-year__phase--event .smc-year__info { color: rgba(255,255,255,0.62); }
.smc-year__month { display: block; font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #0078ba; margin-bottom: 10px; }
.smc-year__phase--live .smc-year__month { color: #f68a33; }
.smc-year__title { font-size: 15px; font-weight: 700; color: #231f20; letter-spacing: -0.01em; margin-bottom: 8px; line-height: 1.25; }
.smc-year__info { font-size: 12px; color: rgba(35,31,32,0.58); line-height: 1.6; }
.smc-year__stage { display: inline-block; font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #0078ba; background: rgba(0,120,186,0.08); border-radius: 20px; padding: 2px 8px; margin-top: 10px; }

/* Registration block on the edition page */
.smc-reg { background: #f8f9fc; border: 1px solid rgba(35,31,32,0.08); border-radius: 16px; padding: 40px; }
.smc-reg__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-bottom: 24px; }
.smc-reg__status { font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #fff; background: #f68a33; border-radius: 40px; padding: 5px 14px; }

@media (max-width: 720px) {
  .smc-year__phase { flex-basis: 100%; }
  .smc-reg { padding: 28px 22px; }
}

/* TITLE PARTNER spotlight (e.g. 11th Hour Racing) — one standalone panel above
   the partner grid. Navy ground, orange eyebrow; the logo is expected to be a
   light/white version. */
.smc-titlepartner {
  margin: 0 0 36px;
  padding: 44px 32px;
  background: #0b347c;
  border-radius: 16px;
  text-align: center;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.smc-titlepartner > a { display: block; line-height: 0; }
.smc-titlepartner__eyebrow {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #f68a33;
  margin-bottom: 22px;
}
.smc-titlepartner__logo {
  height: auto;
  width: auto;
  max-height: 132px;
  max-width: 90%;
  display: block;
  margin: 0 auto;
}
.smc-titlepartner__name {
  font-size: 30px;
  font-weight: 800;
  letter-spacing: -.01em;
}
.smc-titlepartner__desc {
  max-width: 720px;
  margin: 22px auto 0;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(255,255,255,.82);
}
.smc-titlepartner__desc p { margin: 0 0 12px; }
.smc-titlepartner__desc p:last-child { margin-bottom: 0; }
@media (max-width: 720px) {
  .smc-titlepartner { padding: 32px 20px; }
  .smc-titlepartner__logo { max-height: 92px; }
}

/* Optional venue photo — embedded INTO the navy venue panel, blended with a
   soft gradient so the image melts into the block rather than sitting as a
   separate rectangle. Hidden when no image is set. */
.smc-team__fvm--media {
  padding: 0;
  overflow: hidden;
  display: flex;
  align-items: stretch;
}
.smc-team__fvm--media .smc-team__fvm-content {
  flex: 1 1 56%;
  padding: 48px 52px;
  align-self: center;
}
.smc-team__fvm-media {
  flex: 1 1 44%;
  position: relative;
  min-height: 280px;
}
.smc-team__fvm-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Fade the image's inner edge into the navy so there is no hard seam. */
.smc-team__fvm-media::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, #0b347c 0%, rgba(11,52,124,0) 48%);
  pointer-events: none;
}
@media (max-width: 720px) {
  .smc-team__fvm--media { flex-direction: column; }
  .smc-team__fvm-media { flex: none; min-height: 200px; }
  .smc-team__fvm-media::before {
    background: linear-gradient(to bottom, rgba(11,52,124,0) 45%, #0b347c 100%);
  }
  .smc-team__fvm--media .smc-team__fvm-content { padding: 32px 28px; }
}

/* ── UNIFIED EDITION TEMPLATE LAYOUT ───────────────────────────────────────
   Scoped to .smc-edition (page-2027.php and any edition cloned from it) so
   the legacy 2026 page, which sizes .smc-teams wider for its 19-boat fleet
   grid, is left untouched. Every section shares ONE content column, so the
   eyebrow, title, lead and grids of every section line up down the whole
   page instead of each starting at its own left edge. */
.smc-edition .smc-week__inner,
.smc-edition .smc-teams__inner,
.smc-edition .smc-team__inner,
.smc-edition .smc-jury__inner,
.smc-edition .smc-results__inner,
.smc-edition .smc-media__inner,
.smc-edition .smc-tt__inner { max-width: 1180px; }

/* Hero widens to the shared column so its heading aligns with the sections
   below, but the reading copy stays at a comfortable measure. */
.smc-edition .smc-week__body { max-width: 760px; }

/* Space between the fleet cards and the map in the Challengers section
   (the cards grid carries no bottom margin of its own). */
.smc-edition .smc-challengers__fleet { margin-bottom: 36px; }

/* ── KEY DATES timeline (data-driven; Key date CPT) ────────────────────────
   One vertical timeline of an edition's deadlines and milestones, ordered by
   date, with the critical deadlines summarised at the top and flagged in the
   list. Rendered by sumoth_render_milestones(). Lives in the white Timeline
   section, so colours are tuned for a light ground. */
.smc-mst__key { display: flex; gap: 18px; align-items: flex-start; background: #fff; border: 1px solid rgba(11,52,124,0.10); border-left: 3px solid #f68a33; border-radius: 12px; padding: 18px 22px; margin-bottom: 40px; }
.smc-mst__key-label { font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #f68a33; white-space: nowrap; padding-top: 2px; }
.smc-mst__key-list { display: flex; flex-wrap: wrap; gap: 10px 26px; }
.smc-mst__key-item { font-size: 13px; color: rgba(35,31,32,0.75); }
.smc-mst__key-item strong { color: #0b347c; font-weight: 700; }

/* Gantt overview: month axis + deadline lane + phase-bar rows. Rendered by
   sumoth_render_gantt(), above the detailed list. Scrolls sideways on mobile. */
.smc-gantt__wrap { overflow-x: auto; margin-bottom: 40px; padding-bottom: 6px; }
.smc-gantt { min-width: 660px; }
.smc-gantt__row { display: grid; grid-template-columns: 150px 1fr; align-items: stretch; min-height: 40px; }
.smc-gantt__row--head { min-height: 30px; align-items: end; }
.smc-gantt__label { font-size: 13px; font-weight: 600; color: #231f20; display: flex; align-items: flex-start; gap: 8px; padding: 12px 14px 0 0; }
.smc-gantt__row--head .smc-gantt__label, .smc-gantt__lane .smc-gantt__label { align-items: center; padding-top: 0; }
.smc-gantt__key { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 9px; margin-top: 6px; }
.smc-gantt__track { position: relative; height: 40px; }
.smc-gantt__row--head .smc-gantt__track { height: 22px; }
.smc-gantt__vl { position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(11,52,124,0.09); }
.smc-gantt__m { position: absolute; bottom: 1px; transform: translateX(2px); font-size: 10px; font-weight: 600; color: rgba(35,31,32,0.5); line-height: 1.2; }
.smc-gantt__m span { display: block; color: rgba(35,31,32,0.32); }
.smc-gantt__bar { position: absolute; height: 22px; border-radius: 6px; display: flex; align-items: center; padding: 0 9px; color: #fff; font-size: 11px; font-weight: 600; overflow: hidden; }
.smc-gantt__bar span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.smc-gantt__bar--crit::after { content: ""; position: absolute; right: 0; top: 0; bottom: 0; width: 3px; background: #f68a33; }
.smc-gantt__mk { position: absolute; width: 11px; height: 11px; border-radius: 50%; transform: translateX(-50%); border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(11,52,124,0.10); }
.smc-gantt__lane .smc-gantt__track { height: 58px; }
.smc-gantt__lane .smc-gantt__label { color: #f68a33; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.smc-gantt__pin { position: absolute; top: 8px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; z-index: 2; }
.smc-gantt__pin i { width: 12px; height: 12px; background: #f68a33; transform: rotate(45deg); border: 2px solid #fff; box-shadow: 0 0 0 1px #f68a33; }
.smc-gantt__pin em { margin-top: 9px; font-style: normal; font-size: 9px; font-weight: 700; color: #f68a33; white-space: nowrap; }
.smc-gantt__pin--low em { margin-top: 25px; }
/* Gates row: large lettered badges for the committee checkpoints. */
.smc-gantt__gaterow .smc-gantt__track { height: 66px; }
.smc-gantt__gaterow .smc-gantt__label { align-items: center; padding-top: 0; color: #d1495b; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.smc-gantt__gate { position: absolute; top: 6px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; z-index: 3; }
.smc-gantt__gate b { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; color: #fff; font-weight: 800; font-size: 15px; line-height: 1; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(11,52,124,0.25); }
.smc-gantt__gate em { margin-top: 6px; font-style: normal; font-size: 9px; font-weight: 700; color: #d1495b; white-space: nowrap; }
.smc-gantt__gate--low em { margin-top: 22px; }

.smc-mst__list { list-style: none; margin: 0; padding: 0; }
.smc-mst__item { position: relative; display: grid; grid-template-columns: 140px 28px 1fr; align-items: start; padding-bottom: 26px; }
.smc-mst__item::before { content: ""; position: absolute; left: 153.5px; top: 6px; height: 100%; width: 1px; background: rgba(11,52,124,0.14); }
.smc-mst__item:last-child { padding-bottom: 0; }
.smc-mst__item:last-child::before { display: none; }
.smc-mst__when { font-size: 13px; font-weight: 600; color: #0b347c; padding-top: 1px; font-variant-numeric: tabular-nums; }
.smc-mst__dot { width: 11px; height: 11px; border-radius: 50%; background: #0078ba; margin: 4px auto 0; position: relative; z-index: 1; }
.smc-mst__item--registration .smc-mst__dot { background: #f68a33; }
.smc-mst__item--design .smc-mst__dot { background: #0078ba; }
.smc-mst__item--manufacture .smc-mst__dot { background: #00bcd4; }
.smc-mst__item--logistics .smc-mst__dot { background: #43a047; }
.smc-mst__item--event .smc-mst__dot { background: #0b347c; }
.smc-mst__item--activity .smc-mst__dot { background: #7e57c2; }
.smc-mst__item--gate .smc-mst__dot { background: #d1495b; }
.smc-mst__dot--gate { width: 24px; height: 24px; margin: 0 auto; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 12px; font-weight: 800; box-shadow: 0 0 0 4px rgba(209,73,91,0.15); }
.smc-mst__item.is-critical .smc-mst__dot { background: #f68a33; box-shadow: 0 0 0 4px rgba(246,138,51,0.18); }
.smc-mst__item--gate.is-critical .smc-mst__dot { background: #d1495b; box-shadow: 0 0 0 4px rgba(209,73,91,0.18); }
.smc-mst__content { padding-top: 0; }
.smc-mst__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.smc-mst__title { font-size: 15px; font-weight: 700; color: #231f20; letter-spacing: -0.01em; }
.smc-mst__flag { font-size: 9px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #f68a33; border: 1px solid rgba(246,138,51,0.40); border-radius: 40px; padding: 3px 9px; }
.smc-mst__aud { font-size: 9px; font-weight: 700; letter-spacing: 0.10em; text-transform: uppercase; border: 1px solid; border-radius: 40px; padding: 3px 9px; }
.smc-mst__aud--challenger { color: #0079ba; border-color: rgba(0,121,186,0.40); }
.smc-mst__aud--committee { color: #0b347c; border-color: rgba(11,52,124,0.40); }
.smc-mst__aud--both { color: rgba(35,31,32,0.55); border-color: rgba(35,31,32,0.22); }
.smc-mst__cat { font-size: 10px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(35,31,32,0.40); }
.smc-mst__note { font-size: 13px; color: rgba(35,31,32,0.60); line-height: 1.6; margin: 6px 0 0; max-width: 640px; }
@media (max-width: 720px) {
  .smc-mst__item { grid-template-columns: 1fr; gap: 2px; }
  .smc-mst__item::before { display: none; }
  .smc-mst__dot { display: none; }
  .smc-mst__when { margin-bottom: 2px; }
  .smc-mst__key { flex-direction: column; gap: 10px; }
}

/* The .smc-faq accordion styles moved to style.css so the same FAQ markup
   renders on both edition pages and the Challenge page (edition.css only loads
   on edition pages). */
