/* Start Here — "The Route" (4 Sep 2026). Drawn by novamira-sandbox/start-here.php.
   Every colour is a token from tokens.css or a field accent passed in as --c. */
.soma-sh{--sh-head:var(--soma-header-bottom,var(--soma-header-h,80px));--sh-prose:#262838;--sh-max:1180px;background:var(--soma-base)}
.soma-sh h1,.soma-sh h2,.soma-sh h3{text-wrap:balance}
.soma-sh p{margin:0}
.soma-sh .soma-btn{gap:10px}
.soma-sh .soma-btn i{font-style:normal;opacity:.7}
.soma-sh a.soma-sh-ghost{background:transparent;color:var(--soma-primary);box-shadow:inset 0 0 0 1.5px var(--soma-line)}
.soma-sh a.soma-sh-ghost:hover{background:var(--soma-white)}
.soma-sh-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--c,var(--soma-secondary));flex:none}

/* progress line, sits under the sticky header */
.soma-sh-prog{position:sticky;top:var(--sh-head);height:3px;z-index:29;margin-bottom:-3px;pointer-events:none}
.soma-sh-prog i{display:block;height:100%;width:0;background:var(--soma-secondary);transition:width .15s linear}

/* hero */
.soma-sh-hero{background:var(--soma-white);padding:clamp(3rem,2rem + 4vw,6rem) var(--soma-gutter) clamp(2.5rem,1.5rem + 3vw,4.5rem)}
.soma-sh-hero__in{max-width:var(--sh-max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,1rem + 5vw,6rem);align-items:end}
.soma-sh-hero h1{font-size:clamp(2.5rem,1.2rem + 4.6vw,4.6rem);letter-spacing:-.01em;margin:18px 0 22px}
.soma-sh-lead{font-size:clamp(1.125rem,1.05rem + .35vw,1.375rem);line-height:1.6;max-width:34em;color:var(--soma-text)}
.soma-sh-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.soma-sh-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:var(--soma-r-pill);background:var(--soma-base);font-size:.875rem;font-weight:600;color:var(--soma-primary)}
.soma-sh-pill .soma-i{color:var(--soma-secondary)}
.soma-sh-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

/* the route */
.soma-sh-route{background:var(--soma-base);border-radius:var(--soma-r-lg);padding:26px 26px 22px}
.soma-sh-route__t{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px}
.soma-sh-route__t b{font-family:var(--soma-font-display);font-size:1.5rem;font-weight:600;color:var(--soma-primary)}
.soma-sh-route__t span{font-size:.8125rem;color:var(--soma-text)}
.soma-sh-route__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.soma-sh-route__list li a{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:14px;padding:12px 6px;border-top:1px solid var(--soma-line);color:var(--soma-primary);text-decoration:none;border-radius:var(--soma-r-sm);transition:background var(--soma-dur-btn)}
.soma-sh-route__list li:first-child a{border-top:0}
.soma-sh-route__list li a:hover{background:var(--soma-white)}
.soma-sh-route__list .soma-sh-dot{justify-self:center;box-shadow:0 0 0 3px var(--soma-white)}
.soma-sh-lbl{display:flex;flex-direction:column;line-height:1.25}
.soma-sh-lbl b{font-family:var(--soma-font-display);font-size:1.25rem;font-weight:600;color:var(--soma-primary)}
.soma-sh-lbl small{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--c);font-weight:600;margin-top:3px}
.soma-sh-min{font-size:.8125rem;color:var(--soma-text);font-variant-numeric:tabular-nums;white-space:nowrap}
.soma-sh-route__foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--soma-line);font-size:.8125rem;color:var(--soma-text);display:flex;justify-content:space-between;gap:12px}

/* reading grid */
.soma-sh-read{padding:clamp(2.5rem,1.5rem + 3vw,4.5rem) var(--soma-gutter) 0}
.soma-sh-read__grid{max-width:var(--sh-max);margin:0 auto;display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(2rem,1rem + 4vw,5rem);align-items:start}
.soma-sh-rail{position:sticky;top:calc(var(--sh-head) + 28px)}
.soma-sh-rail__t{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--soma-text);margin-bottom:12px}
.soma-sh-rail__list{list-style:none;margin:0;padding:0;border-left:2px solid var(--soma-line)}
.soma-sh-rail__list li a{display:block;padding:9px 0 9px 18px;margin-left:-2px;border-left:2px solid transparent;color:var(--soma-text);font-size:.9375rem;line-height:1.3;text-decoration:none;transition:color var(--soma-dur-btn),border-color var(--soma-dur-btn)}
.soma-sh-rail__list li a b{display:block;font-family:var(--soma-font-display);font-size:1.125rem;font-weight:600;color:inherit}
.soma-sh-rail__list li a small{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}
.soma-sh-rail__list li.on a{color:var(--soma-primary);border-left-color:var(--c)}
.soma-sh-rail__list li.done a{color:var(--soma-primary)}
.soma-sh-rail__list li.done a b::after{content:" \2713";color:var(--soma-secondary);font-size:.9em}
.soma-sh-rail__after{margin-top:22px;padding-top:16px;border-top:1px solid var(--soma-line);font-size:.875rem;color:var(--soma-text)}
.soma-sh-rail__after a{color:var(--soma-secondary);font-weight:600;text-decoration:none}

/* column */
.soma-sh-col{max-width:680px;min-width:0}
.soma-sh-idea{padding:clamp(2rem,1.5rem + 2vw,3.5rem) 0;border-top:1px solid var(--soma-line)}
.soma-sh-strip + .soma-sh-idea{border-top:0;padding-top:0}
.soma-sh-idea__head{display:grid;grid-template-columns:auto 1fr;gap:18px 22px;align-items:start;margin-bottom:22px}
.soma-sh-idea__num{font-family:var(--soma-font-display);font-weight:500;font-size:clamp(3.25rem,2.5rem + 3vw,5rem);line-height:.85;color:var(--c);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.soma-sh-idea__meta{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--c)}
.soma-sh-idea__meta span{color:var(--soma-text);letter-spacing:0;text-transform:none;font-weight:500}
.soma-sh-idea h2{font-size:clamp(1.9rem,1.3rem + 2.2vw,3rem);margin-top:10px;letter-spacing:-.01em}
.soma-sh-prose p{color:var(--sh-prose);font-size:clamp(1.0625rem,1.03rem + .2vw,1.1875rem);line-height:1.75;margin:0 0 1.1em}
.soma-sh-prose .soma-sh-prose__lead{font-size:clamp(1.125rem,1.05rem + .4vw,1.375rem);line-height:1.6;color:var(--soma-primary)}
.soma-sh-essay{margin:0}
.soma-sh-essay summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:10px;font-weight:600;color:var(--soma-secondary);font-size:.9375rem;padding:6px 0 14px}
.soma-sh-essay summary::-webkit-details-marker{display:none}
.soma-sh-essay summary svg{width:14px;height:14px;transition:transform .25s}
.soma-sh-essay[open] summary svg{transform:rotate(180deg)}
.soma-sh-essay summary .more{display:inline}.soma-sh-essay summary .less{display:none}
.soma-sh-essay[open] summary .more{display:none}.soma-sh-essay[open] summary .less{display:inline}
.soma-sh-go{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:8px}
.soma-sh-go .soma-btn{padding:14px 22px;font-size:.9375rem}
.soma-sh .soma-sh-go__topic{font-size:.9375rem;font-weight:600;color:var(--soma-primary);padding:14px 4px;text-decoration:none}
.soma-sh .soma-sh-go__topic i{font-style:normal;color:var(--soma-text);font-weight:500}
/* the bridge: one idea hands to the next */
.soma-sh-bridge{margin-top:30px;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:center;padding:18px 22px;background:var(--soma-white);border-radius:var(--soma-r-md)}
.soma-sh-bridge .soma-sh-dot{background:var(--n)}
.soma-sh-bridge p{font-family:var(--soma-font-display);font-size:1.35rem;line-height:1.3;color:var(--soma-primary)}
.soma-sh .soma-sh-bridge a{grid-column:2;font-size:.875rem;font-weight:600;color:var(--soma-secondary);text-decoration:none}

/* tablet + phone chapter strip (hidden on wide screens) */
.soma-sh-strip{display:none}

/* knowledge check */
.soma-sh-check{padding:clamp(2.5rem,1.5rem + 3vw,4rem) var(--soma-gutter)}
.soma-sh-check__in{max-width:var(--sh-max);margin:0 auto;background:var(--soma-secondary);color:var(--soma-white);border-radius:var(--soma-r-lg);padding:clamp(1.75rem,1rem + 3vw,3.25rem);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 40px;align-items:center}
.soma-sh-check h2{color:var(--soma-white);font-size:clamp(1.9rem,1.3rem + 2vw,2.75rem);margin:10px 0 12px}
.soma-sh-check p{color:var(--soma-white-70);max-width:40em}
.soma-sh .soma-sh-check__btn{background:var(--soma-white);color:var(--soma-primary)}
.soma-sh .soma-sh-check__btn:hover{background:var(--soma-base)}
.soma-sh-check__five{display:flex;gap:8px;margin-top:18px}
.soma-sh-check__five i{width:34px;height:5px;border-radius:3px;background:rgba(255,255,255,.35)}

/* where the route ends */
.soma-sh-end{background:var(--soma-primary);color:var(--soma-white);padding:clamp(3.5rem,2rem + 5vw,7rem) var(--soma-gutter)}
.soma-sh-end__in{max-width:var(--sh-max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(2rem,1rem + 5vw,6rem);align-items:center}
.soma-sh-end h2{color:var(--soma-white);font-size:clamp(2.2rem,1.3rem + 3.5vw,4rem);margin:14px 0 18px}
.soma-sh-end p{color:var(--soma-white-70);max-width:36em;font-size:1.0625rem}
.soma-sh-end__alt{margin-top:22px;font-size:.9375rem}
.soma-sh .soma-sh-end__alt a{color:var(--soma-white);font-weight:600;border-bottom:1px solid var(--soma-white-50);text-decoration:none}
.soma-sh .soma-sh-pcard{display:flex;flex-direction:column;background:var(--soma-white);color:var(--soma-primary);border-radius:var(--soma-r-lg);overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.35);text-decoration:none}
.soma-sh-pcard__art{display:block;height:180px;background:var(--soma-primary-deep);overflow:hidden}
.soma-sh-pcard__art img{width:100%;height:100%;object-fit:cover;display:block}
.soma-sh-pcard__b{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px}
.soma-sh-pcard__b > b{font-family:var(--soma-font-display);font-size:1.75rem;font-weight:600;line-height:1.1}
.soma-sh-pcard__p{color:var(--soma-text);font-size:.9375rem;line-height:1.55}
.soma-sh-pcard__tags{display:flex;gap:8px;flex-wrap:wrap}
.soma-sh-pcard__tags span{font-size:.75rem;font-weight:600;padding:6px 10px;border-radius:var(--soma-r-pill);background:var(--soma-base);color:var(--soma-primary)}
.soma-sh .soma-sh-pcard__btn{align-self:flex-start;margin-top:6px;padding:13px 20px;font-size:.9375rem}

/* fields: seven rows */
.soma-sh-fields{padding:clamp(3rem,2rem + 4vw,6rem) var(--soma-gutter);background:var(--soma-white)}
.soma-sh-fields__in{max-width:var(--sh-max);margin:0 auto}
.soma-sh-fields__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:end;margin-bottom:26px}
.soma-sh-fields h2{font-size:clamp(1.9rem,1.3rem + 2.2vw,3rem);margin-top:10px}
.soma-sh-fields__head p{max-width:34em;color:var(--soma-text)}
.soma-sh-flist{list-style:none;margin:0;padding:0;border-top:1px solid var(--soma-line)}
.soma-sh .soma-sh-flist li a{display:grid;grid-template-columns:92px minmax(0,1.1fr) minmax(0,1.5fr) auto;gap:18px 22px;align-items:center;padding:18px 8px;border-bottom:1px solid var(--soma-line);color:var(--soma-primary);text-decoration:none;border-radius:8px;transition:background var(--soma-dur-btn)}
.soma-sh-flist li a:hover{background:var(--soma-base)}
.soma-sh-flist__nm{font-family:var(--soma-font-display);font-size:1.5rem;font-weight:600;line-height:1.1}
.soma-sh-flist__q{color:var(--soma-text);font-size:.9375rem;line-height:1.45}
.soma-sh-flist__has{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.soma-sh-flist__has span{font-size:.75rem;font-weight:600;padding:5px 9px;border-radius:var(--soma-r-pill);background:var(--soma-base);color:var(--soma-primary);white-space:nowrap}
.soma-sh-fields__foot{margin-top:26px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:22px 26px;background:var(--soma-base);border-radius:var(--soma-r-md)}
.soma-sh-fields__foot b{font-family:var(--soma-font-display);font-size:1.4rem;font-weight:600;color:var(--soma-primary);display:block}
.soma-sh-fields__foot p{font-size:.9375rem;color:var(--soma-text)}
.soma-sh .soma-sh-foot__btn{background:var(--soma-primary)}
.soma-sh .soma-sh-foot__btn:hover{background:var(--soma-primary-deep)}

/* tablet */
@media (max-width:1100px){
  .soma-sh-hero__in{grid-template-columns:1fr;align-items:start}
  .soma-sh-route{max-width:640px}
  .soma-sh-read__grid{grid-template-columns:1fr}
  .soma-sh-rail{display:none}
  .soma-sh-col{max-width:720px}
  .soma-sh-strip{display:flex;position:sticky;top:var(--sh-head);z-index:15;background:rgba(242,240,239,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--soma-line);margin:0 calc(-1 * var(--soma-gutter)) 24px;padding:10px var(--soma-gutter);align-items:center;gap:12px}
  .soma-sh-strip__dots{display:flex;gap:5px;flex:none}
  .soma-sh-strip__dots i{width:22px;height:4px;border-radius:2px;background:var(--soma-line)}
  .soma-sh-strip__dots i.on{background:var(--soma-secondary)}
  .soma-sh-strip__now{font-size:.8125rem;font-weight:600;color:var(--soma-primary);flex:1 1 0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .soma-sh-strip__now small{color:var(--soma-text);font-weight:500}
  .soma-sh-strip__menu{position:relative;flex:none}
  .soma-sh-strip__menu summary{list-style:none;cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--soma-secondary);display:flex;align-items:center;gap:6px;white-space:nowrap}
  .soma-sh-strip__menu summary::-webkit-details-marker{display:none}
  .soma-sh-strip__menu summary svg{width:12px;height:12px}
  .soma-sh-strip__menu ul{position:absolute;right:0;top:calc(100% + 10px);background:var(--soma-white);border-radius:var(--soma-r-md);box-shadow:0 20px 40px var(--soma-shadow);padding:8px;min-width:260px;max-width:calc(100vw - 32px);list-style:none;margin:0;z-index:16}
  .soma-sh .soma-sh-strip__menu ul a{display:grid;grid-template-columns:10px 1fr auto;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--soma-r-sm);color:var(--soma-primary);font-size:.9375rem;text-decoration:none}
  .soma-sh-strip__menu ul a:hover{background:var(--soma-base)}
  .soma-sh-strip__menu ul .soma-sh-dot{width:10px;height:10px}
  .soma-sh-strip__menu ul small{color:var(--soma-text);font-variant-numeric:tabular-nums}
  .soma-sh-end__in{grid-template-columns:1fr}
  .soma-sh .soma-sh-pcard{max-width:440px}
  .soma-sh .soma-sh-flist li a{grid-template-columns:92px minmax(0,1fr) auto}
  .soma-sh-flist__q{grid-column:2;grid-row:2}
  .soma-sh-flist__img{grid-column:1;grid-row:1 / span 2;align-self:start}
  .soma-sh-flist__nm{grid-column:2;grid-row:1}
  .soma-sh-flist__has{grid-column:3;grid-row:1 / span 2;align-self:start}
  .soma-sh-fields__head{grid-template-columns:1fr;align-items:start}
}
/* phone */
@media (max-width:640px){
  .soma-sh-hero h1{font-size:clamp(2.25rem,8.6vw,2.9rem)}
  .soma-sh-route{padding:18px 16px 14px;border-radius:18px}
  .soma-sh-route__t{flex-direction:column;gap:2px}
  .soma-sh-lbl b{font-size:1.1rem}
  .soma-sh-actions .soma-btn{width:100%;justify-content:center}
  .soma-sh-idea__head{grid-template-columns:1fr;gap:10px}
  .soma-sh-idea__num{font-size:3rem}
  .soma-sh-go{flex-direction:column;align-items:stretch}
  .soma-sh-go .soma-btn{justify-content:center}
  .soma-sh-bridge{grid-template-columns:1fr;gap:10px;padding:16px}
  .soma-sh .soma-sh-bridge a{grid-column:1}
  .soma-sh-check__in{grid-template-columns:1fr}
  .soma-sh .soma-sh-check__btn{justify-content:center}
  .soma-sh-end h2{font-size:2.3rem}
  .soma-sh-pcard__art{height:140px}
  .soma-sh-fields__head{grid-template-columns:1fr}
  .soma-sh .soma-sh-flist li a{grid-template-columns:64px 1fr;padding:16px 4px;gap:8px 12px}
  .soma-sh-flist__q{grid-column:2;grid-row:auto}
  .soma-sh-flist__has{grid-column:2;grid-row:3;justify-content:flex-start}
  .soma-sh-flist__nm{grid-column:2;grid-row:1}
  .soma-sh-flist__q{grid-column:2;grid-row:2}
}
@media (prefers-reduced-motion:reduce){.soma-sh-prog i{transition:none}}

/* field thumbnails and idea plates (4 Sep, round 3) */
.soma-sh-flist__img{display:block;width:92px;height:64px;border-radius:12px;overflow:hidden;background:var(--soma-base);box-shadow:inset 0 0 0 1px var(--soma-line);border-left:4px solid var(--c)}
.soma-sh-flist__img img{width:100%;height:100%;object-fit:cover;display:block}
.soma-sh-idea__plate{display:flex;flex-direction:row;gap:16px;align-items:center}
.soma-sh-idea__img{display:block;width:84px;height:84px;border-radius:16px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--soma-line);border-left:4px solid var(--c)}
.soma-sh-idea__img img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:640px){.soma-sh-flist__img{width:64px;height:48px;border-radius:10px;grid-row:1 / span 3}.soma-sh-idea__plate{flex-direction:row;align-items:center;gap:16px}.soma-sh-idea__img{width:64px;height:64px;border-radius:12px}}

/* Hero as a dark band, matching the journal covers, course heroes and home hero (4 Sep, round 3) */
.soma-sh-hero{background:var(--soma-primary);color:var(--soma-white);position:relative;overflow:hidden}
.soma-sh-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(70% 90% at 15% 20%,rgba(13,124,104,.35) 0%,rgba(13,124,104,0) 60%),radial-gradient(50% 70% at 95% 100%,rgba(204,213,255,.18) 0%,rgba(204,213,255,0) 60%);pointer-events:none}
.soma-sh-hero__in{position:relative}
.soma-sh-hero .soma-eyebrow{color:var(--soma-periwinkle)}
.soma-sh-hero h1{color:var(--soma-white)}
.soma-sh-hero .soma-sh-lead{color:var(--soma-white-70)}
.soma-sh-hero .soma-sh-pill{background:var(--soma-white-12);color:var(--soma-white)}
.soma-sh-hero .soma-sh-pill .soma-i{color:var(--soma-periwinkle)}
.soma-sh-hero a.soma-sh-ghost{color:var(--soma-white);box-shadow:inset 0 0 0 1.5px var(--soma-line-inverse)}
.soma-sh-hero a.soma-sh-ghost:hover{background:var(--soma-white-12)}
.soma-sh-hero .soma-sh-route{background:var(--soma-white);box-shadow:0 30px 60px rgba(0,0,0,.35)}
.soma-sh-hero .soma-sh-route__list li a:hover{background:var(--soma-base)}
.soma-sh-hero .soma-sh-route__list .soma-sh-dot{box-shadow:0 0 0 3px var(--soma-base)}

/* The knowledge-check button on Start Here was white on white — the label was
   there and invisible. The band sets white type for the heading and copy, and
   the button sits inside it on a white pill, so it inherited that white and
   something later in the cascade tied with the rule meant to stop it. Named
   here with the button's own two classes so it cannot lose again. */
.soma-sh-check .soma-btn.soma-sh-check__btn{color:var(--soma-primary)}
.soma-sh-check .soma-btn.soma-sh-check__btn:hover{color:var(--soma-primary)}


/* soma: green closing band */
.soma-sh-end{background:var(--soma-secondary)}
.soma-sh-end p{color:rgba(255,255,255,.82)}
.soma-sh-end .soma-eyebrow,.soma-sh-end .soma-eyebrow--invert{color:rgba(255,255,255,.75)}
.soma-sh .soma-sh-end__alt a{border-bottom-color:rgba(255,255,255,.5)}
/* Keep links white on hover, but not the white programme card, whose ink stays navy. */
section.soma-sh-end a:hover:not(.soma-sh-pcard),section.soma-sh-end a:focus-visible:not(.soma-sh-pcard){color:var(--soma-white)}


/* soma: section heads align at the top */
/* These heads were bottom-aligned, which pushed the brief above the heading it
   belongs to -- and by a different amount on every section, depending on
   whether the heading wrapped. The two columns now start together. */
.soma-sh-fields__head{align-items:start}
.soma-sh-fields__head > :nth-child(2){padding-top:4px}
