/* ============================================================
   REDESIGN 2026 — SustainHealth Academy (staging branch)
   Loaded on every page that carries the shared nav, by the
   `redesign2026` transform in .eleventy.js (after all page CSS,
   so it wins the cascade). Remove that transform to revert.

   Concept approved by Barry, 7 Oct 2026 (Kajabi-flow, Apple-style
   imagery). Wine leads; Peach and Rust accent. Brand fonts only.

   Sections:  1 tokens · 2 shared atoms · 3 nav · 4 footer
              5 sitewide buttons · 6 homepage · 7 seminars list
              8 motion · 9 seminar pages · 10 webinar pages
              11 about · 12 teachers · 13 contact · 14 shop · 15 apply · 16 cart · 17 legal + 404
              18 中文 homepage · 19 seminar pages v2 (Apple pass)
              20 program pathway on seminar pages · 21 program hub pages
   ============================================================ */

/* ── 1. TOKENS ─────────────────────────────────────────────── */
:root {
  --rd-wine: #730D2E;
  --rd-wine-2: var(--rd-wine); /* retired 7 Oct 2026 (Barry): brand wine #730D2E everywhere; deep wine (--rd-wine-3) only where two dark bands touch */
  --rd-wine-3: #4A0820;
  --rd-peach: #F5BF91;
  --rd-peach-soft: #FBEADB;
  --rd-cream: #FFF6EE;
  --rd-rust: #C4524A;
  --rd-ink-on-wine: #FBE7D6;
  --rd-muted-on-wine: #E9C3AC;
  --rd-muted-on-peach: #7A3E4E;
  --rd-hair: rgba(245, 191, 145, 0.22);
  --rd-hair-wine: rgba(115, 13, 46, 0.18);
  --rd-serif: 'FKRomanStandard', 'Playfair Display', Garamond, 'Noto Serif TC', 'Songti TC', serif;
  --rd-sans: 'FTRegolaNeue', 'DM Sans', system-ui, 'PingFang TC', 'Microsoft JhengHei', sans-serif;
  --rd-ease: cubic-bezier(.2, .8, .2, 1);
  --rd-max: 1320px;
  --rd-pad: 48px;
}
@media (max-width: 1000px) { :root { --rd-pad: 28px; } }
@media (max-width: 480px)  { :root { --rd-pad: 18px; } }

body.rd-body { background: var(--rd-wine); }

/* ── 2. SHARED ATOMS ───────────────────────────────────────── */
.rd-wrap { max-width: var(--rd-max); margin-inline: auto; padding-inline: var(--rd-pad); }

.rd-label {
  display: flex; align-items: center; gap: 14px;
  font-family: var(--rd-sans); font-size: 13px; line-height: 1.3;
  letter-spacing: .2em; text-transform: uppercase; color: var(--rd-peach);
}
.rd-label::after { content: ""; height: 1px; width: 56px; background: currentColor; opacity: .5; flex: none; }
.rd-label-rust { color: var(--rd-rust); }
.rd-label-wine { color: var(--rd-wine); }

.rd-em      { font-style: oblique 12deg; color: var(--rd-peach); }
.rd-em-rust { font-style: oblique 12deg; color: var(--rd-rust); }

.rd-ulink {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px;
  color: inherit; text-decoration: none; padding-bottom: 2px;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 100% 1px; background-position: 0 calc(100% - 8px); background-repeat: no-repeat;
  transition: background-size .45s var(--rd-ease);
}
.rd-ulink:hover { background-size: 0 1px; }

.rd-pill {
  display: inline-flex; align-items: center; justify-content: center; gap: 16px;
  min-height: 56px; padding: 0 8px 0 28px; border-radius: 999px; border: 0;
  font-family: var(--rd-sans); font-size: 1em; letter-spacing: .04em; line-height: 1; /* was ".68.8rem" (invalid, ignored since pass 1) — 1em keeps the size buttons have always rendered at */
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background .3s, color .3s, border-color .3s;
}
.rd-pill .rd-arr {
  width: 40px; height: 40px; border-radius: 999px; flex: none;
  display: flex; align-items: center; justify-content: center;
  transition: transform .45s var(--rd-ease);
}
.rd-pill:hover .rd-arr { transform: rotate(-45deg); }
.rd-pill-peach { background: var(--rd-peach); color: var(--rd-wine-3); }
.rd-pill-peach .rd-arr { background: var(--rd-wine); color: var(--rd-peach); }
.rd-pill-peach:hover { background: #FFFFFF; color: var(--rd-wine-3); }
.rd-pill-ghost { background: transparent; color: var(--rd-ink-on-wine); border: 1px solid rgba(245,191,145,.5); padding: 0 28px; }
.rd-pill-ghost:hover { border-color: var(--rd-peach); color: #FFFFFF; }
.rd-pill-sm { min-height: 46px; padding-left: 20px; padding-right: 6px; gap: 12px; }
.rd-pill-sm .rd-arr { width: 34px; height: 34px; }

.rd-circle {
  width: 56px; height: 56px; border-radius: 999px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .3s, color .3s, transform .3s;
}
.rd-circle-line { background: transparent; border: 1px solid rgba(115,13,46,.4); color: var(--rd-wine); }
.rd-circle-fill { background: var(--rd-wine); border: 0; color: var(--rd-peach); }
.rd-circle:hover { transform: scale(1.06); }

/* ── 3. NAV ────────────────────────────────────────────────── */
.rd-nav.sha-nav {
  background: rgba(115, 13, 46, .93);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(245,191,145,.16);
}
.rd-nav .sha-nav-inner { max-width: var(--rd-max); padding-inline: var(--rd-pad); height: 84px; }
.rd-nav .sha-nav-logo img { height: 42px; }
.rd-nav .sha-nav-links { gap: 34px; }
.rd-nav .rd-navlink,
.rd-nav .sha-nav-links a.rd-navlink {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 2px;
  background: none; border: 0; cursor: pointer;
  font-family: var(--rd-sans); font-size: 15.5px; font-weight: 400; letter-spacing: .03em;
  color: var(--rd-ink-on-wine); text-decoration: none;
  background-image: linear-gradient(var(--rd-peach), var(--rd-peach));
  background-size: 0 1px; background-position: 0 calc(100% - 9px); background-repeat: no-repeat;
  transition: background-size .4s var(--rd-ease), color .3s;
}
.rd-nav .rd-navlink:hover,
.rd-nav .rd-learn[aria-expanded="true"] { background-size: 100% 1px; color: #FFFFFF; }
.rd-nav .rd-learn svg { transition: transform .3s; }
.rd-nav .rd-learn[aria-expanded="true"] svg { transform: rotate(180deg); }
.rd-nav .sha-nav-links .nav-cta a.rd-pill { padding: 0 6px 0 20px; border-radius: 999px; font-weight: 400; color: var(--rd-wine-3); }
.rd-nav .sha-nav-links .nav-cta a.rd-pill:hover { transform: none; background: #FFFFFF; }

.rd-nav .rd-learn:focus:not(:focus-visible) { outline: none; }
.rd-nav .rd-learn:focus-visible, .rd-nav .rd-navlink:focus-visible { outline: 2px solid var(--rd-peach); outline-offset: 4px; }

/* Mega menu */
.rd-mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: var(--rd-wine-3); color: var(--rd-ink-on-wine);
  border-bottom: 1px solid rgba(245,191,145,.16);
  box-shadow: 0 40px 80px rgba(20, 0, 8, .45);
  animation: rdFadeUp .35s var(--rd-ease) both;
}
.rd-mega[hidden] { display: none; }
.rd-mega-grid { display: grid; grid-template-columns: minmax(0,5fr) minmax(0,3fr) minmax(0,4fr); gap: 40px; padding-top: 40px; padding-bottom: 46px; }
.rd-mega .rd-label { margin-bottom: 14px; }
.rd-mega-method {
  display: flex; align-items: baseline; gap: 18px; padding: 8px 0;
  border-bottom: 1px solid rgba(245,191,145,.12); text-decoration: none;
}
.rd-mega-num { width: 26px; font-size: 13px; color: var(--rd-muted-on-wine); font-family: var(--rd-sans); }
.rd-mega-name {
  font-family: var(--rd-serif); font-weight: 300; font-size: 27px; line-height: 1.2; color: #FFFFFF;
  transition: color .3s, transform .45s var(--rd-ease);
}
.rd-mega-method.is-on .rd-mega-name { color: var(--rd-peach); transform: translateX(10px); font-style: oblique 10deg; }
html[lang="zh"] .rd-mega-method.is-on .rd-mega-name { font-style: normal; } /* no faux-italic on CJK */
.rd-mega-links { display: flex; flex-direction: column; gap: 30px; padding-left: 12px; }
.rd-mega-links .rd-navlink { display: flex; font-size: 16.5px; min-height: 40px; }
.rd-mega-photos { position: relative; aspect-ratio: 16 / 11; border-radius: 18px; overflow: hidden; background: var(--rd-wine-3); }
.rd-mega-photos img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .5s ease; }
.rd-mega-photos img.is-on { opacity: 1; }
.rd-mega-next { display: none; margin-top: 14px; gap: 14px; align-items: baseline; }
.rd-mega-next.is-on { display: flex; }
.rd-mega-next .rd-label { margin: 0; }
.rd-mega-next .rd-label::after { display: none; }
.rd-mega-next a { font-family: var(--rd-serif); font-size: 19px; color: #FFFFFF; text-decoration: none; }
.rd-mega-next a:hover { color: var(--rd-peach); }

/* Drawer + breakpoints (the bar collapses earlier than before: more items now) */
.rd-nav .sha-nav-drawer {
  position: absolute; top: 100%; left: 0; right: 0; flex-direction: column;
  background: var(--rd-wine-3); max-height: 0; padding: 0; overflow: hidden;
  transition: max-height .45s var(--rd-ease);
}
.rd-nav .sha-nav-drawer.open {
  height: calc(100vh - 72px); height: calc(100dvh - 72px);
  max-height: calc(100vh - 72px); max-height: calc(100dvh - 72px); padding: 0;
  box-shadow: 0 40px 80px rgba(20,0,8,.45);
}
html:has(.rd-nav.nav-open) { overflow: hidden; }   /* html only: hiding body overflow breaks the sticky bar */
html:has(.rd-nav.nav-open) :is(#sha-wa-btn, .sha-wa-tooltip) { display: none; }   /* it sat on the pinned button */
.rd-drawer-scroll {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  display: flex; flex-direction: column; padding: 10px 0 24px;
}
.rd-drawer-group { display: flex; flex-direction: column; padding-top: 18px; }
.rd-drawer-group + .rd-drawer-group { margin-top: 10px; border-top: 1px solid rgba(245,191,145,.12); }
.rd-nav .rd-drawer-label { padding: 0 var(--rd-pad); margin-bottom: 6px; font-size: 12px; }
.rd-nav .sha-nav-drawer a {
  display: flex; align-items: center; min-height: 48px; padding: 6px var(--rd-pad); border-bottom: 0;
  font-family: var(--rd-sans); font-weight: 400; font-size: 17px; color: var(--rd-ink-on-wine);
}
.rd-nav .sha-nav-drawer a:hover { background: rgba(245,191,145,.06); color: #FFFFFF; }
.rd-nav .sha-nav-drawer .rd-drawer-method { font-family: var(--rd-serif); font-weight: 300; font-size: 1.3rem; color: #FFFFFF; min-height: 46px; }
.rd-drawer-foot {
  flex: none; padding: 14px var(--rd-pad) calc(14px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid rgba(245,191,145,.16); background: var(--rd-wine-3);
}
.rd-nav .sha-nav-drawer a.rd-drawer-cta {
  justify-content: center; margin: 0; min-height: 52px; border-radius: 999px; border: 0;
  background: var(--rd-peach); color: var(--rd-wine-3); font-size: 16px;
}
.rd-nav .sha-nav-drawer a.rd-drawer-cta:hover { background: #FFFFFF; color: var(--rd-wine-3); }
@media (max-width: 1000px) {
  .rd-nav .sha-nav-links { display: none; }
  .rd-nav .sha-nav-toggle { display: flex; }
  .rd-nav .sha-nav-drawer { display: flex; }
  .rd-nav .sha-nav-mobile-lang { display: flex; margin-left: auto; margin-right: 14px; }
  .rd-nav .sha-nav-inner { height: 72px; }
  .rd-mega { display: none !important; }
}

/* ── 4. FOOTER ─────────────────────────────────────────────── */
.rd-footer.sha-footer { background: var(--rd-wine-3); color: var(--rd-ink-on-wine); overflow: hidden; }
.rd-footer .sha-footer-main { max-width: var(--rd-max); padding: 96px var(--rd-pad) 56px; }
.rd-footer .logo-top { font-family: var(--rd-serif); font-weight: 300; font-size: 1.44rem; color: #FFFFFF; }
.rd-footer .logo-sub { color: var(--rd-peach); letter-spacing: .18em; }
.rd-footer .sha-footer-about { color: var(--rd-muted-on-wine); }
.rd-footer h4 {
  font-family: var(--rd-sans); font-size: 13px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--rd-peach); font-weight: 400;
}
.rd-footer .sha-footer-col a {
  color: var(--rd-ink-on-wine);
  background-image: linear-gradient(var(--rd-peach), var(--rd-peach));
  background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat;
  transition: background-size .4s var(--rd-ease), color .3s;
}
.rd-footer .sha-footer-col a:hover { color: #FFFFFF; background-size: 100% 1px; }
.rd-footer .sha-footer-social a { border-color: rgba(245,191,145,.35); color: var(--rd-peach); }
.rd-footer .sha-footer-social a:hover { background: var(--rd-peach); color: var(--rd-wine-3); }
.rd-footer .sha-footer-accred { background: transparent; border-top: 1px solid var(--rd-hair); }
.rd-footer .sha-footer-accred-inner,
.rd-footer .sha-footer-bottom-inner { max-width: var(--rd-max); padding-inline: var(--rd-pad); }
.rd-footer .sha-footer-accred-label { color: var(--rd-peach); }
.rd-footer .sha-footer-accred-list { color: var(--rd-muted-on-wine); }
.rd-footer .sha-footer-bottom { background: transparent; border-top: 1px solid var(--rd-hair); }
.rd-footer .sha-footer-bottom p, .rd-footer .sha-footer-bottom a { color: var(--rd-muted-on-wine); }
.rd-footer .sha-footer-bottom a:hover { color: #FFFFFF; }
.rd-bigword {
  font-family: var(--rd-serif); font-weight: 300; font-size: 23.5vw; line-height: .78;
  letter-spacing: -.045em; color: var(--rd-wine); text-align: center; white-space: nowrap;
  margin: 18px 0 -3.2vw; user-select: none; pointer-events: none;
}

/* ── 5. SITEWIDE BUTTONS — same colours, pill shape ────────── */
.btn { border-radius: 999px; font-weight: 400; letter-spacing: .03em; padding-inline: 30px; transition: background .25s, color .25s, border-color .25s, transform .25s; }
.btn:hover { transform: translateY(-2px); }
.btn-sm { padding-inline: 22px; }

/* ── 6. HOMEPAGE ───────────────────────────────────────────── */
.rd-home { font-family: var(--rd-sans); font-size: 20px; line-height: 1.6; color: var(--rd-ink-on-wine); background: var(--rd-wine); }
.rd-home h1, .rd-home h2, .rd-home h3 { font-family: var(--rd-serif); font-weight: 300; letter-spacing: -.02em; color: #FFFFFF; margin: 0; }
.rd-home p { margin: 0; }
.rd-home h2 { font-size: clamp(1.76rem, 3.68vw, 3.44rem); line-height: 1.03; }

.rd-sechead { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,5fr); gap: 32px; align-items: end; margin-bottom: 68px; }
.rd-sechead .rd-label { margin-bottom: 24px; }
.rd-sechead p { color: var(--rd-ink-on-wine); padding-bottom: 8px; }

/* Hero */
.rd-hero { position: relative; display: flex; align-items: flex-end; min-height: 760px; height: calc(100vh - 84px); max-height: 980px; overflow: hidden; background: var(--rd-wine-3); }
.rd-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 55% 40%; }
.rd-hero-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(74,8,32,.95) 0%, rgba(74,8,32,.68) 50%, rgba(60,6,26,.5) 100%); }
.rd-hero-inner { position: relative; z-index: 2; width: 100%; padding-bottom: 64px; }
/* The brand mark, as on the inner page headers — over the photo's shade, under the words */
.rd-hero::after {
  content: ""; position: absolute; z-index: 1; right: -170px; top: -150px; width: 820px; height: 820px;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .09; pointer-events: none;
  animation: rdMarkIn 2.4s var(--rd-ease) .3s both;
}
@keyframes rdMarkIn { from { opacity: 0; transform: rotate(-12deg) scale(.94); } to { opacity: .09; transform: none; } }
@media (max-width: 767px) { .rd-hero::after { width: 460px; height: 460px; right: -150px; top: -90px; } }
.rd-hero-inner > .rd-label { margin-bottom: 28px; }
.rd-hero-title { font-size: clamp(2.4rem, 5.92vw, 5.92rem) !important; line-height: .96 !important; letter-spacing: -.03em !important; max-width: 1150px; }
.rd-hero-foot { display: grid; grid-template-columns: minmax(0,5fr) minmax(0,7fr); gap: 32px; align-items: end; margin-top: 44px; }
.rd-hero-copy { display: flex; flex-direction: column; gap: 26px; }
.rd-cta-row { display: flex; flex-wrap: wrap; gap: 12px; }
.rd-hero-stats { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 48px; }
.rd-hero-stats > div { display: flex; flex-direction: column; }
.rd-stat-num { font-family: var(--rd-serif); font-weight: 300; font-size: 2.32rem; line-height: 1; color: #FFFFFF; }
.rd-stat-label { font-size: 14px; letter-spacing: .06em; color: var(--rd-peach); margin-top: 8px; }
.rd-scrollcue { position: absolute; left: 50%; bottom: 18px; width: 24px; height: 38px; margin-left: -12px; border: 1.5px solid rgba(245,191,145,.6); border-radius: 999px; display: flex; justify-content: center; padding-top: 7px; }
.rd-scrollcue span { width: 4px; height: 8px; border-radius: 4px; background: var(--rd-peach); animation: rdCue 2s ease-in-out infinite; }

/* Marquee */
.rd-marquee { background: var(--rd-peach); overflow: hidden; padding: 24px 0; }
.rd-marquee-track { display: flex; width: max-content; animation: rdMarquee 60s linear infinite; }
.rd-marquee-set { display: flex; align-items: center; gap: 44px; padding-right: 44px; font-family: var(--rd-serif); font-weight: 300; font-size: 38px; line-height: 1; font-style: oblique 12deg; color: var(--rd-wine); white-space: nowrap; }
.rd-marquee-set img { width: 26px; height: 26px; display: inline-block; }

/* Statement + expanding photo */
.rd-statement { padding-top: 140px; background: var(--rd-wine); }
.rd-statement .rd-wrap { max-width: 1100px; text-align: center; margin-bottom: 88px; }
.rd-statement h2 { font-size: clamp(1.68rem, 3.52vw, 3.2rem); line-height: 1.08; }
.rd-expand { height: min(86vh, 860px); min-height: 480px; overflow: hidden; background: var(--rd-wine-3); }
.rd-expand img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 55% 45%; }
@media (max-width: 767px) { .rd-expand img { object-position: 84% 40%; } } /* phones: keep Dr Han in frame */

/* 01 Methods */
.rd-methods { background: var(--rd-wine); padding: 130px 0 140px; }
.rd-methods h2 { font-size: clamp(1.84rem, 4vw, 3.68rem); }
.rd-methods-grid { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,5fr); gap: 24px; align-items: start; }
.rd-methods-list { border-top: 1px solid var(--rd-hair); }
.rd-mrow { display: grid; grid-template-columns: 56px minmax(0,1fr) 170px 50px; gap: 20px; align-items: center; padding: 26px 0; border-bottom: 1px solid var(--rd-hair); text-decoration: none; color: inherit; }
.rd-mrow-num { font-size: 14px; letter-spacing: .1em; color: var(--rd-muted-on-wine); }
.rd-mrow-name { font-family: var(--rd-serif); font-weight: 300; font-size: clamp(1.3rem, 2.4vw, 1.8rem); line-height: 1.08; letter-spacing: -.015em; color: #FFFFFF; transition: color .4s, transform .5s var(--rd-ease); }
.rd-mrow-meta { font-size: 15px; line-height: 1.4; color: var(--rd-muted-on-wine); }
.rd-mrow-arr { width: 48px; height: 48px; border-radius: 999px; display: flex; align-items: center; justify-content: center; color: var(--rd-peach); border: 1px solid rgba(245,191,145,.35); transition: all .45s var(--rd-ease); }
.rd-mrow.is-on .rd-mrow-name { color: var(--rd-peach); transform: translateX(14px); font-style: oblique 10deg; }
.rd-mrow.is-on .rd-mrow-arr { background: var(--rd-peach); color: var(--rd-wine-3); border-color: var(--rd-peach); transform: rotate(-45deg); }
.rd-methods-aside { position: sticky; top: 112px; padding-left: 32px; }
.rd-methods-photos { position: relative; aspect-ratio: 4 / 5; border-radius: 24px; overflow: hidden; background: var(--rd-wine-3); box-shadow: 0 40px 80px rgba(20,0,8,.4); }
.rd-methods-photos img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; opacity: 0; transform: scale(1); transition: opacity 1s ease, transform 1s ease; }
.rd-methods-photos img.is-on { opacity: 1; transform: scale(1.05); transition: opacity 1s ease, transform 6s var(--rd-ease); }
.rd-methods-infos { display: grid; margin-top: 24px; }
.rd-methods-info { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .6s, transform .6s var(--rd-ease), visibility .6s; }
.rd-methods-info.is-on { opacity: 1; visibility: visible; transform: none; }
.rd-methods-info p { font-size: 18px; margin-bottom: 14px; }
.rd-methods-next { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px 16px; border-top: 1px solid var(--rd-hair); padding-top: 12px; }
.rd-methods-next > span { font-size: 15px; color: var(--rd-peach); }
.rd-methods-next .rd-ulink { color: #FFFFFF; font-size: 16px; }

/* 02 Bento */
.rd-bento-sec { background: var(--rd-peach-soft); color: var(--rd-wine); padding: 130px 0 140px; }
.rd-bento-sec h2 { color: var(--rd-wine); }
.rd-bento { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); grid-auto-rows: 310px; gap: 20px; }
.rd-tile { position: relative; overflow: hidden; border-radius: 28px; padding: 34px; display: flex; flex-direction: column; justify-content: space-between; text-decoration: none; color: #FFFFFF; background: var(--rd-wine); transition: transform .5s var(--rd-ease); }
.rd-tile:hover { transform: scale(1.012); }
.rd-tile h3 { font-size: clamp(1.36rem, 2.08vw, 1.84rem); line-height: 1.06; color: inherit; }
.rd-tile p { font-size: 17px; color: var(--rd-ink-on-wine); margin-top: 8px; }
.rd-tile-img { position: absolute; inset: 0; }
.rd-tile-img img, .rd-tile-side img { width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 1.1s var(--rd-ease); }
.rd-tile:hover .rd-tile-img img, .rd-tile:hover .rd-tile-side img { transform: scale(1.045); }
.rd-tile-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(74,8,32,.92) 0%, rgba(74,8,32,.25) 55%, rgba(60,6,26,.3) 100%); }
.rd-tile-shade-full { background: rgba(60,6,26,.55); }
.rd-tile-top, .rd-tile-bottom { position: relative; }
.rd-tile-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.rd-tile-arr { flex: none; width: 52px; height: 52px; border-radius: 999px; background: var(--rd-peach); color: var(--rd-wine); display: flex; align-items: center; justify-content: center; transition: transform .45s var(--rd-ease); }
.rd-tile:hover .rd-tile-arr { transform: rotate(-45deg); }
.rd-t-a { grid-column: 1 / span 2; grid-row: 1 / span 2; }
.rd-t-a h3 { font-size: clamp(1.6rem, 2.72vw, 2.56rem); }
.rd-t-b { grid-column: 3 / span 2; grid-row: 1; flex-direction: row; padding: 0; background: var(--rd-wine); }
.rd-t-c { grid-column: 3; grid-row: 2; background: var(--rd-peach); color: var(--rd-wine); }
.rd-t-c .rd-label { color: var(--rd-wine); }
.rd-t-c p { color: var(--rd-wine); }
.rd-t-d { grid-column: 4; grid-row: 2; }
.rd-t-e { grid-column: 1 / span 2; grid-row: 3; }
.rd-t-f { grid-column: 3 / span 2; grid-row: 3; background: var(--rd-cream); color: var(--rd-wine); }
.rd-t-f .rd-ulink { color: var(--rd-wine); font-size: 16px; margin-top: 6px; }
.rd-tile-split { flex: 1; padding: 34px; display: flex; flex-direction: column; justify-content: space-between; position: relative; }
.rd-t-f .rd-tile-split { padding: 0; }
.rd-tile-side { width: 44%; flex: none; overflow: hidden; }
.rd-tile-num { font-family: var(--rd-serif); font-weight: 300; font-size: clamp(2.88rem, 4vw, 4.16rem); line-height: .9; letter-spacing: -.03em; }
.rd-t-d .rd-tile-num { color: var(--rd-peach); }

/* Logos */
.rd-logos { background: var(--rd-wine-3); color: var(--rd-ink-on-wine); padding: 140px 0 120px; overflow: hidden; border-bottom: 1px solid var(--rd-hair); }
.rd-acc-head { display: flex; flex-direction: column; gap: 26px; max-width: 1100px; }
.rd-acc-head h2 { color: #FFFFFF; font-size: clamp(2.5rem, 6.2vw, 5.8rem); line-height: 1.04; letter-spacing: -.02em; }
.rd-acc-head h2 span { display: block; }
.rd-acc-head h2 .rd-em { display: block; }
.rd-acc-head p { max-width: 640px; color: var(--rd-muted-on-wine); font-size: 1.05rem; }
/* Marquee: the track holds two identical sets and slides by exactly one set */
.rd-acc-marquee { margin-top: 84px; padding: 34px 0; border-block: 1px solid var(--rd-hair);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 9%, #000 91%, transparent);
          mask-image: linear-gradient(to right, transparent, #000 9%, #000 91%, transparent); }
.rd-acc-track { display: flex; width: max-content; animation: rdAccSlide 46s linear infinite; }
.rd-acc-marquee:hover .rd-acc-track, .rd-acc-marquee:focus-within .rd-acc-track { animation-play-state: paused; }
.rd-acc-set { display: flex; align-items: center; gap: 88px; padding-right: 88px; }
.rd-acc-set a { display: flex; align-items: center; flex: none; opacity: .86; transition: opacity .4s, transform .4s var(--rd-ease); }
.rd-acc-set a:hover, .rd-acc-set a:focus-visible { opacity: 1; transform: translateY(-3px); }
.rd-acc-set img { height: 58px; width: auto; }
.rd-acc-set .rd-acc-ami img, .rd-acc-set .rd-acc-ncbahm img, .rd-acc-set .rd-acc-nva img { height: 76px; }
.rd-acc-set .rd-acc-cab img { height: 64px; }
@keyframes rdAccSlide { from { transform: translateX(0); } to { transform: translateX(-50%); } }
/* Partners: one quiet line */
.rd-acc-partners { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 40px; margin-top: 64px; }
.rd-acc-partners .rd-label { flex: none; }
.rd-acc-partners p { color: var(--rd-muted-on-wine); font-size: .95rem; max-width: 300px; margin: 0; }
.rd-acc-plogos { display: flex; align-items: center; gap: 44px; margin-left: auto; }
.rd-acc-plogos a { opacity: .92; transition: opacity .4s; }
.rd-acc-plogos a:hover { opacity: 1; }
.rd-acc-plogos img { height: 38px; width: auto; }
.rd-acc-plogos .rd-acc-svg { height: 26px; filter: brightness(0) invert(1); }
@media (max-width: 767px) {
  .rd-logos { padding: 96px 0 84px; }
  .rd-acc-marquee { margin-top: 56px; padding: 26px 0; }
  .rd-acc-set { gap: 56px; padding-right: 56px; }
  .rd-acc-set img { height: 42px; }
  .rd-acc-set .rd-acc-ami img, .rd-acc-set .rd-acc-ncbahm img, .rd-acc-set .rd-acc-nva img { height: 56px; }
  .rd-acc-set .rd-acc-cab img { height: 48px; }
  .rd-acc-plogos { margin-left: 0; gap: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .rd-acc-marquee { -webkit-mask-image: none; mask-image: none; }
  .rd-acc-track { animation: none; width: auto; }
  .rd-acc-set { flex-wrap: wrap; justify-content: center; gap: 40px 64px; padding: 0 var(--rd-pad); }
  .rd-acc-set[aria-hidden] { display: none; }
}

/* 03 Upcoming strip */
.rd-upcoming { background: var(--rd-wine); padding: 130px 0 110px; }
.rd-upcoming-actions { display: flex; justify-content: flex-end; align-items: center; gap: 24px; }
.rd-hint { font-size: 14px; letter-spacing: .14em; text-transform: uppercase; color: var(--rd-muted-on-wine); }
.rd-strip { --rd-strip-edge: max(var(--rd-pad), calc((100% - var(--rd-max)) / 2 + var(--rd-pad))); display: flex; gap: 28px; overflow-x: auto; scroll-snap-type: x proximity; scroll-padding-inline: var(--rd-strip-edge); padding: 8px var(--rd-strip-edge) 28px; scrollbar-width: thin; scrollbar-color: var(--rd-peach) rgba(245,191,145,.15); }
.rd-strip-card { flex: none; width: min(540px, 82vw); scroll-snap-align: start; display: flex; flex-direction: column; gap: 18px; text-decoration: none; color: var(--rd-ink-on-wine); }
.rd-strip-img { aspect-ratio: 810 / 450; border-radius: 18px; overflow: hidden; background: var(--rd-wine-3); box-shadow: 0 30px 60px rgba(20,0,8,.35); }
.rd-strip-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--rd-ease); }
.rd-strip-card:hover .rd-strip-img img { transform: scale(1.04); }
.rd-strip-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-bottom: 1px solid var(--rd-hair); padding-bottom: 14px; }
.rd-strip-date { font-family: var(--rd-serif); font-weight: 300; font-size: 1.16rem; line-height: 1.1; color: var(--rd-peach); }
.rd-strip-place { font-size: 15px; letter-spacing: .05em; color: var(--rd-muted-on-wine); text-align: right; }
.rd-strip-title { font-size: 17px; color: #FFFFFF; }

/* Parallax band */
.rd-parallax { position: relative; overflow: hidden; min-height: 560px; display: flex; align-items: center; background: var(--rd-wine-3); }
.rd-parallax-img { position: absolute; left: 0; top: -20%; width: 100%; height: 140%; max-width: none; object-fit: cover; object-position: 50% 30%; }
.rd-parallax-shade { position: absolute; inset: 0; background: rgba(74,8,32,.74); }
.rd-parallax-inner { position: relative; width: 100%; display: grid; grid-template-columns: minmax(0,8fr) minmax(0,4fr); gap: 32px; align-items: end; padding-top: 100px; padding-bottom: 100px; }
.rd-parallax-inner .rd-label { margin-bottom: 24px; }
.rd-parallax h2 { font-size: clamp(1.84rem, 4.16vw, 3.92rem); line-height: 1.02; }
.rd-parallax-inner > div:last-child { display: flex; justify-content: flex-end; }

/* 04 Quote */
.rd-quote { background: var(--rd-peach); color: var(--rd-wine); padding: 130px 0; }
.rd-quote-grid { display: grid; grid-template-columns: minmax(0,4fr) minmax(0,8fr); gap: 32px; }
.rd-quote-side { display: flex; flex-direction: column; justify-content: space-between; gap: 40px; }
.rd-quote-ctrls { display: flex; align-items: center; gap: 14px; }
.rd-quote-count { font-family: var(--rd-serif); font-size: 20px; margin-left: 8px; }
.rd-quote-mark { margin-bottom: 22px; }
.rd-quote-stack { display: grid; }
.rd-quote-item { grid-area: 1 / 1; margin: 0; opacity: 0; visibility: hidden; transform: translateY(20px); transition: opacity .9s ease, transform .9s var(--rd-ease), visibility .9s; }
.rd-quote-item.is-on { opacity: 1; visibility: visible; transform: none; }
.rd-quote-item blockquote { margin: 0 0 34px; font-family: var(--rd-serif); font-weight: 300; font-size: clamp(1.36rem, 2.48vw, 2.2rem); line-height: 1.22; letter-spacing: -.01em; color: var(--rd-wine); }
.rd-quote-item strong { display: block; font-weight: 400; font-size: 18px; color: var(--rd-wine); }
.rd-quote-item figcaption span { display: block; font-size: 16px; color: #4A4A4A; }

/* 05 FAQ */
.rd-faq { background: var(--rd-peach-soft); color: var(--rd-wine); padding: 130px 0; }
.rd-faq-grid { display: grid; grid-template-columns: minmax(0,5fr) minmax(0,7fr); gap: 32px; align-items: start; }
.rd-faq-side { position: sticky; top: 112px; padding-right: 40px; display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.rd-faq-side h2 { color: var(--rd-wine); font-size: clamp(1.68rem, 3.28vw, 2.96rem); }
.rd-faq-list { border-top: 1px solid var(--rd-hair-wine); }
.rd-faq details { border-bottom: 1px solid var(--rd-hair-wine); }
.rd-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 28px 0; cursor: pointer; font-family: var(--rd-serif); font-weight: 300; font-size: 1.2rem; line-height: 1.25; color: var(--rd-wine); }
.rd-faq summary::-webkit-details-marker { display: none; }
.rd-faq summary i { flex: none; position: relative; width: 48px; height: 48px; border-radius: 999px; border: 1px solid rgba(115,13,46,.35); transition: all .45s var(--rd-ease); }
.rd-faq summary i::before, .rd-faq summary i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.6px; margin: -.8px 0 0 -8px; background: currentColor; }
.rd-faq summary i::after { transform: rotate(90deg); }
.rd-faq details[open] summary i { background: var(--rd-wine); color: var(--rd-peach); border-color: var(--rd-wine); transform: rotate(45deg); }
.rd-faq details p { margin: 0 0 30px; max-width: 640px; color: var(--rd-wine); }

/* Newsletter */
.rd-newsletter { background: var(--rd-wine-3); padding: 130px 0 120px; }
.rd-newsletter-grid { display: grid; grid-template-columns: minmax(0,6fr) minmax(0,6fr); gap: 56px; align-items: start; }
.rd-newsletter .rd-label { margin-bottom: 24px; }
.rd-newsletter h2 { font-size: clamp(1.92rem, 4.32vw, 4rem); line-height: .98; margin-bottom: 24px; }
.rd-nl .nl-row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 20px; }
.rd-nl .nl-full { grid-column: 1 / -1; }
.rd-nl label { display: block; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--rd-peach); margin-bottom: 6px; }
.rd-nl input, .rd-nl select {
  width: 100%; min-height: 52px; border: 0; border-bottom: 1px solid rgba(245,191,145,.45); border-radius: 0;
  background: transparent; color: #FFFFFF; font: inherit; font-size: 18px; padding: 6px 0; outline: none;
  -webkit-appearance: none; appearance: none;
}
.rd-nl select { background-image: linear-gradient(45deg, transparent 50%, var(--rd-peach) 50%), linear-gradient(135deg, var(--rd-peach) 50%, transparent 50%); background-position: calc(100% - 14px) 50%, calc(100% - 8px) 50%; background-size: 6px 6px; background-repeat: no-repeat; }
.rd-nl select { background-color: rgba(255,255,255,.1) !important; color: #FFFFFF !important; padding-left: 14px !important; }
.rd-nl select option { color: var(--rd-wine); }
.rd-nl input::placeholder { color: rgba(251,231,214,.45); }
.rd-nl input:focus, .rd-nl select:focus { border-bottom-color: var(--rd-peach); }
.rd-nl .nl-hp { position: absolute; left: -9999px; }
.rd-nl .nl-submit { margin-top: 30px; }
.rd-nl #sha-nl-msg { margin-top: 14px; color: var(--rd-peach); }

/* Homepage responsive */
@media (max-width: 1000px) {
  .rd-sechead, .rd-hero-foot, .rd-methods-grid, .rd-parallax-inner, .rd-quote-grid, .rd-faq-grid, .rd-newsletter-grid { grid-template-columns: minmax(0,1fr); }
  .rd-hero { height: auto; min-height: 92vh; }
  .rd-hero-stats { justify-content: flex-start; gap: 28px 40px; }
  .rd-mrow { grid-template-columns: 40px minmax(0,1fr) 44px; }
  .rd-mrow-meta { display: none; }
  .rd-methods-aside, .rd-faq-side { position: static; padding: 0; }
  .rd-methods-aside { order: -1; margin-bottom: 32px; }
  .rd-methods-photos { aspect-ratio: 16 / 11; }
  .rd-bento { grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: 260px; }
  .rd-t-a { grid-column: 1 / -1; grid-row: span 2; }
  .rd-t-b, .rd-t-e, .rd-t-f { grid-column: 1 / -1; grid-row: auto; }
  .rd-t-c, .rd-t-d { grid-column: auto; grid-row: auto; }
  .rd-parallax-inner > div:last-child { justify-content: flex-start; }
}
@media (max-width: 600px) {
  .rd-bento { grid-template-columns: minmax(0,1fr); }
  .rd-t-c, .rd-t-d { grid-column: 1 / -1; }
  .rd-tile { padding: 26px; }
  .rd-tile-side { display: none; }
  .rd-nl .nl-row { grid-template-columns: minmax(0,1fr); }
  .rd-scrollcue { display: none; }
  .rd-hero-inner { padding-top: 56px; }
  .rd-home { font-size: 18px; }
  .rd-marquee-set { font-size: 28px; }
}

/* ── 7. LIST PAGES (/seminars/ + /webinars/) — same structure, new skin ─ */
:is(.sha-seminars, .sha-wb) { background: var(--rd-peach-soft); color: var(--rd-wine); }
:is(.sha-seminars, .sha-wb) .page-hero {
  background: var(--rd-wine); padding: 110px var(--rd-pad) 70px; text-align: left;
  position: relative; overflow: hidden;
}
:is(.sha-seminars, .sha-wb) .page-hero::after {
  content: ""; position: absolute; right: -160px; top: -140px; width: 680px; height: 680px;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .06; pointer-events: none;
}
:is(.sha-seminars, .sha-wb) .page-hero .wrap { max-width: var(--rd-max); padding-inline: 0; position: relative; }
:is(.sha-seminars, .sha-wb) .page-hero .sec-label { color: var(--rd-peach); letter-spacing: .2em; font-weight: 400; font-size: 13px; }
:is(.sha-seminars, .sha-wb) .page-hero h1 {
  font-family: var(--rd-serif); font-weight: 300; color: #FFFFFF;
  font-size: clamp(2.4rem, 6.08vw, 5.6rem); line-height: .96; letter-spacing: -.03em; margin: 18px 0 22px;
  animation: rdLineUp 1.2s var(--rd-ease) .1s both;
}
:is(.sha-seminars, .sha-wb) .page-hero .sub { color: var(--rd-ink-on-wine); max-width: 640px; animation: rdFadeUp 1.1s var(--rd-ease) .4s both; }

/* The page's own CSS sizes these three bands at 100vw, which includes the
   scrollbar and gives the whole page a sideways scroll (on live too). The
   wrapper is already full width, so plain auto width does the same job. */
:is(.sha-seminars, .sha-wb) :is(.page-hero, .past-section, .sec-wine, .lib-section) { width: auto; margin-left: 0; }
/* Sticky filter bar sits below the (taller) sticky nav, not under it. */
:is(.sha-seminars, .sha-wb) .filter-bar { top: 84px; }
@media (max-width: 1000px) { :is(.sha-seminars, .sha-wb) .filter-bar { top: 72px; } }
:is(.sha-seminars, .sha-wb) .filter-bar { background: var(--rd-wine); border: 0; border-top: 1px solid var(--rd-hair); box-shadow: none; }
:is(.sha-seminars, .sha-wb) .filter-bar-inner { max-width: var(--rd-max); padding-inline: var(--rd-pad); }
:is(.sha-seminars, .sha-wb) .filter-group-label { color: var(--rd-peach); letter-spacing: .18em; font-weight: 400; }
:is(.sha-seminars, .sha-wb) .filter-pill {
  background: transparent; color: var(--rd-ink-on-wine); border: 1px solid rgba(245,191,145,.35);
  border-radius: 999px; font-weight: 400; transition: all .3s;
}
:is(.sha-seminars, .sha-wb) .filter-pill:hover { border-color: var(--rd-peach); color: #FFFFFF; }
:is(.sha-seminars, .sha-wb) .filter-pill.active { background: var(--rd-peach); color: var(--rd-wine-3); border-color: var(--rd-peach); }
:is(.sha-seminars, .sha-wb) .filter-toggle { color: var(--rd-ink-on-wine); border-color: rgba(245,191,145,.35); background: transparent; }

:is(.sha-seminars, .sha-wb) :is(.seminars-section, .lib-section) { background: var(--rd-peach-soft); }
:is(.sha-seminars, .sha-wb) :is(.seminars-section, .lib-section) .wrap,
:is(.sha-seminars, .sha-wb) .past-section .wrap { max-width: var(--rd-max); padding-inline: var(--rd-pad); }
:is(.sha-seminars, .sha-wb) .sem-card {
  border-radius: 22px; border: 1px solid rgba(115,13,46,.08); background: var(--rd-cream);
  box-shadow: none; transition: transform .5s var(--rd-ease), box-shadow .5s;
}
:is(.sha-seminars, .sha-wb) .sem-card::before { display: none; }
:is(.sha-seminars, .sha-wb) .sem-card:hover { transform: translateY(-6px); box-shadow: 0 26px 52px rgba(115,13,46,.16); }
.sha-seminars .sem-card-img { aspect-ratio: 810 / 450; border-radius: 16px; margin: 10px 10px 0; overflow: hidden; }
:is(.sha-seminars, .sha-wb) .sem-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--rd-ease); }
:is(.sha-seminars, .sha-wb) .sem-card:hover .sem-card-img img { transform: scale(1.05); }
:is(.sha-seminars, .sha-wb) .sem-tag { color: var(--rd-rust); letter-spacing: .18em; font-weight: 400; }
:is(.sha-seminars, .sha-wb) .sem-card h3 { font-family: var(--rd-serif); font-weight: 300; color: var(--rd-wine); letter-spacing: -.01em; }
:is(.sha-seminars, .sha-wb) .sem-presenter, :is(.sha-seminars, .sha-wb) .sem-meta-item { color: var(--rd-muted-on-peach); }
:is(.sha-seminars, .sha-wb) .sem-card .btn { border-radius: 999px; }

:is(.sha-seminars, .sha-wb) .past-section { background: var(--rd-wine); color: var(--rd-ink-on-wine); }
:is(.sha-seminars, .sha-wb) .past-section .sec-label { color: var(--rd-peach); letter-spacing: .2em; font-weight: 400; }
:is(.sha-seminars, .sha-wb) .past-section h2 { font-family: var(--rd-serif); font-weight: 300; color: #FFFFFF; font-size: clamp(1.76rem, 3.68vw, 3.2rem); letter-spacing: -.02em; }
:is(.sha-seminars, .sha-wb) .past-section .sec-hd p { color: var(--rd-ink-on-wine); }
:is(.sha-seminars, .sha-wb) .past-stat-num { font-family: var(--rd-serif); font-weight: 300; color: var(--rd-peach); }
:is(.sha-seminars, .sha-wb) .past-stat-label, :is(.sha-seminars, .sha-wb) .past-year-label { color: var(--rd-muted-on-wine); }
:is(.sha-seminars, .sha-wb) .past-stats { border-color: var(--rd-hair); background: transparent; }
:is(.sha-seminars, .sha-wb) a.past-tile, :is(.sha-seminars, .sha-wb) .past-tile {
  background: rgba(255,255,255,.04); color: var(--rd-ink-on-wine); border: 1px solid var(--rd-hair); border-radius: 14px;
}
:is(.sha-seminars, .sha-wb) a.past-tile:hover { background: rgba(245,191,145,.12); color: #FFFFFF; border-color: var(--rd-peach); }
:is(.sha-seminars, .sha-wb) .past-tile-loc, :is(.sha-seminars, .sha-wb) a.past-tile:hover .past-tile-loc { color: var(--rd-muted-on-wine); }
:is(.sha-seminars, .sha-wb) .horizon-hd .sec-label { color: var(--rd-rust); }
:is(.sha-seminars, .sha-wb) .horizon-hd h4 { font-family: var(--rd-serif); font-weight: 300; }
:is(.sha-seminars, .sha-wb) .no-results { color: var(--rd-muted-on-peach); }
:is(.sha-seminars, .sha-wb) .sec-wine { background: var(--rd-wine-3); }
:is(.sha-seminars, .sha-wb) .sec-wine h2 { font-family: var(--rd-serif); font-weight: 300; letter-spacing: -.02em; }
:is(.sha-seminars, .sha-wb) .nl-submit { border-radius: 999px; }

:is(.sha-wb) .sem-card-img { border-radius: 16px; margin: 10px 10px 0; overflow: hidden; }
.sha-wb .lib-section h2 { font-family: var(--rd-serif); font-weight: 300; letter-spacing: -.02em; color: var(--rd-wine); }
.sha-wb .lib-section .sec-label { color: var(--rd-rust); letter-spacing: .2em; font-weight: 400; }
.sha-wb .lib-divider { border-color: rgba(115,13,46,.14); background: rgba(115,13,46,.14); }
.sha-wb .filter-count { color: var(--rd-muted-on-wine); }
.sha-wb .filter-count strong { color: var(--rd-peach); font-weight: 400; }

/* ── 7b. SEMINARS + WEBINARS LISTS — Apple-style top, slim filter bar, calmer cards ── */
/* Top: short intro beside the next seminar */
:is(.sha-seminars, .sha-wb) .rd-sem-hero { padding: 72px var(--rd-pad) 80px; }
.rd-sem-hero-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: center; }
:is(.sha-seminars, .sha-wb) .rd-sem-hero h1 { font-size: clamp(2.4rem, 4.6vw, 4.4rem); margin: 16px 0 20px; }
.rd-next {
  display: grid; grid-template-columns: minmax(0, 1fr); border-radius: 26px; overflow: hidden; text-decoration: none;
  background: var(--rd-wine-3); box-shadow: 0 40px 80px rgba(20, 0, 8, .4);
  animation: rdFadeUp 1.1s var(--rd-ease) .3s both; transition: transform .5s var(--rd-ease);
}
.rd-next:hover { transform: translateY(-4px); }
.rd-next-img { position: relative; aspect-ratio: 810 / 450; overflow: hidden; }
.rd-next-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--rd-ease); }
.rd-next:hover .rd-next-img img { transform: scale(1.04); }
.rd-next-body { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label pill" "title pill" "meta pill"; column-gap: 20px; row-gap: 4px; align-items: center; padding: 22px 26px 24px; }
.rd-next-body .rd-label { grid-area: label; }
.rd-next-title { grid-area: title; font-family: var(--rd-serif); font-weight: 300; font-size: 1.35rem; line-height: 1.2; color: #FFFFFF; }
.rd-next-meta { grid-area: meta; font-size: 15px; color: var(--rd-muted-on-wine); }
.rd-next-body .rd-pill { grid-area: pill; }

/* Filter bar: one slim sticky row */
:is(.sha-seminars, .sha-wb) .rd-fbar { padding: 0 var(--rd-pad); border-top: 1px solid var(--rd-hair); }
:is(.sha-seminars, .sha-wb) .rd-fbar-inner { display: flex; align-items: center; gap: 20px; padding: 12px 0; max-width: var(--rd-max); margin-inline: auto; }
.rd-chips {
  flex: 1 1 auto; min-width: 0; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none;
  -webkit-mask-image: linear-gradient(90deg, #000 92%, transparent); mask-image: linear-gradient(90deg, #000 92%, transparent);
  padding-right: 40px;
}
.rd-chips::-webkit-scrollbar { display: none; }
:is(.sha-seminars, .sha-wb) .rd-chips .filter-pill { flex: none; white-space: nowrap; min-height: 42px; padding: 0 18px; font-size: 15.5px; }
.rd-fbar-right { flex: none; display: flex; align-items: center; gap: 10px; }
.rd-dd { position: relative; }
.rd-dd summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 16px;
  border-radius: 999px; border: 1px solid rgba(245,191,145,.35); color: var(--rd-ink-on-wine); font-size: 15.5px;
  transition: border-color .3s, background .3s;
}
.rd-dd summary::-webkit-details-marker { display: none; }
.rd-dd summary::after { content: ""; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .3s; }
.rd-dd[open] summary::after { transform: translateY(2px) rotate(-135deg); }
.rd-dd summary:hover, .rd-dd[open] summary { border-color: var(--rd-peach); }
.rd-dd-val { color: var(--rd-peach); }
.rd-dd.is-set summary { background: rgba(245,191,145,.14); border-color: var(--rd-peach); }
.rd-dd-panel {
  position: absolute; right: 0; top: calc(100% + 10px); z-index: 20; min-width: 260px;
  display: flex; flex-direction: column; gap: 6px; padding: 12px;
  background: var(--rd-wine-3); border: 1px solid rgba(245,191,145,.2); border-radius: 20px;
  box-shadow: 0 30px 60px rgba(20,0,8,.45); animation: rdFadeUp .3s var(--rd-ease) both;
}
:is(.sha-seminars, .sha-wb) .rd-dd-panel .filter-pill { justify-content: flex-start; text-align: left; width: 100%; border-color: transparent; min-height: 44px; }
:is(.sha-seminars, .sha-wb) .rd-dd-panel .filter-pill:hover { border-color: rgba(245,191,145,.35); }
.rd-count { font-size: 14px; letter-spacing: .06em; color: var(--rd-muted-on-wine); white-space: nowrap; padding-left: 6px; }

/* Cards: the cover leads; details sit in one quiet line; whole card clicks */
:is(.sha-seminars, .sha-wb) .sem-card-body { padding: 20px 24px 24px; gap: 0; }
:is(.sha-seminars, .sha-wb) .sem-tag {
  align-self: flex-start; background: transparent; border: 0; padding: 0; margin-bottom: 8px;
  font-size: 12px; letter-spacing: .2em; color: var(--rd-rust);
}
:is(.sha-seminars, .sha-wb) .sem-card h3 { font-size: 1.28rem; line-height: 1.2; min-height: 0; margin-bottom: 6px; }
:is(.sha-seminars, .sha-wb) .sem-presenter { font-size: 15.5px; margin-bottom: 14px; }
:is(.sha-seminars, .sha-wb) .sem-meta {
  display: flex; flex-direction: row; flex-wrap: wrap; gap: 4px 16px; padding-top: 14px; margin-top: auto;
  border-top: 1px solid rgba(115,13,46,.1);
}
:is(.sha-seminars, .sha-wb) .sem-meta-item { font-size: 14.5px; gap: 6px; }
:is(.sha-seminars, .sha-wb) .sem-meta-item svg { opacity: .55; }
:is(.sha-seminars, .sha-wb) .sem-cpd { flex-basis: 100%; font-size: 14.5px; font-weight: 400; color: var(--rd-rust); margin-top: 4px; white-space: normal; }
:is(.sha-seminars, .sha-wb) .sem-card .btn.sem-card-link {
  display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 16px;
  background: transparent; color: var(--rd-wine); border: 0; border-top: 1px solid rgba(115,13,46,.1);
  border-radius: 0; padding: 14px 0 0; min-height: 0; font-size: 15.5px; letter-spacing: .03em; box-shadow: none; transform: none;
}
:is(.sha-seminars, .sha-wb) .sem-card .btn.sem-card-link::before {
  content: "→"; order: 2; display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 999px; border: 1px solid rgba(115,13,46,.25);
  transition: background .4s, color .4s, transform .45s var(--rd-ease);
}
:is(.sha-seminars, .sha-wb) .sem-card:hover .btn.sem-card-link::before { background: var(--rd-wine); color: var(--rd-peach); border-color: var(--rd-wine); transform: rotate(-45deg); }
:is(.sha-seminars, .sha-wb) .sem-badge {
  top: 14px; left: 14px; background: var(--rd-peach); color: var(--rd-wine-3); font-weight: 400; font-size: 11.5px;
  letter-spacing: .16em; padding: 7px 12px; border-radius: 999px; box-shadow: 0 8px 18px rgba(20,0,8,.3);
  line-height: 1.2; z-index: 2;   /* the image wrapper sets line-height:0, which squashed the pill */
}

@media (max-width: 1000px) {
  .rd-sem-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  :is(.sha-seminars, .sha-wb) .rd-fbar-inner { flex-wrap: wrap; gap: 10px; padding: 10px 0; }
  .rd-chips { flex-basis: 100%; }
  .rd-fbar-right { width: 100%; }
  .rd-count { margin-left: auto; }
  .rd-dd-panel { right: auto; left: 0; }
}
@media (max-width: 480px) {
  .rd-next-body { grid-template-columns: minmax(0, 1fr); grid-template-areas: "label" "title" "meta" "pill"; row-gap: 8px; }
  .rd-next-body .rd-pill { justify-self: start; margin-top: 8px; }
  .rd-dd summary { padding: 0 12px; font-size: 14.5px; }
}

/* Webinars list specifics */
.rd-sem-hero--solo .rd-sem-hero-grid { grid-template-columns: minmax(0, 1fr); }
.rd-sem-hero--solo h1 { max-width: 900px; }
.rd-count strong { color: var(--rd-peach); font-weight: 400; }
.sha-wb .sem-badge:not(.live-badge) { display: none; }
.sha-wb .sem-card h3 { margin-bottom: 22px; }
.sha-wb .sem-card .btn.sem-card-link { margin-top: auto; }   /* link row sits at the card's foot, whatever the title length */            /* the cover already prints its date */
.sha-wb .lib-section { padding-top: 64px; }
.sha-wb .lib-divider {
  background: none; border: 0; border-radius: 0; padding: 0; margin: 96px 0 40px; text-align: left;
}
.sha-wb #upcoming-grid[hidden] + .lib-divider { margin-top: 0; }   /* nothing scheduled: no gap */
.sha-wb .lib-divider h2 { font-size: clamp(2rem, 4vw, 3.3rem); margin: 6px 0 12px; }
.sha-wb .lib-divider p { color: var(--rd-muted-on-peach); max-width: 640px; }
.sha-wb #upcoming-hd { margin-bottom: 40px; }
.sha-wb #upcoming-hd h2 { font-family: var(--rd-serif); font-weight: 300; letter-spacing: -.02em; color: var(--rd-wine); font-size: clamp(2rem, 4vw, 3.3rem); }

/* Both lists: cards rise in as you scroll to them, staggered across the row */
@supports (animation-timeline: view()) {
  :is(.sha-seminars, .sha-wb) .sem-card.sha-animate {
    animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 22%;
  }
  :is(.sha-seminars, .sha-wb) .sem-card.sha-animate:nth-child(3n+2) { animation-range: entry 6% cover 28%; }
  :is(.sha-seminars, .sha-wb) .sem-card.sha-animate:nth-child(3n+3) { animation-range: entry 12% cover 34%; }
}

/* ── 9. SEMINAR PAGES (layouts/seminar.njk) — same sections, new skin ──
   Every rule is prefixed `html .sem-page` because the template also carries
   <style> blocks at the END of <body>; one extra element of specificity lets
   this head stylesheet win without !important. Structure is untouched. */
html .sem-page {
  --serif: var(--rd-serif);
  --sans: var(--rd-sans);
  --off-white: #FBEADB;            /* .section-alt */
  --peach-15: #F8DCC4;             /* tints, pills, notes */
  --text-mid: rgba(115, 13, 46, .74);
  --wine-10: rgba(115, 13, 46, .14);
  font-size: 19px;
  background: var(--rd-cream);
}
html .sem-page h1, html .sem-page h2 { font-weight: 300; letter-spacing: -.02em; line-height: 1.06; }
html .sem-page h2 { font-size: clamp(1.9rem, 4vw, 3.3rem); }
html .sem-page h3 { font-weight: 400; letter-spacing: -.01em; }
html .sem-page .section { padding: 112px var(--rd-pad); }
html .sem-page .wrap { max-width: 1180px; }
@media (max-width: 767px) { html .sem-page .section { padding: 72px var(--rd-pad); } }
html .sem-page .sec-label {
  display: inline-flex; align-items: center; gap: 14px; font-weight: 400;
  font-size: 13px; letter-spacing: .2em; color: var(--rd-rust); margin-bottom: 20px;
}
html .sem-page .sec-label::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
html .sem-page .sec-hd { margin-bottom: 60px; }
html .sem-page .sec-hd h2 { margin-bottom: 18px; }
html .sem-page .sec-hd.center .sec-label { justify-content: center; }

/* Buttons → pills */
html .sem-page .btn {
  border-radius: 999px; font-weight: 400; letter-spacing: .03em; padding: 17px 36px;
  transition: background .3s, color .3s, border-color .3s, transform .3s, box-shadow .3s;
}
html .sem-page .btn:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(74, 8, 32, .2); }
html .sem-page .btn-peach:hover { background: #FFFFFF; color: var(--rd-wine-3); }
html .sem-page .pricing-cards .btn.btn-disabled:hover { transform: none; box-shadow: none; }

/* Hero */
html .sem-page .hero { min-height: 640px; }
html .sem-page .hero-left { background: var(--rd-wine); padding: 80px 64px; }
html .sem-page .hero--full-bleed .hero-left { background: transparent; }
html .sem-page .hero--full-bleed .hero-scrim {
  background: linear-gradient(90deg, rgba(74,8,32,.97) 0%, rgba(74,8,32,.9) 34%, rgba(74,8,32,.5) 66%, rgba(74,8,32,.18) 100%);
}
html .sem-page .hero-eyebrow {
  display: flex; align-items: center; gap: 14px; opacity: 1; font-weight: 400;
  font-size: 13px; letter-spacing: .2em; color: var(--rd-peach); margin-bottom: 26px;
  animation: rdFadeUp 1s var(--rd-ease) .1s both;
}
html .sem-page .hero-eyebrow::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; flex: none; }
html .sem-page .hero-left h1 {
  font-size: clamp(2.2rem, 4.2vw, 3.9rem); line-height: 1.02; margin-bottom: 24px;
  animation: rdFadeUp 1.1s var(--rd-ease) .2s both;
}
html .sem-page .hero-sub { font-size: 1rem; color: var(--rd-ink-on-wine); max-width: 520px; animation: rdFadeUp 1.1s var(--rd-ease) .35s both; }
html .sem-page .hero-btns, html .sem-page .hero-facts, html .sem-page .hero-pills { animation: rdFadeUp 1.1s var(--rd-ease) .5s both; }
html .sem-page .hero-fact { font-size: .9rem; color: var(--rd-ink-on-wine); }
html .sem-page .hero-pill { font-weight: 400; letter-spacing: .12em; border-color: rgba(245,191,145,.45); color: var(--rd-ink-on-wine); }
html .sem-page .hero-right { background: var(--rd-wine-3); }
html .sem-page .hero-right img { animation: rdKenburns 24s ease-in-out infinite alternate; }
html .sem-page .hero-right--contain { background: var(--rd-wine); }
html .sem-page .hero-right--contain img { animation: none; }
@media (max-width: 767px) { html .sem-page .hero-left { padding: 52px var(--rd-pad); } }

/* Cards — no coloured edge stripes; soft, rounded, hairline */
html .sem-page .reason-card,
html .sem-page .component-card,
html .sem-page .pillar-card,
html .sem-page .day-card,
html .sem-page .founder-card,
html .sem-page .translator-card,
html .sem-page .testi-card,
html .sem-page .reward-card,
html .sem-page .excursion-card,
html .sem-page .app-card,
html .sem-page .audience-tile,
html .sem-page .outcome-item {
  background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); box-shadow: none; border-radius: 24px;
  transition: transform .5s var(--rd-ease), box-shadow .5s;
}
html .sem-page .reason-card:hover,
html .sem-page .component-card:hover,
html .sem-page .pillar-card:hover,
html .sem-page .day-card:hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(115,13,46,.1); }
html .sem-page .reason-card { border-left: 1px solid rgba(115,13,46,.08); padding: 36px 32px; }
html .sem-page .reason-num { font-weight: 300; font-size: 3rem; opacity: 1; color: var(--rd-rust); margin-bottom: 14px; }
html .sem-page .reason-card h3, html .sem-page .component-card h3, html .sem-page .pillar-card h3 { font-size: 1.3rem; }
html .sem-page .component-card { border-top: 1px solid rgba(115,13,46,.08); padding: 38px 34px; }
html .sem-page .outcome-item { border-radius: 18px; padding: 22px 24px; }
html .sem-page .tick-circle { background: var(--rd-rust); }
html .sem-page .day-card { padding: 34px 30px; }
html .sem-page .day-head { border-bottom: 1px solid var(--rd-peach); }
html .sem-page .day-label { font-weight: 400; letter-spacing: .2em; }
html .sem-page .day-head h3 { font-family: var(--rd-serif); font-weight: 400; font-size: 1.25rem; }
html .sem-page .audience-tile { border-radius: 16px; }
html .sem-page .testi-card { padding: 34px 32px; }
html .sem-page .testi-quote { font-family: var(--rd-serif); font-weight: 300; font-size: 1.2rem; line-height: 1.45; }
html .sem-page .testi-author strong, html .sem-page .founder-attr strong { font-weight: 400; }
html .sem-page .founder-card, html .sem-page .translator-card { border-radius: 28px; padding: 48px; }
html .sem-page .founder-quote { font-style: oblique 10deg; font-weight: 300; font-size: 1.35rem; }
html .sem-page .translator-name { font-weight: 400; }
html .sem-page .founder-img img, html .sem-page .translator-img img { border-radius: 20px; }
html .sem-page .solution-gallery img, html .sem-page .sg-tile { border-radius: 20px; }
html .sem-page .video-embed { border-radius: 24px; box-shadow: 0 30px 60px rgba(74,8,32,.2); }
html .sem-page .video-scenario { border-radius: 22px; }
html .sem-page .big-quote, html .sem-page .trust-quote, html .sem-page .excursion-quote {
  font-style: oblique 10deg; font-weight: 300; font-size: clamp(1.3rem, 2.4vw, 1.9rem); line-height: 1.35;
}
html .sem-page .trust-strip { background: var(--rd-peach); padding: 56px var(--rd-pad); }
html .sem-page .trust-author { font-weight: 400; letter-spacing: .2em; }

/* Presenter — the teacher gets a dark, full-colour section */
html .sem-page #presenter { background: var(--rd-wine); color: var(--rd-ink-on-wine); }
html .sem-page #presenter h2, html .sem-page #presenter h3 { color: #FFFFFF; }
html .sem-page #presenter .sec-label, html .sem-page #presenter .instructor-role { color: var(--rd-peach); }
html .sem-page #presenter .instructor-role { font-weight: 400; letter-spacing: .18em; }
html .sem-page #presenter p, html .sem-page #presenter .sec-hd p, html .sem-page #presenter .credential-list li { color: var(--rd-ink-on-wine); }
html .sem-page #presenter .cred-dot { background: var(--rd-peach); }
html .sem-page #presenter .btn-primary { background: var(--rd-peach); color: var(--rd-wine-3); }
html .sem-page #presenter .btn-primary:hover { background: #FFFFFF; }
html .sem-page .instructor-photo { border-radius: 26px; height: 500px; background: var(--rd-wine-3); }
html .sem-page .instructor-photo img { border-radius: 26px; }

/* Research / method credibility box */
html .sem-page .research-box { background: var(--rd-wine); border-radius: 30px; padding: 56px; }
html .sem-page .research-photo, html .sem-page .research-photo img { border-radius: 20px; }
html .sem-page .research-label { font-weight: 400; letter-spacing: .2em; }
html .sem-page .research-content p { color: var(--rd-ink-on-wine); }

/* Image band + stats */
html .sem-page .image-band { min-height: 520px; }
html .sem-page .image-band-overlay { background: linear-gradient(90deg, rgba(74,8,32,.94) 0%, rgba(74,8,32,.72) 55%, rgba(74,8,32,.2) 100%); }
html .sem-page .image-band-text h2 { font-size: clamp(2rem, 4.2vw, 3.4rem); max-width: 640px; }
html .sem-page .stats-strip, html .sem-page .section-wine { background: var(--rd-wine); }
html .sem-page .stat-num { font-weight: 300; font-size: clamp(2.2rem, 8vw, 3.4rem); letter-spacing: -.02em; }
html .sem-page .stats-grid { gap: 28px 16px; }
html .sem-page .stats-grid > * { min-width: 0; }
html .sem-page .stat-lbl { color: var(--rd-muted-on-wine); letter-spacing: .04em; }

/* Accreditation */
html .sem-page .accred-block, html .sem-page .accred-hero, html .sem-page .accred-card { background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); border-radius: 26px; }
html .sem-page .accred-credits { font-weight: 300; }
html .sem-page .accred-note { border: 0; border-radius: 18px; }
html .sem-page .accred-disclosure details { border-radius: 18px; }

/* Pricing */
html .sem-page .p-card { border: 1px solid rgba(115,13,46,.12); border-radius: 28px; padding: 40px 34px; background: #FFFFFF; transition: transform .5s var(--rd-ease), box-shadow .5s; }
html .sem-page .p-card:hover { transform: translateY(-4px); box-shadow: 0 26px 52px rgba(115,13,46,.12); }
html .sem-page .p-tier { font-weight: 400; letter-spacing: .2em; }
html .sem-page .p-amount { font-weight: 300; font-size: 3.4rem; letter-spacing: -.02em; }
html .sem-page .p-badge { background: var(--rd-peach); color: var(--rd-wine-3); font-weight: 400; letter-spacing: .14em; padding: 7px 18px; }
html .sem-page .p-card.featured { background: var(--rd-wine); border-color: var(--rd-wine); color: var(--rd-ink-on-wine); box-shadow: 0 30px 60px rgba(74,8,32,.28); }
html .sem-page .p-card.featured .p-tier,
html .sem-page .p-card.featured .p-save { color: var(--rd-peach); }
html .sem-page .p-card.featured .p-amount { color: #FFFFFF; }
html .sem-page .p-card.featured .p-full,
html .sem-page .p-card.featured .p-gst,
html .sem-page .p-card.featured .p-note,
html .sem-page .p-card.featured .p-includes li { color: var(--rd-ink-on-wine); }
html .sem-page .p-card.featured .p-full s { text-decoration-color: var(--rd-peach); }
html .sem-page .p-card.featured .p-includes .tick { color: var(--rd-peach); }
html .sem-page .p-card.featured .btn-primary { background: var(--rd-peach); color: var(--rd-wine-3); }
html .sem-page .p-card.featured .btn-primary:hover { background: #FFFFFF; }
html .sem-page .p-card.featured .btn-outline { border-color: var(--rd-peach); color: var(--rd-peach); }
@media (max-width: 480px) {
  html .sem-page .p-card { padding: 32px 22px; }
  html .sem-page .p-amount { font-size: 2.5rem; }
  html .sem-page .section .wrap { padding-inline: 4px; }
}
html .sem-page .tier-deadline { background: var(--rd-wine); color: var(--rd-peach); font-weight: 400; letter-spacing: .02em; }
html .sem-page .verify-gate { background: #FFFFFF; border: 1px solid rgba(115,13,46,.1); border-radius: 22px; }

/* FAQ — serif questions, round plus/close toggle */
html .sem-page .faq-wrap { max-width: 860px; }
html .sem-page .faq-item { border-bottom: 1px solid rgba(115,13,46,.16); }
html .sem-page .faq-btn { font-family: var(--rd-serif); font-weight: 300; font-size: 1.35rem; line-height: 1.3; padding: 28px 0; color: var(--rd-wine); }
html .sem-page .faq-chevron {
  position: relative; width: 46px; height: 46px; border: 1px solid rgba(115,13,46,.35); border-radius: 999px;
  transform: none; transition: all .45s var(--rd-ease);
}
html .sem-page .faq-chevron::before, html .sem-page .faq-chevron::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.6px; margin: -.8px 0 0 -8px; background: var(--rd-wine);
}
html .sem-page .faq-chevron::after { transform: rotate(90deg); }
html .sem-page .faq-item.open .faq-chevron { transform: rotate(45deg); background: var(--rd-wine); border-color: var(--rd-wine); }
html .sem-page .faq-item.open .faq-chevron::before, html .sem-page .faq-item.open .faq-chevron::after { background: var(--rd-peach); }
html .sem-page .faq-answer { font-size: 1rem; padding-bottom: 28px; }

/* Final call to action */
html .sem-page .final-cta { background: var(--rd-wine-3); padding: 150px var(--rd-pad); }
html .sem-page .final-cta h2 { font-size: clamp(2.4rem, 5.2vw, 4.6rem); max-width: 900px; line-height: 1; }
html .sem-page .final-cta > .wrap > p { color: var(--rd-ink-on-wine); }

/* Scroll-in for the blocks (browsers with scroll timelines; others: static) */
@supports (animation-timeline: view()) {
  html .sem-page :is(.sec-hd, .reason-card, .component-card, .pillar-card, .day-card, .outcome-item, .p-card,
    .testi-card, .instructor-single, .research-box, .founder-card, .translator-card, .accred-block, .accred-hero, .accred-card) {
    animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 24%;
  }
}

/* ── 10. WEBINAR PAGES (layouts/webinar.njk + each page's body) — new skin ──
   Same markup and sections; content files untouched. */
html .web-page { background: var(--rd-cream); }
html .web-page .sec { padding: 110px var(--rd-pad); }
html .web-page .sec-alt { background: var(--rd-peach-soft); }
html .web-page .wrap { max-width: 1180px; }
html .web-page h1, html .web-page h2 { font-weight: 300; letter-spacing: -.02em; line-height: 1.06; }
html .web-page h2 { font-size: clamp(1.9rem, 4vw, 3.2rem); }
html .web-page .sec-label { display: inline-flex; align-items: center; gap: 14px; font-weight: 400; font-size: 13px; letter-spacing: .2em; color: var(--rd-rust); }
html .web-page .sec-label::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
html .web-page .sec-hd { margin-bottom: 56px; }
html .web-page .sec-hd.center .sec-label { justify-content: center; }
@media (max-width: 767px) { html .web-page .sec { padding: 72px var(--rd-pad); } }

/* Hero */
html .web-page .web-hero { background: var(--rd-wine); padding: 100px var(--rd-pad) 110px; }
html .web-page .web-hero .wrap { gap: 64px; }
html .web-page .web-badge {
  background: transparent; border: 1px solid rgba(245,191,145,.5); color: var(--rd-peach);
  border-radius: 999px; font-size: 12.5px; letter-spacing: .2em; padding: 7px 18px;
  animation: rdFadeUp 1s var(--rd-ease) .1s both;
}
html .web-page .web-hero h1 { font-size: clamp(2.2rem, 4.2vw, 3.8rem); line-height: 1.03; animation: rdFadeUp 1.1s var(--rd-ease) .2s both; }
html .web-page .web-sub { color: var(--rd-ink-on-wine); animation: rdFadeUp 1.1s var(--rd-ease) .35s both; }
html .web-page .web-pills, html .web-page .web-hero-cta { animation: rdFadeUp 1.1s var(--rd-ease) .5s both; }
html .web-page .web-pill { border-radius: 999px; background: rgba(255,255,255,.06); border-color: rgba(245,191,145,.35); color: var(--rd-ink-on-wine); }
html .web-page .web-hero-img { animation: rdFadeUp 1.2s var(--rd-ease) .3s both; }
html .web-page .web-hero-img img { border-radius: 24px; box-shadow: 0 40px 80px rgba(20,0,8,.4); }
@media (max-width: 840px) { html .web-page .web-hero { padding: 64px var(--rd-pad) 72px; } }

/* Details bar + world clock */
html .web-page .web-details { background: var(--rd-peach); border-bottom: 0; padding: 40px var(--rd-pad); }
html .web-page .web-detail .lbl, html .web-page .web-times-lbl { font-weight: 400; letter-spacing: .2em; }
html .web-page .web-detail .val { font-size: 1.15rem; }
html .web-page .web-times { border-top-color: rgba(115,13,46,.18); }
html .web-page .web-times-you { border-radius: 999px; border-color: rgba(115,13,46,.15); }
html .web-page .web-time { border-radius: 16px; border-color: rgba(115,13,46,.1); }

/* About (wine) */
html .web-page .web-about { background: var(--rd-wine); }
html .web-page .web-about p { color: var(--rd-ink-on-wine); }
html .web-page .web-meta-card { border-radius: 22px; border-color: rgba(245,191,145,.2); background: rgba(255,255,255,.05); padding: 30px; }
html .web-page .web-meta-card .lbl { letter-spacing: .2em; }

/* Cards, teachers, info, FAQ */
html .web-page .web-card, html .web-page .web-info-card, html .web-page .web-faq {
  background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); box-shadow: none; border-radius: 24px;
  transition: transform .5s var(--rd-ease), box-shadow .5s;
}
html .web-page .web-card { padding: 36px 30px; }
html .web-page .web-card .num { color: var(--rd-rust); font-weight: 300; font-size: 3rem; }
html .web-page .web-card h3, html .web-page .web-info-card h3 { font-size: 1.3rem; font-weight: 400; }
html .web-page .web-info-card { padding: 34px; }
html .web-page .web-faq { padding: 30px 34px; }
html .web-page .web-faq h3 { font-weight: 300; font-size: 1.35rem; line-height: 1.3; }
html .web-page .web-teacher img { border: 0; box-shadow: 0 0 0 6px var(--rd-peach-soft), 0 24px 48px rgba(115,13,46,.18); width: 190px; height: 190px; }
html .web-page .web-role { background: transparent; border: 1px solid rgba(196,82,74,.45); color: var(--rd-rust); border-radius: 999px; letter-spacing: .18em; }
html .web-page .web-teacher h3 { font-weight: 300; font-size: 1.7rem; }
html .web-page .web-guest img { border: 0; box-shadow: 0 0 0 4px var(--rd-peach); }

/* Stay connected — wine, not rust: rust stays an accent */
html .web-page .web-connected { background: var(--rd-wine-3); }
html .web-page .web-connected h2 { font-size: clamp(2.2rem, 4.6vw, 3.8rem); }
html .web-page .web-conn-card { border-radius: 26px; background: rgba(255,255,255,.05); border-color: rgba(245,191,145,.22); padding: 44px 36px; }
html .web-page .web-conn-card p { color: var(--rd-ink-on-wine); }
html .web-page .web-ended p { color: var(--rd-wine); }

@supports (animation-timeline: view()) {
  html .web-page :is(.sec-hd, .web-card, .web-info-card, .web-faq, .web-teacher, .web-meta-card, .web-conn-card, .web-guest) {
    animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 24%;
  }
}

/* 10b. Past seminars (layouts/seminar-archive.njk) share .web-page, so §10
   already skins them; these are the three parts only they carry. */
html .web-page .archive-note {
  display: flex; justify-content: center; align-items: baseline; gap: 12px; flex-wrap: wrap;
  background: var(--rd-cream); border-bottom: 0; padding: 18px var(--rd-pad); font-size: 15px; color: var(--rd-muted-on-peach);
}
html .web-page .archive-note strong { font-weight: 400; color: var(--rd-rust); letter-spacing: .04em; }
html .web-page .web-schedule { gap: 14px; }
html .web-page .web-day {
  background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); border-left: 1px solid rgba(115,13,46,.08);
  border-radius: 24px; padding: 30px 34px; transition: transform .5s var(--rd-ease), box-shadow .5s;
}
html .web-page .web-day:hover { transform: translateY(-3px); box-shadow: 0 22px 44px rgba(115,13,46,.1); }
html .web-page .web-day .day-lbl { font-weight: 400; font-size: 12.5px; letter-spacing: .2em; color: var(--rd-rust); margin-bottom: 8px; }
html .web-page .web-day h3 { font-weight: 300; font-size: 1.55rem; letter-spacing: -.01em; line-height: 1.2; }
html .web-page .sem-interest { background: var(--rd-wine-3); padding-block: 130px; border-bottom: 1px solid var(--rd-hair); }
html .web-page .sem-interest h2 { font-size: clamp(2.2rem, 4.6vw, 3.8rem); margin-bottom: 20px; }
html .web-page .sem-interest p { color: var(--rd-ink-on-wine); margin-bottom: 36px; }
html .web-page .btn-interest {
  border-radius: 999px; font-weight: 400; letter-spacing: .03em; padding: 16px 34px; min-height: 52px;
  background: var(--rd-peach); color: var(--rd-wine-3); transition: background .3s, transform .4s var(--rd-ease);
}
html .web-page .btn-interest:hover { background: #FFFFFF; transform: translateY(-2px); }
@supports (animation-timeline: view()) {
  html .web-page :is(.web-day, .sem-interest .wrap) { animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 24%; }
}
@media (max-width: 767px) {
  html .web-page .web-day { padding: 24px 24px; }
  html .web-page .sem-interest { padding-block: 84px; }
}

/* ── 11. ABOUT (/about/) — same sections and copy, new skin ──────────── */
html .sha-about { background: var(--rd-cream); }
html .sha-about h1, html .sha-about h2 { font-family: var(--rd-serif); font-weight: 300; letter-spacing: -.02em; line-height: 1.04; }
html .sha-about h2 { font-size: clamp(2rem, 4.2vw, 3.5rem); }
html .sha-about .sec { padding: 120px var(--rd-pad); }
html .sha-about .sec-alt { background: var(--rd-peach-soft); }
html .sha-about .sec-peach { background: var(--rd-peach); }
html .sha-about .wrap { max-width: 1180px; }
html .sha-about .sec-label { display: inline-flex; align-items: center; gap: 14px; font-weight: 400; font-size: 13px; letter-spacing: .2em; color: var(--rd-rust); }
html .sha-about .sec-label::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
html .sha-about .sec-peach .sec-label { color: var(--rd-wine); }
html .sha-about .sec-hd { margin-bottom: 60px; }
html .sha-about .btn { border-radius: 999px; font-weight: 400; letter-spacing: .03em; }

/* Hero: left-aligned, oversized serif, brand mark watermark */
html .sha-about .page-hero { background: var(--rd-wine); text-align: left; padding: 130px var(--rd-pad) 120px; }
html .sha-about .page-hero::after {
  content: ""; position: absolute; right: -180px; top: -160px; width: 760px; height: 760px;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .06; pointer-events: none;
}
html .sha-about .hero-content { max-width: 1180px; margin: 0 auto; position: relative; }
html .sha-about .page-hero .sec-label { color: var(--rd-peach); animation: rdFadeUp 1s var(--rd-ease) .1s both; }
html .sha-about .page-hero h1 { color: #FFFFFF; font-size: clamp(2.8rem, 6.4vw, 6rem); line-height: .98; margin: 22px 0 30px; animation: rdFadeUp 1.1s var(--rd-ease) .2s both; }
html .sha-about .page-hero .sub { color: var(--rd-ink-on-wine); max-width: 720px; margin-left: 0; animation: rdFadeUp 1.1s var(--rd-ease) .4s both; }
html .sha-about .hero-badges { justify-content: flex-start; animation: rdFadeUp 1.1s var(--rd-ease) .55s both; }
html .sha-about .hero-badge { border-color: rgba(245,191,145,.45); color: var(--rd-ink-on-wine); letter-spacing: .04em; }

/* Stats: big light serif numbers on deep wine */
html .sha-about .stats-section { background: var(--rd-wine-3); }
html .sha-about .stat-num { font-family: var(--rd-serif); font-weight: 300; letter-spacing: -.03em; }
html .sha-about .stat-label { color: var(--rd-muted-on-wine); letter-spacing: .14em; }

/* Cards: white, rounded, hairline — no coloured edge stripes */
html .sha-about :is(.standard-card, .faculty-card, .hub-card, .mission-aside) {
  background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); border-left: 1px solid rgba(115,13,46,.08);
  border-radius: 24px; box-shadow: none; transition: transform .5s var(--rd-ease), box-shadow .5s;
}
html .sha-about :is(.standard-card, .faculty-card, .hub-card):hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(115,13,46,.12); }
html .sha-about .standard-card { padding: 36px 32px; }
html .sha-about .standard-icon { background: var(--rd-wine); color: var(--rd-peach); border-radius: 999px; }
html .sha-about :is(.standard-card, .faculty-card, .hub-card) h3 { font-family: var(--rd-serif); font-weight: 400; }

/* Dr Scott Ling: the founder gets a full dark section */
html .sha-about #dr-scott-ling { background: var(--rd-wine); color: var(--rd-ink-on-wine); }
html .sha-about #dr-scott-ling h2 { color: #FFFFFF; font-size: clamp(2.6rem, 5.4vw, 4.8rem); }
html .sha-about #dr-scott-ling .sec-label { color: var(--rd-peach); }
html .sha-about #dr-scott-ling p { color: var(--rd-ink-on-wine); }
html .sha-about .scott-title { color: var(--rd-peach); letter-spacing: .08em; }
html .sha-about .scott-img-wrap { border-radius: 28px; background: var(--rd-wine-3); box-shadow: 0 40px 80px rgba(20,0,8,.4); }
html .sha-about .scott-img-wrap img { border-radius: 28px; }
html .sha-about .scott-pullquote { border-left: 0; padding: 8px 0 8px; margin: 34px 0; position: relative; }
html .sha-about .scott-pullquote p { font-family: var(--rd-serif); font-weight: 300; font-style: oblique 10deg; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.3; color: #FFFFFF; }
html .sha-about .scott-cred-item { color: var(--rd-ink-on-wine); }
html .sha-about .scott-cred-item svg { color: var(--rd-peach); }

/* Closing call to action */
html .sha-about .sec-wine { background: var(--rd-wine-3); }
html .sha-about .sec-wine h2 { color: #FFFFFF; font-size: clamp(2.4rem, 5vw, 4.4rem); }

@supports (animation-timeline: view()) {
  html .sha-about :is(.sec-hd, .standard-card, .faculty-card, .hub-card, .scott-copy, .scott-img-wrap, .mission-copy, .mission-aside) {
    animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 24%;
  }
}
@media (max-width: 767px) {
  html .sha-about .sec { padding: 76px var(--rd-pad); }
  html .sha-about .page-hero { padding: 84px var(--rd-pad) 76px; }
}

/* ── 12. TEACHERS (/teachers/ + layouts/teacher.njk) — same sections, new skin ── */
/* Most photos are small originals (240–420px), so they show square and no
   bigger than ~400px; a landscape headshot crops to its centre. */

/* /teachers/ */
html .sha-teachers { background: var(--rd-cream); }
html .sha-teachers :is(h1, h2) { font-family: var(--rd-serif); font-weight: 300; letter-spacing: -.02em; line-height: 1.04; }
html .sha-teachers .wrap { max-width: var(--rd-max); padding-inline: var(--rd-pad); }
html .sha-teachers .sec { padding: 120px 0; }
html .sha-teachers .sec-alt { background: var(--rd-peach-soft); }
html .sha-teachers .sec-label { display: inline-flex; align-items: center; gap: 14px; font-weight: 400; font-size: 13px; letter-spacing: .2em; color: var(--rd-rust); }
html .sha-teachers .sec-label::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
html .sha-teachers .btn { border-radius: 999px; font-weight: 400; letter-spacing: .03em; }

html .sha-teachers .page-hero { background: var(--rd-wine); text-align: left; padding: 130px 0 120px; }
html .sha-teachers .page-hero::before { display: none; }
html .sha-teachers .page-hero::after {
  inset: auto; right: -180px; top: -160px; width: 760px; height: 760px;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .06;
}
html .sha-teachers .page-hero .sec-label { display: inline-flex; margin-bottom: 0; color: var(--rd-peach); animation: rdFadeUp 1s var(--rd-ease) .1s both; }
html .sha-teachers .page-hero h1 { color: #FFFFFF; font-size: clamp(2.8rem, 6.4vw, 6rem); line-height: .98; margin: 22px 0 30px; animation: rdLineUp 1.2s var(--rd-ease) .15s both; }
html .sha-teachers .page-hero .sub { color: var(--rd-ink-on-wine); max-width: 720px; margin-left: 0; animation: rdFadeUp 1.1s var(--rd-ease) .4s both; }
html .sha-teachers .hero-badges { justify-content: flex-start; animation: rdFadeUp 1.1s var(--rd-ease) .55s both; }
html .sha-teachers .hero-badge { border-color: rgba(245,191,145,.45); color: var(--rd-ink-on-wine); font-weight: 400; font-size: 14px; padding: 8px 18px; }
html .sha-teachers .hero-badge svg { color: var(--rd-peach); }

/* Intro: the heading on the left, the paragraph beside it */
html .sha-teachers .sec-alt .sec-hd.centered {
  text-align: left; margin: 0; display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  grid-template-areas: "label label" "h2 p"; column-gap: 72px; row-gap: 26px; align-items: end;
}
html .sha-teachers .sec-alt .sec-hd .sec-label { grid-area: label; margin: 0; }
html .sha-teachers .sec-alt .sec-hd h2 { grid-area: h2; margin: 0; font-size: clamp(2.4rem, 5vw, 4.6rem); }
html .sha-teachers .sec-alt .sec-hd p { grid-area: p; margin: 0; max-width: none; font-size: 1.05rem; color: var(--rd-muted-on-peach); }

/* Filter: one slim row that sticks under the nav and scrolls sideways on a phone */
html .sha-teachers .filter-bar {
  position: sticky; top: 84px; z-index: 5; flex-wrap: nowrap; justify-content: flex-start; gap: 8px;
  overflow-x: auto; scrollbar-width: none; margin: -24px 0 48px; padding: 12px 0;
  background: color-mix(in srgb, var(--rd-cream) 88%, transparent); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
html .sha-teachers .filter-bar::-webkit-scrollbar { display: none; }
html .sha-teachers .filter-btn {
  flex: none; white-space: nowrap; min-height: 42px; padding: 0 18px; font-size: 15.5px; font-weight: 400; letter-spacing: .01em;
  background: transparent; color: var(--rd-wine); border: 1px solid rgba(115,13,46,.22); border-radius: 999px; transition: all .3s;
}
html .sha-teachers .filter-btn:hover { border-color: var(--rd-wine); background: transparent; color: var(--rd-wine); }
html .sha-teachers .filter-btn.is-active { background: var(--rd-wine); color: var(--rd-peach); border-color: var(--rd-wine); }
html .sha-teachers .teacher-card.is-filtered-out { display: none; }

/* Cards: the photo leads; method, name, credentials; an arrow at the foot */
html .sha-teachers .teacher-grid { gap: 32px; }
html .sha-teachers .teacher-card {
  background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); border-radius: 24px; box-shadow: none;
  transition: translate .5s var(--rd-ease), box-shadow .5s;
}
html .sha-teachers .teacher-card:hover { translate: 0 -6px; box-shadow: 0 26px 52px rgba(115,13,46,.14); border-color: rgba(115,13,46,.08); }
html .sha-teachers .teacher-photo-wrap { aspect-ratio: 1 / 1; width: auto; margin: 10px 10px 0; border-radius: 16px; background: var(--rd-peach-soft); }
html .sha-teachers .teacher-photo-wrap img { transition: transform 1.1s var(--rd-ease); }
html .sha-teachers .teacher-card:hover .teacher-photo-wrap img { transform: scale(1.05); }
html .sha-teachers .teacher-initials { font-family: var(--rd-serif); font-weight: 300; font-size: 4rem; color: rgba(115,13,46,.3); }
html .sha-teachers .teacher-card-body { padding: 22px 24px 24px; gap: 0; }
html .sha-teachers .teacher-method { font-weight: 400; font-size: 12px; letter-spacing: .2em; color: var(--rd-rust); margin-bottom: 10px; }
html .sha-teachers .teacher-card h3 { font-family: var(--rd-serif); font-weight: 300; font-size: 1.6rem; letter-spacing: -.01em; margin-bottom: 6px; }
html .sha-teachers .teacher-creds { font-weight: 400; font-size: 15px; color: var(--rd-muted-on-peach); }
html .sha-teachers .teacher-card p { font-size: 15.5px; color: var(--rd-wine); opacity: .8; margin: 14px 0 20px; }
html .sha-teachers .teacher-card-body::after {
  content: "→"; align-self: flex-end; margin-top: auto; display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; flex: none; border-radius: 999px; border: 1px solid rgba(115,13,46,.25); color: var(--rd-wine);
  transition: background .4s, color .4s, border-color .4s, transform .45s var(--rd-ease);
}
html .sha-teachers .teacher-card:hover .teacher-card-body::after { background: var(--rd-wine); color: var(--rd-peach); border-color: var(--rd-wine); transform: rotate(-45deg); }

html .sha-teachers .sec-wine { background: var(--rd-wine-3); }
html .sha-teachers .cta-inner { max-width: 820px; }
html .sha-teachers .cta-inner .sec-label { color: var(--rd-peach); margin-bottom: 22px; }
html .sha-teachers .cta-inner h2 { font-size: clamp(2.4rem, 5vw, 4.4rem); margin-bottom: 24px; }
html .sha-teachers .cta-inner .sub { color: var(--rd-ink-on-wine); }

@supports (animation-timeline: view()) {
  html .sha-teachers :is(.sec-hd, .teacher-card, .cta-inner) {
    animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 22%;
  }
  html .sha-teachers .teacher-card:nth-child(3n+2) { animation-range: entry 6% cover 28%; }
  html .sha-teachers .teacher-card:nth-child(3n+3) { animation-range: entry 12% cover 34%; }
}
@media (max-width: 1000px) {
  html .sha-teachers .filter-bar { top: 72px; }
  html .sha-teachers .sec-alt .sec-hd.centered { grid-template-columns: minmax(0, 1fr); grid-template-areas: "label" "h2" "p"; }
}
@media (max-width: 767px) {
  html .sha-teachers .sec { padding: 76px 0; }
  html .sha-teachers .page-hero { padding: 84px 0 76px; }
}

/* A teacher's own page */
html .sha-teacher { background: var(--rd-cream); }
html .sha-teacher .tp-hero {
  position: relative; overflow: hidden; background: var(--rd-wine); border: 0; text-align: left;
  padding: 56px max(var(--rd-pad), calc((100% - 1180px) / 2)) 110px;
  display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); column-gap: 72px;
  grid-template-rows: auto 1fr auto auto auto 1fr;
  grid-template-areas: "back back" "photo ." "photo method" "photo name" "photo creds" "photo .";
}
html .sha-teacher .tp-hero::after {
  content: ""; position: absolute; right: -180px; top: -160px; width: 760px; height: 760px;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .06; pointer-events: none;
}
html .sha-teacher .tp-hero > * { position: relative; z-index: 1; }
html .sha-teacher .tp-back {
  grid-area: back; justify-self: start; display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 36px;
  color: var(--rd-peach); font-weight: 400; font-size: 15px; letter-spacing: .06em;
}
html .sha-teacher .tp-back:hover { color: #FFFFFF; }
html .sha-teacher .tp-photo {
  grid-area: photo; width: 100%; height: auto; aspect-ratio: 1 / 1; margin: 0; border: 0; border-radius: 28px;
  background: var(--rd-wine-3); box-shadow: 0 40px 80px rgba(20,0,8,.4); animation: rdFadeUp 1.1s var(--rd-ease) .1s both;
}
html .sha-teacher .tp-photo img { object-position: center top; }
html .sha-teacher .tp-initials { background: var(--rd-wine-3); color: var(--rd-peach); font-weight: 300; font-size: 5rem; }
html .sha-teacher .tp-method {
  grid-area: method; justify-self: start; display: inline-flex; align-items: center; gap: 14px; margin: 0;
  font-weight: 400; font-size: 13px; letter-spacing: .2em; color: var(--rd-peach); animation: rdFadeUp 1s var(--rd-ease) .2s both;
}
html .sha-teacher .tp-method::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
html .sha-teacher .tp-hero h1 {
  grid-area: name; color: #FFFFFF; font-weight: 300; letter-spacing: -.03em; line-height: .98;
  font-size: clamp(2.6rem, 5.6vw, 5.2rem); margin: 20px 0 22px; animation: rdLineUp 1.2s var(--rd-ease) .2s both;
}
html .sha-teacher .tp-creds { grid-area: creds; color: var(--rd-ink-on-wine); font-size: 1.05rem; max-width: 560px; animation: rdFadeUp 1.1s var(--rd-ease) .45s both; }

html .sha-teacher .tp-bio { padding: 110px var(--rd-pad); }
html .sha-teacher .tp-bio .wrap { padding-inline: 0; }
html .sha-teacher .tp-bio p { color: var(--rd-wine); }
html .sha-teacher .tp-bio p:first-child {
  font-family: var(--rd-serif); font-weight: 300; font-size: clamp(1.4rem, 2.4vw, 1.85rem); line-height: 1.35;
  letter-spacing: -.01em; margin-bottom: 1.4em;
}

html .sha-teacher .tp-cta { background: var(--rd-wine-3); padding: 120px var(--rd-pad); }
html .sha-teacher .tp-cta h2 { font-weight: 300; letter-spacing: -.02em; line-height: 1.04; font-size: clamp(2.4rem, 5vw, 4.4rem); margin-bottom: 20px; }
html .sha-teacher .tp-cta p { color: var(--rd-ink-on-wine); max-width: 560px; margin-bottom: 36px; }
html .sha-teacher .tp-cta .btn { border-radius: 999px; font-weight: 400; letter-spacing: .03em; padding: 15px 30px; }
html .sha-teacher .tp-cta .btn-wine { background: var(--rd-peach); border-color: var(--rd-peach); color: var(--rd-wine-3); }
html .sha-teacher .tp-cta .btn-wine:hover { background: #FFFFFF; border-color: #FFFFFF; }
html .sha-teacher .tp-cta .btn-outline { border-color: rgba(245,191,145,.45); }

@supports (animation-timeline: view()) {
  html .sha-teacher :is(.tp-bio .wrap, .tp-cta h2) { animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 24%; }
}
@media (max-width: 860px) {
  html .sha-teacher .tp-hero {
    padding: 28px var(--rd-pad) 72px; grid-template-columns: minmax(0, 1fr); grid-template-rows: none;
    grid-template-areas: "back" "photo" "method" "name" "creds";
  }
  html .sha-teacher .tp-back { margin-bottom: 20px; }
  html .sha-teacher .tp-method::after { display: none; }
  html .sha-teacher .tp-photo { max-width: 300px; margin-bottom: 34px; }
  html .sha-teacher .tp-bio { padding: 72px var(--rd-pad); }
  html .sha-teacher .tp-cta { padding: 84px var(--rd-pad); }
}

/* ── 13. CONTACT (/contact/) — same panels, same form wiring, new skin ── */
/* The boxed card becomes a full-width split: deep wine story on the left,
   the form on cream on the right, both edges lined up with the nav. */
html .sha-cu { background: var(--rd-cream); padding: 0; }
html .sha-cu__shell { max-width: none; border-radius: 0; box-shadow: none; min-height: calc(100vh - 84px); }
html .sha-cu__left {
  position: relative; overflow: hidden; background: var(--rd-wine); flex-basis: 46%;
  padding: 110px 64px 96px max(var(--rd-pad), calc((100vw - var(--rd-max)) / 2 + var(--rd-pad)));
}
html .sha-cu__left::after {
  content: ""; position: absolute; right: -220px; bottom: -200px; width: 640px; height: 640px;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .06; pointer-events: none;
}
html .sha-cu__left > * { position: relative; z-index: 1; }
html .sha-cu__eyebrow {
  display: inline-flex; align-items: center; gap: 14px; font-weight: 400; font-size: 13px; letter-spacing: .2em;
  color: var(--rd-peach); margin-bottom: 26px; animation: rdFadeUp 1s var(--rd-ease) .1s both;
}
html .sha-cu__eyebrow::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
html .sha-cu__heading {
  font-family: var(--rd-serif); font-weight: 300; color: #FFFFFF; letter-spacing: -.03em; line-height: .98;
  font-size: clamp(2.8rem, 5.4vw, 5.4rem); margin-bottom: 28px; animation: rdLineUp 1.2s var(--rd-ease) .15s both;
}
html .sha-cu__tagline { color: var(--rd-ink-on-wine); font-size: 1.02rem; max-width: 400px; margin-bottom: 48px; animation: rdFadeUp 1.1s var(--rd-ease) .4s both; }
html .sha-cu__divider { display: none; }
html .sha-cu__details { flex: none; gap: 22px; animation: rdFadeUp 1.1s var(--rd-ease) .55s both; }
html .sha-cu__detail { align-items: center; gap: 16px; }
html .sha-cu__detail-icon { width: 46px; height: 46px; border-radius: 999px; background: transparent; border: 1px solid rgba(245,191,145,.35); margin: 0; }
html .sha-cu__detail-label { font-weight: 400; font-size: 12px; letter-spacing: .2em; color: var(--rd-muted-on-wine); }
html .sha-cu__detail-value { font-size: 1.05rem; color: #FFFFFF; }
html .sha-cu__detail-text { min-width: 0; }
html .sha-cu__detail-value a { color: #FFFFFF; border-bottom-color: rgba(245,191,145,.4); overflow-wrap: anywhere; }
html .sha-cu__detail-value a:hover { color: var(--rd-peach); border-bottom-color: var(--rd-peach); }
html .sha-cu__social { margin-top: auto; padding-top: 56px; gap: 10px; animation: rdFadeUp 1.1s var(--rd-ease) .7s both; }
html .sha-cu__social-link { width: 46px; height: 46px; border-radius: 999px; background: transparent; border: 1px solid rgba(245,191,145,.35); transition: background .3s, border-color .3s; }
html .sha-cu__social-link:hover { background: rgba(245,191,145,.14); border-color: var(--rd-peach); }

html .sha-cu__right {
  background: var(--rd-cream);
  padding: 110px max(var(--rd-pad), calc((100vw - var(--rd-max)) / 2 + var(--rd-pad))) 96px 72px;
  animation: rdFadeUp 1.1s var(--rd-ease) .35s both;
}
html .sha-cu__right > * { max-width: 620px; width: 100%; }
html .sha-cu__row { gap: 18px; }
html .sha-cu__field { margin-bottom: 22px; }
html .sha-cu__label { font-weight: 400; font-size: 12px; letter-spacing: .18em; color: var(--rd-wine); margin-bottom: 9px; }
html .sha-cu__label .opt { letter-spacing: .02em; color: var(--rd-muted-on-peach); opacity: 1; }
html .sha-cu__input {
  background-color: #FFFFFF; border: 1px solid rgba(115,13,46,.14); border-radius: 14px;
  min-height: 54px; padding: 15px 18px; font-size: 17px;   /* 16px+ stops iPhones zooming in on focus */
  transition: border-color .3s, box-shadow .3s;
}
html .sha-cu__input::placeholder { color: rgba(122,62,78,.45); }
html .sha-cu__input:focus { border-color: var(--rd-wine); box-shadow: 0 0 0 4px rgba(245,191,145,.45); }
html .sha-cu__input.is-error { border-color: var(--rd-rust); box-shadow: 0 0 0 4px rgba(196,82,74,.14); }
html .sha-cu__textarea { min-height: 150px; }
html .sha-cu__error-bar { border-radius: 14px; font-size: 15px; padding: 13px 18px; }
html .sha-cu__submit-wrap { margin-top: 14px; }
html .sha-cu__btn {
  display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 240px; min-height: 56px;
  padding: 0 34px; border-radius: 999px; background: var(--rd-wine); color: var(--rd-peach);
  font-weight: 400; font-size: 16.5px; letter-spacing: .03em; transition: background .3s, transform .4s var(--rd-ease);
}
html .sha-cu__btn:hover:not(:disabled) { background: var(--rd-wine-3); transform: translateY(-2px); }
html .sha-cu__success { text-align: left; padding: 0; }
html .sha-cu__success-icon { width: 64px; height: 64px; margin: 0 0 26px; background: var(--rd-wine); }
html .sha-cu__success-icon svg { stroke: var(--rd-peach); }
html .sha-cu__success h2 { font-size: clamp(2.2rem, 4vw, 3.4rem); letter-spacing: -.02em; line-height: 1.04; margin-bottom: 14px; }
html .sha-cu__success p { font-size: 1.05rem; color: var(--rd-muted-on-peach); }

@media (max-width: 1000px) {
  html .sha-cu__shell { min-height: 0; }
  html .sha-cu__left { padding: 84px var(--rd-pad) 72px; }
  html .sha-cu__right { padding: 72px var(--rd-pad) 88px; }
}
@media (max-width: 768px) {
  html .sha-cu__left { padding: 64px var(--rd-pad) 56px; }
  html .sha-cu__social { padding-top: 40px; }
  html .sha-cu__right { padding: 56px var(--rd-pad) 72px; }
  html .sha-cu__btn { width: 100%; }
}
@media (max-width: 480px) { html .sha-cu__detail-value { font-size: 15.5px; } }

/* ── 14. SHOP (/shop/ + 22 product pages, src/shop/) — same products, filters,
   cart and checkout; new skin. The cart drawer itself is left as it is. ── */
html .sha-shop { background: var(--rd-cream); color: var(--rd-wine); }
html .sha-shop .wrap { max-width: var(--rd-max); padding-inline: var(--rd-pad); }
html .sha-shop .btn { border-radius: 999px; font-weight: 400; letter-spacing: .03em; }
html .sha-shop .btn-wine { background: var(--rd-wine); border-color: var(--rd-wine); color: var(--rd-peach); }
html .sha-shop .btn-wine:hover { background: var(--rd-wine-3); border-color: var(--rd-wine-3); }
html .sha-shop .btn.sold-out { background: transparent; border-color: rgba(115,13,46,.2); color: var(--rd-muted-on-peach); opacity: 1; }
html .sha-shop .prod-tag { font-weight: 400; font-size: 12px; letter-spacing: .2em; color: var(--rd-rust); }

/* List: hero */
html .sha-shop .page-hero { position: relative; overflow: hidden; background: var(--rd-wine); text-align: left; padding: 110px 0 90px; }
html .sha-shop .page-hero::after {
  content: ""; position: absolute; right: -180px; top: -160px; width: 700px; height: 700px;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .06; pointer-events: none;
}
html .sha-shop .page-hero .wrap { position: relative; z-index: 1; }
html .sha-shop .page-hero h1 {
  font-weight: 300; letter-spacing: -.03em; line-height: .98; font-size: clamp(2.6rem, 5.6vw, 5.2rem);
  max-width: 900px; margin-bottom: 26px; animation: rdLineUp 1.2s var(--rd-ease) .1s both;
}
html .sha-shop .page-hero .sub { color: var(--rd-ink-on-wine); margin: 0; max-width: 640px; animation: rdFadeUp 1.1s var(--rd-ease) .35s both; }

/* List: filter bar sits under the sticky nav, not beneath it */
html .sha-shop .shop-filter-bar {
  top: 84px; background: color-mix(in srgb, var(--rd-cream) 90%, transparent);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(115,13,46,.1); padding: 0 var(--rd-pad);
}
html .sha-shop .shop-filter-inner { max-width: calc(var(--rd-max) - 2 * var(--rd-pad)); }
html .sha-shop .shop-filter-toggle { min-height: 58px; font-weight: 400; font-size: 15.5px; letter-spacing: .03em; color: var(--rd-wine); }
html .sha-shop .shop-filter-count { background: var(--rd-wine); color: var(--rd-peach); font-weight: 400; }
html .sha-shop .shop-filters { border-top-color: rgba(115,13,46,.1); padding: 12px 0; }
html .sha-shop .filter-row-label { font-weight: 400; font-size: 12px; letter-spacing: .2em; color: var(--rd-rust); min-width: 76px; }
html .sha-shop .shop-filter {
  min-height: 40px; padding: 0 16px; display: inline-flex; align-items: center; font-weight: 400; font-size: 15px;
  background: transparent; color: var(--rd-wine); border: 1px solid rgba(115,13,46,.22); transition: all .3s;
}
html .sha-shop .shop-filter:hover { border-color: var(--rd-wine); }
html .sha-shop .shop-filter.active { background: var(--rd-wine); border-color: var(--rd-wine); color: var(--rd-peach); }

/* List: cards — the cover leads, quiet details, one pill */
html .sha-shop .shop-grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 32px; padding: 56px 0 120px; }
html .sha-shop .prod-card {
  background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); border-radius: 24px;
  transition: translate .5s var(--rd-ease), box-shadow .5s;
}
html .sha-shop .prod-card:hover { translate: 0 -6px; box-shadow: 0 26px 52px rgba(115,13,46,.12); }
html .sha-shop .prod-card-img { margin: 10px 10px 0; border-radius: 16px; background: var(--rd-cream); padding: 22px; }
html .sha-shop .prod-card-img img { transition: transform 1.1s var(--rd-ease); }
html .sha-shop .prod-card:hover .prod-card-img img { transform: scale(1.05); }
html .sha-shop .prod-card-body { padding: 20px 22px 22px; gap: 6px; }
html .sha-shop .prod-card-body h3 { font-weight: 300; font-size: 1.28rem; line-height: 1.22; letter-spacing: -.01em; color: var(--rd-wine); }
html .sha-shop .prod-card .prod-teacher { font-style: normal; font-size: 14.5px; color: var(--rd-muted-on-peach); }
html .sha-shop .prod-price { font-weight: 400; font-size: 17px; letter-spacing: .02em; font-variant-numeric: tabular-nums; padding-top: 10px; }
html .sha-shop .prod-card-actions { margin-top: 14px; }
html .sha-shop .prod-card-actions .btn { min-height: 46px; font-size: 15px; }
html .sha-shop #shop-empty { color: var(--rd-muted-on-peach) !important; }
@supports (animation-timeline: view()) {
  html .sha-shop .prod-card { animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 18%; }
}

/* Product page: the cover sits large and stays put while the details scroll */
html .sha-shop .prod-crumbs { padding-top: 34px; font-size: 14px; color: var(--rd-muted-on-peach); }
html .sha-shop .prod-crumbs a { font-weight: 400; color: var(--rd-wine); }
html .sha-shop .prod-detail { grid-template-columns: minmax(0, 11fr) minmax(0, 10fr); gap: 80px; padding: 40px 0 120px; }
html .sha-shop .prod-detail-img {
  position: sticky; top: 120px; border: 0; border-radius: 28px; background: #FFFFFF; padding: 56px;
  box-shadow: 0 30px 60px rgba(115,13,46,.08); animation: rdFadeUp 1.1s var(--rd-ease) .1s both;
}
html .sha-shop .prod-detail-img img { max-height: 560px; }
html .sha-shop .prod-detail > div:last-child { animation: rdFadeUp 1.1s var(--rd-ease) .25s both; }
html .sha-shop .prod-detail .prod-tag { display: inline-flex; align-items: center; gap: 14px; margin-bottom: 14px; }
html .sha-shop .prod-detail .prod-tag::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
html .sha-shop .prod-detail h1 { font-weight: 300; letter-spacing: -.025em; line-height: 1.04; font-size: clamp(2.2rem, 3.8vw, 3.6rem); margin-bottom: 16px; }
html .sha-shop .prod-author { font-weight: 300; font-size: 1.25rem; }
html .sha-shop .prod-detail .prod-teacher { font-style: normal; font-size: 15px; color: var(--rd-muted-on-peach); }
html .sha-shop .prod-detail .price-lg { font-family: var(--rd-serif); font-weight: 300; font-size: 2.1rem; margin: 22px 0 28px; }
html .sha-shop .prod-detail .desc { color: var(--rd-wine); font-size: 17.5px; line-height: 1.7; opacity: .88; margin-bottom: 34px; }
html .sha-shop :is(.spec-card, .ship-card) { background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); border-radius: 22px; padding: 24px 26px 14px; margin: 0 0 18px; }
html .sha-shop .spec-title { display: flex; align-items: center; gap: 14px; font-weight: 400; font-size: 12px; letter-spacing: .2em; color: var(--rd-rust); margin-bottom: 10px; }
html .sha-shop .spec-title::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
html .sha-shop :is(.prod-spec, .ship-grid) { font-size: 15.5px; }
html .sha-shop :is(.prod-spec, .ship-grid) dt { font-weight: 400; color: var(--rd-muted-on-peach); border-top-color: rgba(115,13,46,.08); padding: 10px 0; }
html .sha-shop :is(.prod-spec, .ship-grid) dd { color: var(--rd-wine); border-top-color: rgba(115,13,46,.08); padding: 10px 0; }
html .sha-shop .ship-grid dd b { font-weight: 500; }
html .sha-shop .ship-fine { border-top-color: rgba(115,13,46,.08); font-size: 14px; color: var(--rd-muted-on-peach); padding-bottom: 8px; }
html .sha-shop .ship-fine a { font-weight: 400; color: var(--rd-wine); }
html .sha-shop .qty-row { margin: 30px 0 26px; gap: 12px; }
html .sha-shop .qty-stepper { height: 56px; border: 1px solid rgba(115,13,46,.2); background: #FFFFFF; }
html .sha-shop .qty-stepper button { width: 48px; height: 54px; background: transparent; }
html .sha-shop .qty-stepper input { width: 40px; height: 54px; background: transparent; font-weight: 400; font-size: 17px; color: var(--rd-wine); }
html .sha-shop .qty-row .btn { min-height: 56px; min-width: 220px; padding: 0 34px; font-size: 16.5px; display: inline-flex; align-items: center; justify-content: center; }
html .sha-shop .back-link { display: inline-flex; align-items: center; min-height: 44px; font-weight: 400; font-size: 15px; letter-spacing: .04em; }

@media (max-width: 1000px) {
  html .sha-shop .shop-filter-bar { top: 72px; }
  html .sha-shop .prod-detail { gap: 48px; }
}
@media (max-width: 767px) {
  html .sha-shop .page-hero { padding: 72px 0 60px; }
  html .sha-shop .prod-detail { grid-template-columns: minmax(0, 1fr); gap: 32px; padding: 24px 0 80px; }
  html .sha-shop .prod-detail-img { position: static; padding: 32px; }
  html .sha-shop .prod-detail-img img { max-height: 360px; }
  html .sha-shop .qty-row .btn { flex: 1; min-width: 0; padding: 0 16px; white-space: nowrap; }
  html .sha-shop .qty-stepper button { width: 40px; }
  html .sha-shop .qty-stepper input { width: 34px; }
}
/* Phones: two products per row, like a store, not one tall column */
@media (max-width: 600px) {
  html .sha-shop .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 28px 0 80px; }
  html .sha-shop .prod-card { border-radius: 18px; }
  html .sha-shop .prod-card-img { margin: 6px 6px 0; border-radius: 13px; padding: 12px; }
  html .sha-shop .prod-card-body { padding: 12px 12px 14px; }
  html .sha-shop .prod-card .prod-tag { font-size: 10.5px; letter-spacing: .14em; }
  html .sha-shop .prod-card-body h3 { font-size: 1.02rem; }
  html .sha-shop .prod-card .prod-teacher { font-size: 13px; }
  html .sha-shop .prod-price { font-size: 15px; }
  html .sha-shop .prod-card-actions .btn { min-height: 42px; font-size: 14px; padding: 0 10px; }
  html .sha-shop :is(.spec-card, .ship-card) { padding: 20px 20px 10px; }
  html .sha-shop :is(.prod-spec, .ship-grid) dt { padding: 10px 0 2px; }
  html .sha-shop :is(.prod-spec, .ship-grid) dd { padding: 0 0 10px; border-top: 0; }
}

/* ── 15. APPLY PAGES (/apply/student-discount/, /apply/refresher/ + 中文) ──
   Same copy and steps; the form is built by form.js (forms service) and only
   restyled here, scoped to .sha-apply — its fields, wiring and upload untouched. */
html .sha-apply { background: var(--rd-cream); padding: 0 0 120px; }
html .sha-apply__head {
  position: relative; overflow: hidden; max-width: none; margin: 0 0 72px; text-align: left; background: var(--rd-wine);
  padding: 110px max(var(--rd-pad), calc((100% - 1180px) / 2)) 96px;
}
html .sha-apply__head::after {
  content: ""; position: absolute; right: -180px; top: -160px; width: 720px; height: 720px;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .06; pointer-events: none;
}
html .sha-apply__head > * { position: relative; z-index: 1; }
html .sha-apply__eyebrow {
  display: inline-flex; align-items: center; gap: 14px; font-weight: 400; font-size: 13px; letter-spacing: .2em;
  color: var(--rd-peach); margin-bottom: 24px; animation: rdFadeUp 1s var(--rd-ease) .1s both;
}
html .sha-apply__eyebrow::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
html .sha-apply__heading {
  color: #FFFFFF; font-weight: 300; letter-spacing: -.03em; line-height: .98; font-size: clamp(2.6rem, 5.4vw, 5rem);
  max-width: 980px; margin-bottom: 26px; animation: rdLineUp 1.2s var(--rd-ease) .15s both;
}
html .sha-apply__lede { color: var(--rd-ink-on-wine); margin: 0; max-width: 680px; animation: rdFadeUp 1.1s var(--rd-ease) .4s both; }

html .sha-apply__shell {
  max-width: 1180px; margin: 0 max(var(--rd-pad), calc((100% - 1180px) / 2)); border-radius: 28px;
  box-shadow: 0 40px 80px rgba(115,13,46,.12); animation: rdFadeUp 1.1s var(--rd-ease) .5s both;
}
html .sha-apply__left { background: #FFFFFF; border: 0; border-radius: 0; padding: 64px 52px; }
html .sha-apply__left h2, html .sha-apply__right h2 { font-weight: 300; letter-spacing: -.02em; font-size: clamp(1.8rem, 2.6vw, 2.3rem); line-height: 1.1; }
html .sha-apply__left h2 { margin-bottom: 30px; }
html .sha-apply__steps li { gap: 18px; margin-bottom: 26px; font-size: 16px; line-height: 1.6; color: var(--rd-muted-on-peach); }
html .sha-apply__steps li::before { flex-basis: 38px; height: 38px; background: var(--rd-wine); color: var(--rd-peach); font-weight: 400; font-family: var(--rd-serif); font-size: 1.05rem; }
html .sha-apply__steps strong { font-family: var(--rd-serif); font-weight: 400; font-size: 1.2rem; color: var(--rd-wine); margin-bottom: 4px; }
html .sha-apply__note { border-top-color: rgba(115,13,46,.1); font-size: 14px; color: var(--rd-muted-on-peach); }
html .sha-apply__right { background: var(--rd-wine); padding: 64px 56px; }
html .sha-apply__right .sha-apply__formsub { color: var(--rd-muted-on-wine); font-size: 15.5px; margin-bottom: 30px; }
html .sha-apply__rate { padding: 10px 20px; font-size: 15px; }

/* The form (form.js) on deep wine */
html .sha-apply .sha-f-wrap { max-width: none; }
html .sha-apply .sha-f-row { gap: 14px 16px; }
html .sha-apply .sha-f-field { gap: 8px; margin-bottom: 6px; }
html .sha-apply .sha-f-field > label { font-weight: 400; font-size: 12px; letter-spacing: .18em; color: var(--rd-muted-on-wine); }
html .sha-apply :is(.sha-f input:not([type=radio]):not([type=checkbox]), .sha-f select, .sha-f textarea) {
  min-height: 54px; border-radius: 14px; font-size: 17px; padding: 14px 18px;   /* 16px+: no zoom on iPhone focus */
  background-color: rgba(255,255,255,.06); border: 1px solid rgba(245,191,145,.3); color: #FFFFFF;
}
html .sha-apply .sha-f select { padding-right: 44px; }
html .sha-apply :is(.sha-f input, .sha-f select, .sha-f textarea):focus { border-color: var(--rd-peach); background-color: rgba(255,255,255,.1); box-shadow: 0 0 0 4px rgba(245,191,145,.18); }
html .sha-apply .sha-f input::placeholder { color: rgba(251,231,214,.45); }
/* Options were inheriting the field-label style: all caps, letter-spaced */
html .sha-apply .sha-f-opt {
  text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 16px;
  border-radius: 14px; padding: 14px 18px; gap: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(245,191,145,.25);
}
html .sha-apply .sha-f-opt span { font-size: 15.5px; line-height: 1.5; color: var(--rd-ink-on-wine); }
html .sha-apply .sha-f-opt.sha-on { border-color: var(--rd-peach); background: rgba(245,191,145,.12); }
html .sha-apply .sha-f-opt.sha-on span { color: #FFFFFF; }
html .sha-apply .sha-f input[type=file] { min-height: 58px; padding: 10px 12px; font-size: 15px; }
html .sha-apply .sha-f input[type=file]::file-selector-button { border-radius: 999px; padding: 8px 16px; font-weight: 400; font-size: 14px; letter-spacing: .03em; }
html .sha-apply .sha-f-hint { font-size: 13.5px; color: rgba(233,195,172,.75); }
html .sha-apply .sha-f-btn {
  min-height: 58px; margin-top: 24px; border-radius: 999px; background: var(--rd-peach); color: var(--rd-wine-3);
  font-weight: 400; font-size: 17px; letter-spacing: .03em;
}
html .sha-apply .sha-f-btn:hover { background: #FFFFFF; }
html .sha-apply .sha-f-consent { color: var(--rd-muted-on-wine); font-size: 13px; }

@media (max-width: 880px) {
  html .sha-apply__shell { border-radius: 24px; }
  html .sha-apply__left, html .sha-apply__right { padding: 44px 24px; border-radius: 0; border: 0; }
}
@media (max-width: 767px) {
  html .sha-apply__head { padding: 72px var(--rd-pad) 60px; margin-bottom: 40px; }
  html .sha-apply__shell { margin-inline: 12px; }
}

/* ── 16. CART PANEL + CART BUTTON (built by sha-cart.js on shop pages) ──
   Look only: every button, data-attribute and the checkout flow untouched.
   Radio/checkbox keep their native look (shop.css restores it; not re-styled here). */
html .sha-cart-overlay { background: rgba(40,4,16,.5); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: opacity .4s, visibility .4s; }
html .sha-cart {
  width: min(460px, 100%); background: var(--rd-cream); color: var(--rd-wine); font-family: var(--rd-sans);
  box-shadow: -30px 0 80px rgba(40,4,16,.25); transition: transform .5s var(--rd-ease);
}
html .sha-cart-head { padding: 26px 26px 20px; border-bottom: 1px solid rgba(115,13,46,.1); }
html .sha-cart-head h2 { font-family: var(--rd-serif); font-weight: 300; font-size: 2rem; letter-spacing: -.02em; color: var(--rd-wine); }
html .sha-cart-close {
  width: 44px; height: 44px; border-radius: 999px; border: 1px solid rgba(115,13,46,.2); font-size: 1.4rem;
  display: inline-flex; align-items: center; justify-content: center; transition: background .3s, color .3s;
}
html .sha-cart-close:hover { background: var(--rd-wine); color: var(--rd-peach); border-color: var(--rd-wine); }
html .sha-cart-body { padding: 14px 26px 22px; }
html .sha-cart-empty { color: var(--rd-muted-on-peach); font-family: var(--rd-serif); font-weight: 300; font-size: 1.3rem; }
html .sha-cart-item { gap: 16px; padding: 18px 0; border-bottom-color: rgba(115,13,46,.08); align-items: flex-start; }
html .sha-cart-item img { width: 76px; height: 76px; border-radius: 14px; background: #FFFFFF; padding: 8px; }
html .sha-cart-item .ci-name { font-family: var(--rd-serif); font-weight: 400; font-size: 1.08rem; line-height: 1.25; color: var(--rd-wine); }
html .sha-cart-item .ci-price { font-size: 15px; color: var(--rd-muted-on-peach); margin-top: 4px; font-variant-numeric: tabular-nums; }
html .sha-cart-item .ci-controls { gap: 12px; margin-top: 10px; font-size: 15px; }
html .sha-cart-item .ci-controls button { width: 34px; height: 34px; border-radius: 999px; border-color: rgba(115,13,46,.22); font-size: 1rem; }
html .sha-cart-item .ci-controls button:hover { border-color: var(--rd-wine); }
html .sha-cart-item .ci-remove { width: 36px; height: 36px; border-radius: 999px; color: var(--rd-muted-on-peach); }
html .sha-cart-body > .ci-name { font-family: var(--rd-sans); font-weight: 400; font-size: 12px !important; letter-spacing: .2em; text-transform: uppercase; color: var(--rd-rust); }
html .sha-cart-back { min-height: 44px; font-size: 15px; text-decoration: none; letter-spacing: .03em; color: var(--rd-wine); }
html .sha-cart :is(select, input):not([type=radio]):not([type=checkbox]) {
  min-height: 52px; border-radius: 14px; border: 1px solid rgba(115,13,46,.18); font-weight: 400;
  font-size: 16px;   /* 16px+: iPhones don't zoom in when the country box is tapped */
  color: var(--rd-wine); background-color: #FFFFFF;
}
html .sha-cart :is(select, input):not([type=radio]):not([type=checkbox]):focus { border-color: var(--rd-wine); box-shadow: 0 0 0 4px rgba(245,191,145,.45); }
html .sha-cart-foot { background: #FFFFFF; border-top: 1px solid rgba(115,13,46,.1); padding: 22px 26px calc(22px + env(safe-area-inset-bottom, 0px)); }
html .sha-cart-foot .row { font-size: 15.5px; color: var(--rd-muted-on-peach); font-variant-numeric: tabular-nums; }
html .sha-cart-foot .row.total { font-family: var(--rd-serif); font-weight: 300; font-size: 1.5rem; color: var(--rd-wine); border-top-color: rgba(115,13,46,.1); padding-top: 14px; margin-top: 8px; }
html .sha-cart-foot :is(.ship-line, .duty-note) { font-size: 14px; color: var(--rd-muted-on-peach); }
html .sha-cart-foot .btn {
  min-height: 56px; margin-top: 6px; background: var(--rd-wine); color: var(--rd-peach);
  font-weight: 400; font-size: 16.5px; letter-spacing: .03em; transition: background .3s;
}
html .sha-cart-foot .btn:hover:not([disabled]) { background: var(--rd-wine-3); }
html .sha-cart-body .btn[data-apply-coupon] { min-height: 52px; border-radius: 999px; background: var(--rd-wine); color: var(--rd-peach); border: 0; font-weight: 400; padding: 0 20px !important; margin: 4px 0 10px; }

html .sha-cart-fab {
  background: var(--rd-wine-3); color: var(--rd-ink-on-wine); font-family: var(--rd-sans); font-weight: 400; font-size: 15.5px;
  letter-spacing: .03em; padding: 0 10px 0 22px; min-height: 52px; gap: 12px; box-shadow: 0 16px 40px rgba(40,4,16,.35);
  border: 1px solid rgba(245,191,145,.25);
}
html .sha-cart-fab .cart-count { min-width: 32px; height: 32px; font-weight: 400; font-size: 14px; color: var(--rd-wine-3); }
@media (prefers-reduced-motion: reduce) { html :is(.sha-cart, .sha-cart-overlay) { transition: none; } }

/* ── 17. LEGAL PAGES + 404 ─────────────────────────────────────────────
   .sha-legal: /terms/ (+ /terms/v/* and 中文), /privacy/, /complaints/.
   .sha-404: the not-found page. Same words; one calm reading column. */
html :is(.sha-legal, .sha-404) { background: var(--rd-cream); color: var(--rd-wine); }
html :is(.sha-legal .legal-hero, .sha-404 .nf-hero) {
  position: relative; overflow: hidden; background: var(--rd-wine); text-align: left; padding: 110px var(--rd-pad) 90px;
}
html :is(.sha-legal .legal-hero, .sha-404 .nf-hero)::after {
  content: ""; position: absolute; right: -180px; top: -160px; width: 700px; height: 700px;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .06; pointer-events: none;
}
html :is(.sha-legal, .sha-404) .wrap { position: relative; z-index: 1; max-width: 820px; padding-inline: 0; }
html :is(.sha-legal .legal-hero, .sha-404 .nf-hero) h1 {
  font-family: var(--rd-serif); font-weight: 300; letter-spacing: -.03em; line-height: 1; color: #FFFFFF;
  font-size: clamp(2.6rem, 5.4vw, 4.8rem); margin: 0 0 22px; animation: rdLineUp 1.2s var(--rd-ease) .1s both;
}
html :is(.sha-legal .legal-hero, .sha-404 .nf-hero) p { color: var(--rd-ink-on-wine); font-size: 1.05rem; margin: 0; max-width: 620px; animation: rdFadeUp 1.1s var(--rd-ease) .35s both; }
html .sha-404 .nf-eyebrow {
  display: inline-flex; align-items: center; gap: 14px; border: 0; border-radius: 0; padding: 0; margin-bottom: 24px;
  font-weight: 400; font-size: 13px; letter-spacing: .2em; color: var(--rd-peach); animation: rdFadeUp 1s var(--rd-ease) .05s both;
}
html .sha-404 .nf-eyebrow::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }

/* Legal body */
html .sha-legal .legal-body { padding: 80px var(--rd-pad) 120px; font-size: 17.5px; line-height: 1.75; }
html .sha-legal .legal-note {
  background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); border-radius: 20px; padding: 22px 26px; margin-bottom: 56px;
  font-size: 15.5px; color: var(--rd-muted-on-peach);
}
html .sha-legal .legal-body h2 {
  font-family: var(--rd-serif); font-weight: 300; letter-spacing: -.02em; line-height: 1.12; font-size: clamp(1.8rem, 3vw, 2.4rem);
  margin: 72px 0 18px; padding-top: 40px; border-top: 1px solid rgba(115,13,46,.12);
}
html .sha-legal .legal-note + h2, html .sha-legal .legal-body h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
html .sha-legal .legal-body h3 { font-family: var(--rd-serif); font-weight: 400; font-size: 1.4rem; line-height: 1.25; color: var(--rd-wine); margin: 40px 0 12px; }
html .sha-legal .legal-body h4 { font-weight: 500; font-size: 1.02rem; color: var(--rd-wine); margin: 28px 0 8px; }
html .sha-legal .legal-body :is(p, li) { color: var(--rd-wine); }
html .sha-legal .legal-body ul { padding-left: 1.2em; }
html .sha-legal .legal-body li { margin-bottom: .55em; }
html .sha-legal .legal-body li::marker { color: var(--rd-rust); }
html .sha-legal .legal-body a { color: var(--rd-wine); text-decoration-color: rgba(196,82,74,.5); text-underline-offset: 3px; }
html .sha-legal .legal-body a:hover { text-decoration-color: var(--rd-wine); }
html .sha-legal .contact-block { background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); border-radius: 18px; padding: 18px 22px; max-width: 480px; }
html .sha-legal .contact-block span:first-child { font-family: var(--rd-serif); font-size: 1.15rem; }
html .sha-legal .ship-table { background: #FFFFFF; border-radius: 18px; overflow: hidden; max-width: 460px; box-shadow: 0 0 0 1px rgba(115,13,46,.08); }
html .sha-legal .ship-table :is(th, td) { padding: 12px 18px; border-bottom-color: rgba(115,13,46,.08); }
html .sha-legal .ship-table tr:last-child td { border-bottom: 0; }
html .sha-legal .ship-table thead th { font-weight: 400; font-size: 12px; letter-spacing: .2em; color: var(--rd-rust); }
html .sha-legal .ship-table td:last-child { font-weight: 500; }

/* 404 body */
html .sha-404 .nf-body { padding: 80px var(--rd-pad) 120px; }
html .sha-404 .nf-body h2 { font-family: var(--rd-serif); font-weight: 300; letter-spacing: -.02em; font-size: clamp(1.8rem, 3vw, 2.4rem); text-align: left; margin-bottom: 28px; }
html .sha-404 .nf-links { gap: 16px; margin-bottom: 48px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 600px) { html .sha-404 .nf-links { grid-template-columns: minmax(0, 1fr); } }
html .sha-404 .nf-links a {
  position: relative; background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); border-radius: 22px; padding: 26px 70px 26px 26px;
  transition: translate .5s var(--rd-ease), box-shadow .5s, border-color .3s;
}
html .sha-404 .nf-links a::after {
  content: "→"; position: absolute; right: 22px; top: 24px; width: 34px; height: 34px; border-radius: 999px; display: inline-flex;
  align-items: center; justify-content: center; border: 1px solid rgba(115,13,46,.25); transition: background .4s, color .4s, transform .45s var(--rd-ease);
}
html .sha-404 .nf-links a:hover { translate: 0 -4px; box-shadow: 0 22px 44px rgba(115,13,46,.12); border-color: rgba(115,13,46,.08); background: #FFFFFF; }
html .sha-404 .nf-links a:hover::after { background: var(--rd-wine); color: var(--rd-peach); border-color: var(--rd-wine); transform: rotate(-45deg); }
html .sha-404 .nf-links strong { font-family: var(--rd-serif); font-weight: 400; font-size: 1.3rem; margin-bottom: 6px; }
html .sha-404 .nf-links span { font-size: 15.5px; opacity: 1; color: var(--rd-muted-on-peach); }
html .sha-404 .nf-cta { text-align: left; }
html .sha-404 .nf-cta a {
  display: inline-flex; align-items: center; min-height: 56px; padding: 0 32px; border-radius: 999px;
  background: var(--rd-wine); color: var(--rd-peach); font-weight: 400; font-size: 16.5px; letter-spacing: .03em; transition: background .3s;
}
html .sha-404 .nf-cta a:hover { background: var(--rd-wine-3); }
html .sha-404 .nf-help { text-align: left; font-size: 15.5px; opacity: 1; color: var(--rd-muted-on-peach); }

@media (max-width: 767px) {
  html :is(.sha-legal .legal-hero, .sha-404 .nf-hero) { padding: 72px var(--rd-pad) 60px; }
  html :is(.sha-legal .legal-body, .sha-404 .nf-body) { padding: 56px var(--rd-pad) 88px; }
  html .sha-legal .legal-body { font-size: 17px; }
  html .sha-legal .legal-body h2 { margin-top: 56px; padding-top: 32px; }
}

/* ── 18. CHINESE HOMEPAGE (/zh/, .sha-home + home-styles.html) ─────────
   Same sections and Chinese copy (translation pending Scott); skinned to
   match the new English homepage. No negative tracking on CJK headings. */
html .sha-home { background: var(--rd-cream); color: var(--rd-wine); }
html .sha-home .wrap { max-width: var(--rd-max); padding-inline: var(--rd-pad); }
html .sha-home .sec { padding: 120px 0; }
html .sha-home .sec-alt { background: var(--rd-peach-soft); }
html .sha-home :is(h1, h2, h3) { font-family: var(--rd-serif); font-weight: 300; letter-spacing: .02em; }
html .sha-home .sec-label { display: inline-flex; align-items: center; gap: 14px; font-weight: 400; font-size: 14px; letter-spacing: .2em; color: var(--rd-rust); }
html .sha-home .sec-label::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
html .sha-home .sec-hd { margin-bottom: 56px; }
html .sha-home .sec-hd h2 { font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.2; color: var(--rd-wine); margin: 16px 0 12px; }
html .sha-home .sec-hd p { color: var(--rd-muted-on-peach); }
html .sha-home .btn { border-radius: 999px; font-weight: 400; letter-spacing: .04em; }

/* Hero: full-height photo, bottom-left words, brand mark — as the English one */
html .sha-home .hero { display: flex; align-items: flex-end; min-height: 700px; height: calc(100vh - 84px); max-height: 940px; background: var(--rd-wine-3); }
html .sha-home .hero-image img { object-position: 55% 40%; animation: rdKenburns 22s ease-in-out infinite alternate; }
html .sha-home .hero-scrim { background: linear-gradient(to top, rgba(74,8,32,.95) 0%, rgba(74,8,32,.68) 50%, rgba(60,6,26,.5) 100%); }
html .sha-home .hero::after {
  content: ""; position: absolute; z-index: 1; right: -170px; top: -150px; width: 820px; height: 820px;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .09; pointer-events: none;
  animation: rdMarkIn 2.4s var(--rd-ease) .3s both;
}
html .sha-home .hero-inner { width: 100%; max-width: var(--rd-max); min-height: 0; align-items: flex-end; padding: 0 var(--rd-pad) 80px; }
html .sha-home .hero-text { padding: 0; max-width: 900px; }
html .sha-home .hero-badge {
  display: inline-flex; align-items: center; gap: 14px; border: 0; border-radius: 0; padding: 0; opacity: 1;
  font-weight: 400; font-size: 14px; letter-spacing: .2em; color: var(--rd-peach); margin-bottom: 28px;
}
html .sha-home .hero-badge::after { content: ""; width: 56px; height: 1px; background: currentColor; opacity: .5; }
html .sha-home .hero-text h1 { color: #FFFFFF; font-size: clamp(2.6rem, 6vw, 5.6rem); line-height: 1.08; max-width: none; margin-bottom: 26px; }
html .sha-home .hero-sub { color: var(--rd-ink-on-wine); font-size: 1.12rem; max-width: 560px; margin-bottom: 36px; }
html .sha-home .cta-cluster .btn { min-height: 54px; padding: 0 30px; display: inline-flex; align-items: center; font-size: 16.5px; }
html .sha-home .btn-peach { background: var(--rd-peach); border-color: var(--rd-peach); color: var(--rd-wine-3); }
html .sha-home .btn-peach:hover { background: #FFFFFF; border-color: #FFFFFF; }
html .sha-home .btn-outline-light { border: 1px solid rgba(245,191,145,.5); color: var(--rd-ink-on-wine); background: transparent; }
html .sha-home .btn-outline-light:hover { border-color: var(--rd-peach); color: #FFFFFF; }

/* Stats: big light serif numbers on deep wine */
html .sha-home .stats-section { background: var(--rd-wine-3); padding: 72px var(--rd-pad); }
html .sha-home .stats-bar { max-width: calc(var(--rd-max) - 2 * var(--rd-pad)); }
html .sha-home .stat-item { border-right-color: var(--rd-hair); text-align: left; padding: 8px 32px; }
html .sha-home .stat-item:first-child { padding-left: 0; }
html .sha-home .stat-num { font-weight: 300; font-size: clamp(2.8rem, 5vw, 4.6rem); color: #FFFFFF; letter-spacing: -.02em; }
html .sha-home .stat-label { font-weight: 400; font-size: 14px; letter-spacing: .14em; color: var(--rd-peach); }

/* Pillars: white rounded cards */
html .sha-home .pillar-grid { gap: 24px; }
html .sha-home .pillar { text-align: left; background: #FFFFFF; border: 1px solid rgba(115,13,46,.08); border-radius: 24px; padding: 40px 34px; }
html .sha-home .pillar-icon { width: 54px; height: 54px; border-radius: 999px; background: var(--rd-wine); margin: 0 0 24px; }
html .sha-home .pillar-icon svg { color: var(--rd-peach); }
html .sha-home .pillar h3 { font-size: 1.6rem; color: var(--rd-wine); margin-bottom: 12px; }
html .sha-home .pillar p { color: var(--rd-muted-on-peach); }

/* Seminar + webinar cards — as the Seminars list */
html .sha-home .seminar-grid { gap: 28px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); }
html .sha-home .seminar-card {
  background: var(--rd-cream); border: 1px solid rgba(115,13,46,.08); border-radius: 22px; box-shadow: none;
  transition: translate .5s var(--rd-ease), box-shadow .5s;
}
html .sha-home .sec-alt .seminar-card { background: #FFFFFF; }
html .sha-home .seminar-card:hover { transform: none; translate: 0 -6px; box-shadow: 0 26px 52px rgba(115,13,46,.14); }
html .sha-home .seminar-card::before { display: none; }
html .sha-home .seminar-card-img { margin: 10px 10px 0; border-radius: 16px; overflow: hidden; }
html .sha-home .seminar-card-img img { transition: transform 1.1s var(--rd-ease); }
html .sha-home .seminar-card:hover .seminar-card-img img { transform: scale(1.05); }
html .sha-home .seminar-card-body { padding: 20px 22px 24px; }
html .sha-home .seminar-tag { background: transparent; border: 0; padding: 0; font-weight: 400; font-size: 13px; letter-spacing: .16em; color: var(--rd-rust); }
html .sha-home .seminar-card h3 { font-size: 1.3rem; line-height: 1.35; color: var(--rd-wine); }
html .sha-home :is(.seminar-presenter, .seminar-meta-item) { color: var(--rd-muted-on-peach); }
html .sha-home .seminar-meta { border-top: 1px solid rgba(115,13,46,.1); padding-top: 14px; }
html .sha-home .seminar-cpd { color: var(--rd-rust); font-weight: 400; }
html .sha-home .seminar-card .btn-sm { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(115,13,46,.25); color: var(--rd-wine); background: transparent; }
html .sha-home .seminar-card:hover .btn-sm { background: var(--rd-wine); color: var(--rd-peach); border-color: var(--rd-wine); }
html .sha-home .view-all { text-align: left; margin-top: 40px; }
html .sha-home .view-all a { font-weight: 400; letter-spacing: .04em; border-bottom-color: rgba(115,13,46,.3); }

/* Accreditation + partners: the English homepage's .rd-logos block, Chinese copy (§6) */
html[lang="zh"] .rd-acc-head h2 { letter-spacing: .02em; line-height: 1.15; }
html[lang="zh"] .rd-em { font-style: normal; } /* no faux-italic on CJK */
html .sha-home .rd-logos { background: var(--rd-wine); } /* the newsletter below is deep wine — keep the two bands apart */

/* Newsletter — as the English one: deep wine, underline fields, peach pill */
html .sha-home .sec-wine { background: var(--rd-wine-3); padding: 130px var(--rd-pad) 120px; }
html .sha-home .newsletter-inner { max-width: 720px; text-align: left; }
html .sha-home .newsletter-inner .sec-label { color: var(--rd-peach); }
html .sha-home .newsletter-inner h2 { font-size: clamp(2.2rem, 4.4vw, 3.8rem); line-height: 1.15; margin: 18px 0 18px; }
html .sha-home .newsletter-inner .sub { color: var(--rd-ink-on-wine); }
html .sha-home .newsletter-embed { background: transparent; border: 0; padding: 0; }
html .sha-home #sha-nl-form { max-width: none; }
html .sha-home #sha-nl-form .nl-row { gap: 22px 20px; }
html .sha-home #sha-nl-form label { font-weight: 400; font-size: 13px; letter-spacing: .14em; color: var(--rd-peach); }
html .sha-home #sha-nl-form :is(input, select) {
  min-height: 52px; border: 0; border-bottom: 1px solid rgba(245,191,145,.45); border-radius: 0;
  background-color: transparent; font-size: 18px; padding: 6px 0;
}
html .sha-home #sha-nl-form select { background-color: rgba(255,255,255,.08); padding-left: 14px; padding-right: 38px; }
html .sha-home #sha-nl-form :is(input, select):focus { border-bottom-color: var(--rd-peach); background-color: transparent; }
html .sha-home #sha-nl-form select:focus { background-color: rgba(255,255,255,.12); }
html .sha-home #sha-nl-form .nl-submit {
  width: auto; min-height: 56px; margin-top: 32px; padding: 0 36px; border-radius: 999px;
  background: var(--rd-peach); color: var(--rd-wine-3); font-weight: 400; font-size: 17px;
}
html .sha-home #sha-nl-form .nl-submit:hover { background: #FFFFFF; }
html .sha-home #sha-nl-msg { text-align: left; }

@supports (animation-timeline: view()) {
  html .sha-home :is(.sec-hd, .pillar, .seminar-card, .newsletter-inner) { animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 22%; }
}
@media (max-width: 1000px) { html .sha-home .hero { height: auto; min-height: 640px; } }
@media (max-width: 767px) {
  html .sha-home .sec { padding: 76px 0; }
  html .sha-home .sec-wine { padding: 84px var(--rd-pad) 76px; }
  html .sha-home .hero { min-height: calc(100svh - 72px); }
  html .sha-home .hero::after { width: 460px; height: 460px; right: -150px; top: -90px; }
  html .sha-home .hero-inner { padding-bottom: 52px; }
  html .sha-home .stat-item { padding: 18px 16px; }
  html .sha-home .stat-item:first-child { padding-left: 16px; }
  html .sha-home #sha-nl-form .nl-submit { width: 100%; }
}

/* ── 19. SEMINAR PAGES "v2" — Apple-style pass (main.sem-page.sem-v2) ──
   Switched on per page in src/_data/rdSemV2.js; everything else in §9 still
   applies underneath. Same sections, same order, same copy — design only.
   Rhythm (light ↔ dark), top to bottom: photo hero · cream quote · WINE problem
   · cream method · peach "three reasons" · expanding photo · WINE instructors ·
   cream translator · white conditions · peach audience · WINE programme ·
   cream included · white accreditation · WINE stats · cream testimonials ·
   white founder · white enrolment · cream FAQ · WINE close. Sections are found
   by what they contain (:has), not by position, so a page missing one still works. */
html .sem-v2 { background: #FFFFFF; overflow-x: clip; }
html .sem-v2 .section { padding: 150px var(--rd-pad); background: #FFFFFF; }
html .sem-v2 .section-alt { background: var(--rd-cream); }
html .sem-v2 .section-peach { background: var(--rd-peach-soft); }
html .sem-v2 .sec-hd { margin-bottom: 72px; max-width: 980px; }
html .sem-v2 .sec-hd.center { margin-inline: auto; }
html .sem-v2 .sec-hd h2 { font-size: clamp(2.3rem, 5vw, 4.4rem); line-height: 1.04; margin-bottom: 24px; }
html .sem-v2 .sec-hd p { font-size: 1.12rem; line-height: 1.65; max-width: 760px; }
html .sem-v2 .sec-hd.center p { margin-inline: auto; }
html .sem-v2 .wrap { max-width: 1240px; }

/* Shared "wine moment": a section turned dark, with a huge white headline */
html .sem-v2 :is(section:has(.reason-card), #curriculum) { background: var(--rd-wine); color: var(--rd-ink-on-wine); position: relative; overflow: hidden; }
html .sem-v2 :is(section:has(.reason-card), #curriculum)::before {
  content: ""; position: absolute; right: -220px; top: -180px; width: 760px; height: 760px; pointer-events: none;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .06;
}
html .sem-v2 :is(section:has(.reason-card), #curriculum) .wrap { position: relative; }
html .sem-v2 :is(section:has(.reason-card), #curriculum) h2 { color: #FFFFFF; }
html .sem-v2 :is(section:has(.reason-card), #curriculum) .sec-label { color: var(--rd-peach); }
html .sem-v2 :is(section:has(.reason-card), #curriculum) .sec-hd p { color: var(--rd-ink-on-wine); }

/* 1 · HERO — full screen, words bottom-left, the brand mark drifting in */
html .sem-v2 .hero--full-bleed { min-height: max(680px, calc(100svh - 76px)); display: flex; align-items: flex-end; background: var(--rd-wine-3); }
html .sem-v2 .hero--full-bleed .hero-bg img { animation: rdKenburns 26s ease-in-out infinite alternate; object-position: 62% 40%; }
html .sem-v2 .hero--full-bleed .hero-scrim {
  background:
    linear-gradient(to top, rgba(74,8,32,.96) 0%, rgba(74,8,32,.55) 42%, rgba(74,8,32,.1) 75%),
    linear-gradient(90deg, rgba(74,8,32,.85) 0%, rgba(74,8,32,.35) 55%, rgba(74,8,32,0) 85%);
}
html .sem-v2 .hero--full-bleed::after {
  content: ""; position: absolute; z-index: 1; right: -170px; top: -150px; width: 820px; height: 820px; pointer-events: none;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .09;
  animation: rdMarkIn 2.4s var(--rd-ease) .3s both;
}
html .sem-v2 .hero--full-bleed .hero-left { width: 100%; max-width: var(--rd-max); min-height: 0; padding: 150px var(--rd-pad) 64px; }
html .sem-v2 .hero--full-bleed .hero-left > * { max-width: 980px; }
html .sem-v2 .hero-left h1 { font-size: clamp(2.8rem, 6vw, 5.6rem); line-height: .98; letter-spacing: -.03em; color: #FFFFFF; margin-bottom: 28px; }
html .sem-v2 .hero-sub { font-size: 1.15rem; max-width: 620px; margin-bottom: 36px; }
html .sem-v2 .hero-btns { gap: 14px; }
html .sem-v2 .hero-facts {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 20px 0; margin-top: 52px; max-width: none !important;
  padding: 24px 0 0; border-top: 1px solid var(--rd-hair);
}
html .sem-v2 .hero-fact { display: block; font-size: .9rem; line-height: 1.5; padding: 0 28px 0 0; margin-right: 28px; border-right: 1px solid var(--rd-hair); color: var(--rd-ink-on-wine); }
html .sem-v2 .hero-fact:last-child { border-right: 0; margin-right: 0; }
html .sem-v2 .hero-fact svg { display: none; }
html .sem-v2 .hero-fact strong { display: block; margin-bottom: 6px; font-weight: 400 !important; font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--rd-peach) !important; }
html .sem-v2 .hero-pills { margin-top: 18px; }

/* 2 · TRUST — one big quote, centred, like the homepage */
html .sem-v2 .trust-strip { background: var(--rd-cream); padding: 140px var(--rd-pad) 120px; text-align: center; }
html .sem-v2 .trust-inner { max-width: 1000px; margin-inline: auto; display: flex; flex-direction: column; align-items: center; }
html .sem-v2 .trust-stars { color: var(--rd-rust); letter-spacing: .3em; font-size: 1rem; margin-bottom: 26px; }
html .sem-v2 .trust-quote { color: var(--rd-wine); font-size: clamp(1.7rem, 3.6vw, 3rem); line-height: 1.22; font-weight: 300; }
html .sem-v2 .trust-quote::before { content: "“"; } html .sem-v2 .trust-quote::after { content: "”"; }
html .sem-v2 .trust-author { margin-top: 30px; color: var(--rd-rust); font-size: 13px; text-transform: uppercase; }
html .sem-v2 .trust-divider { width: 48px; height: 1px; background: rgba(115,13,46,.25); margin: 36px auto 26px; }
html .sem-v2 .trust-cred { color: var(--rd-muted-on-peach); font-size: .95rem; max-width: 760px; }

/* 3 · PROBLEM — wine moment; numbered glass cards */
html .sem-v2 .three-cols { gap: 20px; }
html .sem-v2 .reason-card { background: rgba(255,255,255,.06); border: 1px solid var(--rd-hair); padding: 44px 36px; }
html .sem-v2 .reason-card:hover { box-shadow: none; background: rgba(255,255,255,.1); }
html .sem-v2 .reason-num { color: var(--rd-peach); font-size: 4.2rem; line-height: 1; margin-bottom: 26px; }
html .sem-v2 .reason-card h3 { color: #FFFFFF; font-size: 1.45rem; }
html .sem-v2 .reason-card p { color: var(--rd-ink-on-wine); }
html .sem-v2 section:has(.reason-card) .mt-12 { color: var(--rd-peach) !important; font-size: clamp(1.4rem, 2.6vw, 2rem) !important; font-style: oblique 10deg !important; font-weight: 300; margin-top: 72px; }

/* 4 · METHOD — bento: two big cards, gallery with depth */
html .sem-v2 #how-it-works { background: var(--rd-cream); }
html .sem-v2 #how-it-works .two-cols { gap: 22px; }
html .sem-v2 .component-card { padding: 52px 44px; border-radius: 30px; }
html .sem-v2 .component-card:first-child { background: var(--rd-wine); border-color: transparent; color: var(--rd-ink-on-wine); }
html .sem-v2 .component-card:first-child :is(h3) { color: #FFFFFF; }
html .sem-v2 .component-card:first-child :is(p, li) { color: var(--rd-ink-on-wine); }
html .sem-v2 .component-icon { font-size: 2.4rem; margin-bottom: 22px; }
html .sem-v2 .component-card h3 { font-size: 1.7rem; margin-bottom: 14px; }
html .sem-v2 #how-it-works .mt-12 { font-size: clamp(1.3rem, 2.2vw, 1.75rem) !important; font-weight: 300; max-width: 900px; margin: 72px auto 0; }

/* 5 · THREE REASONS — peach band, first tile goes wine */
html .sem-v2 section:has(.pillars-grid) { background: var(--rd-peach-soft); }
html .sem-v2 .pillars-grid { gap: 22px; }
html .sem-v2 .pillar-card { padding: 48px 38px; border-radius: 30px; }
html .sem-v2 .pillar-card:first-child { background: var(--rd-wine); border-color: transparent; }
html .sem-v2 .pillar-card:first-child h3 { color: #FFFFFF; }
html .sem-v2 .pillar-card:first-child :is(p, li) { color: var(--rd-ink-on-wine); }
html .sem-v2 .pillar-card:first-child .pillar-icon { display: inline-flex; padding: 12px; border-radius: 18px; background: var(--rd-cream); }
html .sem-v2 .pillar-icon { margin-bottom: 26px; }
html .sem-v2 .pillar-card h3 { font-size: 1.55rem; }

/* 6 · PHOTO BAND — full screen, opens up as you scroll (as the homepage) */
html .sem-v2 .image-band { min-height: 0; height: min(88vh, 900px); align-items: flex-end; background: var(--rd-wine-3); }
html .sem-v2 .image-band > img { object-position: 60% 50%; }
html .sem-v2 .image-band-overlay { background: linear-gradient(to top, rgba(74,8,32,.95) 0%, rgba(74,8,32,.55) 45%, rgba(74,8,32,0) 80%); }
html .sem-v2 .image-band-text { max-width: var(--rd-max); padding: 0 var(--rd-pad) 80px; }
html .sem-v2 .image-band-text h2 { font-size: clamp(2.6rem, 6vw, 5.6rem); line-height: 1; max-width: 1000px; }
html .sem-v2 .image-band-text p { font-size: 1.12rem; max-width: 640px; color: var(--rd-ink-on-wine); }

/* 7 · INSTRUCTORS — big portrait */
html .sem-v2 #presenter h2 { font-size: clamp(2.3rem, 5vw, 4.4rem); }

/* 8 · TRANSLATOR · 9 · CONDITIONS · 10 · AUDIENCE */
html .sem-v2 #translator { background: var(--rd-cream); }
html .sem-v2 .apps-grid { gap: 16px; }
html .sem-v2 .big-quote { color: var(--rd-wine); font-size: clamp(1.5rem, 2.8vw, 2.3rem); max-width: 980px; margin: 80px auto 0; text-align: center; }

/* 11 · PROGRAMME — wine moment; days as glass columns with big numerals */
html .sem-v2 .curriculum-grid { gap: 20px; }
html .sem-v2 .day-card { background: rgba(255,255,255,.06); border: 1px solid var(--rd-hair); padding: 40px 34px; color: var(--rd-ink-on-wine); }
html .sem-v2 .day-card:hover { box-shadow: none; background: rgba(255,255,255,.1); }
html .sem-v2 .day-head { border-bottom-color: var(--rd-hair); padding-bottom: 22px; margin-bottom: 22px; }
html .sem-v2 .day-label { color: var(--rd-peach); }
html .sem-v2 .day-head h3 { color: #FFFFFF; font-size: 1.6rem; font-weight: 300; }
html .sem-v2 .day-card li { color: var(--rd-ink-on-wine); }
html .sem-v2 .day-card ul li { padding-left: 26px; }
html .sem-v2 .day-card ul li::before { color: var(--rd-peach); }
html .sem-v2 .cpd-pill { background: rgba(245,191,145,.14); color: var(--rd-peach); }
html .sem-v2 .curriculum-note { color: var(--rd-muted-on-wine); text-align: center; }
html .sem-v2 #curriculum .btn-outline { border-color: var(--rd-peach); color: var(--rd-peach); }

/* 12 · INCLUDED — a clean list, not a table */
html .sem-v2 section:has(.includes-table) { background: var(--rd-cream); }
html .sem-v2 .includes-table { display: block; max-width: 1000px; margin-inline: auto; border: 0; }
html .sem-v2 .includes-table tbody { display: grid; gap: 10px; }
html .sem-v2 .includes-table tr { display: grid; grid-template-columns: 36px minmax(0, 1fr) minmax(0, 1.3fr); gap: 4px 20px; align-items: center; background: #FFFFFF; border-radius: 20px; padding: 22px 28px; }
html .sem-v2 .includes-table td { display: block; width: auto !important; white-space: normal; background: none; padding: 0; border: 0; }
html .sem-v2 .includes-table .it-tick { color: var(--rd-rust); }
html .sem-v2 .includes-table .it-name { font-family: var(--rd-serif); font-size: 1.2rem; color: var(--rd-wine); }
html .sem-v2 .includes-table .it-detail { color: var(--rd-muted-on-peach); }
@media (max-width: 767px) {
  html .sem-v2 .includes-table tr { grid-template-columns: 26px minmax(0, 1fr); padding: 18px 20px; }
  html .sem-v2 .includes-table .it-detail { grid-column: 2; font-size: .92rem; }
}

/* 14 · STATS — huge numbers (they count up: redesign.js) */
html .sem-v2 .stats-strip { padding: 96px var(--rd-pad); }
html .sem-v2 .stats-grid { max-width: var(--rd-max); text-align: left; gap: 40px 0; }
html .sem-v2 .stats-grid > div { padding: 6px 36px; border-left: 1px solid var(--rd-hair); }
html .sem-v2 .stat-num { color: #FFFFFF; font-weight: 300; font-size: clamp(2.4rem, 3.6vw, 3.4rem); margin-bottom: 10px; white-space: nowrap; } /* sized like the homepage figures */
html .sem-v2 .stat-lbl { margin: 0; max-width: 240px; color: var(--rd-peach); font-size: 14px; letter-spacing: .06em; line-height: 1.45; }

/* 15 · TESTIMONIALS — a swipeable row of big quotes */
html .sem-v2 section:has(.testi-grid) { background: var(--rd-cream); overflow: hidden; }
html .sem-v2 .testi-grid {
  display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding: 6px max(var(--rd-pad), calc((100vw - 1240px) / 2)) 30px; margin-inline: calc(50% - 50vw);
  scroll-padding-inline: max(var(--rd-pad), calc((100vw - 1240px) / 2));
}
html .sem-v2 .testi-grid::-webkit-scrollbar { display: none; }
html .sem-v2 .testi-card { flex: 0 0 min(560px, 84vw); scroll-snap-align: start; padding: 48px 44px; border-radius: 30px; display: flex; flex-direction: column; justify-content: space-between; min-height: 340px; }
html .sem-v2 .testi-card:nth-child(3n+1) { background: var(--rd-wine); border-color: transparent; }
html .sem-v2 .testi-card:nth-child(3n+1) .testi-quote { color: #FFFFFF; }
html .sem-v2 .testi-card:nth-child(3n+1) .testi-author { color: var(--rd-ink-on-wine); }
html .sem-v2 .testi-card:nth-child(3n+1) .testi-author strong { color: var(--rd-peach); }
html .sem-v2 .testi-quote { font-size: 1.45rem; line-height: 1.4; }
html .sem-v2 .sv2-swipe { display: flex; gap: 10px; justify-content: flex-end; max-width: 1240px; margin: 8px auto 0; }
html .sem-v2 .sv2-swipe button {
  width: 52px; height: 52px; border-radius: 999px; border: 1px solid rgba(115,13,46,.22); background: transparent;
  color: var(--rd-wine); font-size: 20px; cursor: pointer; transition: background .3s, color .3s;
}
html .sem-v2 .sv2-swipe button:hover { background: var(--rd-wine); color: var(--rd-peach); }

/* 16 · FOUNDER · 18 · FAQ · 19 · CLOSE */
html .sem-v2 section:has(.founder-card) { background: #FFFFFF; }
html .sem-v2 .founder-card { background: var(--rd-cream); border: 0; }
html .sem-v2 .founder-quote { font-size: clamp(1.12rem, 1.45vw, 1.32rem); line-height: 1.62; font-style: normal; }
html .sem-v2 section:has(.faq-wrap) { background: var(--rd-cream); }
html .sem-v2 .final-cta { position: relative; overflow: hidden; padding: 170px var(--rd-pad) 160px; background: var(--rd-wine); }
html .sem-v2 .final-cta::before {
  content: ""; position: absolute; left: 50%; top: 50%; width: 980px; height: 980px; translate: -50% -50%; pointer-events: none;
  background: url('/assets/redesign/mark-peach.svg') center / contain no-repeat; opacity: .07;
}
html .sem-v2 .final-cta .wrap { position: relative; }
html .sem-v2 .final-cta h2 { font-size: clamp(2.6rem, 6vw, 5.4rem); line-height: 1.02; max-width: 1060px; margin-bottom: 30px; }
html .sem-v2 .final-cta > .wrap > p { font-size: 1.12rem; max-width: 640px; color: var(--rd-ink-on-wine); }

/* STICKY BOOKING BAR — slides down under the menu once the hero is gone */
.sv2-bar {
  position: fixed; left: 0; right: 0; top: var(--sv2-top, 76px); z-index: 900;
  background: rgba(74,8,32,.88); -webkit-backdrop-filter: saturate(160%) blur(18px); backdrop-filter: saturate(160%) blur(18px);
  border-bottom: 1px solid var(--rd-hair); color: var(--rd-ink-on-wine);
  transform: translateY(-110%); opacity: 0; transition: transform .5s var(--rd-ease), opacity .4s; pointer-events: none;
}
.sv2-bar[hidden] { display: block; }
.sv2-bar.is-on { transform: none; opacity: 1; pointer-events: auto; }
.sv2-bar-in { max-width: var(--rd-max); margin-inline: auto; padding: 12px var(--rd-pad); display: flex; align-items: center; gap: 28px; }
.sv2-bar-what { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.sv2-bar-what strong { font-family: var(--rd-serif); font-weight: 400; font-size: 1.05rem; color: #FFFFFF; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sv2-bar-what span { font-size: .8rem; color: var(--rd-muted-on-wine); }
.sv2-bar-price { display: flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.sv2-bar-from { font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rd-peach); }
.sv2-bar-num { font-family: var(--rd-serif); font-size: 1.35rem; color: #FFFFFF; }
.sv2-bar-dep { font-size: .8rem; color: var(--rd-muted-on-wine); }
.sv2-bar .btn { padding: 12px 26px !important; font-size: .92rem; border-radius: 999px; white-space: nowrap; }
@media (max-width: 767px) {
  .sv2-bar-in { gap: 14px; padding: 10px 16px; }
  .sv2-bar-what span, .sv2-bar-dep, .sv2-bar-from { display: none; }
  .sv2-bar-what strong { font-size: .95rem; }
  .sv2-bar-num { font-size: 1.1rem; }
  .sv2-bar .btn { padding: 10px 18px !important; font-size: .85rem; }
}

/* Phones */
@media (max-width: 767px) {
  html .sem-v2 .section { padding: 92px var(--rd-pad); }
  html .sem-v2 .sec-hd { margin-bottom: 48px; }
  html .sem-v2 .hero--full-bleed { min-height: calc(100svh - 72px); }
  html .sem-v2 .hero--full-bleed .hero-left { padding-top: 110px; }
  html .sem-v2 .hero-facts { grid-template-columns: 1fr 1fr; }
  html .sem-v2 .hero--full-bleed::after { width: 460px; height: 460px; right: -150px; top: -90px; }
  html .sem-v2 .hero--full-bleed .hero-left { padding-bottom: 48px; }
  html .sem-v2 .hero-fact { border-right: 0; margin-right: 0; padding-right: 12px; }
  html .sem-v2 .trust-strip { padding: 96px var(--rd-pad) 84px; }
  html .sem-v2 .stats-grid > div { padding: 4px 18px; }
  html .sem-v2 .image-band { height: 78svh; }
  html .sem-v2 .final-cta { padding: 110px var(--rd-pad); }
  html .sem-v2 .testi-card { padding: 36px 30px; }
}

@supports (animation-timeline: view()) {
  html .sem-v2 :is(.sec-hd, .reason-card, .component-card, .pillar-card, .day-card, .app-card, .outcome-item, .testi-card, .trust-inner, .final-cta .wrap, .includes-table tr) {
    animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 22%;
  }
  html .sem-v2 .image-band { animation: rdExpand linear both; animation-timeline: view(); animation-range: entry 10% cover 50%; }
  html .sem-v2 .image-band > img { animation: rdExpandImg linear both; animation-timeline: view(); animation-range: entry 0% exit 0%; }
}


/* ── 19b. v2 round 2 (Barry's review, 7 Oct) ─────────────────────────── */

/* Method diagrams: exactly three → a fanned hand of cards that spreads as it scrolls in;
   any other count → a tidy grid of the same cards */
html .sem-v2 .solution-gallery { gap: 18px; margin-top: 80px; }
html .sem-v2 .solution-gallery > img, html .sem-v2 .solution-gallery > .sg-tile { border-radius: 26px; background: #FFFFFF; box-shadow: 0 30px 60px rgba(74,8,32,.12); }
html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) { display: flex; justify-content: center; align-items: flex-start; gap: 0; margin-top: 96px; padding-bottom: 40px; }
html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) > img, html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) > .sg-tile {
  width: min(31vw, 390px); aspect-ratio: 1; object-fit: cover; flex: none; margin-inline: -26px; position: relative;
  background: #FFFFFF; border-radius: 30px; box-shadow: 0 40px 80px rgba(74,8,32,.16), 0 4px 14px rgba(74,8,32,.06);
  transition: transform .7s var(--rd-ease), box-shadow .7s;
}
html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) > :nth-child(1) { rotate: -7deg; translate: 0 26px; z-index: 1; }
html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) > :nth-child(2) { z-index: 2; }
html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) > :nth-child(3) { rotate: 7deg; translate: 0 26px; z-index: 1; }
html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) > :hover { transform: translateY(-18px) scale(1.05); z-index: 3; box-shadow: 0 60px 100px rgba(74,8,32,.22); }

/* Instructors: no frame — the photo itself, sticky beside the bio */
html .sem-v2 #presenter .instructor-single { gap: 72px; }
@media (min-width: 900px) { html .sem-v2 #presenter .instructor-single { grid-template-columns: 440px 1fr; } }
html .sem-v2 #presenter .instructor-photo {
  height: auto; padding: 0; background: none; border-radius: 30px; overflow: hidden; display: block;
  position: sticky; top: 170px; box-shadow: 0 40px 80px rgba(20,0,8,.38);
}
html .sem-v2 #presenter .instructor-photo img { display: block; width: 100%; height: auto; border-radius: 30px; }
html .sem-v2 #presenter .instructor-body p { font-size: 1.04rem; line-height: 1.7; }
html .sem-v2 #presenter .credential-list { gap: 0; margin-top: 34px; }
html .sem-v2 #presenter .credential-list li { padding: 16px 0; border-top: 1px solid var(--rd-hair); }
html .sem-v2 #presenter .cred-dot { display: none; }

/* Translator: a feature, not a card — big portrait, big name, credential chips */
html .sem-v2 .translator-card { background: none; border: 0; box-shadow: none; padding: 0; max-width: 1180px; gap: 72px; align-items: center; }
@media (min-width: 900px) { html .sem-v2 .translator-card { grid-template-columns: 420px 1fr; } }
html .sem-v2 .translator-img img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: 30px; box-shadow: 0 40px 80px rgba(74,8,32,.16); }
html .sem-v2 .translator-name { font-family: var(--rd-serif); font-weight: 300; font-size: clamp(2.2rem, 3.6vw, 3.4rem); line-height: 1; color: var(--rd-wine); margin-bottom: 14px; }
html .sem-v2 .translator-role { color: var(--rd-rust); font-size: 13px; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 26px; }
html .sem-v2 .translator-card .credential-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 30px; }
html .sem-v2 .translator-card .credential-list li { background: #FFFFFF; border-radius: 16px; padding: 14px 18px; font-size: .9rem; line-height: 1.45; }
html .sem-v2 .translator-card .cred-dot { display: none; }

/* Conditions: no emojis — a numbered, typographic index */
html .sem-v2 .app-icon { display: none; }
html .sem-v2 .apps-grid { counter-reset: rdapp; gap: 0 56px; }
html .sem-v2 .app-card {
  counter-increment: rdapp; display: block; background: none; border: 0; border-top: 1px solid rgba(115,13,46,.16);
  border-radius: 0; padding: 34px 0 40px; box-shadow: none;
}
html .sem-v2 .app-card:hover { transform: none; box-shadow: none; }
html .sem-v2 .app-card::before { content: counter(rdapp, decimal-leading-zero); display: block; margin-bottom: 18px; font-family: var(--rd-serif); font-size: 1.05rem; color: var(--rd-rust); letter-spacing: .08em; }
html .sem-v2 .app-card h3 { font-family: var(--rd-serif); font-weight: 300; font-size: 1.75rem; margin-bottom: 12px; }
html .sem-v2 .app-card p { font-size: .98rem; line-height: 1.6; }

/* Who it's for: a typographic list, rust marker, hairlines */
html .sem-v2 .audience-grid { gap: 0 56px; }
html .sem-v2 .audience-tile {
  position: relative; background: none; border: 0; border-top: 1px solid rgba(115,13,46,.18); border-radius: 0; box-shadow: none;
  padding: 26px 0 26px 40px; font-family: var(--rd-serif); font-weight: 300; font-size: 1.35rem; line-height: 1.35; color: var(--rd-wine);
}
html .sem-v2 .audience-tile::before { content: ""; position: absolute; left: 4px; top: 38px; width: 12px; height: 12px; border-radius: 999px; background: var(--rd-rust); }
html .sem-v2 .audience-note { margin-top: 48px; font-size: 1.05rem; text-align: left; }

/* What's included: a spec sheet — two columns, big names, hairlines */
html .sem-v2 .includes-table { max-width: none; }
html .sem-v2 .includes-table tbody { grid-template-columns: 1fr 1fr; gap: 0 72px; }
html .sem-v2 .includes-table tr { display: block; background: none; border-radius: 0; border-top: 1px solid rgba(115,13,46,.18); padding: 30px 0 34px; }
html .sem-v2 .includes-table .it-tick { display: none; }
html .sem-v2 .includes-table .it-name { font-weight: 300; font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.15; margin-bottom: 10px; }
html .sem-v2 .includes-table .it-detail { font-size: 1rem; line-height: 1.55; }

/* Accreditation: one giant number, the seal, chips — on peach */
html .sem-v2 section:has(.accred-card) { background: var(--rd-peach-soft); }
html .sem-v2 .accred-card { max-width: 1120px; margin: 24px auto 0; padding: 0; gap: 80px; background: none; border: 0; }
html .sem-v2 .accred-card-seal img { width: 230px; border-radius: 999px; background: #FFFFFF; box-shadow: 0 30px 60px rgba(74,8,32,.16); }
html .sem-v2 .accred-card-heading { font-family: var(--rd-sans); font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: var(--rd-rust); margin-bottom: 16px; }
html .sem-v2 .accred-card .accred-credits { font-family: var(--rd-serif); font-weight: 300; font-size: clamp(3rem, 6.4vw, 5.6rem); line-height: 1; letter-spacing: -.02em; color: var(--rd-wine); margin: 0 0 28px; }
html .sem-v2 .accred-card .accred-lines { display: flex; flex-direction: row; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0; }
html .sem-v2 .accred-card .accred-lines li { list-style: none; border: 1px solid rgba(115,13,46,.22); border-radius: 999px; padding: 9px 18px; font-size: .9rem; color: var(--rd-wine); background: rgba(255,255,255,.5); }
html .sem-v2 .accred-card .accred-lines li::before { display: none; }
html .sem-v2 .accred-card .accred-disclosure { margin-top: 30px; }

/* Founder: quote at reading size, portrait bigger */
@media (min-width: 900px) { html .sem-v2 .founder-card { grid-template-columns: 1fr 380px; gap: 72px; padding: 64px; } }
html .sem-v2 .founder-img img { border-radius: 24px; }

@media (max-width: 767px) {
  html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) > img, html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) > .sg-tile { width: 34vw; margin-inline: -12px; border-radius: 18px; }
  html .sem-v2 #presenter .instructor-photo { position: static; }
  html .sem-v2 .translator-card .credential-list { grid-template-columns: 1fr; }
  html .sem-v2 .includes-table tbody { grid-template-columns: 1fr; }
  html .sem-v2 .accred-card { gap: 28px; }
  html .sem-v2 .accred-card-seal img { width: 170px; }
  html .sem-v2 .audience-tile { font-size: 1.15rem; }
}

@supports (animation-timeline: view()) {
  html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) > :nth-child(1) { animation: rdFanL linear both; animation-timeline: view(); animation-range: entry 10% cover 45%; }
  html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) > :nth-child(2) { animation: rdFanC linear both; animation-timeline: view(); animation-range: entry 10% cover 45%; }
  html .sem-v2 .solution-gallery:has(> :nth-child(3):last-child) > :nth-child(3) { animation: rdFanR linear both; animation-timeline: view(); animation-range: entry 10% cover 45%; }
  html .sem-v2 :is(.audience-tile, .accred-card) { animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 22%; }
}
@keyframes rdFanL { from { translate: 70% 60px; rotate: 0deg; } to { translate: 0 26px; rotate: -7deg; } }
@keyframes rdFanC { from { translate: 0 60px; } to { translate: 0 0; } }
@keyframes rdFanR { from { translate: -70% 60px; rotate: 0deg; } to { translate: 0 26px; rotate: 7deg; } }

/* ── 8. MOTION ─────────────────────────────────────────────── */
@keyframes rdLineUp   { from { transform: translateY(110%); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes rdFadeUp   { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
@keyframes rdRevealUp { from { opacity: 0; transform: translateY(80px); } to { opacity: 1; transform: none; } }
@keyframes rdKenburns { from { transform: scale(1.02); } to { transform: scale(1.12); } }
@keyframes rdMarquee  { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes rdExpand   { from { clip-path: inset(0 13% round 32px); } to { clip-path: inset(0 0 round 0); } }
@keyframes rdExpandImg{ from { transform: scale(1.18); } to { transform: scale(1); } }
@keyframes rdParallax { from { transform: translateY(-18%); } to { transform: translateY(18%); } }
@keyframes rdCue      { 0% { transform: translateY(0); opacity: 0; } 30% { opacity: 1; } 100% { transform: translateY(14px); opacity: 0; } }

.rd-line { display: block; overflow: hidden; padding-bottom: .1em; margin-bottom: -.1em; }
.rd-line > span { display: block; animation: rdLineUp 1.2s var(--rd-ease) both; }
.rd-l1 > span { animation-delay: .3s; }
.rd-l2 > span { animation-delay: .45s; }
.rd-in { animation: rdFadeUp 1.1s var(--rd-ease) both; }
.rd-d1 { animation-delay: .15s; } .rd-d2 { animation-delay: .8s; } .rd-d3 { animation-delay: .95s; }
.rd-kb { animation: rdKenburns 22s ease-in-out infinite alternate; }

/* Scroll-linked motion where the browser supports it (Chrome, Edge, Safari 26+);
   everywhere else the content simply sits still and fully visible. */
@supports (animation-timeline: view()) {
  .rd-reveal { animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 30%; }
  .rd-expand { animation: rdExpand linear both; animation-timeline: view(); animation-range: entry 10% cover 55%; }
  .rd-expand img { animation: rdExpandImg linear both; animation-timeline: view(); animation-range: entry 0% exit 0%; }
  .rd-parallax-img { animation: rdParallax linear both; animation-timeline: view(); animation-range: cover; }
  .rd-bigword { animation: rdRevealUp linear both; animation-timeline: view(); animation-range: entry 0% cover 40%; }
}

@media (prefers-reduced-motion: reduce) {
  .rd-hero::after, .rd-home *, .rd-nav *, .rd-footer *, .sha-seminars *, .sha-wb *, .sem-page *, .web-page *, .sha-about *, .sha-teachers *, .sha-teacher *, .sha-cu *, .sha-shop *, .sha-apply *, .sha-legal *, .sha-404 *, .sha-home *, .sha-home .hero::after, .sem-v2 *, .sem-v2 .hero--full-bleed::after, .sv2-bar { animation: none !important; transition: none !important; }
}

/* ── 20. PROGRAM PATHWAY on seminar pages (8 Oct 2026) ──────────
   `pathway_step:` strip under the hero + optional `next_step:` card.
   Data: src/_data/pathways.js. One slim line — the landing page's job is
   still to sell this seat, so it shows the journey without pulling focus. */
html .sem-page .pw-strip { background: var(--rd-cream); border-bottom: 1px solid var(--rd-hair-wine); color: var(--rd-wine); }
html .sem-page .pw-inner { max-width: var(--rd-max); margin-inline: auto; padding: 18px var(--rd-pad); display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; font-family: var(--rd-sans); font-size: 15px; }
html .sem-page .pw-lead { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--rd-rust); }
html .sem-page .pw-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 auto; min-width: 0; }
html .sem-page .pw-step { display: inline-flex; align-items: baseline; gap: 8px; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--rd-hair-wine); line-height: 1.2; }
html .sem-page .pw-step + .pw-step { position: relative; }
html .sem-page .pw-num { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
html .sem-page .pw-name { font-family: var(--rd-serif); font-size: 16px; }
html .sem-page .pw-step.is-here { background: var(--rd-wine); border-color: var(--rd-wine); color: var(--rd-peach); }
html .sem-page .pw-step.is-here .pw-num { opacity: .85; }
html .sem-page .pw-step--intern { border-style: dashed; border-color: var(--rd-rust); }
html .sem-page .pw-step--intern .pw-num { color: var(--rd-rust); opacity: 1; }
html .sem-page .pw-here { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--rd-ink-on-wine); }
html .sem-page .pw-link { color: var(--rd-wine); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; white-space: nowrap; }
html .sem-page .pw-link:hover { color: var(--rd-rust); }
html .sem-page .pw-link:focus-visible { outline: 2px solid var(--rd-rust); outline-offset: 3px; }
@media (max-width: 767px) { html .sem-page .pw-step { padding: 6px 12px; } html .sem-page .pw-name { font-size: 15px; } }

html .sem-page .pw-next { background: var(--rd-cream); padding-block: 72px; }
html .sem-page .pw-next-card { max-width: 860px; margin-inline: auto; border: 1px solid var(--rd-hair-wine); border-radius: 18px; padding: 40px 44px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; background: #fff; }
html .sem-page .pw-next-card h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); margin: 0; }
html .sem-page .pw-next-card p { margin: 0; color: var(--text-mid); max-width: 60ch; }
@media (max-width: 767px) { html .sem-page .pw-next-card { padding: 28px 24px; } }

/* 20b. Opt-in positions (8 Oct 2026, ZSA Melbourne 2027) ───────────
   `stats_position: top` — the stats strip directly under the hero. It touches the hero's
   dark photo band, so it takes deep wine (the colour rule: deep wine only where two dark
   bands meet) and sits tighter than the default strip. Five figures fit one row on desktop.
   `next_step.image` — the journey graphic inside the "What comes next" card, which widens. */
html .sem-page .stats-strip--top { background: var(--rd-wine-3); }
html .sem-v2 .stats-strip--top { padding: 56px var(--rd-pad); }
@media (min-width: 1024px) { html .sem-page .stats-strip--top .stats-grid { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 767px) { html .sem-v2 .stats-strip--top { padding: 40px 20px; } html .sem-page .stats-strip--top .stats-grid { grid-template-columns: repeat(2, 1fr); } html .sem-page .stats-strip--top .stats-grid > div:last-child:nth-child(odd) { grid-column: 1 / -1; } }
html .sem-page .pw-next--image .pw-next-card { max-width: 1120px; }
html .sem-page .pw-next-img { display: block; width: 100%; margin: 12px 0 6px; }
html .sem-page .pw-next-img img { display: block; width: 100%; height: auto; border-radius: 14px; border: 1px solid var(--rd-hair-wine); }

/* ── 21. PROGRAM HUB pages (/programs/<slug>/) — Balance Method first ── */
.ph-page { background: var(--rd-wine); color: var(--rd-ink-on-wine); font-family: var(--rd-sans); }
.ph-page h1, .ph-page h2, .ph-page h3 { font-family: var(--rd-serif); font-weight: 300; letter-spacing: -.02em; margin: 0; text-wrap: balance; }
.ph-page h1 { font-size: clamp(2.4rem, 6vw, 5rem); line-height: 1.02; color: #fff; max-width: 16ch; }
.ph-page h2 { font-size: clamp(1.8rem, 3.6vw, 3.2rem); line-height: 1.06; margin-bottom: 44px; color: #fff; }  /* sha.css colours h2 wine — invisible on the wine bands */
.ph-page h3 { font-size: 1.3rem; line-height: 1.2; }
.ph-page section { padding: 120px 0; }
.ph-page .rd-label { margin-bottom: 22px; }
@media (max-width: 767px) { .ph-page section { padding: 72px 0; } .ph-page h2 { margin-bottom: 30px; } }

.ph-hero { padding-top: 180px !important; }
@media (max-width: 767px) { .ph-hero { padding-top: 130px !important; } }
.ph-lede { font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.55; max-width: 60ch; margin: 28px 0 40px; color: var(--rd-ink-on-wine); }
.ph-actions { display: flex; flex-wrap: wrap; gap: 18px 28px; align-items: center; }

.ph-start { background: var(--rd-cream); color: var(--rd-wine); }
.ph-start h2 { color: var(--rd-wine); }
.ph-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.ph-tile { display: flex; flex-direction: column; gap: 12px; padding: 28px 26px; border-radius: 18px; background: #fff; border: 1px solid var(--rd-hair-wine); color: var(--rd-wine); text-decoration: none; min-width: 0; transition: transform .35s var(--rd-ease), border-color .35s var(--rd-ease); }
.ph-tile:hover { transform: translateY(-3px); border-color: var(--rd-wine); }
.ph-tile:focus-visible { outline: 2px solid var(--rd-rust); outline-offset: 3px; }
.ph-tile-q { font-family: var(--rd-serif); font-size: 1.35rem; line-height: 1.2; text-wrap: balance; }
.ph-tile-a { font-size: 15px; line-height: 1.45; color: var(--rd-muted-on-peach); }
.ph-tile-d { margin-top: auto; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--rd-rust); }

.ph-stairs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: end; }
.ph-step { border-radius: 18px 18px 0 0; padding: 30px 26px 30px; display: flex; flex-direction: column; gap: 12px; min-width: 0; color: var(--rd-wine); }
.ph-step-1 { background: var(--rd-peach); min-height: 360px; }
.ph-step-2 { background: color-mix(in srgb, var(--rd-peach) 74%, var(--rd-rust)); min-height: 430px; }
.ph-step-3 { background: var(--rd-rust); min-height: 500px; color: #fff; }
.ph-step-3 .ph-step-facts { opacity: 1; }
.ph-step h3 { font-size: 1.6rem; color: inherit; }
.ph-step p { margin: 0; font-size: 16px; line-height: 1.5; }
.ph-step-mod { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; }
.ph-step-facts { font-size: 13px; opacity: .85; }
.ph-step-next { margin-top: auto; color: inherit; font-weight: 500; text-decoration: none; border-top: 1px solid currentColor; padding-top: 14px; }
.ph-step-next:hover { text-decoration: underline; }
@media (max-width: 860px) { .ph-stairs { grid-template-columns: 1fr; } .ph-step { min-height: 0 !important; border-radius: 18px; } }

.ph-why { background: var(--rd-cream); color: var(--rd-wine); }
.ph-why h2 { color: var(--rd-wine); }
.ph-why-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px; }
.ph-why-list { display: flex; flex-direction: column; gap: 34px; border-top: 1px solid var(--rd-hair-wine); padding-top: 34px; }
.ph-why-list p { margin: 10px 0 0; color: var(--rd-muted-on-peach); line-height: 1.6; max-width: 62ch; }
@media (max-width: 860px) { .ph-why-grid { grid-template-columns: 1fr; } }

.ph-earn { background: var(--rd-peach-soft); color: var(--rd-wine); }
.ph-earn h2 { color: var(--rd-wine); }
.ph-earn-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0 32px; border-top: 1px solid var(--rd-hair-wine); }
.ph-earn-list li { padding: 22px 0; border-bottom: 1px solid var(--rd-hair-wine); display: flex; flex-direction: column; gap: 4px; }
.ph-earn-list strong { font-family: var(--rd-serif); font-weight: 400; font-size: 1.2rem; }
.ph-earn-list span { color: var(--rd-muted-on-peach); font-size: 15px; }

.ph-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-bottom: 64px; border-top: 1px solid var(--rd-hair); padding-top: 28px; }
.ph-nums div { color: var(--rd-muted-on-wine); font-size: 15px; }
.ph-nums span { display: block; font-family: var(--rd-serif); font-weight: 300; font-size: clamp(2.6rem, 6vw, 4.4rem); line-height: 1; color: var(--rd-peach); font-variant-numeric: tabular-nums; margin-bottom: 8px; }
.ph-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 28px; }
.ph-quotes figure { margin: 0; display: flex; flex-direction: column; gap: 16px; }
.ph-quotes blockquote { margin: 0; font-family: var(--rd-serif); font-weight: 300; font-size: 1.2rem; line-height: 1.4; color: #fff; }
.ph-quotes figcaption { font-size: 13px; letter-spacing: .06em; color: var(--rd-muted-on-wine); }
@media (max-width: 600px) { .ph-nums { grid-template-columns: 1fr; } }

.ph-teacher { background: var(--rd-cream); color: var(--rd-wine); }
.ph-teacher h2 { color: var(--rd-wine); margin-bottom: 20px; }
.ph-teacher-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 56px; align-items: center; }
.ph-teacher-grid img { width: 100%; max-width: 420px; border-radius: 18px; }
.ph-teacher-grid p { color: var(--rd-muted-on-peach); line-height: 1.65; max-width: 62ch; margin: 0 0 22px; }
@media (max-width: 860px) { .ph-teacher-grid { grid-template-columns: 1fr; gap: 28px; } }

.ph-page .rd-faq-side h2 { color: var(--rd-wine); }  /* .ph-page h2 is white for the wine bands; the FAQ band is pale peach */
.ph-quotes figcaption strong { display: block; font-weight: 500; color: var(--rd-ink-on-wine); letter-spacing: .02em; margin-bottom: 2px; }
.ph-close { text-align: center; }
.ph-close h2 { color: #fff; }
.ph-close-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }

.ph-archive { background: var(--rd-cream); color: var(--rd-wine); padding-top: 90px !important; }
.ph-archive h2 { color: var(--rd-wine); font-size: clamp(1.4rem, 2.4vw, 2rem); margin-bottom: 26px; }
.ph-archive-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rd-hair-wine); }
.ph-archive-list a { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; padding: 16px 0; border-bottom: 1px solid var(--rd-hair-wine); color: var(--rd-wine); text-decoration: none; }
.ph-archive-list a span:last-child { color: var(--rd-muted-on-peach); font-size: 15px; }
.ph-archive-list a:hover span:first-child { text-decoration: underline; }

/* 21b. ZSA hub (8 Oct 2026) — the journey is a trunk that branches, not a staircase:
   Basics → Guided Clinical Training → five Advanced courses chosen by clinical focus. */
.ph-tree { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr) minmax(0, 1fr); gap: 14px; align-items: start; }
.ph-journey-lede { max-width: 64ch; margin: -24px 0 40px; color: var(--rd-ink-on-wine); font-size: 17px; line-height: 1.55; }
/* Guided Clinical Training = a clinical internship, not a course step: its own colour, unnumbered (Barry + Scott, 8 Oct 2026) */
.ph-intern { border: 2px dashed var(--rd-peach); border-radius: 18px; padding: 28px 26px; display: flex; flex-direction: column; gap: 12px; min-width: 0; color: var(--rd-ink-on-wine); background: rgba(245, 191, 145, .06); }
.ph-intern h3 { font-size: 1.6rem; color: #fff; }
.ph-intern p { margin: 0; font-size: 16px; line-height: 1.5; }
.ph-intern-when { color: var(--rd-muted-on-wine); font-size: 15px !important; }
.ph-intern-tag { align-self: flex-start; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--rd-wine-3); background: var(--rd-peach); padding: 5px 10px; border-radius: 999px; }
.ph-intern .ph-step-next { color: var(--rd-peach); }
.ph-tree .ph-step { border-radius: 18px; min-height: 0; }
.ph-tree .ph-step-2 { background: color-mix(in srgb, var(--rd-peach) 74%, var(--rd-rust)); }
.ph-branches { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ph-branch-head { background: var(--rd-rust); color: #fff; border-radius: 18px; padding: 24px 26px; display: flex; flex-direction: column; gap: 8px; }
.ph-branch-head h3 { font-size: 1.6rem; color: #fff; }
.ph-branch-head p { margin: 0; font-size: 15px; line-height: 1.5; }
.ph-branch { display: grid; grid-template-columns: 2.4em minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 14px 18px; border: 1px solid var(--rd-hair); border-radius: 14px; }
.ph-branch b { font-family: var(--rd-serif); font-weight: 300; font-size: 1.3rem; color: var(--rd-peach); font-variant-numeric: tabular-nums; }
.ph-branch span { color: #fff; font-size: 16px; line-height: 1.35; }
.ph-branch small { display: block; color: var(--rd-muted-on-wine); font-size: 13px; margin-top: 2px; }
.ph-branch-foot { color: var(--rd-muted-on-wine); font-size: 14px; padding: 4px 4px 0; }
.ph-branch-foot a { color: var(--rd-peach); }
@media (max-width: 960px) { .ph-tree { grid-template-columns: 1fr; } }

/* 21c. Hub "Understand the method" block — links to the program's guide pages */
.ph-guides { background: var(--rd-peach-soft); color: var(--rd-wine); }
.ph-guides h2 { color: var(--rd-wine); }
.ph-guide-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.ph-guide { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: 18px; background: #fff; border: 1px solid var(--rd-hair-wine); color: var(--rd-wine); text-decoration: none; min-width: 0; }
.ph-guide:hover { border-color: var(--rd-wine); }
.ph-guide:focus-visible { outline: 2px solid var(--rd-rust); outline-offset: 3px; }
.ph-guide strong { font-family: var(--rd-serif); font-weight: 400; font-size: 1.25rem; line-height: 1.2; }
.ph-guide span { font-size: 15px; line-height: 1.5; color: var(--rd-muted-on-peach); }

/* 22. GUIDE pages (/programs/<hub>/<guide>/) — evergreen articles for practitioners, 8 Oct 2026 */
.gd-page { background: var(--rd-cream); color: var(--rd-wine-3); font-family: var(--rd-sans); }
.gd-wrap { max-width: 760px; margin: 0 auto; padding: 150px 24px 96px; display: flex; flex-direction: column; gap: 22px; }
.gd-banner { margin: 0; padding: 10px 16px; border-radius: 10px; background: var(--rd-peach); color: var(--rd-wine-3); font-size: 14px; }
.gd-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-rust); }
.gd-crumbs a { color: var(--rd-rust); }
.gd-page h1 { font-family: var(--rd-serif); font-weight: 300; font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.05; letter-spacing: -.02em; color: var(--rd-wine); margin: 0; text-wrap: balance; }
.gd-byline { margin: 0; font-size: 15px; color: var(--rd-muted-on-peach); }
.gd-byline a { color: var(--rd-wine); }
.gd-body { font-size: 18px; line-height: 1.7; }
.gd-body > * { max-width: 68ch; }
.gd-body p { margin: 0 0 1.1em; }
.gd-body h2 { font-family: var(--rd-serif); font-weight: 400; font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.15; color: var(--rd-wine); margin: 2em 0 .6em; text-wrap: balance; }
.gd-body h3 { font-family: var(--rd-serif); font-weight: 400; font-size: 1.3rem; color: var(--rd-wine); margin: 1.6em 0 .4em; }
.gd-body a { color: var(--rd-rust); text-underline-offset: 3px; }
.gd-body ul, .gd-body ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.gd-body li { margin-bottom: .45em; }
.gd-body strong { color: var(--rd-wine); font-weight: 600; }
.gd-body blockquote { margin: 1.4em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--rd-peach); font-family: var(--rd-serif); font-size: 1.15rem; color: var(--rd-wine); }
.gd-body blockquote p { margin: 0 0 .4em; }
.gd-body table { border-collapse: collapse; width: 100%; font-size: 15px; display: block; overflow-x: auto; }
.gd-body th, .gd-body td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--rd-hair-wine); }
.gd-review { display: block; margin: 0 0 1.4em; padding: 12px 16px; border: 1.5px dashed var(--rd-rust); border-radius: 10px; background: #fff; font-size: 15px; line-height: 1.5; color: var(--rd-wine-3); }
.gd-review span { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--rd-rust); font-weight: 600; margin-bottom: 4px; }
.gd-cta { margin-top: 24px; padding: 32px; border-radius: 18px; background: var(--rd-wine); color: var(--rd-ink-on-wine); display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.gd-cta p { margin: 0; font-size: 17px; line-height: 1.55; color: var(--rd-ink-on-wine); max-width: 60ch; }
.gd-cta-hub { color: var(--rd-peach); font-size: 15px; }
.gd-cta .rd-pill { white-space: normal; text-align: left; max-width: 100%; }
.gd-more { display: flex; flex-direction: column; gap: 12px; padding-top: 12px; }
.gd-more ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rd-hair-wine); }
.gd-more a { display: block; padding: 14px 0; border-bottom: 1px solid var(--rd-hair-wine); color: var(--rd-wine); text-decoration: none; font-family: var(--rd-serif); font-size: 1.15rem; }
.gd-more a:hover { color: var(--rd-rust); }
@media (max-width: 767px) { .gd-wrap { padding-top: 120px; } .gd-body { font-size: 17px; } .gd-cta { padding: 24px; } }

@media (prefers-reduced-motion: reduce) { .ph-page * { transition: none !important; animation: none !important; } }

/* 20c. "Part of a pathway" banner (8 Oct 2026) — archive seminars, webinars, teacher pages.
   src/_includes/pathway-banner.njk; shows only for a method whose hub is live. */
.pw-banner { background: var(--rd-cream); border-top: 1px solid var(--rd-hair-wine); border-bottom: 1px solid var(--rd-hair-wine); color: var(--rd-wine); }
.pw-banner-inner { max-width: var(--rd-max); margin-inline: auto; padding: 22px var(--rd-pad); display: flex; flex-wrap: wrap; align-items: center; gap: 10px 28px; font-family: var(--rd-sans); }
.pw-banner-lead { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--rd-rust); }
.pw-banner p { margin: 0; flex: 1 1 320px; min-width: 0; font-size: 16px; line-height: 1.5; color: var(--rd-muted-on-peach); }
.pw-banner a { color: var(--rd-wine); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; font-size: 16px; }
.pw-banner a:hover { color: var(--rd-rust); }
.pw-banner a:focus-visible { outline: 2px solid var(--rd-rust); outline-offset: 3px; }
/* Guide links under the pathway banner on webinars (9 Oct 2026) */
.pw-guides { padding-top: 0; }
.pw-guides ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.pw-guides a { color: var(--rd-wine); font-size: 15px; text-decoration: underline; text-underline-offset: 3px; }
