/* RunConnect · Race and Pace profile
   Fonts: General Sans (Fontshare) for UI, JetBrains Mono (Google Fonts) for system text */

:root {
  --ink: #1A1A17;
  --ink-2: #4A4A44;
  --ink-3: #6A6A63;
  --paper: #EDEBE4;        /* desktop background */
  --chrome: #F7F6F1;       /* menu bar, title bars, table heads */
  --surface: #FFFFFF;      /* window body */
  --orange: #EB5A1C;       /* primary action, close dots */
  --yellow: #F4B42A;       /* profile title bar, highlights */
  --blue: #2F55E6;         /* links, strength sessions */
  --green: #1F7A3A;        /* status text */
  --green-bg: #D9F2DF;     /* verified badges, success */
  --cream: #FFF6E0;        /* selected plan, hover */
  --sticky: #FFE58A;       /* sticky note */
  --term-bg: #16161A;
  --term-bar: #2A2A30;
  --term-text: #E8E6DF;
  --term-dim: #8D8C85;
  --term-ok: #5BD47A;
  --term-prompt: #F4B42A;
  --term-link: #7FA2FF;

  --font-ui: 'General Sans', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  --radius-win: 8px;
  --radius-sm: 4px;
  --shadow-win: 4px 4px 0 var(--ink);
  --shadow-accent: 4px 4px 0 var(--orange);
  --border: 1px solid var(--ink);
  --hair: 1px solid rgba(26,26,23,.15);
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-ui); }
a { color: var(--blue); }
a:hover { color: var(--orange); }
button { font-family: inherit; cursor: pointer; color: inherit; }
input[type=range] { accent-color: var(--orange); width: 100%; }
.mono { font-family: var(--font-mono); }
.muted { color: var(--ink-3); }

/* ---------- Desktop shell ---------- */
.os {
  min-height: 100vh; display: flex; flex-direction: column;
  background-color: var(--paper);
  background-image: radial-gradient(rgba(26,26,23,.13) 1px, transparent 1px);
  background-size: 18px 18px;
}
.menubar {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: 20px;
  height: 38px; padding: 0 16px;
  background: var(--chrome); border-bottom: var(--border);
  font-size: 13px; font-weight: 500;
}
.menubar__brand { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.menubar__logo { width: 18px; height: 18px; border-radius: 5px; background: var(--orange); color: #fff; display: grid; place-items: center; font-size: 11px; }
.menubar__menu { display: flex; gap: 16px; flex: 1; flex-wrap: wrap; }
.menubar__menu a { color: var(--ink); text-decoration: none; }
.menubar__menu a:hover { color: var(--orange); }
.menubar__status { display: flex; gap: 14px; font-family: var(--font-mono); font-size: 12px; }
.menubar__status .live { color: var(--green); }

.desktop { flex: 1; display: flex; gap: 20px; padding: 20px 20px 90px; }

/* Left icon rail: toggles windows open/closed */
.dock { display: flex; flex-direction: column; gap: 6px; width: 88px; flex: none; }
.dock__item {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 8px 4px; border: 0; border-radius: 6px; background: transparent;
  font-size: 11px; font-weight: 500; text-align: center; line-height: 1.2;
}
.dock__item:hover { background: rgba(235,90,28,.12); }
.dock__item[aria-pressed="true"] { background: rgba(235,90,28,.14); }
.dock__item img { width: 34px; height: 34px; }
.dock__item span { font-family: var(--font-mono); word-break: break-all; }

/* Window grid */
.windows {
  flex: 1; min-width: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
  grid-auto-flow: dense; gap: 18px; align-items: start;
}
.win {
  background: var(--surface); border: var(--border);
  border-radius: var(--radius-win); box-shadow: var(--shadow-win); overflow: hidden;
}
.win[hidden] { display: none; }
.win--full { grid-column: 1 / -1; }
.win--wide { grid-column: span 2; }
.win--accent { box-shadow: var(--shadow-accent); }
.win__bar {
  display: flex; align-items: center; gap: 10px;
  height: 32px; padding: 0 10px;
  background: var(--chrome); border-bottom: var(--border);
  font-family: var(--font-mono); font-size: 12px;
}
.win__bar--yellow { background: var(--yellow); }
.win__bar--orange { background: var(--orange); color: #fff; }
.win__bar--term { background: var(--term-bar); border-bottom-color: #000; color: var(--term-text); }
.win__title { flex: 1; text-align: center; font-weight: 600; }
.win__dots { display: flex; gap: 5px; }
.win__dot { width: 12px; height: 12px; border-radius: 50%; border: var(--border); background: var(--chrome); padding: 0; }
.win__close { background: var(--orange); }
.win__bar--orange .win__close { background: var(--chrome); }
.win__body { padding: 18px; display: flex; flex-direction: column; gap: 14px; }

@media (max-width: 760px) {
  .win--wide { grid-column: 1 / -1; }
  .dock { width: 64px; }
  .dock__item span { display: none; }
}

/* ---------- Profile window ---------- */
.profile { display: flex; flex-wrap: wrap; }
.gallery { flex: 1 1 380px; display: flex; flex-direction: column; gap: 8px; padding: 14px; }
.gallery__main { aspect-ratio: 16/10; border-radius: var(--radius-sm); border: var(--border); background: #ccc center/cover; }
.gallery__thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.gallery__thumb { aspect-ratio: 1; border-radius: 3px; border: var(--border); background: #ccc center/cover; padding: 0; }
.gallery__thumb[aria-current="true"] { border: 2px solid var(--orange); }

.profile__info { flex: 1 1 340px; display: flex; flex-direction: column; gap: 14px; padding: 18px 20px 20px; }
.badges { display: flex; gap: 8px; flex-wrap: wrap; }
.badge { padding: 3px 7px; border: var(--border); border-radius: var(--radius-sm); font-family: var(--font-mono); font-size: 11px; }
.badge--ok { background: var(--green-bg); }
.profile__name { margin: 0; font-size: 48px; line-height: .95; font-weight: 700; letter-spacing: -.02em; }
.profile__role { font-size: 17px; font-weight: 500; }
.profile__meta { font-size: 15px; line-height: 1.45; color: var(--ink-2); text-wrap: pretty; }
.rating { display: flex; align-items: baseline; gap: 8px; }
.rating__num { font-size: 28px; font-weight: 700; }
.rating__stars { color: var(--orange); letter-spacing: 2px; }
.facts { display: grid; grid-template-columns: auto 1fr; border: var(--border); border-radius: var(--radius-sm); font-family: var(--font-mono); font-size: 13px; }
.facts dt, .facts dd { margin: 0; padding: 7px 10px; border-bottom: var(--hair); }
.facts dt { background: var(--chrome); border-right: var(--hair); }
.facts dt:last-of-type, .facts dd:last-of-type { border-bottom: 0; }

/* ---------- Booking window ---------- */
.price { display: flex; align-items: baseline; gap: 6px; }
.price strong { font-size: 34px; }
.price span { font-size: 14px; }
.days { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.day { display: flex; flex-direction: column; align-items: center; padding: 8px 0; border: var(--border); border-radius: var(--radius-sm); background: #fff; font-size: 12px; }
.day strong { font-size: 17px; }
.day[aria-pressed="true"] { background: var(--ink); color: #fff; }
.slots { display: flex; flex-wrap: wrap; gap: 6px; }
.slot { padding: 8px 12px; border: var(--border); border-radius: var(--radius-sm); background: #fff; font-family: var(--font-mono); font-size: 12px; }
.slot[aria-pressed="true"] { background: var(--yellow); }
.btn-book {
  padding: 14px; border: var(--border); border-radius: 6px;
  background: var(--ink); color: #fff; font-size: 15px; font-weight: 600;
  box-shadow: 3px 3px 0 var(--yellow);
}
.btn-book:active { transform: translate(2px,2px); box-shadow: 1px 1px 0 var(--yellow); }
.confirm { font-family: var(--font-mono); font-size: 12px; background: var(--green-bg); border: var(--border); border-radius: var(--radius-sm); padding: 8px 10px; }

/* ---------- Terminal window ---------- */
.win--term { background: var(--term-bg); color: var(--term-text); font-family: var(--font-mono); font-size: 13px; }
.term { display: flex; flex-direction: column; gap: 6px; padding: 16px; line-height: 1.5; }
.term .prompt { color: var(--term-prompt); }
.term .dim { color: var(--term-dim); }
.term .ok { color: var(--term-ok); }
.term .link { color: var(--term-link); text-decoration: underline; }
.term .cursor { display: inline-block; width: 8px; height: 15px; background: var(--term-text); vertical-align: middle; animation: blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }

/* ---------- About ---------- */
.about { font-size: 15px; line-height: 1.55; }
.about__quote { margin: 0; font-size: 20px; font-weight: 600; line-height: 1.3; text-wrap: pretty; }
.about p { margin: 0; text-wrap: pretty; }
.link-btn { align-self: flex-start; border: 0; background: none; padding: 0; color: var(--blue); font-size: 14px; font-weight: 600; }
.fit { display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 1px dashed var(--ink); border-radius: var(--radius-sm); font-size: 14px; }
.fit .no { color: var(--ink-3); }

/* ---------- Video ---------- */
.video { position: relative; aspect-ratio: 16/9; background: #333 center/cover; display: grid; place-items: center; }
.video__play { width: 62px; height: 62px; border-radius: 50%; background: var(--yellow); border: var(--border); display: grid; place-items: center; font-size: 22px; box-shadow: 3px 3px 0 var(--ink); }
.video__cc { position: absolute; left: 10px; bottom: 10px; padding: 3px 7px; background: var(--ink); color: #fff; font-family: var(--font-mono); font-size: 11px; border-radius: 3px; }

/* ---------- Pricing ---------- */
.range-labels { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 11px; color: var(--ink-3); }
.plan { display: flex; flex-direction: column; gap: 8px; padding: 14px; border: var(--border); border-radius: 6px; background: var(--cream); }
.plan__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.plan__head strong:first-child { font-size: 17px; }
.plan__price { font-size: 26px; font-weight: 700; }
.plan ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.plan .no { color: var(--ink-3); }
.fine { font-size: 12px; color: var(--ink-3); }

/* ---------- Week table ---------- */
.week { width: 100%; border-collapse: collapse; font-family: var(--font-mono); font-size: 12px; }
.week th { text-align: left; padding: 6px 8px; background: var(--chrome); border-bottom: var(--border); font-weight: 400; }
.week td { padding: 7px 8px; border-bottom: 1px solid rgba(26,26,23,.1); }
.week tfoot td { background: var(--chrome); border-bottom: 0; }
.load { display: block; height: 10px; border: var(--border); border-radius: 2px; }
.load--str  { background: var(--blue); }
.load--easy { background: var(--term-ok); }
.load--hard { background: var(--orange); }
.load--long { background: var(--yellow); }
.load--rest { background: #DAD8D0; }

/* ---------- Changelog ---------- */
.log { padding: 16px 18px; }
.log__row { display: grid; grid-template-columns: 78px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px dashed rgba(26,26,23,.25); }
.log__tag { align-self: start; text-align: center; padding: 2px 6px; border: var(--border); border-radius: 3px; font-family: var(--font-mono); font-size: 11px; }
.log__row:nth-child(4n+1) .log__tag { background: #D9F2DF; }
.log__row:nth-child(4n+2) .log__tag { background: #FFE58A; }
.log__row:nth-child(4n+3) .log__tag { background: #DCE4FF; }
.log__row:nth-child(4n+4) .log__tag { background: #FFD9C7; }
.log__what { display: block; font-size: 15px; font-weight: 600; }
.log__detail { font-size: 13px; color: var(--ink-3); }
.creds { display: flex; flex-direction: column; gap: 6px; padding-top: 12px; font-size: 13px; }
.creds li { display: flex; justify-content: space-between; gap: 10px; }
.creds ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }

/* ---------- Reviews ---------- */
.reviews { display: flex; flex-wrap: wrap; gap: 20px; padding: 18px; }
.reviews__summary { flex: 0 1 200px; display: flex; flex-direction: column; gap: 6px; }
.reviews__avg { font-size: 40px; font-weight: 700; line-height: 1; }
.bar { display: grid; grid-template-columns: 14px 1fr 24px; gap: 8px; align-items: center; font-family: var(--font-mono); font-size: 11px; }
.bar__track { height: 8px; border: var(--border); border-radius: 2px; background: var(--chrome); }
.bar__fill { display: block; height: 100%; background: var(--yellow); }
.reviews__list { flex: 1 1 360px; display: flex; flex-direction: column; gap: 12px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { padding: 5px 10px; border: var(--border); border-radius: 999px; background: #fff; font-size: 12px; font-weight: 500; }
.chip[aria-pressed="true"] { background: var(--ink); color: #fff; }
.review { display: flex; flex-direction: column; gap: 4px; padding: 12px; border: 1px solid rgba(26,26,23,.2); border-radius: 6px; }
.review[hidden] { display: none; }
.review__meta { display: flex; justify-content: space-between; gap: 8px; font-family: var(--font-mono); font-size: 11px; color: var(--ink-3); }
.review__meta strong { color: var(--ink); }
.review p { margin: 0; font-size: 14px; line-height: 1.5; text-wrap: pretty; }

/* ---------- FAQ ---------- */
.faq { padding: 6px 18px 12px; }
.faq details { border-bottom: 1px dashed rgba(26,26,23,.25); }
.faq summary { display: flex; justify-content: space-between; gap: 10px; padding: 11px 0; font-size: 14px; font-weight: 600; cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '[+]'; font-family: var(--font-mono); }
.faq details[open] summary::after { content: '[-]'; }
.faq p { margin: 0 0 12px; font-size: 14px; line-height: 1.5; color: var(--ink-2); }

/* ---------- Similar coaches ---------- */
.similar { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; padding: 16px; }
.coach-card { display: flex; flex-direction: column; gap: 6px; padding: 8px; border-radius: 6px; color: var(--ink); text-decoration: none; }
.coach-card:hover { background: var(--cream); color: var(--ink); }
.coach-card__img { aspect-ratio: 4/3; border-radius: var(--radius-sm); border: var(--border); background: #ccc center/cover; }
.coach-card strong { font-size: 14px; }
.coach-card span { font-family: var(--font-mono); font-size: 11px; color: var(--ink-3); }

/* ---------- Sticky note ---------- */
.note { align-self: start; justify-self: start; max-width: 250px; padding: 16px; background: var(--sticky); border: var(--border); transform: rotate(-2.5deg); box-shadow: 3px 3px 0 rgba(26,26,23,.25); font-size: 14px; line-height: 1.45; }
.note strong { display: block; margin-bottom: 4px; }

/* ---------- Taskbar ---------- */
.taskbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 8px 14px; background: var(--chrome); border-top: var(--border);
}
.taskbar__start { display: flex; align-items: center; gap: 8px; padding: 6px 12px; border: var(--border); border-radius: 6px; background: #fff; font-weight: 700; font-size: 13px; }
.taskbar__start i { width: 16px; height: 16px; border-radius: 4px; background: var(--orange); }
.taskbar__tabs { flex: 1; min-width: 0; display: flex; gap: 6px; overflow: hidden; font-family: var(--font-mono); font-size: 11px; }
.taskbar__tabs span { padding: 5px 8px; border: 1px solid rgba(26,26,23,.3); border-radius: 4px; white-space: nowrap; background: #fff; }
.taskbar__price { font-size: 14px; }
.taskbar__cta { padding: 9px 16px; border: var(--border); border-radius: 6px; background: var(--orange); color: #fff; font-weight: 600; font-size: 14px; text-decoration: none; box-shadow: 2px 2px 0 var(--ink); }
.taskbar__cta:hover { color: #fff; }

.disclaimer { padding: 0 20px 80px; font-family: var(--font-mono); font-size: 11px; color: var(--ink-3); }

/* Publication fixes: preserve the desktop metaphor at every screen size. */
[hidden] { display: none !important; }
html { scroll-padding-top: 76px; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:8px; left:8px; z-index:100; padding:12px; background:white; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.menubar__brand { color:var(--ink); text-decoration:none; white-space:nowrap; }
.demo-notice { padding:9px 20px; border-bottom:var(--hair); background:var(--cream); color:var(--ink-2); font-size:12px; line-height:1.5; }
.windows { grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr)); }
.win { min-width:0; scroll-margin-top:20px; }
.win__bar { min-height:36px; height:auto; padding-block:3px; }
.win__title { overflow-wrap:anywhere; }
.win__close { position:relative; flex:0 0 12px; }
.win__close::before { content:''; position:absolute; inset:-7px; }
.win__bar--orange { color:var(--ink); }
.taskbar__cta { color:var(--ink); }
.taskbar__cta:hover { color:var(--ink); background:var(--yellow); }
.taskbar__start { text-decoration:none; color:var(--ink); }
.profile__info,.gallery,.reviews__list { min-width:0; }
.term { overflow-wrap:anywhere; }
.day,.slot,.chip { min-height:40px; }
.link-btn { min-height:36px; }
.gallery__thumb { min-height:34px; }
.week { table-layout:fixed; }
.week th:first-child { width:14%; }
.week th:nth-child(2) { width:32%; }
.week th:nth-child(3) { width:16%; }
.week td { overflow-wrap:anywhere; }
.os-dialog { padding:0; width:min(760px,calc(100% - 32px)); max-height:85dvh; color:var(--ink); background:var(--surface); border:var(--border); border-radius:var(--radius-win); box-shadow:8px 8px 0 var(--ink); }
.os-dialog::backdrop { background:rgba(26,26,23,.58); backdrop-filter:blur(3px); }
.dialog-bar { position:sticky; top:0; z-index:2; display:flex; align-items:center; padding:5px 10px; background:var(--yellow); border-bottom:var(--border); font:600 13px var(--font-mono); }
.dialog-close { display:grid; place-items:center; flex:none; width:32px; height:32px; padding:0; border:var(--border); border-radius:4px; background:var(--chrome); font-size:22px; }
.dialog-body { padding:24px; font-size:15px; line-height:1.6; }
.dialog-body h2 { font-size:28px; line-height:1.15; letter-spacing:-.02em; margin:0 0 12px; }
.dialog-body h3 { margin:22px 0 8px; }
.dialog-body p { margin:0 0 14px; }
.dialog-body .eyebrow { display:block; margin-bottom:12px; color:var(--ink-3); font:12px var(--font-mono); text-transform:uppercase; }
.dialog-body .similar { padding:0; margin:18px 0; }
.dialog-body .coach-card { border:var(--border); background:var(--chrome); }
.dialog-body .coach-card__img { display:block; width:100%; }
.dialog-body .dialog-photo { width:100%; height:230px; object-fit:cover; border:var(--border); border-radius:4px; margin-bottom:18px; }
.dialog-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.dialog-actions a,.dialog-actions button { padding:10px 14px; border:var(--border); border-radius:4px; text-decoration:none; background:var(--chrome); color:var(--ink); font:600 14px var(--font-ui); }
.dialog-actions .primary { background:var(--ink); color:white; }
.match-form { display:grid; gap:16px; }
.match-form label { display:grid; gap:7px; font-weight:600; }
.match-form select { width:100%; min-height:44px; padding:10px; border:var(--border); border-radius:4px; background:white; font:14px var(--font-ui); color:var(--ink); }
.match-result { margin-top:16px; padding:14px; background:var(--green-bg); border:var(--border); border-radius:4px; }
.help-list { margin:0; padding-left:20px; }
.help-list li { margin-bottom:12px; }
@media(max-width:840px) {
 .win--wide { grid-column:1/-1; }
 .menubar__status { display:none; }
}
@media(max-width:600px) {
 html { scroll-padding-top:100px; }
 .menubar { height:auto; min-height:44px; padding:10px 14px; flex-wrap:wrap; gap:10px; }
 .menubar__menu { flex-basis:100%; flex-wrap:nowrap; justify-content:space-between; gap:12px; }
 .menubar__menu a { padding:4px 0; }
 .demo-notice { padding:10px 14px; font-size:11px; }
 .desktop { display:block; padding:12px 12px 100px; }
 .dock { width:100%; flex-direction:row; overflow-x:auto; margin:0 0 16px; padding:3px 0 8px; gap:5px; }
 .dock__item { flex:0 0 48px; min-height:48px; padding:6px; }
 .dock__item img { width:30px; height:30px; }
 .windows { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
 .profile { display:block; }
 .gallery { padding:12px; }
 .profile__info { padding:16px; }
 .profile__name { font-size:42px; }
 .profile__role { font-size:16px; }
 .facts { font-size:12px; }
 .facts dt,.facts dd { padding:7px; }
 .reviews { padding:14px; gap:18px; }
 .reviews__summary,.reviews__list { flex-basis:100%; }
 .reviews__summary { max-width:240px; }
 .taskbar { display:grid; grid-template-columns:1fr auto; gap:6px 12px; padding:10px 12px max(10px,env(safe-area-inset-bottom)); }
 .taskbar__start,.taskbar__tabs { display:none; }
 .taskbar__price { font-size:12px; }
 .taskbar__price strong { display:block; font-size:17px; }
 .taskbar__cta { padding:12px; font-size:13px; }
 .dialog-body { padding:18px; }
 .os-dialog { width:calc(100% - 24px); max-height:88dvh; }
 .dialog-body .similar { gap:10px; }
 .similar { padding:12px; gap:8px; }
 .disclaimer { padding:0 14px 110px; line-height:1.6; }
 .note { max-width:100%; }
 .review__meta { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) { .term .cursor { animation:none; } html { scroll-behavior:auto; } }

/* Live directory. The Race and Pace windows, chrome, dot grid and hard shadows remain. */
.listing-notice { padding:9px 20px; border-bottom:var(--hair); background:var(--cream); color:var(--ink-2); font-size:12px; line-height:1.5; }
.win__title { margin:0; font-size:12px; line-height:1.5; }
.win__body h3 { margin:0; font-size:20px; line-height:1.2; letter-spacing:-.01em; }
.win__body p { margin:0; }
.eyebrow { display:block; font:11px/1.5 var(--font-mono); text-transform:uppercase; letter-spacing:.03em; color:var(--ink-3); }
.empty-copy { font-size:14px; line-height:1.6; color:var(--ink-3); }
.loading-state { min-height:260px; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:14px; }
.loading-dot { display:inline-block; width:12px; height:12px; border:var(--border); border-radius:50%; background:var(--yellow); }
.error-state { padding:36px; min-height:280px; justify-content:center; }
.error-state h1 { margin:0; font-size:32px; }
.error-state p { color:var(--ink-3); }
.directory-intro { padding:38px 40px 30px; display:flex; justify-content:space-between; align-items:center; gap:32px; background:var(--surface); }
.directory-intro h1 { margin:16px 0; font-size:clamp(42px,5vw,72px); line-height:.98; letter-spacing:-.055em; font-weight:700; }
.directory-intro h1 span { color:var(--orange); }
.directory-intro p { max-width:470px; margin:0; line-height:1.6; font-size:16px; color:var(--ink-2); }
.directory-sticker { flex:none; display:flex; flex-direction:column; width:210px; padding:24px; gap:20px; background:var(--sticky); border:var(--border); box-shadow:4px 4px 0 var(--ink); transform:rotate(4deg); }
.directory-sticker>span { font-size:52px; line-height:.75; }
.directory-sticker strong { font-size:27px; line-height:1.05; letter-spacing:-.025em; }
.directory-sticker small { font:11px/1.5 var(--font-mono); }
.directory-search { display:grid; grid-template-columns:1.4fr 1fr auto; align-items:end; gap:12px; padding:24px 40px 28px; border-top:var(--hair); background:var(--chrome); }
.search-field { display:grid; gap:7px; font:12px var(--font-mono); }
.directory-search input,.directory-search select,.share-field input { width:100%; min-width:0; min-height:46px; border:var(--border); border-radius:4px; background:white; color:var(--ink); font:14px var(--font-ui); padding:11px 12px; }
.directory-search input::placeholder { color:var(--ink-3); }
.directory-search .btn-book { min-height:46px; padding:11px 18px; box-shadow:3px 3px 0 var(--orange); }
.directory-filters { grid-column:1/-1; padding-top:3px; }
.directory-filters summary { cursor:pointer; width:max-content; font:12px/1.7 var(--font-mono); padding:6px 0; }
.filter-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding:14px 0 6px; }
.filter-fields label { display:grid; gap:7px; font:12px var(--font-mono); }
.directory-filters .fine { margin:10px 0 0; line-height:1.5; }
.search-validation { grid-column:1/-1; border:var(--border); border-radius:4px; padding:10px; background:var(--cream); font-size:13px; }
.directory-result-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; }
.directory-result-heading h2 { margin:0; font-size:24px; letter-spacing:-.025em; }
.directory-result-heading p { margin:5px 0 0; font-size:13px; color:var(--ink-3); }
.directory-result-heading .link-btn { display:flex; align-items:center; white-space:nowrap; font-size:12px; }
.directory-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding:0 24px 24px; }
.directory-card { color:var(--ink); text-decoration:none; border:var(--border); border-radius:6px; overflow:hidden; display:flex; flex-direction:column; min-width:0; background:white; transition:box-shadow .15s ease,transform .15s ease; }
.directory-card:hover { color:var(--ink); box-shadow:4px 4px 0 var(--orange); transform:translate(-1px,-1px); }
.live-photo { position:relative; display:grid; place-items:center; overflow:hidden; background:var(--paper); background-image:radial-gradient(rgba(26,26,23,.15) 1px,transparent 1px); background-size:12px 12px; }
.live-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center; padding:6px; background:var(--paper); }
.photo-initials { display:grid; place-items:center; width:96px; height:96px; border:var(--border); border-radius:50%; background:var(--chrome); font:600 32px var(--font-mono); box-shadow:3px 3px 0 var(--ink); }
.card-photo { aspect-ratio:1.6; border-bottom:var(--border); }
.directory-card__content { display:flex; flex-direction:column; gap:8px; padding:16px; flex:1; }
.directory-card__content>strong { font-size:20px; line-height:1.2; overflow-wrap:anywhere; letter-spacing:-.02em; }
.card-handle { color:var(--ink-3); font:11px var(--font-mono); overflow-wrap:anywhere; }
.card-location { font-size:12px; color:var(--ink-2); }
.card-bio { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; line-height:1.5; font-size:13px; white-space:pre-line; }
.card-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:12px; margin-top:auto; font:11px var(--font-mono); color:var(--ink-3); }
.card-open { display:grid; place-items:center; width:28px; height:28px; border:var(--border); border-radius:4px; font-size:20px; color:var(--ink); background:var(--yellow); }
.directory-empty { padding:20px 24px 44px; text-align:center; }
.directory-empty h3 { margin:12px 0; font-size:22px; }
.directory-empty p { margin:0 0 24px; color:var(--ink-3); }
.load-more-row { display:flex; justify-content:center; align-items:center; gap:14px; padding:0 24px 24px; flex-wrap:wrap; }
.load-more-row:empty { display:none; }
.load-more { min-height:44px; padding:10px 18px; border:var(--border); border-radius:4px; background:var(--chrome); font-weight:600; }
.load-more:disabled { opacity:.6; cursor:progress; }
#pagination-status { font-size:12px; color:var(--ink-3); }
.directory-guide { flex-direction:row; align-items:start; gap:28px; font-size:14px; line-height:1.6; }
.directory-guide p { flex:1; }
.directory-guide a { flex:0 0 150px; }
.profile-photo { aspect-ratio:16/10; border:var(--border); border-radius:4px; }
.gallery-caption { font:10px/1.5 var(--font-mono); color:var(--ink-3); }
.live-thumb { display:block; position:relative; overflow:hidden; background:var(--chrome); }
.live-thumb img { width:100%; height:100%; object-fit:contain; object-position:center; padding:3px; position:absolute; inset:0; }
.profile__name { overflow-wrap:anywhere; }
.profile__meta { overflow-wrap:anywhere; }
.profile-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:auto; }
.profile-actions .btn-book { text-align:center; text-decoration:none; padding:12px 16px; flex:1; }
.share-button { min-height:44px; padding:10px 12px; border:var(--border); background:var(--chrome); border-radius:4px; font-size:13px; }
.public-bio { white-space:pre-wrap; overflow-wrap:anywhere; }
.data-tags { display:flex; flex-wrap:wrap; gap:7px; }
.data-tags span { padding:5px 8px; font:11px/1.4 var(--font-mono); border:var(--border); background:var(--cream); border-radius:4px; }
.availability-row { display:flex; flex-direction:column; gap:5px; padding-top:12px; border-top:var(--hair); font-size:13px; }
.availability-row span { color:var(--ink-3); }
.contact-body h3 { font-size:26px; overflow-wrap:anywhere; }
.public-links { display:flex; flex-direction:column; gap:8px; }
.public-link { border:var(--border); border-radius:4px; padding:10px 12px; background:var(--chrome); color:var(--ink); text-decoration:none; font-size:13px; overflow-wrap:anywhere; }
.public-link:hover { color:var(--ink); background:var(--cream); }
.contact-primary { display:block; padding:12px 14px; border:var(--border); border-radius:5px; background:var(--ink); color:white; font-size:14px; font-weight:600; text-decoration:none; }
.contact-primary:hover { color:white; background:var(--ink-2); }
.contact-route { display:flex; flex-direction:column; gap:5px; }
.contact-route>span { font:11px var(--font-mono); color:var(--ink-3); overflow-wrap:anywhere; }
.credential-list { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:12px; font-size:14px; }
.credential-list li { display:flex; gap:9px; align-items:baseline; }
.credential-list li>span { font:20px var(--font-mono); color:var(--orange); }
#win-races .week th { width:50%; }
.term a { color:var(--term-link); }
.term strong { font-weight:400; color:var(--term-ok); }
.post-links { display:flex; flex-direction:column; gap:7px; }
.evidence-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.evidence-list li { padding:12px; border:var(--hair); border-radius:4px; }
.evidence-list li>div { display:flex; justify-content:space-between; gap:8px; flex-wrap:wrap; font-size:12px; }
.evidence-list a { overflow-wrap:anywhere; }
.evidence-list details { margin:8px 0; font-size:13px; line-height:1.6; }
.evidence-list summary,.classification-details summary { cursor:pointer; font-size:12px; }
.evidence-list details p { margin-top:9px; overflow-wrap:anywhere; }
.classification-details { border-top:var(--hair); padding-top:14px; }
.classification-details p { white-space:pre-wrap; overflow-wrap:anywhere; margin-top:10px; font:11px/1.7 var(--font-mono); }
.similar-live { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.similar-live .directory-card__content { padding:10px; }
.similar-live .directory-card__content>strong { font-size:14px; }
.similar-live .card-photo { aspect-ratio:1.25; }
.similar-live .card-bio,.similar-live .card-location,.similar-live .card-footer { display:none; }
.similar-live .photo-initials { width:56px; height:56px; font-size:18px; }
.tool-links { display:grid; gap:12px; }
.tool-links a { display:flex; flex-direction:column; gap:6px; padding:16px; border:var(--border); background:var(--chrome); border-radius:4px; color:var(--ink); text-decoration:none; }
.tool-links a:hover { background:var(--cream); }
.tool-links span { font-size:13px; color:var(--ink-3); }
.share-field { display:grid; gap:8px; font-size:12px; }
.taskbar__price { max-width:280px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media(max-width:1100px) { .directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .directory-intro { padding:30px; } .directory-search { padding:22px 30px; } .directory-sticker { width:180px; padding:20px; } }
@media(max-width:840px) { .directory-sticker { display:none; } .directory-guide { flex-direction:column; gap:14px; } .directory-guide a { flex:auto; } .directory-search { grid-template-columns:1fr 1fr; } .directory-search>.btn-book { grid-column:1/-1; } .filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
 .listing-notice { padding:8px 14px; font-size:11px; }
 .directory-intro { padding:24px 18px; }
 .directory-intro h1 { font-size:48px; }
 .directory-intro p { font-size:14px; }
 .directory-search { padding:18px; grid-template-columns:1fr; }
 .directory-search .btn-book { grid-column:auto; }
 .directory-grid { grid-template-columns:1fr; padding:0 14px 18px; gap:16px; }
 .directory-card { display:grid; grid-template-columns:100px minmax(0,1fr); }
 .card-photo { aspect-ratio:auto; min-height:170px; height:100%; border-bottom:0; border-right:var(--border); }
 .directory-card__content { padding:12px; gap:6px; }
 .directory-card__content>strong { font-size:18px; }
 .card-bio { -webkit-line-clamp:2; font-size:12px; }
 .card-footer { padding-top:6px; font-size:10px; }
 .photo-initials { width:62px; height:62px; font-size:22px; }
 .directory-result-heading { padding:18px 14px; align-items:start; gap:10px; }
 .directory-result-heading h2 { font-size:20px; }
 .directory-result-heading p { font-size:11px; }
 .directory-result-heading .link-btn { font-size:10px; }
 .directory-filters summary { font-size:11px; }
 .filter-fields { gap:12px 10px; }
 .filter-fields label { font-size:10px; }
 .filter-fields input,.filter-fields select { font-size:12px; padding:10px 7px; }
 .profile__name { font-size:38px; }
 .facts { grid-template-columns:104px minmax(0,1fr); }
 .facts dd { overflow-wrap:anywhere; }
 .profile-actions .btn-book { font-size:13px; }
 .profile-photo { aspect-ratio:1.4; }
 .profile-photo .photo-initials { width:100px; height:100px; font-size:36px; }
 .similar-live .directory-card { display:flex; }
 .similar-live .card-photo { min-height:0; height:auto; aspect-ratio:1.25; border-right:0; border-bottom:var(--border); }
 .similar-live .card-handle { font-size:9px; }
 .taskbar__price { max-width:none; font-size:12px; }
 .taskbar__cta { max-width:160px; }
 .desktop { padding-bottom:95px; }
 .note { margin-bottom:12px; }
 .error-state { padding:22px; }
 .error-state h1 { font-size:26px; }
 .menubar__menu { font-size:12px; }
 .menubar__menu a { white-space:nowrap; }
}
@media(max-width:360px) { .directory-intro h1 { font-size:42px; } .directory-card { grid-template-columns:80px minmax(0,1fr); } .card-photo { min-height:170px; } .directory-card__content>strong { font-size:16px; } .card-open { display:none; } .menubar__menu { font-size:11px; gap:10px; } .profile__name { font-size:32px; } }
@media(prefers-reduced-motion:reduce) { .directory-card { transition:none; } }

/* Rich coach profiles: keep real portraits compact and separate from hero media. */
.live-photo img { object-fit:contain; object-position:center; }
.directory-card { display:grid; grid-template-columns:96px minmax(0,1fr); align-items:start; gap:14px; padding:14px; }
.directory-card__content { padding:0; min-width:0; }
.card-photo { width:96px; height:96px; min-height:0; aspect-ratio:1; border:var(--border); border-radius:4px; }
.directory-card .photo-initials { width:58px; height:58px; font-size:21px; }
.directory-card__content>strong { font-size:18px; }
.card-bio { -webkit-line-clamp:3; }
.similar-live .directory-card { display:flex; align-items:stretch; gap:10px; padding:12px; }
.similar-live .card-photo { width:80px; height:80px; min-height:0; aspect-ratio:1; border:var(--border); align-self:center; }
.similar-live .directory-card__content { padding:0; }

.preview-toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px 24px; padding:14px 20px; border-bottom:var(--border); background:var(--chrome); font:12px/1.5 var(--font-mono); }
.preview-mode { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.preview-controls { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.preview-controls label { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.preview-controls select,.preview-controls button { max-width:100%; min-height:40px; padding:8px 10px; background:var(--surface); color:var(--ink); border:var(--border); border-radius:4px; font:12px var(--font-ui); }
.preview-controls button[aria-pressed="true"] { background:var(--ink); color:var(--surface); }
.example-tag { display:inline-flex; align-items:center; align-self:flex-start; max-width:100%; padding:4px 7px; border:1px solid #8C6C27; border-radius:3px; background:#FFF3D2; color:#65490C; font:10px/1.4 var(--font-mono); overflow-wrap:anywhere; }
.win--term .example-tag { background:#3D3320; border-color:#9F864E; color:#FFE4A6; }

.profile { display:grid; grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr); align-items:start; }
.profile-media { min-width:0; padding:24px; border-right:var(--hair); display:grid; grid-template-columns:128px minmax(0,1fr); align-items:start; gap:14px 16px; }
.profile-portrait,.profile-photo { display:grid; flex:none; width:128px; height:128px; max-width:100%; min-height:0; aspect-ratio:1; border:var(--border); border-radius:5px; overflow:hidden; }
.profile-portrait .photo-initials,.profile-photo .photo-initials { width:64px; height:64px; font-size:22px; }
.profile-portrait img,.profile-photo img { width:100%; height:100%; max-width:none; object-fit:contain; object-position:center; }
/* Bethany's observed 150px square source is a full-body photograph. This measured
   UI crop uses its upper-centre 60px square for a small head-and-shoulders view.
   It is never substituted for missing high-resolution hero/gallery assets. */
.live-photo[data-portrait-crop="bethany-headshot"] img { width:250%; height:250%; max-width:none; left:50%; top:0; right:auto; bottom:auto; transform:translateX(-50%); object-fit:contain; object-position:center top; }
.profile-media>.gallery-caption { align-self:center; font-size:11px; line-height:1.7; }
.profile-hero { grid-column:1/-1; display:block; width:100%; aspect-ratio:3/2; min-width:0; margin:2px 0 0; border:var(--border); border-radius:4px; overflow:hidden; background:var(--chrome); }
.profile-hero>img { display:block; width:100%; height:100%; object-fit:cover; }
.hero-slot,.gallery-slot { background:repeating-linear-gradient(-45deg,transparent,transparent 9px,rgba(26,26,23,.025) 9px,rgba(26,26,23,.025) 10px),var(--chrome); border:1px dashed #8F8E83; color:var(--ink-3); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:9px; padding:20px; }
.hero-slot { min-height:180px; }
.hero-slot>strong { max-width:24ch; font-size:16px; line-height:1.3; color:var(--ink-2); }
.hero-slot>span,.hero-slot>small { max-width:40ch; font:11px/1.6 var(--font-mono); }
.profile-gallery { grid-column:1/-1; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; min-width:0; }
.gallery-slot { min-width:0; min-height:92px; padding:10px 6px; border-radius:3px; font:10px/1.5 var(--font-mono); overflow-wrap:anywhere; }
.gallery-slot strong { color:var(--ink-2); font-weight:500; }
.profile-gallery img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; border:var(--border); border-radius:3px; }
.profile-gallery button { padding:0; min-width:0; background:none; border:0; }
.profile-gallery button[aria-current="true"] img { outline:2px solid var(--orange); outline-offset:2px; }
.profile__info { min-width:0; padding:28px; gap:16px; }
.profile__name { font-size:clamp(36px,4vw,58px); line-height:1; letter-spacing:-.04em; }
.profile-headline { margin:0; font-size:22px; font-weight:500; line-height:1.3; letter-spacing:-.02em; }
.profile-tagline { margin:0; font-size:16px; color:var(--ink-2); line-height:1.55; text-wrap:pretty; }
.profile-meta-list { display:flex; flex-wrap:wrap; gap:6px 14px; padding:0; margin:0; list-style:none; font:11px/1.7 var(--font-mono); color:var(--ink-3); }
.profile-meta-list>* { overflow-wrap:anywhere; }
.profile-trust { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:12px; }
.trust-items { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin:0; padding:0; list-style:none; font:11px/1.6 var(--font-mono); color:var(--ink-2); }
.trust-items>span,.trust-items>li { display:inline-flex; align-items:center; gap:6px; }
.status-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--ink-3); flex:none; }
.status-dot.is-available,.status-dot--available { background:var(--green); }
.quick-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; border:var(--border); border-radius:4px; overflow:hidden; font:12px/1.5 var(--font-mono); }
.quick-facts>div { min-width:0; padding:12px; border-bottom:var(--hair); }
.quick-facts>div:nth-child(odd) { border-right:var(--hair); }
.quick-facts>div:nth-last-child(-n+2) { border-bottom:0; }
.quick-facts dt { color:var(--ink-3); font-size:10px; margin-bottom:5px; }
.quick-facts dd { margin:0; font-weight:600; overflow-wrap:anywhere; }

.plan-switcher { display:grid; gap:12px; }
.plan-switcher label { font-size:14px; font-weight:600; }
.plan-switcher input[type="range"] { min-height:30px; margin:0; }
.plan-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.plan-options button { min-width:0; min-height:44px; padding:8px 5px; border:var(--border); border-radius:4px; background:var(--surface); font:11px/1.35 var(--font-mono); overflow-wrap:anywhere; }
.plan-options button[aria-pressed="true"],.plan-options button[aria-selected="true"] { background:var(--ink); color:var(--surface); }
.plan-card { display:flex; flex-direction:column; gap:12px; min-width:0; }
.plan-features { margin:0; padding:0; list-style:none; display:grid; gap:8px; font-size:13px; line-height:1.5; }
.plan-features li { padding-bottom:8px; border-bottom:var(--hair); }
.plan-features li:last-child { padding-bottom:0; border-bottom:0; }
.plan-terms { padding-top:12px; border-top:var(--hair); font:10px/1.7 var(--font-mono); color:var(--ink-3); }
.booking-summary { display:flex; flex-direction:column; gap:8px; }
.booking-summary>strong { font-size:22px; line-height:1.3; }
.booking-summary>p,.booking-summary>span { font-size:13px; line-height:1.5; }
.booking-form { gap:16px; }
.booking-form textarea,.booking-management textarea,#intro-review-form textarea { width:100%; min-height:96px; resize:vertical; padding:12px; border:var(--border); border-radius:4px; color:var(--ink); background:var(--surface); font:14px/1.5 var(--font-ui); }
.booking-form .booking-consent { display:flex; align-items:flex-start; gap:10px; font-size:12px; line-height:1.6; }
.booking-consent input { flex:none; width:18px; height:18px; margin:1px 0 0; accent-color:var(--orange); }
.booking-management { gap:18px; max-width:880px; }
.booking-management h1 { margin:0; font-size:clamp(30px,5vw,48px); line-height:1.1; letter-spacing:-.035em; }
.booking-management .facts { overflow-wrap:anywhere; }
.booking-management .share-field { width:100%; }
.booking-management .share-field input { min-width:0; width:100%; }
.booking-actions { flex-wrap:wrap; align-items:center; }
.booking-actions>* { min-height:44px; }
.booking-actions a { display:inline-flex; align-items:center; }
#booking-form-message { font-size:13px; line-height:1.6; }
.booking-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:9px; font:11px/1.5 var(--font-mono); }
.booking-toolbar label { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.booking-toolbar select { max-width:100%; min-height:38px; padding:7px; border:var(--border); border-radius:4px; background:var(--surface); color:var(--ink); font:11px var(--font-ui); }
.booking-toolbar button { min-height:38px; border:var(--border); background:var(--chrome); border-radius:4px; padding:6px 10px; }
.booking-days { gap:5px; }
.booking-days .day { min-width:0; }
.booking-slots { gap:7px; }
.booking-confirm { padding:12px; border:var(--border); border-radius:4px; background:var(--green-bg); font:11px/1.65 var(--font-mono); overflow-wrap:anywhere; }
.coach-fit { display:grid; gap:12px; margin-top:2px; }
.fit-good,.fit-not { padding:12px 14px; border-left:3px solid var(--ink); background:var(--chrome); font-size:13px; line-height:1.6; }
.fit-good>strong,.fit-not>strong { display:block; margin-bottom:6px; }
.fit-good { border-left-color:var(--green); }
.fit-not { border-left-color:var(--orange); }
.fit-good ul,.fit-not ul { margin:0; padding-left:18px; }
.goal-chips { display:flex; flex-wrap:wrap; gap:7px; }
.goal-chips>span { padding:5px 8px; border:var(--border); border-radius:4px; background:var(--cream); font:11px/1.4 var(--font-mono); }
.training-week { max-width:100%; font-size:11px; }
.training-week th,.training-week td { padding:9px 7px; }
.week-summary { display:flex; flex-wrap:wrap; gap:8px 14px; border-top:var(--hair); padding-top:12px; font:11px/1.6 var(--font-mono); color:var(--ink-2); }
.review-reply { margin-top:8px; padding:10px 12px; background:var(--chrome); border-left:2px solid var(--ink); font-size:12px; line-height:1.6; }
.review-reply strong { display:block; margin-bottom:4px; }
.direction-module { display:flex; flex-direction:column; gap:12px; font-size:14px; line-height:1.6; }
.direction-module h3,.direction-module h4 { margin:0; }
.direction-module p { margin:0; }
.direction-module ul,.direction-module ol { margin:0; padding-left:20px; }
.direction-module li+li { margin-top:6px; }
.pace-signal { font-family:var(--font-mono); font-size:12px; }
.milecraft blockquote { margin:0; font-family:Georgia,serif; font-size:20px; line-height:1.5; }
.pack-route .goal-chips>span { background:#E9EEF8; }
.start-line strong { font-size:22px; line-height:1.15; letter-spacing:-.03em; }
.direction-module a,.direction-module button { align-self:flex-start; }

@media(max-width:1150px) {
 .profile { grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr); }
 .profile-media { padding:20px; grid-template-columns:112px minmax(0,1fr); }
 .profile-portrait { width:112px; height:112px; }
 .profile__info { padding:24px; }
 .directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:900px) {
 .profile { grid-template-columns:minmax(0,1fr); }
 .profile-media { border-right:0; border-bottom:var(--hair); grid-template-columns:128px minmax(0,1fr); }
 .profile-portrait { width:128px; height:128px; }
 .profile-hero { max-width:100%; aspect-ratio:3/2; }
 .hero-slot { min-height:0; max-height:280px; }
}
@media(max-width:600px) {
 .preview-toolbar { gap:10px; padding:12px 14px; font-size:10px; }
 .preview-mode,.preview-controls { width:100%; }
 .preview-controls { gap:8px; }
 .preview-controls label { flex:1 1 120px; min-width:0; display:grid; gap:5px; }
 .preview-controls select { width:100%; min-width:0; font-size:12px; }
 .preview-controls button { flex:1 1 auto; }
 .directory-grid { grid-template-columns:minmax(0,1fr); }
 .directory-card { grid-template-columns:84px minmax(0,1fr); gap:12px; padding:12px; }
 .card-photo { width:84px; height:84px; min-height:0; aspect-ratio:1; border:var(--border); }
 .directory-card__content { padding:0; }
 .directory-card__content>strong { font-size:18px; }
 .directory-card .photo-initials { width:52px; height:52px; font-size:19px; }
 .similar-live .card-photo { width:72px; height:72px; min-height:0; aspect-ratio:1; border:var(--border); }
 .profile-media { padding:18px; gap:12px; grid-template-columns:112px minmax(0,1fr); }
 .profile-portrait,.profile-photo { width:112px; height:112px; min-height:0; aspect-ratio:1; }
 .profile-media>.gallery-caption { font-size:10px; line-height:1.6; }
 .profile__info { padding:20px 18px; gap:14px; }
 .profile__name { font-size:36px; }
 .profile-headline { font-size:20px; }
 .profile-tagline { font-size:14px; }
 .profile-meta-list { gap:5px 10px; font-size:10px; }
 .hero-slot { min-height:170px; padding:20px 16px; }
 .hero-slot>strong { font-size:14px; }
 .hero-slot>span,.hero-slot>small { font-size:10px; }
 .profile-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .gallery-slot { min-height:74px; font-size:9px; }
 .quick-facts { font-size:11px; }
 .quick-facts>div { padding:10px; }
 .quick-facts dt { font-size:9px; }
 .quick-facts dd { font-size:11px; }
 .booking-toolbar { gap:8px; }
 .booking-toolbar label { min-width:0; }
 .booking-toolbar select { max-width:100%; }
 .training-week { font-size:10px; }
 .training-week th,.training-week td { padding:8px 5px; }
 .log__row { grid-template-columns:62px minmax(0,1fr); gap:10px; }
 .review-reply { padding:10px; }
 .profile .facts { grid-template-columns:100px minmax(0,1fr); }
}
@media(max-width:360px) {
 .profile-media { padding:14px; grid-template-columns:104px minmax(0,1fr); }
 .profile-portrait,.profile-photo { width:104px; height:104px; }
 .profile__info { padding:18px 14px; }
 .profile__name { font-size:32px; }
 .directory-card { grid-template-columns:72px minmax(0,1fr); gap:10px; }
 .card-photo { width:72px; height:72px; min-height:0; }
 .directory-card__content>strong { font-size:16px; }
 .taskbar__cta { max-width:140px; font-size:12px; }
 .hero-slot>span,.hero-slot>small { font-size:9px; }
}

/* Final renderer details and the persistent preview state. */
:root { --os-menubar-height:38px; }
html { scroll-padding-top:158px; }
.menubar { height:var(--os-menubar-height); min-height:var(--os-menubar-height); }
.preview-toolbar { position:sticky; top:var(--os-menubar-height); z-index:19; box-shadow:0 2px 0 rgba(26,26,23,.12); }
.preview-toggle { cursor:pointer; }
.preview-toggle input { width:16px; height:16px; accent-color:var(--orange); flex:none; margin:0; }
.profile-portrait-wrap { display:flex; grid-column:1/-1; align-items:center; gap:18px; min-width:0; }
.profile-portrait-wrap .gallery-caption { max-width:24ch; font-size:11px; line-height:1.6; }
.profile-media>.gallery-caption:last-child { grid-column:1/-1; }
.profile-hero { position:relative; }
.profile-hero:has(>img) { max-height:none; padding:0; border-style:solid; }
.profile-hero>img { position:absolute; inset:0; }
.hero-slot>span[aria-hidden="true"] { color:var(--ink-2); font:26px var(--font-mono); }
.gallery-slot>span[aria-hidden="true"] { color:var(--ink-2); font-size:16px; }
.gallery-slot:has(>.rich-gallery-thumb) { padding:0; border-style:solid; aspect-ratio:3/2; min-height:0; }
.gallery-slot>.rich-gallery-thumb { width:100%; height:100%; }
.gallery-slot>.rich-gallery-thumb>img { height:100%; border:0; border-radius:0; }
.profile-team,.public-account { font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.public-account { font-family:var(--font-mono); font-size:11px; }
.profile .rating { color:var(--ink); flex-wrap:wrap; text-decoration:none; gap:7px 10px; font-size:13px; }
.profile .rating:hover { color:var(--blue); }
.facts.quick-facts { grid-template-columns:minmax(110px,.8fr) minmax(0,1.2fr); }
.facts.quick-facts dt,.facts.quick-facts dd { min-width:0; margin:0; padding:10px 12px; font-size:11px; line-height:1.5; }
.plan-card .plan__head { flex-wrap:wrap; }
.plan-card .plan__head>strong { flex:1 1 120px; }
.plan-card .plan__head>span:last-child { white-space:nowrap; }
.credential-list li>div { display:flex; flex-direction:column; gap:4px; min-width:0; }
.credential-list li>div>span { font-size:12px; line-height:1.5; }
.race-highlights { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.race-highlights li { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:6px 12px; border-bottom:var(--hair); padding-bottom:10px; font-size:13px; }
.race-highlights li:last-child { padding-bottom:0; border-bottom:0; }
.race-highlights li>span { font:11px/1.5 var(--font-mono); color:var(--ink-3); }
.review__meta { align-items:center; justify-content:flex-start; flex-wrap:wrap; }
.review__meta time { margin-left:auto; }
.reviewer-avatar { width:28px; height:28px; flex:none; display:grid; place-items:center; border:var(--border); border-radius:4px; background:var(--chrome); color:var(--ink); font:10px var(--font-mono); }
.review-stars { color:#B94718; letter-spacing:2px; font-size:12px; }
.win video { display:block; width:100%; max-width:100%; aspect-ratio:16/9; background:var(--ink); border-radius:4px; }
.pack-club { display:flex; flex-direction:column; gap:5px; padding:14px; background:var(--chrome); border:var(--border); border-radius:4px; }
.pack-club>span { font-size:12px; line-height:1.5; }
.route-preview { margin:0; border:var(--border); border-radius:4px; overflow:hidden; background:#F0F2E9; color:#355643; }
.route-preview svg { display:block; width:100%; height:180px; padding:20px; background-image:linear-gradient(rgba(53,86,67,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(53,86,67,.07) 1px,transparent 1px); background-size:20px 20px; }
.route-preview figcaption { padding:9px 12px; border-top:var(--hair); color:var(--ink-3); font:10px/1.5 var(--font-mono); }
.terrain-mix { display:flex; flex-wrap:wrap; gap:8px; }
.terrain-mix>span { border:var(--hair); border-radius:4px; padding:5px 8px; font:11px var(--font-mono); }
.goal-tiles { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.goal-tiles>div { display:flex; flex-direction:column; gap:8px; padding:12px; border:var(--border); border-radius:4px; background:var(--cream); }
.goal-tiles>div>strong { font-size:17px; }
.goal-tiles>div>span { font-size:12px; line-height:1.45; }
.race-day-plan { display:flex; flex-direction:column; gap:14px; padding:16px; background:var(--chrome); border:var(--border); border-radius:4px; }
.race-day-plan>strong { font-size:20px; }
.race-day-plan>div { border-top:var(--hair); padding-top:12px; }
.race-day-plan>div>span { display:block; margin-bottom:4px; font:11px var(--font-mono); }
.race-day-plan p { font-size:13px; line-height:1.5; }
.readiness-list { list-style:none; margin:16px 0 0; padding:0; display:grid; gap:10px; }
.readiness-list li { padding:12px 14px; background:var(--chrome); border:var(--hair); border-left:3px solid var(--orange); border-radius:3px; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.readiness-list strong { display:block; }
.gallery-dialog-image { display:block; max-width:100%; max-height:65vh; width:auto; height:auto; object-fit:contain; margin:0 auto; border-radius:4px; }
@media(max-width:600px) {
 :root { --os-menubar-height:74px; }
 html { scroll-padding-top:194px; }
 .menubar { padding:9px 14px; column-gap:12px; row-gap:6px; align-content:center; }
 .menubar__brand { line-height:18px; }
 .menubar__menu { line-height:16px; }
 .preview-toolbar { padding:10px 12px; gap:7px; }
 .preview-mode { font-size:10px; line-height:14px; }
 .preview-controls { display:grid; grid-template-columns:minmax(76px,.9fr) minmax(102px,1.2fr) minmax(62px,.8fr); gap:8px; align-items:center; }
 .preview-controls label { display:grid; gap:5px; min-width:0; margin:0; font-size:9px; line-height:1.35; }
 .preview-controls .preview-toggle { display:flex; align-items:center; gap:5px; font:10px/1.4 var(--font-ui); }
 .preview-controls select { min-height:34px; padding:6px 5px; font-size:11px; }
 .preview-controls button { min-height:42px; padding:6px 5px; font-size:10px; line-height:1.4; }
 .profile-portrait-wrap { gap:14px; }
 .profile-portrait-wrap .gallery-caption { font-size:10px; }
 .facts.quick-facts { grid-template-columns:104px minmax(0,1fr); }
 .facts.quick-facts dt,.facts.quick-facts dd { padding:9px 10px; font-size:10px; }
 .review__meta time { width:100%; margin-left:0; font-size:10px; }
 .goal-tiles { gap:7px; }
 .goal-tiles>div { padding:10px; }
 .goal-tiles>div>strong { font-size:15px; }
 .readiness-list li { padding:10px; font-size:12px; }
}

.booking-coach { display:flex; align-items:center; gap:12px; }
.booking-headshot { width:56px; height:56px; flex:0 0 56px; border:var(--border); border-radius:4px; }
.booking-headshot .photo-initials { width:32px; height:32px; font-size:12px; box-shadow:none; }
.booking-coach>div { display:flex; flex-direction:column; gap:4px; min-width:0; }
.booking-coach strong { font-size:15px; overflow-wrap:anywhere; }
.booking-coach>div>span { color:var(--ink-3); font-size:12px; }
.profile-breadcrumb { display:flex; align-items:baseline; flex-wrap:wrap; gap:7px; font:10px/1.5 var(--font-mono); color:var(--ink-3); }
.profile-breadcrumb a { text-decoration:none; }
.public-account { display:flex; flex-direction:column; gap:5px; }
.public-account .fine { font:10px/1.6 var(--font-mono); }

/* On narrower screens, introduce the person before the pending gallery assets. */
@media(max-width:900px) {
 .profile-media { display:contents; }
 .profile-portrait-wrap { grid-column:1/-1; grid-row:1; margin:20px 20px 0; }
 .profile__info { grid-column:1/-1; grid-row:2; }
 .profile-hero { grid-column:1/-1; grid-row:3; width:auto; margin:0 20px 12px; }
 .profile-gallery { grid-column:1/-1; grid-row:4; margin:0 20px 10px; }
 .profile-media>.gallery-caption:last-child { grid-column:1/-1; grid-row:5; margin:0 20px 20px; }
}
@media(max-width:600px) {
 .profile-portrait-wrap { margin:18px 18px 0; }
 .profile-hero { margin-inline:18px; }
 .profile-gallery { margin-inline:18px; }
 .profile-media>.gallery-caption:last-child { margin-inline:18px; }
}
@media(max-width:360px) {
 :root { --os-menubar-height:100px; }
 html { scroll-padding-top:220px; }
 .menubar__menu { flex-wrap:wrap; min-width:0; justify-content:flex-start; gap:0 12px; }
 .profile-portrait-wrap { margin:14px 14px 0; }
 .profile-hero { margin-inline:14px; }
 .profile-gallery { margin-inline:14px; }
 .profile-media>.gallery-caption:last-child { margin-inline:14px; }
}

