/* LOCAL-FONTS-BEGIN (self-hosted, replaces Google Fonts CDN) */
/* latin-ext */
@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/JTUSjIg69CK48gW7PXoo9WdhyyTh89ZNpQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/JTUSjIg69CK48gW7PXoo9WlhyyTh89Y.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu3cOWxw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lujVj9_mf.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lujVj9_mf.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lujVj9_mf.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lujVj9_mf.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lujVj9_mf.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lujVj9_mf.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu3cOWxw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRdu3cOWxy40.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu3cOWxw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* LOCAL-FONTS-END */

/* =============================================================
   subrosa Health & Capital – Landing Page Styles
   ============================================================= */

:root {
  --bg-dark:    #0A0A0F;
  --brand:      #C947E1;
  --brand-2:    #20427C;
  --text-light: #FFFFFF;
  --text-muted: rgba(255, 255, 255, 0.75);
  --font-body:  'Source Sans Pro', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-hero:  'Bebas Neue', 'Barlow Condensed', 'Oswald', Impact, sans-serif;
  --topbar-h:   40px;
  --header-h:   190px;
  --ease:       cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* === RESET === */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  font-weight: 300;
  color: var(--text-light);
  background: var(--bg-dark);
  overflow-x: hidden;
  line-height: 1.6;
  letter-spacing: -0.01em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Cross-OS rendering for Bebas Neue display font: makes Windows ClearType look like macOS antialiasing */
.hero__title:not(.hero__title--gradient),
.s-claim,
.glass-card__big {
  text-rendering: geometricPrecision;
  -webkit-text-stroke: 0.6px currentColor;
  text-shadow: 0 0 0.4px currentColor, 0 0 0.4px currentColor;
  font-synthesis: none;
}
/* Sub-page gradient hero title — explicitly disable any stroke/shadow so the gradient stays visible */
.hero__title--gradient {
  text-rendering: geometricPrecision;
  font-synthesis: none;
  -webkit-text-stroke: 0 transparent;
  text-shadow: none;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button { border: none; background: none; cursor: pointer; font-family: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; }

/* === TOPBAR === */
.topbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: var(--topbar-h);
  background: #29303A;
  border-bottom: 1px solid rgba(201, 71, 225, 0.4);
  box-shadow: 0 2px 15px rgba(201, 71, 225, 0.15);
  display: flex; align-items: center; justify-content: space-between;
}
.topbar__inner { display: flex; align-items: center; padding: 0 clamp(1rem, 4vw, 3rem); margin-left: auto; }
.topbar__home {
  display: inline-flex; align-items: center; gap: 0.4rem;
  color: #FFFFFF; font-size: 0.85rem; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 0 clamp(1rem, 4vw, 3rem);
  transition: opacity 0.2s ease; white-space: nowrap;
}
.topbar__home:hover { opacity: 0.7; }
.topbar__home svg { flex-shrink: 0; }
.topbar__link { color: #FFFFFF; font-size: 0.85rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 0 1rem; transition: opacity 0.2s ease; white-space: nowrap; }
.topbar__link:hover { opacity: 0.7; }
.topbar__sep { width: 1px; height: 14px; background: rgba(255, 255, 255, 0.4); flex-shrink: 0; }

/* Search */
.topbar__search { position: relative; display: flex; align-items: center; }
.topbar__search-btn { color: #FFFFFF; padding: 0 0.5rem; opacity: 0.8; transition: opacity 0.2s ease; }
.topbar__search-btn:hover { opacity: 1; }
.topbar__search-field { position: absolute; top: calc(100% + 12px); right: 0; width: 320px; z-index: 1001; }
.topbar__search-input { width: 100%; padding: 0.7rem 1rem; border: 1px solid rgba(201,71,225,0.3); border-radius: 12px; background: #1a1f28; color: #FFFFFF; font-family: var(--font-body); font-size: 0.9rem; outline: none; transition: border-color 0.3s ease; }
.topbar__search-input:focus { border-color: var(--brand); }
.topbar__search-input::placeholder { color: rgba(255,255,255,0.4); }
.topbar__search-results { margin-top: 0.4rem; background: #1a1f28; border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; max-height: 300px; overflow-y: auto; display: none; }
.topbar__search-results.has-results { display: block; }
.search-result { display: block; padding: 0.7rem 1rem; color: rgba(255,255,255,0.8); font-size: 0.85rem; border-bottom: 1px solid rgba(255,255,255,0.05); transition: background 0.2s ease; text-decoration: none; cursor: pointer; }
.search-result:last-child { border-bottom: none; }
.search-result:hover { background: rgba(201,71,225,0.1); color: #FFFFFF; }
.search-result__section { font-size: 0.7rem; color: var(--brand); text-transform: uppercase; letter-spacing: 0.08em; display: block; margin-bottom: 0.15rem; }
.search-result mark { background: rgba(201,71,225,0.25); color: #FFFFFF; border-radius: 2px; padding: 0 2px; }
.search-no-results { padding: 0.7rem 1rem; color: rgba(255,255,255,0.4); font-size: 0.85rem; }

/* === HEADER === */
.header {
  position: fixed; top: var(--topbar-h); left: 0; right: 0; z-index: 999;
  height: var(--header-h);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 clamp(1.25rem, 4vw, 3rem);
  background: transparent; transition: background 0.3s ease;
  pointer-events: none; /* let clicks pass through the empty header area to elements below */
}
.header > * { pointer-events: auto; } /* but the logo + burger themselves remain clickable */
.header__logo { transition: opacity 0.4s ease; }
.header__logo img { height: clamp(52px, 10vw, 170px); width: auto; transition: opacity 0.4s ease; }
.header__logo--faded {
  pointer-events: none;
  cursor: default;
}
.header__logo--faded img { opacity: 0.06; pointer-events: none; }
.header__logo.pulse-active img { animation: logoPulse2x 2s ease-in-out forwards; }

/* === BURGER === */
.burger { width: 36px; height: 28px; display: flex; flex-direction: column; justify-content: space-between; z-index: 1002; position: relative; }
.burger__line { display: block; width: 100%; height: 3px; background: var(--text-light); border-radius: 2px; transition: transform 0.35s var(--ease), opacity 0.25s ease, background-color 0.3s ease; transform-origin: center; }
.burger--on-light .burger__line { background: #14141C; }
.burger--open .burger__line:nth-child(1) { transform: translateY(13px) rotate(45deg); }
.burger--open .burger__line:nth-child(2) { opacity: 0; }
.burger--open .burger__line:nth-child(3) { transform: translateY(-13px) rotate(-45deg); }

/* === OVERLAY MENU === */
.overlay { position: fixed; inset: 0; z-index: 1001; background: #1e2530; display: flex; flex-direction: column; opacity: 0; visibility: hidden; transition: opacity 0.4s ease-in-out, visibility 0.4s ease-in-out; overflow-y: auto; }
.overlay[hidden] { display: flex; }
.overlay--open { opacity: 1; visibility: visible; }
.overlay__header { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem clamp(1.5rem, 4vw, 3rem); flex-shrink: 0; }
.overlay__logo img { height: 120px; width: auto; }
.overlay__close { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; color: #FFFFFF; border: 1px solid rgba(201,71,225,0.3); border-radius: 50%; transition: border-color 0.3s ease, background 0.3s ease; }
.overlay__close:hover { border-color: var(--brand); background: rgba(201,71,225,0.1); }
.overlay__nav { flex: 1; display: flex; align-items: flex-start; justify-content: center; padding: 1rem clamp(1.5rem, 4vw, 3rem) 3rem; }
.overlay__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1rem; width: 100%; max-width: 1200px; }
.overlay__card { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; padding: 1.5rem; position: relative; overflow: hidden; display: flex; flex-direction: column; opacity: 0; transform: translateY(20px); transition: opacity 0.4s ease, transform 0.4s var(--ease), border-color 0.3s ease; }
.overlay--open .overlay__card { opacity: 1; transform: translateY(0); }
.overlay--open .overlay__card:nth-child(1) { transition-delay: 0.08s; }
.overlay--open .overlay__card:nth-child(2) { transition-delay: 0.14s; }
.overlay--open .overlay__card:nth-child(3) { transition-delay: 0.20s; }
.overlay--open .overlay__card:nth-child(4) { transition-delay: 0.26s; }
.overlay--open .overlay__card:nth-child(5) { transition-delay: 0.32s; }
.overlay--open .overlay__card:nth-child(6) { transition-delay: 0.38s; }
.overlay__card:hover { border-color: rgba(201,71,225,0.25); }
.overlay__card-accent { position: absolute; top: 0; left: 1.5rem; right: 1.5rem; height: 2px; background: linear-gradient(90deg, var(--brand), rgba(201,71,225,0.2)); border-radius: 2px; }
.overlay__card:nth-child(1) { grid-column: span 4; }
.overlay__card:nth-child(2) { grid-column: span 4; }
.overlay__card:nth-child(3) { grid-column: span 4; }
.overlay__heading { font-family: var(--font-body); font-size: clamp(1.4rem, 2.2vw, 1.9rem); font-weight: 600; color: #FFFFFF; text-decoration: none; margin-bottom: 1rem; transition: color 0.3s ease; }
.overlay__heading:hover { color: var(--brand); }
.overlay__label { display: block; font-family: var(--font-body); font-size: 1.1rem; font-weight: 600; color: var(--brand); letter-spacing: 0.5px; margin-top: 1.2rem; margin-bottom: 0.5rem; text-decoration: none; transition: opacity 0.25s ease; }
a.overlay__label:hover { opacity: 0.75; }
.overlay__links { display: flex; flex-direction: column; }
.overlay__links a { font-family: var(--font-body); font-size: 1.15rem; font-weight: 400; color: rgba(255,255,255,0.7); text-decoration: none; padding: 0.3rem 0; transition: color 0.2s ease, padding-left 0.2s ease; }
.overlay__links a:hover { color: #FFFFFF; padding-left: 0.4rem; }
.overlay__card--small { grid-column: span 3; justify-content: center; min-height: 80px; }
.overlay__card--small .overlay__heading { margin-bottom: 0; }
.overlay__card--contact { background: rgba(201,71,225,0.05); border-color: rgba(201,71,225,0.15); }

/* === HERO === */
.hero {
  position: relative; z-index: 2; width: 100%; min-height: 100vh;
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
  overflow: hidden; background: var(--bg-dark);
  padding-top: calc(var(--topbar-h) + var(--header-h) + 1rem);
}
.hero__content { position: relative; z-index: 2; text-align: center; padding: 0 1.5rem; max-width: 1000px; width: 100%; }
.hero__title-block { display: inline-block; text-align: left; margin: 0 auto 0.5rem; opacity: 1; }
.hero__title { font-family: var(--font-hero); font-weight: 400; font-size: clamp(4rem, 17vw, 18rem); line-height: 0.88; letter-spacing: 0.03em; color: var(--brand); text-transform: uppercase; margin: 0; white-space: nowrap; }
.hero__subtitle { font-family: var(--font-body); font-size: clamp(0.75rem, 1.3vw, 0.95rem); font-weight: 600; letter-spacing: 0.18em; color: #FFFFFF; text-transform: uppercase; text-align: right; margin-top: 0.5rem; display: inline-block; float: right; padding: 0.35rem 1rem; background: var(--brand-2); border-radius: 30px; border: 1px solid rgba(201,71,225,0.4); box-shadow: 0 0 12px rgba(201,71,225,0.3), 0 0 30px rgba(201,71,225,0.1); }

/* Elevator */
.elevator__wrap { display: flex; flex-direction: column; align-items: center; gap: 1.2rem; margin: -1rem auto 0; padding: 0 1.5rem; }
.elevator__text { font-family: var(--font-body); font-size: clamp(1.2rem, 2.8vw, 2.6rem); font-weight: 300; color: #FFFFFF; line-height: 1.4; margin: 0; text-align: center; }

/* Scroll button */
.scroll-down-btn { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; background: linear-gradient(180deg, #C947E1 0%, #7A4FB8 50%, #4A7BC8 100%); border-radius: 999px; color: #FFFFFF; box-shadow: 0 0 12px rgba(201,71,225,0.3), 0 0 30px rgba(201,71,225,0.1), 0 8px 24px rgba(32,66,124,0.35); transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; z-index: 5; }
.scroll-down-btn.seq-go { animation: seqIn 0.7s var(--ease) forwards; }
.scroll-down-btn.pulse-active { opacity: 1; transform: translateY(0); animation: scrollBtnBounce 2.4s ease-in-out infinite; }
.scroll-down-btn:hover { background: linear-gradient(180deg, #E04FB8 0%, #8A5FC8 50%, #5A8BD8 100%); transform: translateY(-4px); box-shadow: 0 0 16px rgba(201,71,225,0.5), 0 12px 32px rgba(32,66,124,0.5); animation-play-state: paused; }
.scroll-down-btn__icon { width: 28px; height: 28px; }

/* Donut ring dots */
.dot-ring {
  display: inline-block; width: 0.22em; height: 0.22em; margin-left: 0.05em;
  vertical-align: -0.05em; border-radius: 50%; animation: dotSpin 8s linear infinite;
  background: conic-gradient(from 180deg, #20427C 0%, #3A5CA0 15%, #7A4FB8 30%, #C947E1 50%, #7A4FB8 70%, #3A5CA0 85%, #20427C 100%);
  -webkit-mask: radial-gradient(circle, transparent 38%, #000 40%);
  mask: radial-gradient(circle, transparent 38%, #000 40%);
}
.dot-ring--light { background: conic-gradient(from 180deg, #20427C 0%, #3A5CA0 15%, #7A4FB8 30%, #C947E1 50%, #7A4FB8 70%, #3A5CA0 85%, #20427C 100%); }
@keyframes dotSpin { to { transform: rotate(360deg); } }
/* Scattered circles — identical style to the corner .deco-circle (2px outline).
   They only have room when the "Click here" panel is OPEN (the section is tall
   then). While it is closed the section is short and the % positions would make
   them overlap, so they stay hidden until the panel is opened. */
.deco-circle--scatter { display: none; }
#new-thinking:has(.fa-expand[open]) .deco-circle--scatter { display: block; }
/* On smaller screens the text spans full width — keep them hidden regardless. */
@media (max-width: 900px) {
  #new-thinking:has(.fa-expand[open]) .deco-circle--scatter { display: none; }
}

/* Animations */
.seq-anim { opacity: 0; transform: translateY(25px); }
.seq-anim.seq-go { animation: seqIn 0.7s var(--ease) forwards; }
@keyframes seqIn { to { opacity: 1; transform: translateY(0); } }
@keyframes charIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes logoPulse2x { 0% { transform: scale(1); filter: brightness(0.85); } 8% { transform: scale(1.06); filter: brightness(1.2); } 16% { transform: scale(1); filter: brightness(0.85); } 24% { transform: scale(1.06); filter: brightness(1.2); } 32% { transform: scale(1); filter: brightness(1); } 100% { transform: scale(1); filter: brightness(1); } }
@keyframes scrollBtnBounce { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(4px) scale(1.08); } }

/* =============================================================
   PREMIUM SECTIONS
   ============================================================= */
.s-dark, .s-light, .s-black {
  position: relative; z-index: 2;
  padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 4vw, 3rem);
  overflow: hidden;
  border-top: 2px solid rgba(201, 71, 225, 0.5);
  box-shadow: 0 -4px 25px rgba(201, 71, 225, 0.2);
}
.s-black { background: #0A0A0F; }
#values, #discover { overflow: hidden; }
#impact { overflow: visible; }
#board { position: relative; z-index: 10; overflow: hidden; }
.s-dark  { background: #29303A; }
.s-light {
  background: linear-gradient(135deg, #FFFFFF 0%, #F4EDF8 30%, #EDE4F5 50%, #E8EAF6 70%, #FFFFFF 100%);
  color: #14141C;
  border-top: 2px solid rgba(201, 71, 225, 0.7);
  box-shadow: 0 -4px 30px rgba(201, 71, 225, 0.3);
}

.s-inner { max-width: 1100px; margin: 0 auto; }
.s-inner--narrow { max-width: 750px; margin: 0 auto; text-align: center; }
.s-inner--narrow .s-body,
.s-inner--narrow .s-highlight { text-align: center; }
.s-inner--left { max-width: 1100px; text-align: left; }
.s-inner--left .s-body { max-width: 60%; }
.s-inner--left .s-claim { max-width: 60%; }

.s-inner--right { max-width: 1100px; text-align: left; }
.s-inner--right .values-list { margin-left: auto; }

/* Split layout */
.s-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.s-split__img { overflow: visible; align-self: center; }
.s-split__photo { width: 140%; max-width: none; display: block; margin-left: -20%; }
.s-split__img { display: flex; align-items: center; justify-content: center; }

/* Watermark */
.s-watermark { position: absolute; right: 0; bottom: 0; width: 80%; max-width: none; opacity: 0.12; pointer-events: none; z-index: 0; }
.s-watermark--left { right: auto; left: 0; }
.s-watermark--sm { width: 60%; }
.s-watermark--on-light { opacity: 0.08; mix-blend-mode: multiply; }

#vision { overflow: hidden; }

/* Typography */
.s-eyebrow { font-family: var(--font-body); font-size: 1rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--brand); margin-bottom: 0.8rem; }
.s-eyebrow--dark { color: #8E1F70; }
.s-heading { font-family: var(--font-body); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 300; color: #FFFFFF; margin-bottom: 1.5rem; letter-spacing: -0.01em; line-height: 1.15; }
.s-heading--dark { color: #14141C; }
.s-sub { font-size: clamp(1.1rem, 2vw, 1.3rem); color: rgba(255,255,255,0.85); margin-bottom: 2.5rem; }
.s-sub--dark { color: rgba(20,20,28,0.82); }
.s-body { font-size: 1.25rem; font-weight: 300; color: rgba(255,255,255,0.8); line-height: 2; margin-bottom: 1.5rem; text-align: left; }
.s-body--dark { color: rgba(20,20,28,0.85); }
.s-claim { font-family: var(--font-hero); font-weight: 400; font-size: clamp(2rem, 5vw, 3.5rem); color: var(--brand); margin-top: 2rem; letter-spacing: 0.03em; }
.s-highlight { font-size: 1.3rem; font-weight: 600; color: #FFFFFF; font-style: italic; margin: 1.5rem 0; }
.s-highlight--dark { color: #14141C; }
.s-footnote { font-size: 0.9rem; color: rgba(255,255,255,0.75); text-align: center; margin-top: 2rem; }
.s-footnote--dark { color: rgba(20,20,28,0.72); }
.s-hashtag { font-size: 1rem; color: rgba(255,255,255,0.75); margin-top: 2rem; letter-spacing: 0.05em; }

/* Two-column */
.s-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; margin-top: 2rem; }
.s-two-col p { font-size: 1.2rem; line-height: 1.7; color: rgba(20,20,28,0.85); }
.s-two-col--on-dark p { color: rgba(255,255,255,0.7); }

/* Deco rings */
.deco-ring { position: absolute; border-radius: 50%; border: 1.5px solid rgba(201,71,225,0.08); pointer-events: none; z-index: 0; }
.deco-ring--r1 { width: 600px; height: 600px; top: -100px; right: -200px; animation: decoSpin 80s linear infinite; }
.deco-ring--r2 { width: 500px; height: 500px; bottom: -80px; left: -180px; border-color: rgba(32,66,124,0.08); animation: decoSpin 100s linear infinite reverse; }
.deco-ring--r3 { width: 700px; height: 700px; top: 15%; right: -280px; animation: decoSpin 90s linear infinite; }
.deco-ring--r4 { width: 550px; height: 550px; bottom: 5%; left: -200px; border-color: rgba(201,71,225,0.06); animation: decoSpin 70s linear infinite reverse; }
@keyframes decoSpin { to { transform: rotate(360deg); } }

/* Decorative rosa outline circles (loops) for light sections */
.deco-circle {
  position: absolute;
  border-radius: 50%;
  border: 2px solid rgba(201, 71, 225, 0.3);
  background: transparent;
  pointer-events: none;
  z-index: 0;
}
.deco-circle--1 { width: 450px; height: 450px; top: -120px; left: -120px; animation: circleBreathe 6s ease-in-out infinite; }
.deco-circle--2 { width: 320px; height: 320px; bottom: -80px; right: -80px; animation: circleBreathe 8s ease-in-out 1s infinite; }
.deco-circle--3 { width: 180px; height: 180px; top: 35%; right: 12%; animation: circleBreathe 5s ease-in-out 2s infinite; }
.deco-circle--7 { width: 140px; height: 140px; bottom: 15%; left: -40px; border-color: rgba(201,71,225,0.12); animation: circleBreathe 7s ease-in-out 3s infinite; }

@keyframes circleBreathe {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50%      { transform: scale(1.08); opacity: 1; }
}

@keyframes circleImpulse2x {
  0%   { transform: scale(1); opacity: 1; border-width: 2px; }
  15%  { transform: scale(1.5); opacity: 0; border-width: 0.5px; }
  16%  { transform: scale(1); opacity: 0; }
  30%  { transform: scale(1); opacity: 1; border-width: 2px; }
  45%  { transform: scale(1.5); opacity: 0; border-width: 0.5px; }
  46%  { transform: scale(1); opacity: 0; }
  60%  { transform: scale(1); opacity: 1; border-width: 2px; }
  100% { transform: scale(1); opacity: 1; border-width: 2px; }
}

/* =============================================================
   GLASS CARDS
   ============================================================= */
.glass-grid { display: grid; gap: 1.2rem; }
.glass-grid--2x2 { grid-template-columns: repeat(2, 1fr); }
.glass-grid--3   { grid-template-columns: repeat(3, 1fr); }
.glass-grid--3x2 { grid-template-columns: 1fr 1fr 1fr auto; }
/* Tall, narrow highlight tile (Talent & HR-Services) — spans both rows in column 4 */
.glass-card--vert {
  grid-column: 4; grid-row: 1 / span 2;
  width: 84px; padding: 1.5rem 0;
  position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
  border: 1px solid #c947e1;
}
.glass-card--vert .glass-card__num { position: absolute; top: 1.25rem; left: 50%; transform: translateX(-50%); margin: 0; flex-shrink: 0; }
.glass-card--vert h3 {
  margin: 0; font-size: 1.4rem; text-align: center; white-space: nowrap;
  writing-mode: vertical-rl; transform: rotate(180deg);
}
@media (max-width: 768px) {
  .glass-grid--3x2 { grid-template-columns: 1fr; }
  .glass-card--vert {
    grid-column: auto; grid-row: auto;
    width: auto; padding: 2rem;
    flex-direction: row; align-items: center; justify-content: flex-start; gap: 1.25rem;
  }
  .glass-card--vert .glass-card__num { position: static; transform: none; }
  .glass-card--vert h3 {
    margin: 0; font-size: 1.25rem; white-space: normal;
    writing-mode: horizontal-tb; transform: none;
  }
}
a.glass-card--link { text-decoration: none; color: inherit; cursor: pointer; }
a.glass-card--link:hover { transform: translateY(-5px); }

/* At-a-Glance — Inizio-style image cards with hover-lift reveal (grid stays stable) */
.solx-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1.6rem; margin-top: 2.5rem; }
.solx-card { position: relative; grid-column: span 4; display: flex; flex-direction: column; background: #272a35; border: 1px solid rgba(255,255,255,0.06); border-radius: 18px; cursor: pointer; transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease, opacity .28s ease; hyphens: none; -webkit-hyphens: none; overflow-wrap: normal; word-break: normal; }
.solx-card:nth-child(1) { grid-column: 3 / span 4; }   /* row 1 (2 cards) centered */
.solx-card:nth-child(6) { grid-column: 3 / span 4; }   /* row 3 (2 cards) centered */
.solx-card__media { position: relative; aspect-ratio: 4 / 3; border-radius: 18px 18px 0 0; overflow: hidden; background: #272a35; }
.solx-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: 72% 34%; transform: scale(1.55); transform-origin: 72% 34%; display: block; opacity: 0.6; }
/* per-card framing tweaks */
.solx-grid .solx-card:nth-child(2) .solx-card__media img { object-position: 82% 30%; transform-origin: 82% 30%; }   /* patient access */
.solx-grid .solx-card:nth-child(4) .solx-card__media img { object-position: 68% 32%; transform-origin: 68% 32%; transform: scale(1.9); }   /* medical — fill frame with splash+face, no empty left */
.solx-grid .solx-card:nth-child(5) .solx-card__media img { object-position: 68% 38%; transform-origin: 68% 38%; transform: scale(1.75); }   /* commercial — fill frame with splash+figure, no empty bg */
.solx-grid .solx-card:nth-child(6) .solx-card__media img { object-position: 72% 18%; transform-origin: 72% 18%; }   /* licensing — image lower in frame */
.solx-grid .solx-card:nth-child(7) .solx-card__media img { object-position: 84% 44%; transform-origin: 84% 44%; }   /* talent group — image further left */
.solx-card__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(201,71,225,0.28) 0%, rgba(30,32,41,0.55) 100%); }
.solx-card__title { text-align: center; color: #ffffff; font-family: var(--font-body); font-size: clamp(1.25rem, 1.7vw, 1.55rem); font-weight: 900; letter-spacing: 0.005em; line-height: 1.3; margin: 0; padding: 1.2rem 1.1rem 1.4rem; flex: 1 1 auto; display: flex; align-items: center; justify-content: center; -webkit-text-stroke: 0.4px #ffffff; background: linear-gradient(180deg, #2a3560 0%, #1a2547 100%); box-shadow: 0 4px 24px rgba(40, 60, 120, 0.4); border-radius: 0 0 18px 18px; text-shadow: 0 2px 4px rgba(0,0,0,0.7), 0 0 14px rgba(0,0,0,0.55); }
.solx-card__reveal { position: absolute; top: 0; left: 0; right: 0; min-height: 100%; display: flex; flex-direction: column; justify-content: center; text-align: center; background: rgba(39, 42, 53, 0.62); background-image: linear-gradient(135deg, rgba(255,255,255,0.06), rgba(255,255,255,0) 40%); backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%); border: 1px solid rgba(201, 71, 225, 0.45); border-radius: 18px; box-shadow: 0 0 0 1px rgba(255,255,255,0.04), 0 20px 60px rgba(0,0,0,0.45), 0 0 40px rgba(201,71,225,0.25); padding: 28px 32px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .28s ease, transform .28s ease, visibility 0s linear .28s; z-index: 1; hyphens: none; -webkit-hyphens: none; overflow-wrap: normal; word-break: normal; }
/* bottom-row cards: reveal grows upward so it never overlaps the tagline below */
.solx-card:nth-child(6) .solx-card__reveal,
.solx-card:nth-child(7) .solx-card__reveal { top: auto; bottom: 0; }
.solx-card__reveal::-webkit-scrollbar { width: 6px; }
.solx-card__reveal::-webkit-scrollbar-thumb { background: var(--brand); border-radius: 3px; }
.solx-card__reveal-title { text-align: center; color: #f3f0f6; font-size: 20px; font-weight: 700; letter-spacing: 0.005em; line-height: 1.3; margin: 0 0 14px; hyphens: none; -webkit-hyphens: none; text-wrap: pretty; }
.solx-card__desc { color: #f3f0f6; font-weight: 500; font-size: clamp(15px, 1.1vw, 17px); line-height: 1.6; text-align: center; margin: 0 0 1.3rem; hyphens: none; -webkit-hyphens: none; overflow-wrap: normal; word-break: normal; text-wrap: pretty; }
.solx-explore { align-self: center; margin-top: 0.6rem; display: inline-flex; align-items: center; gap: 0.4rem; background: var(--brand); color: #fff; text-decoration: none; font-weight: 700; font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.6rem 1.3rem; border-radius: 2em; transition: transform .2s ease, box-shadow .2s ease; }
.solx-explore:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(201,71,225,0.45); }
/* hover / focus lift — in place, no reflow */
.solx-card:hover, .solx-card:focus-within { transform: translateY(-6px); z-index: 20; box-shadow: 0 26px 60px rgba(0,0,0,0.5), 0 0 30px rgba(201,71,225,0.55); border-color: var(--brand); outline: none; }
.solx-card:hover .solx-card__reveal, .solx-card:focus-within .solx-card__reveal { opacity: 1; visibility: visible; transform: translateY(0); transition: opacity .28s ease, transform .28s ease, visibility 0s; }
/* dim the other cards while one is active */
.solx-grid:has(.solx-card:hover) .solx-card:not(:hover),
.solx-grid:has(.solx-card:focus-within) .solx-card:not(:focus-within) { opacity: 0.5; }
@media (max-width: 1023px) { .solx-grid { grid-template-columns: repeat(2, 1fr); } .solx-card, .solx-card:nth-child(1), .solx-card:nth-child(6) { grid-column: auto; } }
@media (max-width: 600px) {
  .solx-grid { grid-template-columns: 1fr; }
  .solx-card, .solx-card:nth-child(1), .solx-card:nth-child(6) { grid-column: auto; }
  /* mobile: reveal sits inline below the card instead of overlapping */
  .solx-card__reveal { position: static; min-height: 0; max-height: 0; padding: 0 1.6rem; opacity: 1; visibility: visible; transform: none; border: 0; border-top: 1px solid rgba(201,71,225,0.3); border-radius: 0 0 18px 18px; box-shadow: none; overflow: hidden; transition: max-height .35s ease, padding .35s ease; }
  .solx-card:focus-within .solx-card__reveal, .solx-card:hover .solx-card__reveal { max-height: 600px; padding: 1.4rem 1.6rem; }
  .solx-grid:has(.solx-card:hover) .solx-card:not(:hover), .solx-grid:has(.solx-card:focus-within) .solx-card:not(:focus-within) { opacity: 1; }
}
.glass-card {
  background: rgba(255,255,255,0.04); backdrop-filter: blur(20px) saturate(130%); -webkit-backdrop-filter: blur(20px) saturate(130%);
  border: 1px solid rgba(255,255,255,0.08); border-radius: 20px; padding: 2rem;
  box-shadow: 0 8px 32px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.04);
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1), border-color 0.3s ease, box-shadow 0.3s ease;
}
.glass-card:hover { transform: translateY(-5px); border-color: rgba(201,71,225,0.3); background: linear-gradient(135deg, rgba(201,71,225,0.08), rgba(122,79,184,0.06), rgba(74,123,200,0.08)); box-shadow: 0 16px 48px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.06); }
.glass-card h3 { font-family: var(--font-body); font-size: 1.25rem; font-weight: 600; margin-bottom: 0.5rem; color: #FFFFFF; }
.glass-card p { font-size: 1.05rem; color: rgba(255,255,255,0.85); line-height: 1.5; text-align: left; }

.glass-card--on-light { background: rgba(255,255,255,0.55); border-color: rgba(255,255,255,0.8); box-shadow: 0 8px 32px rgba(20,20,40,0.06); }
.glass-card--on-light:hover { box-shadow: 0 16px 48px rgba(20,20,40,0.1); border-color: rgba(201,71,225,0.25); }
.glass-card--on-light h3 { color: #14141C; }
.glass-card--on-light p { color: rgba(20,20,28,0.85); }

.glass-card__num { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 2px solid var(--brand); border-radius: 50%; font-family: var(--font-body); font-size: 0.9rem; font-weight: 700; color: var(--brand); margin-bottom: 1rem; }

.glass-card--stat { text-align: center; padding: 2.5rem 1.5rem; }
.glass-card__big { display: block; font-family: var(--font-hero); font-size: clamp(2.5rem, 6vw, 4rem); font-weight: 400; color: var(--brand); line-height: 1; margin-bottom: 0.5rem; }
.glass-card--on-light .glass-card__big { color: var(--brand-2); }
.glass-card__label { font-size: 0.8rem; color: rgba(255,255,255,0.8); text-transform: uppercase; letter-spacing: 0.08em; }
.glass-card--on-light .glass-card__label { color: rgba(20,20,28,0.72); }

.glass-card--person { text-align: center; }
.avatar { width: 56px; height: 56px; border: 2px solid var(--brand); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--font-body); font-weight: 700; font-size: 1rem; color: var(--brand); margin: 0 auto 0.8rem; background: rgba(201,71,225,0.06); }

/* CTA */
.s-cta { border-top: 1px solid rgba(201,71,225,0.12); }

.cta-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.5rem;
}
.cta-row__actions {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  flex-shrink: 0;
}
.cta-linkedin {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: rgba(255,255,255,0.6);
  font-size: 0.9rem;
  font-weight: 500;
  transition: color 0.3s ease;
  text-decoration: none;
}
.cta-linkedin:hover { color: var(--brand); }

@media (max-width: 639px) {
  .cta-row { flex-direction: column; text-align: center; }
  .cta-row__actions { justify-content: center; }
}
.s-cta__btn { display: inline-block; padding: 1rem 2.5rem; background: var(--brand-2); color: #FFFFFF; font-family: var(--font-body); font-size: 1rem; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; border-radius: 999px; border: 1px solid rgba(201,71,225,0.4); box-shadow: 0 0 12px rgba(201,71,225,0.3), 0 0 30px rgba(201,71,225,0.1); transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; text-decoration: none; }
.s-cta__btn:hover { background: #2a5499; transform: translateY(-2px); box-shadow: 0 0 16px rgba(201,71,225,0.5), 0 8px 24px rgba(32,66,124,0.3); }

/* === CORE VALUES === */
.values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  margin-bottom: 3.5rem;
}

.values-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 3rem;
  max-width: 65%;
  text-align: left;
}

#values .glass-card {
  background: rgba(255,255,255,0.02);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.values-grid-2x2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.2rem;
  margin-bottom: 1.2rem;
}

.glass-card--impact {
  text-align: left;
  margin-bottom: 3rem;
}
.glass-card--impact .value-icon {
  margin-bottom: 1.2rem;
}

.value-item {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  padding: 1.5rem;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 12px;
  transition: all 0.3s ease;
}
.value-item:hover {
  background: rgba(255,255,255,0.14);
  border-color: rgba(201,71,225,0.3);
  box-shadow: 0 4px 20px rgba(201,71,225,0.15);
}

.value-item .value-icon {
  margin-bottom: 0;
  flex-shrink: 0;
}

.value-item h3 {
  font-family: var(--font-body);
  font-size: 1.15rem;
  font-weight: 600;
  color: #FFFFFF;
  margin-bottom: 0.3rem;
}

.value-item p {
  font-size: 1rem;
  color: rgba(255,255,255,0.75);
  line-height: 1.6;
}

.value-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: linear-gradient(135deg, var(--brand) 0%, #7A4FB8 50%, var(--brand-2) 100%);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1.2rem;
  box-shadow: 0 8px 24px rgba(201, 71, 225, 0.25);
  position: relative;
}
.value-icon::after {
  content: ''; position: absolute; inset: -5px;
  border: 1px solid rgba(201, 71, 225, 0.2); border-radius: 50%;
}
.value-icon svg { width: 24px; height: 24px; color: #fff; }

/* Featured class removed - all cards have same hover effect */

.o-circle-mini {
  display: inline-flex; width: 0.65em; height: 0.65em;
  border: 0.12em solid var(--brand); border-radius: 50%;
  vertical-align: -0.02em; margin: 0 0.02em;
}

.values-quote {
  max-width: 900px; margin: 0 auto;
  padding: 1.5rem 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  display: flex; align-items: center; gap: 1rem; text-align: left;
}
.values-quote--center {
  justify-content: center; text-align: center;
}
.s-dark .values-quote, .s-black .values-quote {
  border-top-color: rgba(255,255,255,0.1);
  border-bottom-color: rgba(255,255,255,0.1);
}
.s-dark .values-quote p, .s-black .values-quote p {
  color: #FFFFFF;
}
.values-quote p {
  font-family: var(--font-body); font-style: italic;
  font-size: clamp(1rem, 2vw, 1.3rem); font-weight: 300;
  color: #FFFFFF; margin: 0; line-height: 1.5;
}

@media (max-width: 1023px) {
  .values-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
  .values-grid { grid-template-columns: 1fr; }
  .values-quote { flex-direction: column; text-align: center; padding: 1rem; }
}

/* Scroll reveal */
.reveal-s { opacity: 0; transform: translateY(25px); transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1), transform 0.7s cubic-bezier(0.22,1,0.36,1); }
.reveal-s.in-view { opacity: 1; transform: translateY(0); }

/* Accordion glass cards */
.glass-grid:has(.glass-card--accordion) { align-items: start; }
.glass-card--accordion { padding: 0; cursor: pointer; min-height: 80px; }

/* Network cards special style — frosted ice glass with brand gradient */
#global .glass-card--accordion {
  background: linear-gradient(135deg, rgba(201,71,225,0.22) 0%, rgba(122,79,184,0.18) 45%, rgba(74,123,200,0.22) 100%);
  border: 1px solid rgba(255,255,255,0.25);
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);
  box-shadow:
    0 12px 40px rgba(0,0,0,0.45),
    inset 0 1px 0 rgba(255,255,255,0.3),
    inset 0 -1px 0 rgba(255,255,255,0.05);
}
#global .glass-card--accordion:hover {
  background: linear-gradient(135deg, rgba(201,71,225,0.35) 0%, rgba(122,79,184,0.28) 45%, rgba(74,123,200,0.35) 100%);
  border-color: rgba(255,255,255,0.4);
  box-shadow:
    0 20px 60px rgba(0,0,0,0.55),
    0 0 0 1px rgba(201,71,225,0.3),
    0 0 30px rgba(201,71,225,0.15),
    inset 0 1px 0 rgba(255,255,255,0.4);
}
.glass-card--accordion summary {
  padding: 1.5rem 2rem;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.glass-card--accordion summary::-webkit-details-marker { display: none; }
.glass-card--accordion summary::after {
  content: '+';
  font-size: 1.4rem;
  color: var(--brand);
  flex-shrink: 0;
  margin-left: 1rem;
  transition: transform 0.3s ease;
}
.glass-card--accordion[open] summary::after {
  content: '-';
}
.glass-card--accordion summary h3 { margin: 0; white-space: nowrap; }
.accordion-teaser { font-size: 0.9rem; color: rgba(255,255,255,0.5); margin: 0; font-style: italic; white-space: nowrap; }
.accordion-sep { width: 8px; height: 8px; flex-shrink: 0; }
.glass-card--accordion summary::after { margin-left: auto; }
.glass-card--on-light .accordion-teaser { color: rgba(20,20,28,0.78); }
.accordion-content { padding: 0 2rem 1.5rem; }
.accordion-content p { font-size: 1rem; color: rgba(255,255,255,0.8); line-height: 1.7; }
/* Uniform card height for the Global Networks accordion grid */
#global .glass-card--accordion { min-height: 100px; }
#global .glass-card--accordion summary { min-height: 100px; }

/* Global Networks: stronger, less faint copy (scoped to this section) */
#global .s-body--dark { color: rgba(20,20,28,0.82); }
#global .glass-card--on-light .accordion-teaser { color: rgba(20,20,28,0.95); }

.accordion-list {
  padding: 0 2rem 1.5rem;
  list-style: none;
}
.accordion-list li {
  font-size: 1rem;
  color: rgba(255,255,255,0.8);
  padding: 0.4rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  padding-left: 1.2rem;
  position: relative;
}
.accordion-list li:last-child { border-bottom: none; }
.accordion-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand);
  opacity: 0.6;
}

.glass-card--on-light .accordion-list li { color: rgba(20,20,28,0.92); border-bottom-color: rgba(20,20,28,0.08); }
.glass-card--on-light .accordion-content p { color: rgba(20,20,28,0.92); }
.rare-headline--dark { color: #14141C; }
.rare-statement--on-light .rare-sub { color: rgba(20,20,28,0.82); }

/* === RARE POWER STATEMENT === */
.rare-power { padding: clamp(3rem, 6vw, 5rem) 0; }

.rare-statement {
  text-align: center;
  padding: clamp(2rem, 5vw, 3rem) 2rem;
  position: relative;
  border-radius: 32px;
  overflow: visible;
  background: radial-gradient(ellipse at center, rgba(201,71,225,0.06) 0%, transparent 70%);
}

.rare-statement-rings {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none; z-index: 0;
}

.rs-ring {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
}

.rs-r1 { width: 200px; height: 200px; border: 2px solid rgba(201,71,225,0.35); animation: ringPulse 3.5s ease-out infinite; }
.rs-r2 { width: 400px; height: 400px; border: 1.5px solid rgba(201,71,225,0.25); animation: ringPulse 3.5s ease-out 0.6s infinite; }
.rs-r3 { width: 650px; height: 650px; border: 1.5px solid rgba(122,79,184,0.2); animation: ringPulse 3.5s ease-out 1.2s infinite; }
.rs-r4 { width: 950px; height: 950px; border: 1px solid rgba(74,123,200,0.15); animation: ringPulse 3.5s ease-out 1.8s infinite; }
.rs-r5 { width: 1300px; height: 1300px; border: 1px solid rgba(74,123,200,0.1); animation: ringPulse 3.5s ease-out 2.4s infinite; }

@keyframes ringPulse {
  0%   { transform: translate(-50%, -50%) scale(1); opacity: 1; }
  70%  { transform: translate(-50%, -50%) scale(1.6); opacity: 0; }
  71%  { transform: translate(-50%, -50%) scale(1); opacity: 0; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}

.rare-headline {
  font-family: var(--font-body);
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin-bottom: 1rem;
  position: relative; z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0.3em;
  align-items: center;
  color: #FFFFFF;
}

.rare-word { display: inline-block; }

.rare-word--grad {
  background: linear-gradient(135deg, #C947E1 0%, #7A4FB8 50%, #4A7BC8 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: gradShift 6s ease-in-out infinite alternate;
}

@keyframes gradShift {
  0%   { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

.rare-sub {
  font-size: clamp(1rem, 1.8vw, 1.25rem);
  color: rgba(20,20,28,0.55);
  margin: 0 auto 2rem;
  max-width: 600px;
  position: relative; z-index: 2;
  line-height: 1.5;
}

.rare-statement .s-cta__btn { position: relative; z-index: 2; }

@media (max-width: 639px) {
  .rs-r3 { width: 350px; height: 350px; }
  .rs-r2 { width: 240px; height: 240px; }
  .rs-r1 { width: 150px; height: 150px; }
}

/* Impact header with logos */
.impact-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-bottom: 2.5rem;
}
.impact-header__center { text-align: center; }
.impact-header__logo {
  height: 120px;
  width: 280px;
  object-fit: contain;
  flex-shrink: 0;
  background: none;
  border: none;
  padding: 0;
  filter: brightness(1.15);
}
/* When Impact section sits on a dark background, give logos a light backdrop so they stay readable */
.s-dark .impact-header__logo {
  background: rgba(255,255,255,0.96);
  padding: 0.7rem 1.1rem;
  border-radius: 10px;
  filter: brightness(1);
}

@media (max-width: 639px) {
  .impact-header { flex-direction: column; }
  .impact-header__logo { height: 60px; width: 200px; }
}

/* === Healing Wings Foundation — compact redesign === */
.hwf-subtitle {
  color: rgba(255,255,255,0.72);
  font-size: clamp(1.3rem, 2.5vw, 1.8rem);
  font-weight: 400; margin: 0;
}
.hwf-introrow { max-width: 880px; margin: 0 auto 2.2rem; }
.hwf-intro {
  color: rgba(255,255,255,0.8);
  font-size: clamp(0.98rem, 1.5vw, 1.1rem);
  line-height: 1.6; text-align: left; max-width: 460px; margin: 0;
}
.hwf-rarity {
  display: grid; grid-template-columns: 1.2fr 1fr;
  gap: clamp(1.5rem, 4vw, 3rem); align-items: start;
  max-width: 1000px; margin: 2.2rem auto 0;
}
.hwf-rarity__text p {
  color: rgba(255,255,255,0.85);
  font-size: clamp(1.1rem, 1.9vw, 1.3rem);
  line-height: 1.65; margin: 0 0 1.1rem;
}
.hwf-rarity__text p:last-child { margin-bottom: 0; }
/* Top-anchored so the larger circle grows downward (no room above);
   stats stack centred directly beneath the circle */
.hwf-rarity__viz { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; align-self: start; }
.hwf-rings { width: min(100%, 280px); height: auto; overflow: visible; }
.hwf-rings__label { font-family: var(--font-body); font-size: 15px; font-weight: 600; }
.hwf-rings__label--core { font-weight: 700; font-size: 16px; }
/* Slow impulses rippling out across the whole section, centred on the section */
.hwf-impulse {
  position: absolute; inset: 0; z-index: 1;
  display: grid; place-items: center;
  pointer-events: none; overflow: hidden;
}
.hwf-impulse__ring {
  position: absolute; width: 38vmax; height: 38vmax;
  border: 1.5px solid rgba(201,71,225,0.45);
  border-radius: 50%;
  opacity: 0;
  animation: hwfImpulse 16s ease-out infinite;
}
.hwf-impulse__ring--2 { animation-delay: 4s; }
.hwf-impulse__ring--3 { animation-delay: 8s; }
.hwf-impulse__ring--4 { animation-delay: 12s; }
@keyframes hwfImpulse {
  0%   { transform: scale(0.12); opacity: 0; }
  8%   { opacity: 0.4; }
  100% { transform: scale(5); opacity: 0; }
}

.hwf-stats {
  display: flex; flex-wrap: nowrap;
  justify-content: center;
  gap: 0.6rem;
  width: max-content; max-width: 100%;
  margin: 1.6rem auto 0;
}
/* All three stat boxes — same brand-magenta glow border, smaller, content-fit */
.hwf-stat {
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--brand);
  border-radius: 12px;
  padding: 0.65rem 1rem;
  text-align: center;
  box-shadow: 0 0 0 1px rgba(201,71,225,0.30), 0 8px 22px rgba(201,71,225,0.16);
}
.hwf-stat__label {
  display: block; color: rgba(255,255,255,0.75);
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.04em;
  text-transform: uppercase; margin-bottom: 0.3rem;
}
.hwf-stat__value {
  display: block; color: var(--brand);
  font-size: clamp(0.92rem, 1.4vw, 1.05rem); font-weight: 700;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .hwf-rarity { grid-template-columns: 1fr; }
  .hwf-stats  { flex-wrap: wrap; width: auto; gap: 0.6rem; }
  .hwf-stat   { padding: 0.6rem 0.9rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hwf-impulse__ring { animation: none; opacity: 0; }
}

/* === LEAFLET MAP === */
.leaflet-map {
  width: 100%;
  height: 500px;
  border-radius: 16px;
  border: 1px solid rgba(20,20,28,0.1);
  margin: 2rem 0;
}

/* Custom marker pulse */
.map-marker-pulse {
  width: 14px; height: 14px;
  background: var(--brand);
  border-radius: 50%;
  border: 2px solid #FFFFFF;
  box-shadow: 0 0 8px rgba(201,71,225,0.5), 0 0 20px rgba(201,71,225,0.2);
  animation: markerPulse 2.5s ease-in-out infinite;
}
@keyframes markerPulse {
  0%, 100% { box-shadow: 0 0 8px rgba(201,71,225,0.5), 0 0 20px rgba(201,71,225,0.2); }
  50% { box-shadow: 0 0 14px rgba(201,71,225,0.8), 0 0 35px rgba(201,71,225,0.4); }
}

/* Tooltip styling */
.leaflet-popup-content-wrapper {
  background: #29303A;
  color: #FFFFFF;
  border-radius: 10px;
  font-family: var(--font-body);
  font-size: 0.9rem;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
.leaflet-popup-tip { background: #29303A; }
.leaflet-popup-content { margin: 10px 14px; min-width: 180px; }
.leaflet-popup-content strong { color: var(--brand); }
.map-popup__city { color: #FFFFFF; font-size: 1rem; font-weight: 700; line-height: 1.2; }
.map-popup__country { color: var(--brand); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; margin-top: 0.15rem; }
.map-popup__companies { margin-top: 0.45rem; padding-top: 0.45rem; border-top: 1px solid rgba(255,255,255,0.12); }
.map-popup__company { color: rgba(255,255,255,0.9); font-size: 0.82rem; font-weight: 500; line-height: 1.35; padding: 0.18rem 0; }
.map-popup__company + .map-popup__company { border-top: 1px solid rgba(255,255,255,0.08); }
.map-popup__coverage { margin-top: 0.5rem; padding: 0.35rem 0.7rem; background: rgba(201,71,225,0.15); border: 1px solid rgba(201,71,225,0.4); border-radius: 999px; color: var(--brand); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.03em; text-align: center; display: inline-block; }
.map-popup__markets { margin-top: 0.35rem; color: rgba(255,255,255,0.7); font-size: 0.7rem; font-weight: 500; letter-spacing: 0.02em; line-height: 1.4; }

/* Map legend */
.map-legend {
  background: rgba(20,20,28,0.85);
  border: 1px solid rgba(201,71,225,0.35);
  border-radius: 10px;
  padding: 0.6rem 0.9rem;
  color: #FFFFFF;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.6;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 4px 18px rgba(0,0,0,0.35);
}
/* "Your bridge to international" — crisper white text (was too faint) */
#reach .s-sub { color: #FFFFFF; }
#reach .fa-stat--dark .fa-stat__label { color: rgba(255,255,255,0.95); font-weight: 700; }
#reach .fa-prose p { color: #FFFFFF; }
#reach .map-legend { color: #FFFFFF; font-weight: 600; }
.map-legend__row { display: flex; align-items: center; gap: 0.55rem; }
.map-legend__dot {
  width: 12px; height: 12px;
  background: var(--brand);
  border: 2px solid #FFFFFF;
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(201,71,225,0.6);
  flex-shrink: 0;
}
.map-legend__swatch {
  width: 16px; height: 12px;
  background: rgba(212,112,220,0.55);
  border: 1px solid rgba(201,71,225,0.85);
  border-radius: 3px;
  flex-shrink: 0;
}

/* Make pulse markers always sit above country fills */
.map-marker-pulse { position: relative; z-index: 600; }
.leaflet-overlay-pane svg path { pointer-events: none; }

/* Soften the light CARTO tiles into a darker, neutral mid-grey */
.leaflet-tile--soft { display: none !important; }
.leaflet-container,
.leaflet-tile-pane,
.leaflet-pane { background: #29303A !important; }

/* === Track Record bubble grid (shared between whatwedo.html + insights.html) === */
.tr-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.4rem 1rem; margin-top: 1.5rem; align-items: start; }
.tr-bubble { position: relative; width: 100%; aspect-ratio: 1; max-width: 210px; margin: 0 auto;
  border: none; border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 0.8rem; box-sizing: border-box;
  background: rgba(255,255,255,0.35);
  transition: transform 0.3s ease, box-shadow 0.3s ease; }
.tr-bubble:hover { transform: translateY(-3px); box-shadow: 0 0 25px rgba(201,71,225,0.25); }
.tr-bubble__ring { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.tr-bubble__ring circle { fill: none; cx: 50; cy: 50; r: 48.5; stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.tr-bubble__ring-bg { stroke: rgba(201,71,225,0.18); }
.tr-bubble__ring-fg {
  stroke: rgba(201,71,225,0.9); stroke-linecap: butt;
  stroke-dasharray: 330 330; stroke-dashoffset: 330;
  transform: rotate(-90deg); transform-origin: 50% 50%;
  transition: stroke-dashoffset 2.6s linear;
}
.tr-bubble.in-view .tr-bubble__ring-fg { stroke-dashoffset: 25; }
.tr-bubble__num { font-family: var(--font-body); font-size: clamp(1.4rem, 2.4vw, 2.1rem); font-weight: 700; color: rgba(0,0,0,0.88); line-height: 1.05; }
.tr-bubble__num small { font-size: 0.55em; font-weight: 500; color: rgba(0,0,0,0.6); margin-left: 0.2em; }
.tr-bubble__label { font-size: clamp(0.78rem, 1vw, 0.92rem); color: rgba(0,0,0,0.78); font-weight: 500; line-height: 1.25; margin-top: 0.3rem; }
.tr-bubble__years { display: block; font-size: clamp(0.7rem, 0.85vw, 0.78rem); color: rgba(0,0,0,0.55); font-weight: 400; margin-top: 0.2rem; }
.tr-bubble__sub { display: block; font-size: clamp(0.78rem, 0.95vw, 0.88rem); color: rgba(0,0,0,0.78); font-weight: 600; margin-top: 0.25rem; }
.tr-bubble--dual { gap: 0.1rem; }
.tr-bubble__dual { display: flex; gap: 0.8rem; align-items: baseline; justify-content: center; }
.tr-bubble__dual > div { display: flex; flex-direction: column; align-items: center; }
.tr-bubble__dual span.n { font-size: clamp(1.3rem, 2.1vw, 1.8rem); font-weight: 700; color: rgba(0,0,0,0.88); line-height: 1; }
.tr-bubble__dual span.l { font-size: clamp(0.72rem, 0.9vw, 0.82rem); color: rgba(0,0,0,0.7); font-weight: 500; margin-top: 0.15rem; }
.tr-bubble--triple span.n { font-size: clamp(1.2rem, 1.9vw, 1.6rem); }
.tr-bubble--text .tr-bubble__num { font-size: clamp(0.7rem, 0.95vw, 0.85rem); font-weight: 600; line-height: 1.25; }
.tr-cat { text-align: center; color: var(--brand); font-size: clamp(0.85rem, 1.1vw, 1.05rem); font-weight: 600; padding-top: 0.3rem; border-top: 1px solid rgba(201,71,225,0.2); margin: 0 0.5rem; }
@media (max-width: 900px) { .tr-grid { grid-template-columns: repeat(3, 1fr); } .tr-cat { display: none; } }
@media (max-width: 520px) { .tr-grid { grid-template-columns: repeat(2, 1fr); } }
.tr-logos { display: flex; align-items: center; justify-content: center; gap: 3rem; margin-top: 3rem; flex-wrap: wrap; padding-top: 2rem; border-top: 1px solid rgba(201,71,225,0.18); }
.tr-logo { height: 130px; width: auto; max-width: 200px; object-fit: contain; mix-blend-mode: multiply; transition: transform 0.3s ease, filter 0.3s ease; }
.tr-logo:hover { transform: translateY(-4px); filter: brightness(1.05); }
.tr-logo--wide { max-width: 320px; height: 110px; }
.tr-logo--circle { border-radius: 50%; width: 130px; height: 130px; max-width: 130px; object-fit: cover; mix-blend-mode: normal; }
@media (max-width: 640px) { .tr-logo { height: 90px; max-width: 140px; } .tr-logo--wide { max-width: 220px; height: 80px; } .tr-logos { gap: 1.5rem; } }

/* "Coming soon" notice card */
.coming-soon {
  text-align: center; max-width: 720px; margin: 0 auto;
  padding: 2.5rem 2rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(201,71,225,0.3);
  border-radius: 24px;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.coming-soon--small { max-width: 560px; padding: 2rem 1.8rem; }
.coming-soon__badge { display: inline-block; background: rgba(201,71,225,0.15); border: 1px solid rgba(201,71,225,0.4); border-radius: 2em; padding: 0.4rem 1.2rem; color: var(--brand); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 1.2rem; }
.coming-soon__title { font-family: var(--font-body); font-size: clamp(1.4rem, 2.4vw, 1.9rem); font-weight: 600; color: #FFFFFF; margin: 0 0 0.8rem; line-height: 1.25; }
.coming-soon--small .coming-soon__title { font-size: clamp(1.2rem, 2vw, 1.6rem); }
.coming-soon__text { color: rgba(255,255,255,0.78); font-size: clamp(0.95rem, 1.3vw, 1.1rem); line-height: 1.6; margin: 0; }
.coming-soon--small .coming-soon__text { font-size: clamp(0.9rem, 1.2vw, 1rem); }
.coming-soon__cta { display: inline-block; margin-top: 1.8rem; }

/* Followup block below the card */
.coming-soon-followup { text-align: center; max-width: 640px; margin: 2.5rem auto 0; }
.coming-soon-followup__text { color: rgba(255,255,255,0.85); font-size: clamp(1.1rem, 1.8vw, 1.4rem); font-weight: 500; line-height: 1.4; margin: 0 0 1.8rem; }
.coming-soon-followup__cta { display: inline-block; }

/* === Event cards (Insights page) === */
.event-card {
  background: rgba(255,255,255,0.6);
  border: 1px solid rgba(201,71,225,0.25);
  border-radius: 20px;
  padding: 2rem 2.2rem;
  margin: 0 auto 1.5rem;
  max-width: 920px;
  box-shadow: 0 8px 28px rgba(20,20,40,0.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.event-card--featured { background: rgba(255,255,255,0.78); border-color: rgba(201,71,225,0.45); box-shadow: 0 12px 36px rgba(201,71,225,0.12); }
.event-card__top { display: flex; gap: 1.5rem; align-items: flex-start; margin-bottom: 1.6rem; flex-wrap: wrap; }
.event-card__official-logo { flex: 0 0 280px; max-width: 320px; height: auto; object-fit: contain; align-self: center; margin-left: auto; }
@media (max-width: 640px) {
  .event-card__official-logo { flex-basis: 200px; max-width: 100%; margin: 0.5rem auto 0; }
}
.event-logo {
  flex: 0 0 130px; aspect-ratio: 1; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: linear-gradient(135deg, #C947E1 0%, #7A4FB8 50%, #4A7BC8 100%);
  color: #FFFFFF; border-radius: 16px;
  text-align: center; padding: 1rem;
  box-shadow: 0 8px 22px rgba(201,71,225,0.3);
}
.event-logo__line1 { font-family: var(--font-hero); font-size: 2.4rem; font-weight: 700; line-height: 1; letter-spacing: 0.05em; }
.event-logo__line2 { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; margin-top: 0.35rem; white-space: nowrap; }
.event-card__meta { flex: 1 1 320px; min-width: 0; }
.event-card__pill { display: inline-block; background: linear-gradient(135deg, #C947E1, #7A4FB8); color: #FFFFFF; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 0.35rem 0.9rem; border-radius: 999px; margin-bottom: 0.7rem; }
.event-card__title { font-family: var(--font-body); font-size: clamp(1.25rem, 2.2vw, 1.7rem); font-weight: 700; color: #14141C; margin: 0 0 0.4rem; line-height: 1.25; }
.event-card__where { color: rgba(20,20,28,0.7); font-size: 1.02rem; font-weight: 500; margin: 0 0 0.5rem; }
.event-card__booth { color: rgba(20,20,28,0.85); font-size: 1.02rem; margin: 0; }
.event-card__booth strong { color: var(--brand); }
.event-card__speech { background: rgba(201,71,225,0.06); border-left: 3px solid var(--brand); padding: 1.2rem 1.4rem; border-radius: 6px; margin-bottom: 1.5rem; }
.event-card__speech-meta { color: var(--brand); font-size: 0.95rem; font-weight: 600; letter-spacing: 0.04em; margin: 0 0 0.3rem; }
.event-card__speech-meta strong { font-weight: 700; }
.event-card__speech-meta--big { font-size: clamp(1.15rem, 1.8vw, 1.45rem); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 0.2rem; }
.event-card__speech-title { font-family: var(--font-body); font-size: clamp(1.1rem, 1.7vw, 1.3rem); font-weight: 700; color: #14141C; margin: 0 0 0.8rem; line-height: 1.3; }
.event-card__speech p { color: rgba(20,20,28,0.78); font-size: 0.95rem; line-height: 1.6; margin: 0 0 0.8rem; }
.event-card__speech p:last-of-type { margin-bottom: 0; }
.event-card__speech-led { font-size: 0.82rem !important; color: rgba(20,20,28,0.55) !important; font-style: italic; margin-top: 0.8rem !important; }
.event-card__speech-led strong { color: var(--brand); font-style: normal; font-weight: 700; }
.event-card__links { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.event-card__link {
  display: inline-flex; align-items: center; gap: 0.4rem;
  background: rgba(201,71,225,0.12); border: 1px solid rgba(201,71,225,0.4);
  color: var(--brand); font-size: 0.88rem; font-weight: 600;
  padding: 0.55rem 1rem; border-radius: 999px;
  text-decoration: none; transition: all 0.25s ease;
}
.event-card__link:hover { background: rgba(201,71,225,0.2); border-color: var(--brand); transform: translateY(-1px); }
.event-card__link svg { stroke: currentColor; }

.event-card--secondary { padding: 1.6rem 2rem; }
.event-card--secondary .event-card__title { font-size: clamp(1.1rem, 1.8vw, 1.4rem); }
.event-card__dates { list-style: none; padding: 0; margin: 0.8rem 0 1rem; }
.event-card__dates li { color: rgba(20,20,28,0.78); font-size: 0.95rem; padding: 0.3rem 0; border-bottom: 1px solid rgba(201,71,225,0.12); }
.event-card__dates li:last-child { border-bottom: none; }
.event-card__dates li span { display: inline-block; color: var(--brand); font-weight: 700; min-width: 180px; }
.event-card__intro { color: rgba(20,20,28,0.7); font-style: italic; font-size: 0.95rem; margin: 0 0 1rem; }

@media (max-width: 640px) {
  .event-card { padding: 1.4rem 1.4rem; }
  .event-card__top { gap: 1rem; }
  .event-logo { flex-basis: 96px; }
  .event-logo__line1 { font-size: 1.7rem; }
  .event-logo__line2 { font-size: 0.7rem; }
  .event-card__dates li span { display: block; min-width: 0; margin-bottom: 0.15rem; }
}

@media (max-width: 639px) {
  .leaflet-map { height: 350px; }
}

.map-stats {
  display: flex;
  justify-content: center;
  gap: 3rem;
  margin-top: 2rem;
  flex-wrap: wrap;
}
.map-stats__date {
  text-align: center;
  margin: 0.6rem 0 0;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #1B5090;
}
.map-stat { text-align: center; }
.map-stat__num {
  display: block;
  font-family: var(--font-hero);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  line-height: 1;
  background: linear-gradient(135deg, #1B5090 0%, #7A4FB8 55%, #C947E1 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.map-stat__label {
  font-size: 0.8rem;
  color: rgba(20,20,28,0.5);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Office marquee */
.office-marquee {
  margin-top: 2.5rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(20,20,28,0.08);
  border-bottom: 1px solid rgba(20,20,28,0.08);
  overflow: hidden;
}

/* Wrapper for "leave no patient behind" tagline + office cities marquee — on light section, no dark band */
.office-band {
  margin-top: 2.5rem;
}
.office-band__tagline {
  text-align: center;
  margin: 0 auto 1.5rem;
  max-width: 920px;
  padding: 0 1.5rem;
  font-family: var(--font-body);
  font-style: italic;
  font-size: clamp(1.3rem, 2.5vw, 1.8rem);
  font-weight: 400;
  line-height: 1.4;
  color: rgba(20,20,28,0.8);
}

/* === PLATFORM AT A GLANCE — 5-card summary on grey/dark section === */
#platform { position: relative; overflow: hidden; }
#platform::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 12% 18%, rgba(201,71,225,0.10), transparent 55%),
    radial-gradient(ellipse at 88% 82%, rgba(74,123,200,0.12), transparent 55%);
  pointer-events: none;
  z-index: 0;
}
#platform > .s-inner { position: relative; z-index: 1; }

.platform-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
  max-width: 1100px;
  margin: 0 auto 3.5rem;
}
.platform-card {
  position: relative;
  background:
    linear-gradient(135deg, rgba(15,15,22,0.82) 0%, rgba(15,15,22,0.88) 55%, rgba(15,15,22,0.92) 100%),
    var(--card-bg-image, none) center/cover no-repeat,
    rgba(255,255,255,0.04);
  border: 1px solid rgba(201,71,225,0.18);
  border-radius: 14px;
  padding: 2rem 1.6rem 1.7rem;
  text-align: left;
  transition: transform 0.3s ease, border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
  overflow: hidden;
}
.platform-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--brand) 0%, rgba(122,79,184,0.6) 60%, transparent 100%);
  z-index: 2;
}
.platform-card > * { position: relative; z-index: 1; }
.platform-card:hover {
  transform: translateY(-4px);
  border-color: rgba(201,71,225,0.42);
  background:
    linear-gradient(135deg, rgba(15,15,22,0.70) 0%, rgba(15,15,22,0.78) 55%, rgba(15,15,22,0.85) 100%),
    var(--card-bg-image, none) center/cover no-repeat,
    rgba(201,71,225,0.06);
  box-shadow: 0 14px 40px rgba(0,0,0,0.42);
}
.platform-card__num {
  display: block;
  font-family: var(--font-hero);
  font-size: 2.1rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--brand);
  line-height: 1;
  margin-bottom: 0.7rem;
}
.platform-card__title {
  color: #FFFFFF;
  font-family: var(--font-body);
  font-size: 1.15rem;
  font-weight: 700;
  margin: 0 0 0.7rem;
  letter-spacing: 0.005em;
}
.platform-card__body {
  color: rgba(255,255,255,0.74);
  font-size: 0.95rem;
  line-height: 1.55;
  margin: 0;
}
/* 6 cards in 3+3 layout — handled by the 3-column grid above */

@media (max-width: 1023px) {
  .platform-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
  .platform-grid { grid-template-columns: 1fr; gap: 1rem; }
}

/* Finale — closing tagline */
.platform-finale {
  margin-top: 1rem;
  padding: 2.5rem 1.5rem 1rem;
  text-align: center;
  position: relative;
}
.platform-finale::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: min(420px, 70%);
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(201,71,225,0.6) 50%, transparent 100%);
}
.platform-finale__line {
  font-family: var(--font-body);
  font-size: clamp(1.3rem, 2.5vw, 1.8rem);
  font-weight: 300;
  font-style: italic;
  color: rgba(255,255,255,0.78);
  letter-spacing: 0.015em;
  margin: 0 0 0.8rem;
}
.platform-finale__hero {
  display: inline-block;
  font-family: var(--font-hero);
  font-size: clamp(2.4rem, 6vw, 4.5rem);
  font-weight: 400;
  background: linear-gradient(90deg, #C947E1 0%, #7A4FB8 50%, #4A7BC8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: 0.04em;
  line-height: 1.05;
  margin: 0;
  text-transform: uppercase;
}
.platform-finale__hero .dot-ring {
  -webkit-text-fill-color: var(--brand);
  background: none;
  margin-left: 0.4rem;
}

/* Brand-coloured question mark — the "?" dot acts as the brand dot, no extra dot-ring */
.qmark-brand { color: var(--brand); }

/* Screen-reader-only utility (hides visually, keeps for assistive tech) */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.office-marquee__track {
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.office-marquee__inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  white-space: nowrap;
  animation: officeScroll 24s linear infinite;
  flex-shrink: 0;
}
.office-marquee__inner span {
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  color: rgba(20,20,28,0.85);
  flex-shrink: 0;
}
.office-sep {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--brand);
  opacity: 0.4;
  flex-shrink: 0;
}
.office-marquee__track:hover .office-marquee__inner {
  animation-play-state: paused;
}
@keyframes officeScroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* === CLIENT MARQUEE (now embedded within Global Footprint section) === */
.client-marquee {
  padding: 3rem 0 1rem;
  position: relative;
  z-index: 1;
}
.client-marquee__label {
  text-align: center;
  font-family: var(--font-body);
  font-size: clamp(1.3rem, 2.5vw, 1.8rem);
  font-weight: 300;
  font-style: italic;
  color: rgba(20,20,28,0.8);
  margin: 0 0 2.4rem;
}
.client-marquee__track {
  overflow: hidden;
  padding: 1rem 0;
  border-top: 1px solid rgba(20,20,28,0.08);
  border-bottom: 1px solid rgba(20,20,28,0.08);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 6%, #000 94%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, #000 6%, #000 94%, transparent 100%);
}
.client-marquee__inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  white-space: nowrap;
  animation: clientScroll 420s linear infinite;
  width: max-content;
}
.client-marquee__inner span {
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: rgba(20,20,28,0.85);
  flex-shrink: 0;
}
.client-sep {
  width: 4px; height: 4px; border-radius: 50%;
  background: var(--brand);
  opacity: 0.4;
  flex-shrink: 0;
}
.client-marquee__track:hover .client-marquee__inner {
  animation-play-state: paused;
}
/* Dark variant — light text on dark background */
.client-marquee--dark .client-marquee__inner span { color: rgba(255,255,255,0.85); }
.client-marquee--dark .client-marquee__track { border-top-color: rgba(255,255,255,0.1); border-bottom-color: rgba(255,255,255,0.1); }
@keyframes clientScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (max-width: 640px) {
  .client-marquee__inner span { font-size: 0.85rem; }
  .client-marquee__inner { gap: 1.1rem; }
}
/* Client-marquee search box */
.client-search {
  position: relative;
  display: flex; align-items: center; gap: 0.5rem;
  max-width: 340px; margin: 0 auto 1.8rem;
  background: #FFFFFF;
  border: 1px solid rgba(20,20,28,0.12);
  border-radius: 2em;
  padding: 0.55rem 1.1rem;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.client-search:focus-within {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(201,71,225,0.12);
}
.client-search__icon { width: 18px; height: 18px; color: rgba(20,20,28,0.45); flex-shrink: 0; }
.client-search:focus-within .client-search__icon { color: var(--brand); }
.client-search__input {
  flex: 1; min-width: 0;
  border: none; outline: none; background: transparent;
  font-family: var(--font-body); font-size: 0.95rem;
  color: rgba(20,20,28,0.9);
}
.client-search__input::placeholder { color: rgba(20,20,28,0.4); }
.client-search__clear {
  border: none; background: transparent; cursor: pointer;
  color: rgba(20,20,28,0.4); font-size: 1.3rem; line-height: 1;
  padding: 0 0.15rem; flex-shrink: 0;
}
.client-search__clear:hover { color: var(--brand); }
.client-marquee__inner span.is-match { color: var(--brand); font-weight: 700; }
/* Dark variant */
.client-marquee--dark .client-search {
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.18);
}
.client-marquee--dark .client-search__input { color: rgba(255,255,255,0.9); }
.client-marquee--dark .client-search__input::placeholder { color: rgba(255,255,255,0.45); }
.client-marquee--dark .client-search__icon { color: rgba(255,255,255,0.5); }
.client-marquee--dark .client-search__clear { color: rgba(255,255,255,0.5); }
/* Autocomplete dropdown */
.client-search__results {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0;
  background: #FFFFFF;
  border: 1px solid rgba(20,20,28,0.12);
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(20,20,28,0.14);
  max-height: 264px; overflow-y: auto;
  padding: 0.35rem; z-index: 40;
  display: none; text-align: left;
}
.client-search__results.is-open { display: block; }
.client-search__option {
  display: block; width: 100%; text-align: left;
  border: none; background: transparent; cursor: pointer;
  font-family: var(--font-body); font-size: 0.95rem; letter-spacing: 0.02em;
  color: rgba(20,20,28,0.85);
  padding: 0.55rem 0.8rem; border-radius: 8px;
}
.client-search__option:hover,
.client-search__option.is-active { background: rgba(201,71,225,0.10); color: var(--brand); }
.client-search__empty {
  padding: 0.6rem 0.8rem;
  font-family: var(--font-body); font-size: 0.9rem; font-style: italic;
  color: rgba(20,20,28,0.5);
}
/* Dark variant */
.client-marquee--dark .client-search__results {
  background: #1B1B24; border-color: rgba(255,255,255,0.15);
  box-shadow: 0 12px 30px rgba(0,0,0,0.4);
}
.client-marquee--dark .client-search__option { color: rgba(255,255,255,0.85); }
.client-marquee--dark .client-search__option:hover,
.client-marquee--dark .client-search__option.is-active { background: rgba(201,71,225,0.22); color: #FFFFFF; }
.client-marquee--dark .client-search__empty { color: rgba(255,255,255,0.5); }
/* Detached (body-level) dropdown — dark-variant styling via modifier class */
.client-search__results--dark { background: #1B1B24; border-color: rgba(255,255,255,0.15); box-shadow: 0 12px 30px rgba(0,0,0,0.45); }
.client-search__results--dark .client-search__option { color: rgba(255,255,255,0.85); }
.client-search__results--dark .client-search__option:hover,
.client-search__results--dark .client-search__option.is-active { background: rgba(201,71,225,0.22); color: #FFFFFF; }
.client-search__results--dark .client-search__empty { color: rgba(255,255,255,0.55); }

/* Meaning section image */
.meaning-img { width: 180%; max-width: none; border-radius: 16px; opacity: 0.72; margin-left: -40%; }

/* === TEAM GRID === */
.team-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.8rem;
  align-items: start;
}
#board .s-inner { max-width: min(1150px, 90vw); }
.team-grid--advisory {
  grid-template-columns: repeat(2, 1fr);
  max-width: 500px;
  margin: 0 auto;
}

.team-card {
  background: rgba(255,255,255,0.5);
  border: 1px solid rgba(201,71,225,0.12);
  border-radius: 16px;
  overflow: visible;
  cursor: pointer;
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
/* On dark/black sections, team-cards need a more opaque white backdrop so the dark text stays readable */
.s-dark .team-card,
.s-black .team-card {
  background: rgba(255,255,255,0.94);
  border-color: rgba(201,71,225,0.25);
}
.team-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(20,20,40,0.1);
  border-color: rgba(201,71,225,0.3);
}
.s-dark .team-card:hover,
.s-black .team-card:hover {
  background: #FFFFFF;
  border-color: rgba(201,71,225,0.45);
  box-shadow: 0 14px 36px rgba(0,0,0,0.35);
}
.team-card[open],
.team-card[open]:hover {
  z-index: 20;
  border-color: var(--brand);
  box-shadow: 0 14px 36px rgba(201,71,225,0.18);
  transform: none;
}
.team-card summary {
  list-style: none;
  padding: 0 0 0.9rem;
  text-align: center;
  position: relative;
}
.team-card summary::-webkit-details-marker { display: none; }

.team-card__photo-wrap {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 16px 16px 0 0;
  margin: 0 0 0.8rem;
  background: linear-gradient(135deg, rgba(201,71,225,0.06), rgba(74,123,200,0.06));
}
.team-card__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center var(--photo-y, 22%);
  transform: scale(var(--photo-scale, 1));
  transform-origin: center top;
  display: block;
}
/* Soft fade-to-card at the bottom edge (mimics the baked-in fog of the other portraits) */
.team-card__photo-wrap--fade { position: relative; }
.team-card__photo-wrap--fade::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0; height: 45%;
  background: linear-gradient(to bottom, rgba(244,244,246,0) 0%, rgba(244,244,246,0.55) 62%, rgba(244,244,246,0.92) 100%);
  pointer-events: none;
}

.team-card__placeholder {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 16px 16px 0 0;
  background: linear-gradient(135deg, rgba(201,71,225,0.1), rgba(74,123,200,0.1));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  font-size: 2rem;
  font-weight: 700;
  color: var(--brand);
  margin: 0 0 0.8rem;
}

.team-flag {
  position: absolute;
  top: 0.55rem;
  left: 0.55rem;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #FFFFFF;
  box-shadow: 0 2px 6px rgba(0,0,0,0.18), 0 0 0 1.5px #FFFFFF inset;
  overflow: hidden;
  display: block;
  z-index: 2;
  clip-path: circle(50% at 50% 50%);
}
.team-flag img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  clip-path: circle(50% at 50% 50%);
}

.team-card h3 {
  font-family: var(--font-body);
  font-size: clamp(0.7rem, 0.9vw, 0.82rem);
  font-weight: 700;
  letter-spacing: 0.015em;
  color: #14141C;
  margin: 0 0 0.25rem;
  padding: 0 0.5rem;
  line-height: 1.2;
}

.team-card__role {
  font-size: clamp(0.6rem, 0.75vw, 0.72rem);
  color: var(--brand);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.25;
  margin: 0;
  padding: 0 0.5rem;
}
.team-card__role-sub {
  display: inline-block;
  font-size: 0.82em;
  font-weight: 500;
  opacity: 0.78;
  margin-top: 0.15rem;
}
@media (max-width: 1023px) {
  .team-card h3 { font-size: 0.95rem; }
  .team-card__role { font-size: 0.85rem; }
}

.team-card summary::after {
  content: "See CV \2192";
  display: inline-block;
  margin-top: 0.6rem;
  padding: 0.3rem 0.75rem;
  font-family: var(--font-body);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brand);
  background: rgba(201, 71, 225, 0.08);
  border: 1px solid rgba(201, 71, 225, 0.3);
  border-radius: 999px;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.team-card:hover summary::after,
.team-card[open] summary::after {
  background: var(--brand);
  color: #FFFFFF;
  border-color: var(--brand);
  transform: translateY(-1px);
}
.team-card[open] summary::after { content: "Close \2715"; }

.team-card__bio {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.96);
  width: min(560px, calc(100vw - 2rem));
  max-height: min(80vh, 620px);
  overflow-y: auto;
  background: #FFFFFF;
  border: 1px solid var(--brand);
  border-radius: 14px;
  padding: 2rem 2.6rem 2rem 2rem;
  box-shadow: 0 32px 80px rgba(20,20,40,0.32);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 200ms ease-out, transform 200ms ease-out, visibility 0s linear 200ms;
  scrollbar-width: thin;
  scrollbar-color: var(--brand) transparent;
}
.team-card__bio.is-open {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%) scale(1);
  pointer-events: auto;
  transition: opacity 200ms ease-out, transform 200ms ease-out, visibility 0s linear 0s;
}
.team-card__bio::-webkit-scrollbar { width: 6px; }
.team-card__bio::-webkit-scrollbar-thumb { background: var(--brand); border-radius: 3px; }
.team-card__bio::-webkit-scrollbar-track { background: transparent; }

.team-card__bio-close {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid rgba(201,71,225,0.35);
  background: rgba(255,255,255,0.95);
  color: var(--brand);
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
  z-index: 2;
}
.team-card__bio-close:hover {
  background: var(--brand);
  color: #FFFFFF;
  border-color: var(--brand);
  transform: scale(1.05);
}
.team-card__bio-close:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}
.team-card summary:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 3px;
  border-radius: 16px;
}
/* Arrow removed: bio is now viewport-centered, not anchored to a card */

.team-bio-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 15, 30, 0.55);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 999;
  transition: opacity 200ms ease-out, visibility 0s linear 200ms;
}
.team-bio-backdrop.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 200ms ease-out, visibility 0s linear 0s;
}
body.team-bio-open { overflow: hidden; }
.team-card__bio p {
  font-size: 0.95rem;
  color: rgba(20,20,28,0.92);
  font-weight: 500;
  line-height: 1.6;
  margin: 0 0 0.8rem;
}
.team-card__bio p:last-child { margin-bottom: 0; }

/* CV modal heading — name + positions repeated above the CV text */
.team-card__bio-head {
  margin: 0 0 1rem;
  padding: 0 0 0.9rem;
  border-bottom: 1px solid rgba(201,71,225,0.25);
}
.team-card__bio-name {
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #14141C;
  margin: 0 0 0.3rem;
  line-height: 1.2;
}
.team-card__bio-role {
  font-size: 0.9rem;
  color: var(--brand);
  font-weight: 600;
  line-height: 1.35;
  margin: 0;
  padding: 0;
}

/* Bio width is set on .team-card__bio with min(560px, calc(100vw - 2rem)) — uniform across viewports */

@media (max-width: 1023px) {
  .team-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 639px) {
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .team-grid--advisory { grid-template-columns: repeat(2, 1fr); }
}

/* Advisory Board compact row */
.advisory-row { display: flex; gap: 3rem; flex-wrap: wrap; margin-top: 2.5rem; }
.advisory-item { display: flex; align-items: center; gap: 1rem; color: #14141C; font-size: 1.15rem; }
.advisory-item small { color: rgba(20,20,28,0.6); }

/* Sub-page hero (smaller) — solid dark, matches home hero */
.hero--sub {
  min-height: 0;
  padding-top: calc(var(--topbar-h) + 1rem);
  padding-bottom: 1.5rem;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  background: var(--bg-dark);
}
.hero--sub .hero__eyebrow { margin-bottom: 0.6rem; }
.hero--sub .hero__lead { margin-top: 0.7rem; }
.hero--sub .hero__title,
.hero--sub .hero__title--gradient { text-transform: none !important; white-space: normal; }
.hero--sub::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(201,71,225,0.55) 25%, rgba(122,79,184,0.45) 50%, rgba(74,123,200,0.55) 75%, transparent 100%);
  z-index: 1;
}
.hero--sub::after {
  content: '';
  position: absolute; inset: -10%;
  background:
    radial-gradient(circle 220px at 30% 40%, rgba(201,71,225,0.10) 0%, transparent 70%),
    radial-gradient(circle 260px at 72% 62%, rgba(74,123,200,0.10) 0%, transparent 70%),
    radial-gradient(circle 180px at 50% 85%, rgba(122,79,184,0.08) 0%, transparent 70%);
  animation: heroFloat 14s ease-in-out infinite alternate;
  pointer-events: none;
  z-index: -1;
}
@keyframes heroFloat {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(30px, -20px) scale(1.10); }
}
.hero--sub .hero__content { padding-top: 0; padding-bottom: 0; max-width: 1100px; }
.hero__eyebrow {
  display: inline-block;
  font-family: var(--font-body);
  font-size: clamp(0.7rem, 1.1vw, 0.85rem);
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--brand);
  background: rgba(201,71,225,0.10);
  border: 1px solid rgba(201,71,225,0.28);
  padding: 0.45rem 1.2rem;
  border-radius: 2em;
  margin-bottom: 1.5rem;
}
.hero__title--gradient {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: clamp(3rem, 9vw, 7rem);
  line-height: 1.2;
  margin: 0;
  padding-bottom: 0.12em;
  /* Sub-page hero gradient: blue → purple → subrosa pink */
  background: linear-gradient(90deg, #4A7BC8 0%, #7A4FB8 50%, #C947E1 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -0.01em;
  white-space: normal;
}
.hero__lead {
  margin: 1.5rem auto 0;
  max-width: 860px;
  font-family: var(--font-body);
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  font-weight: 300;
  line-height: 1.5;
  color: rgba(255,255,255,0.82);
}
.hero__title--sub { font-family: var(--font-body); font-size: clamp(3rem, 8vw, 6rem); font-weight: 300; color: #FFFFFF; }

@media (max-width: 768px) {
  .hero--sub { padding-top: calc(var(--topbar-h) + var(--header-h) + 0.5rem); padding-bottom: 1.25rem; }
  .hero__lead { margin-top: 1rem; }
  .hero__eyebrow { margin-bottom: 1rem; }
}

/* === FOOTER === */
.footer { position: relative; z-index: 1; background: linear-gradient(180deg, #0A0A0F 0%, #050508 100%); padding: 3rem 1.5rem 2rem; border-top: 1px solid rgba(201,71,225,0.1); }
.footer__inner { max-width: 1100px; margin: 0 auto; text-align: center; }
.footer__logo { width: 250px; margin: 0 auto 1.5rem; }
.footer__tagline { font-family: var(--font-body); font-size: 0.9rem; font-weight: 300; color: var(--text-muted); margin-bottom: 2rem; }
.footer__links { display: flex; justify-content: center; gap: 2rem; margin-bottom: 2rem; flex-wrap: wrap; }
.footer__link { font-size: 0.85rem; font-weight: 400; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; transition: color 0.3s ease; }
.footer__link:hover { color: var(--brand); }
.footer__bottom { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 1.5rem; font-size: 0.9rem; color: rgba(255,255,255,0.6); }

/* === RESPONSIVE === */
@media (max-width: 639px) {
  :root { --topbar-h: 36px; --header-h: 64px; }
  .topbar__link { font-size: 0.7rem; padding: 0 0.6rem; }
  .topbar__sep { height: 12px; }
  .burger { width: 30px; height: 22px; }
  .burger--open .burger__line:nth-child(1) { transform: translateY(10px) rotate(45deg); }
  .burger--open .burger__line:nth-child(3) { transform: translateY(-10px) rotate(-45deg); }
  .hero__content { padding: 0 1rem; }
  .hero__title-block { text-align: center; }
  .s-split { grid-template-columns: 1fr; }
  .s-two-col { grid-template-columns: 1fr; }
  .glass-grid--2x2, .glass-grid--3, .glass-grid--3x2 { grid-template-columns: 1fr; }
  .overlay__grid { grid-template-columns: 1fr; }
  .overlay__card:nth-child(1), .overlay__card:nth-child(2), .overlay__card:nth-child(3), .overlay__card--small { grid-column: span 1; }
  .overlay__logo img { height: 44px; }
  .scroll-down-btn { width: 36px; height: 36px; }
  .scroll-down-btn__icon { width: 20px; height: 20px; }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .hero__content { padding: 0 2rem; }
  .glass-grid--2x2 { grid-template-columns: repeat(2, 1fr); }
  .glass-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .glass-grid--3x2 { grid-template-columns: repeat(2, 1fr); }
  .s-split { grid-template-columns: 1fr; }
  .s-two-col { grid-template-columns: 1fr; }
  .overlay__grid { grid-template-columns: repeat(2, 1fr); }
  .overlay__card:nth-child(1), .overlay__card:nth-child(2), .overlay__card:nth-child(3) { grid-column: span 2; }
  .overlay__card--small { grid-column: span 1; }
}

@media (min-width: 1024px) {
  .overlay__link { font-size: 3.5rem; }
}

body.menu-open, body.scroll-locked { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
  .reveal-s { opacity: 1; transform: none; }
}

/* =============================================================
   FOCUS AREA DETAIL PAGES
   ============================================================= */

/* Section wrappers */
.fa-section { max-width: 1100px; margin: 0 auto; padding: 0 1.5rem; }
.fa-section--wide { max-width: 1320px; }
.fa-eyebrow {
  display: inline-block; background: rgba(201,71,225,0.12); border: 1px solid rgba(201,71,225,0.3);
  border-radius: 2em; padding: 0.35rem 1.1rem; color: var(--brand); font-size: 0.8rem;
  font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 1rem;
}
.fa-prose p { color: rgba(255,255,255,0.92); font-size: 1.05rem; line-height: 1.75; margin: 0 0 1.2rem; font-weight: 400; }
.fa-prose p:last-child { margin-bottom: 0; }
.fa-prose ol, .fa-prose ul { color: rgba(255,255,255,0.92); font-size: 1.05rem; line-height: 1.75; margin: 0 0 1.2rem; padding-left: 1.4rem; font-weight: 400; }
.fa-prose li { margin-bottom: 0.7rem; }
/* Newspaper-style multi-column prose for long passages */
.fa-prose--cols { column-count: 2; column-gap: 2.8rem; text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.fa-prose--cols p { margin-bottom: 1rem; }
.fa-prose--cols p:first-child { margin-top: 0; }
@media (max-width: 760px) { .fa-prose--cols { column-count: 1; text-align: left; hyphens: manual; } }
.fa-accent {
  font-size: clamp(1.4rem, 3vw, 2.2rem); font-weight: 700; line-height: 1.25; margin: 1.5rem 0;
  background: linear-gradient(90deg, #C947E1 0%, #7A4FB8 50%, #4A7BC8 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.fa-subaccent { color: var(--brand); font-weight: 600; font-size: clamp(1.05rem, 1.6vw, 1.3rem); }
.fa-h2 { font-family: var(--font-body); font-size: clamp(1.6rem, 3.5vw, 2.6rem); font-weight: 300; color: #fff; margin: 0 0 1.5rem; line-height: 1.2; }
.fa-h2--gradient {
  font-weight: 700;
  background: linear-gradient(90deg, #4A7BC8 0%, #7A4FB8 50%, #C947E1 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}

/* Buttons (reusable) */
.fa-btn {
  display: inline-flex; align-items: center; gap: 0.55rem;
  padding: 0.9rem 2rem; border-radius: 999px;
  font-family: var(--font-body); font-size: 1rem; font-weight: 600; letter-spacing: 0.02em;
  background: linear-gradient(135deg, var(--brand) 0%, #7A4FB8 100%);
  color: #fff; border: 1px solid rgba(201,71,225,0.4);
  box-shadow: 0 4px 18px rgba(201,71,225,0.25);
  transition: transform 0.25s ease, box-shadow 0.25s ease; cursor: pointer; text-decoration: none;
}
.fa-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(201,71,225,0.4); }
.fa-btn svg { flex-shrink: 0; }
.fa-btn--ghost {
  background: linear-gradient(135deg, rgba(255,255,255,0.18) 0%, rgba(201,71,225,0.24) 100%);
  color: #fff; border: 1px solid rgba(201,71,225,0.65);
  box-shadow: 0 0 14px rgba(201,71,225,0.4), inset 0 1px 0 rgba(255,255,255,0.12);
}
.fa-btn--ghost:hover {
  background: linear-gradient(135deg, rgba(255,255,255,0.28) 0%, rgba(201,71,225,0.38) 100%);
  box-shadow: 0 0 22px rgba(201,71,225,0.6), inset 0 1px 0 rgba(255,255,255,0.16);
}
.fa-btn--sm { padding: 0.38rem 0.85rem; font-size: 0.76rem; gap: 0.3rem; font-weight: 600; }
.fa-btn-row { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin-top: 2rem; }

/* Explore button inside focus cards */
.focus-card__explore {
  display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1rem;
  padding: 0.6rem 1.4rem; border-radius: 999px; font-size: 0.9rem; font-weight: 600;
  background: linear-gradient(135deg, var(--brand) 0%, #7A4FB8 100%); color: #fff;
  text-decoration: none; transition: transform 0.25s ease, box-shadow 0.25s ease;
  box-shadow: 0 4px 14px rgba(201,71,225,0.25);
}
.focus-card__explore:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(201,71,225,0.4); }

/* Service tile grid */
.fa-tile-grid { display: grid; gap: 0.8rem; margin: 1.5rem 0; }
.fa-tile-grid--6 { grid-template-columns: repeat(6, 1fr); }
.fa-tile-grid--8 { grid-template-columns: repeat(8, 1fr); }
.fa-tile {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px; padding: 1.1rem 1rem; display: flex; flex-direction: column;
  justify-content: space-between; gap: 0.6rem; min-height: 140px;
}
.fa-tile__name { color: #fff; font-size: 1.08rem; font-weight: 600; line-height: 1.35; }
.fa-tile__brand { color: var(--brand); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.02em; margin-top: auto; white-space: nowrap; }
.fa-tile--accent {
  background: linear-gradient(135deg, rgba(201,71,225,0.25), rgba(122,79,184,0.18));
  border-color: var(--brand); box-shadow: 0 0 18px rgba(201,71,225,0.3);
}
.fa-tile--accent .fa-tile__name { font-size: 1.18rem; font-weight: 700; }
@media (max-width: 1023px) { .fa-tile-grid--6 { grid-template-columns: repeat(3, 1fr); } .fa-tile-grid--8 { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 600px) { .fa-tile-grid--6, .fa-tile-grid--8 { grid-template-columns: repeat(2, 1fr); } }

/* ── Themed service carousels (one per topic row) ───────────────── */
.svc-carousels { margin: 1.6rem 0; display: flex; flex-direction: column; gap: 1.7rem; }
.svc-carousel { --accent: #c947e1; --tint: rgba(201,71,225,0.16); --tint-border: rgba(201,71,225,0.32); --glow: rgba(201,71,225,0.42); }
.svc-carousel--r1 { --accent: #c947e1; --tint: rgba(201,71,225,0.16); --tint-border: rgba(201,71,225,0.32); --glow: rgba(201,71,225,0.42); }
.svc-carousel--r2 { --accent: #7b52c9; --tint: rgba(123,82,201,0.16); --tint-border: rgba(123,82,201,0.32); --glow: rgba(123,82,201,0.42); }
.svc-carousel--r3 { --accent: #4f6fc9; --tint: rgba(79,111,201,0.16); --tint-border: rgba(79,111,201,0.32); --glow: rgba(79,111,201,0.42); }
.svc-carousel--r4 { --accent: #767d88; --tint: rgba(118,125,136,0.18); --tint-border: rgba(118,125,136,0.36); --glow: rgba(118,125,136,0.40); }
.svc-carousel__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.7rem; }
.svc-carousel__title {
  font-family: var(--font-body); font-size: clamp(0.92rem, 1.4vw, 1.12rem); font-weight: 700;
  color: var(--accent); letter-spacing: 0.05em; text-transform: uppercase; margin: 0; line-height: 1.25;
}
.svc-carousel__nav { display: flex; gap: 0.4rem; flex-shrink: 0; }
.svc-carousel__btn {
  width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: #fff; border: 1px solid var(--tint-border); color: var(--accent); cursor: pointer; padding: 0;
  transition: background 0.2s ease, transform 0.2s ease;
}
.svc-carousel__btn:hover { background: var(--tint); transform: translateY(-1px); }
.svc-carousel__btn svg { width: 16px; height: 16px; display: block; }
.svc-carousel.is-static .svc-carousel__nav { display: none; }
.svc-carousel__viewport {
  overflow-x: auto; overflow-y: hidden; scroll-snap-type: none;
  -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.svc-carousel__viewport::-webkit-scrollbar { display: none; }
.svc-carousel__track { display: flex; gap: 0.8rem; padding: 0.2rem 0.1rem; }
.svc-tile {
  flex: 0 0 192px; width: 192px; min-height: 92px; box-sizing: border-box;
  background:
    linear-gradient(150deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.5) 55%, rgba(255,255,255,0.18) 100%),
    linear-gradient(0deg, var(--tint), var(--tint));
  border: 1px solid rgba(255,255,255,0.85); border-left: 4px solid var(--accent);
  border-radius: 14px; padding: 0.85rem 1rem;
  display: flex; flex-direction: column; justify-content: space-between; gap: 0.45rem;
  scroll-snap-align: start;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.95),
    inset 0 0 0 1px var(--tint-border),
    0 9px 22px -8px var(--glow),
    0 3px 10px rgba(20,20,40,0.05);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.svc-tile:hover {
  transform: translateY(-3px); border-color: var(--accent);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    inset 0 0 0 1px var(--tint-border),
    0 18px 36px -8px var(--glow),
    0 6px 16px rgba(20,20,40,0.1);
}
.svc-tile__name { color: #14141C; font-size: 0.92rem; font-weight: 600; line-height: 1.28; }
.svc-tile__brand { color: var(--accent); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.03em; margin-top: auto; white-space: nowrap; }
.svc-tile--accent {
  background:
    linear-gradient(150deg, rgba(255,255,255,0.52) 0%, rgba(255,255,255,0.12) 60%, rgba(255,255,255,0) 100%),
    linear-gradient(135deg, rgba(201,71,225,0.34), rgba(122,79,184,0.24));
  border-color: var(--brand); border-left-color: var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.9),
    0 12px 28px -8px rgba(201,71,225,0.5),
    0 4px 14px rgba(20,20,40,0.08);
}
.svc-tile--accent:hover {
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    0 20px 38px -8px rgba(201,71,225,0.62),
    0 6px 16px rgba(20,20,40,0.1);
}
.svc-tile--accent .svc-tile__name { font-weight: 700; }
.svc-tile--accent .svc-tile__brand { color: var(--brand); }

/* Expandable "Scientific Dialogue Field Teams" cards */
.svc-carousel--ft .svc-carousel__track { align-items: stretch; }
.svc-tile--ft { padding: 0; min-height: 92px; }
/* Field-team cards — permanent tall cards (no toggle), equal height, magenta header */
.svc-tile--ft.ft-card {
  flex: 0 0 300px; width: 300px; min-height: 0; padding: 0; gap: 0; overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-start;
  background: linear-gradient(180deg, rgba(255,255,255,0.07), rgba(255,255,255,0.02));
  border: 1px solid rgba(201,71,225,0.4); border-radius: 14px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.32);
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.ft-card:hover { transform: translateY(-3px); border-color: var(--brand); box-shadow: 0 16px 34px rgba(201,71,225,0.4); }
.ft-card__head {
  background: linear-gradient(135deg, #c947e1 0%, #7a4fb8 100%);
  padding: 0.95rem 1.15rem; display: flex; flex-direction: column; gap: 0.2rem;
}
.ft-card__role { color: #fff; font-weight: 700; font-size: 1.02rem; line-height: 1.25; }
.ft-card__acr { color: rgba(255,255,255,0.92); font-weight: 800; font-size: 0.78rem; letter-spacing: 0.1em; }
.ft-card__body { flex: 1; padding: 1rem 1.15rem 1.2rem; }
.ft-card__body ul { margin: 0; padding-left: 1.1rem; list-style: disc; }
.ft-card__body li { color: #fff; font-weight: 500; font-size: 0.9rem; line-height: 1.5; margin-bottom: 0.55rem; }
.ft-card__body li:last-child { margin-bottom: 0; }
.ft-card__body li::marker { color: var(--brand); }
@media (max-width: 600px) { .svc-tile--ft.ft-card { flex-basis: 84vw; width: 84vw; } }
.svc-tile__toggle {
  appearance: none; -webkit-appearance: none; background: none; border: 0; margin: 0;
  width: 100%; min-height: 92px; cursor: pointer; font: inherit; color: inherit; text-align: left;
  display: flex; flex-direction: column; justify-content: space-between; gap: 0.5rem;
  padding: 0.85rem 1rem;
}
.svc-tile__toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 12px; }
.svc-tile__foot { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-top: auto; }
.svc-tile--ft .svc-tile__brand { margin: 0; }
.svc-tile__chev { width: 16px; height: 16px; flex-shrink: 0; color: var(--accent); transition: transform 0.3s ease; }
.svc-tile--ft.is-open .svc-tile__chev { transform: rotate(180deg); }
.svc-tile__body { max-height: 0; overflow: hidden; opacity: 0; padding: 0 1rem; transition: max-height 0.4s ease, opacity 0.28s ease, padding 0.4s ease; }
.svc-tile--ft.is-open .svc-tile__body { max-height: 360px; opacity: 1; padding: 0 1rem 1rem; }
.svc-tile__body ul { margin: 0; padding-left: 1.05rem; list-style: disc; }
.svc-tile__body li { color: rgba(20,20,28,0.9); font-size: 0.82rem; line-height: 1.42; margin-bottom: 0.35rem; }
.svc-tile__body li:last-child { margin-bottom: 0; }
.svc-tile--ft.is-open {
  border-color: var(--accent);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    inset 0 0 0 1px var(--tint-border),
    0 18px 38px -8px var(--glow),
    0 6px 16px rgba(20,20,40,0.12);
}
@media (max-width: 600px) {
  .svc-tile { flex-basis: 82vw; width: 82vw; }
  .svc-carousel__nav { display: none; }
}

.fa-disclaimer { color: rgba(255,255,255,0.9); font-size: 0.97rem; font-style: italic; font-weight: 600; line-height: 1.5; margin: 1rem 0 0; }

/* Collapsible "How rare is it?" background */
.hr-details { margin: 0.25rem 0 0; }
.hr-details > summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 0.5rem;
  color: #14141C; font-weight: 600; font-size: 0.98rem; padding: 0.55rem 0; user-select: none;
}
.hr-details > summary::-webkit-details-marker { display: none; }
.hr-details > summary:hover { filter: brightness(1.12); }
.hr-toggle__chev { flex-shrink: 0; transition: transform 0.3s ease; }
.hr-details[open] .hr-toggle__chev { transform: rotate(180deg); }

/* Two-line "How rare is it?" CTA button */
.hr-cta { flex-direction: column; gap: 0.1rem; padding: 0.8rem 2.1rem; text-align: center; line-height: 1.25; }
.hr-cta__q { font-size: 1.08rem; font-weight: 700; letter-spacing: 0.01em; }
.hr-cta__sub { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; font-weight: 600; opacity: 0.95; }
.hr-cta__sub svg { transition: transform 0.25s ease; }
.hr-cta:hover .hr-cta__sub svg { transform: translateY(2px); }

/* Stat elements */
.fa-stat-row { display: flex; flex-wrap: wrap; gap: 2.5rem 3rem; justify-content: center; align-items: center; margin: 1.5rem 0; }
.fa-stat {
  width: clamp(150px, 16vw, 184px); aspect-ratio: 1; border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.35rem;
  text-align: center; padding: 1rem 1.1rem;
  border: 4px solid transparent;
  background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, #C947E1 0%, #4A7BC8 100%) border-box;
  box-shadow: 0 10px 24px rgba(201,71,225,0.18);
  transition: transform .25s ease, box-shadow .25s ease;
}
.fa-stat:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(201,71,225,0.3); }
.fa-stat__num { font-size: clamp(1.5rem, 2.4vw, 2.1rem); font-weight: 800; line-height: 1; color: var(--brand); }
.fa-stat__label { color: rgba(20,20,28,0.8); font-size: clamp(0.62rem, 0.8vw, 0.74rem); font-weight: 600; line-height: 1.28; }

/* Brand cards (3-up) */
.fa-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin: 1.5rem 0; }
.fa-card {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(201,71,225,0.25); border-radius: 16px;
  padding: 1.6rem 1.4rem; display: flex; flex-direction: column; gap: 0.6rem;
}
.fa-card__desc { color: rgba(255,255,255,0.92); font-size: 1.08rem; font-weight: 500; line-height: 1.45; }
.fa-card__brand { color: #fff; font-size: 1.25rem; font-weight: 700; margin-top: auto; }
.fa-card__brand span { color: var(--brand); }
.fa-card__desc--hl { color: #6f9bff; text-shadow: 0 0 12px rgba(74,123,200,0.6); }

/* Solutions Detail — deeper accordion section (reuses --brand, s-heading, deco-circle) */
.sold { background: #1e2029; }
.sold-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; margin-top: 2.5rem; align-items: start; }
.sold-card { background: #272a35; border: 1px solid rgba(255,255,255,0.06); border-radius: 18px; overflow: hidden; transition: border-color .25s ease, box-shadow .25s ease; }
.sold-card:hover { border-color: rgba(201,71,225,0.45); }
.sold-card.is-open { grid-column: 1 / -1; border-color: var(--brand); box-shadow: 0 0 0 1px rgba(201,71,225,0.25), 0 14px 36px rgba(0,0,0,0.35); }
.sold-card__head { display: flex; align-items: center; gap: 1rem; width: 100%; padding: 1.4rem 1.5rem; background: none; border: 0; cursor: pointer; text-align: left; color: inherit; font-family: var(--font-body); }
.sold-card__num { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(201,71,225,0.12); border: 1px solid rgba(201,71,225,0.4); color: var(--brand); font-weight: 700; font-size: 0.95rem; }
.sold-card__titles { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 0.2rem; }
.sold-card__title { color: #f3f0f6; font-size: 1.12rem; font-weight: 700; line-height: 1.25; }
.sold-card__tag { color: var(--brand); font-style: italic; font-size: 0.9rem; line-height: 1.3; }
.sold-card__toggle { flex: 0 0 auto; color: var(--brand); font-size: 1.7rem; line-height: 1; transition: transform .3s ease; }
.sold-card.is-open .sold-card__toggle { transform: rotate(45deg); }
.sold-card__body { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .45s ease, opacity .3s ease; }
.sold-card.is-open .sold-card__body { max-height: 800px; opacity: 1; }
.sold-card__inner { padding: 0 1.6rem 1.6rem calc(1.5rem + 44px + 1rem); }
.sold-card__inner p { color: #a9a6b6; font-size: 1rem; line-height: 1.65; margin: 0; }
.sold-pill { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: 1.2rem; background: var(--brand); color: #fff; text-decoration: none; font-weight: 700; font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.55rem 1.15rem; border-radius: 2em; transition: transform .2s ease, box-shadow .2s ease; }
.sold-pill:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(201,71,225,0.4); }
@media (max-width: 760px) { .sold-grid { grid-template-columns: 1fr; } .sold-card__inner { padding-left: 1.6rem; } }

/* Our Brands — white section: umbrella logo + 3-4-3 logo grid */
.s-inner.brands { text-align: left; max-width: 1440px; padding: 0 1.5rem; }
.brands__head { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: 1.5rem 2rem; }
.brands__head-text { grid-column: 1; }
.brands__umbrella { grid-column: 2; }
.brands__pill { display: inline-block; background: var(--brand); color: #fff; font-size: 0.95rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.45rem 1.2rem; border-radius: 2em; margin-bottom: 0.9rem; }
.brands__title { color: #14141C; font-size: clamp(2.6rem, 6vw, 4.6rem); font-weight: 700; line-height: 1.1; margin: 0; }
.brands__umbrella { display: flex; flex-direction: column; align-items: center; gap: 0.2rem; transform: translateY(1.4rem); }
.brands__umbrella-logo { height: clamp(120px, 15vw, 225px); width: auto; display: block; }
.brands__umbrella-sub { color: var(--brand); font-size: clamp(0.9rem, 1.4vw, 1.15rem); font-weight: 600; font-style: italic; }
.brands__divider { position: relative; height: 2px; background: var(--brand); margin: 0.5rem 0 2.8rem; }
.brands__divider-note { position: absolute; right: 0; top: 50%; transform: translateY(-50%); background: #fff; padding-left: 1rem; color: var(--brand); font-style: italic; font-weight: 700; font-size: clamp(1.3rem, 2.2vw, 1.9rem); }
.brands__rows { display: flex; flex-direction: column; gap: clamp(1.6rem, 3vw, 2.6rem); align-items: center; }
.brands-row { display: flex; flex-wrap: nowrap; justify-content: center; align-items: center; gap: clamp(0.8rem, 1.6vw, 1.8rem); }
/* equal-size cell; logo proportionally fitted & centered inside */
/* All logos share the same normalized 680×200 canvas (aspect 3.4:1),
   so every cell is identical and no per-logo tuning is needed. */
.brand-cell { display: flex; align-items: center; justify-content: center; width: clamp(220px, 22.5vw, 320px); aspect-ratio: 3.4 / 1; min-width: 0; flex-shrink: 1; }
.brand-logo { width: 100%; height: 100%; object-fit: contain; display: block; transition: transform .2s ease; }
.brand-cell:hover .brand-logo { transform: scale(1.06); }
.brand-cell--42 .brand-logo { width: 64%; height: 64%; }   /* 42health not yet normalized — nudge smaller */
.brand-cell--hn .brand-logo { width: 112%; height: 112%; }  /* Harvey Nagl logos a touch larger */
@media (max-width: 768px) {
  .brands__head { grid-template-columns: 1fr; }
  .brands__head-text { grid-column: 1; }
  .brands__umbrella { grid-column: 1; align-items: center; }
  .brands__head-spacer { display: none; }
  .brands-row { gap: 1.2rem 1.6rem; }
  .brand-cell { width: clamp(120px, 40vw, 165px); }
}
.fa-card__cta { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: 1rem; color: #c8aeec; font-size: 1.08rem; font-weight: 600; letter-spacing: 0.01em; transition: gap .2s ease; }
a.fa-card:hover .fa-card__cta { gap: 0.6rem; }
a.fa-card { text-decoration: none; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
a.fa-card:hover { transform: translateY(-3px); border-color: var(--brand); box-shadow: 0 10px 26px rgba(201,71,225,0.25); }
@media (max-width: 860px) { .fa-cards { grid-template-columns: 1fr; } }
/* Exec-search brands: two cards side by side + third centered below, more spacing, gradient + interactive */
.fa-cards--2up { grid-template-columns: repeat(2, 1fr); gap: 2.2rem; max-width: 760px; margin: 2.9rem auto 3rem; }
.fa-cards--2up > :last-child { grid-column: 1 / -1; justify-self: center; width: calc(50% - 1.1rem); }
.fa-cards--2up .fa-card {
  background: linear-gradient(135deg, rgba(255,255,255,0.08) 0%, rgba(201,71,225,0.13) 100%);
  border: 1px solid rgba(201,71,225,0.4);
  box-shadow: 0 0 0 1px rgba(201,71,225,0.08), 0 6px 20px rgba(0,0,0,0.18);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.fa-cards--2up .fa-card:hover {
  transform: translateY(-4px);
  border-color: rgba(201,71,225,0.8);
  background: linear-gradient(135deg, rgba(255,255,255,0.15) 0%, rgba(201,71,225,0.24) 100%);
  box-shadow: 0 0 24px rgba(201,71,225,0.5), 0 16px 36px rgba(0,0,0,0.28);
}
@media (max-width: 860px) {
  .fa-cards--2up { grid-template-columns: 1fr; max-width: 420px; gap: 1.4rem; }
  .fa-cards--2up > :last-child { width: 100%; }
}

.fa-caption { color: var(--brand); font-style: italic; font-size: 1rem; line-height: 1.5; margin: 1rem 0 0; text-align: center; }
@media (max-width: 860px) { .fa-flow { grid-template-columns: 1fr; } }

/* Lifecycle diagram (brand rows) */
.fa-life { display: flex; flex-direction: column; gap: 0.5rem; margin: 1.5rem 0; }
.fa-life__row { display: grid; grid-template-columns: 220px 1fr; gap: 0.7rem; align-items: stretch; }
.fa-life__brand {
  background: rgba(201,71,225,0.1); border: 1px solid rgba(201,71,225,0.3); border-radius: 10px;
  padding: 0.7rem 0.9rem; display: flex; flex-direction: column; justify-content: center;
}
.fa-life__brand b { color: #fff; font-size: 0.9rem; }
.fa-life__brand span { color: var(--brand); font-size: 0.72rem; margin-top: 0.2rem; }
.fa-life__bands { display: flex; flex-direction: column; gap: 0.4rem; }
.fa-life__band {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 8px;
  padding: 0.55rem 0.8rem; color: rgba(255,255,255,0.82); font-size: 0.8rem; line-height: 1.4;
}
.fa-life__band b { color: var(--brand); font-weight: 700; }
.fa-life__steps { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0; }
.fa-life__step {
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 999px;
  padding: 0.45rem 1rem; color: rgba(255,255,255,0.85); font-size: 0.8rem; font-weight: 500;
}
.fa-life__step--accent { background: linear-gradient(135deg, var(--brand), #7A4FB8); color: #fff; font-weight: 700; border-color: var(--brand); }
.fa-life__arrow { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 1rem 0; color: rgba(255,255,255,0.8); font-size: 0.82rem; }
.fa-life__arrow span { background: rgba(74,123,200,0.15); border: 1px solid rgba(74,123,200,0.4); border-radius: 8px; padding: 0.4rem 0.8rem; }
.fa-life__arrow i { color: var(--brand); font-style: normal; }
@media (max-width: 768px) { .fa-life__row { grid-template-columns: 1fr; } }

/* Tag grid (therapeutic areas) */
.fa-tags { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1.2rem 0; }
.fa-tag {
  background: rgba(255,255,255,0.05); border: 1px solid rgba(201,71,225,0.3); border-radius: 999px;
  padding: 0.55rem 1.2rem; color: rgba(255,255,255,0.9); font-size: 0.92rem; font-weight: 500;
}

/* Process (3 columns) */
.fa-process { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin: 1.5rem 0; }
.fa-process__col { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 14px; padding: 1.3rem 1.2rem; }
.fa-process__title { color: var(--brand); font-size: 1.05rem; font-weight: 700; margin: 0 0 0.9rem; }
.fa-process__list { list-style: none; padding: 0; margin: 0; }
.fa-process__list li { color: rgba(255,255,255,0.82); font-size: 0.88rem; line-height: 1.45; padding: 0.4rem 0 0.4rem 1rem; position: relative; border-bottom: 1px solid rgba(255,255,255,0.06); }
.fa-process__list li:last-child { border-bottom: none; }
.fa-process__list li::before { content: ''; position: absolute; left: 0; top: 0.75rem; width: 5px; height: 5px; border-radius: 50%; background: var(--brand); }
@media (max-width: 860px) { .fa-process { grid-template-columns: 1fr; } }

.fa-benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin: 1.5rem 0; }
.fa-benefit { background: rgba(255,255,255,0.04); border: 1px solid rgba(201,71,225,0.25); border-radius: 16px; padding: 1.4rem 1.2rem; text-align: center; }
.fa-benefit__title { color: #fff; font-size: 1.05rem; font-weight: 700; margin-bottom: 0.6rem; }
.fa-benefit__desc { color: rgba(255,255,255,0.72); font-size: 0.88rem; line-height: 1.5; }
.fa-benefit__desc b { color: var(--brand); }
@media (max-width: 860px) { .fa-benefits { grid-template-columns: 1fr; } }

/* Two-column text + tiles */
.fa-2col { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; max-width: 1020px; margin: 1.5rem auto; align-items: start; }
.fa-stacklist { display: flex; flex-direction: column; align-items: stretch; gap: 1.2rem; max-width: 380px; margin-inline: 0; }
.fa-stacklist__item {
  background: linear-gradient(135deg, rgba(201,71,225,0.16), rgba(201,71,225,0.06)); border: 1px solid rgba(201,71,225,0.55); border-radius: 12px;
  padding: 0.9rem 1.2rem; color: #fff; font-size: 0.95rem; font-weight: 600; text-align: center;
  box-shadow: 0 0 14px rgba(201,71,225,0.30), inset 0 0 12px rgba(201,71,225,0.08);
  animation: stackGlow 2.8s ease-in-out infinite;
  transition: transform 0.2s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.fa-stacklist__item:nth-child(2) { animation-delay: 0.4s; }
.fa-stacklist__item:nth-child(3) { animation-delay: 0.8s; }
.fa-stacklist__item:nth-child(4) { animation-delay: 1.2s; }
.fa-stacklist__item:nth-child(5) { animation-delay: 1.6s; }
.fa-stacklist__item:hover {
  transform: translateY(-2px); border-color: rgba(201,71,225,0.9);
  box-shadow: 0 0 22px rgba(201,71,225,0.55), inset 0 0 14px rgba(201,71,225,0.12);
}
@keyframes stackGlow {
  0%, 100% { box-shadow: 0 0 12px rgba(201,71,225,0.22), inset 0 0 10px rgba(201,71,225,0.06); }
  50%      { box-shadow: 0 0 24px rgba(201,71,225,0.50), inset 0 0 14px rgba(201,71,225,0.12); }
}
@media (prefers-reduced-motion: reduce) {
  .fa-stacklist__item { animation: none; box-shadow: 0 0 16px rgba(201,71,225,0.38); }
}
@media (max-width: 860px) { .fa-2col { grid-template-columns: 1fr; } }

.fa-band {
  background: linear-gradient(90deg, rgba(201,71,225,0.18), rgba(74,123,200,0.12));
  border: 1px solid rgba(201,71,225,0.3); border-radius: 12px; padding: 1rem 1.4rem;
  color: #fff; font-size: 1.05rem; font-weight: 600; text-align: center; margin: 1.5rem 0;
}

/* ---- Lifecycle Chart (copied from whatwedo) ---- */
.lc-wrap { position: relative; width: 100%; max-width: 1200px; margin: 0 auto; padding-bottom: 56%; }
.lc-el {
  position: absolute; display: flex; align-items: center; justify-content: center;
  text-align: center; font-size: 0.92rem; line-height: 1.15; border-radius: 3px;
  overflow: hidden; transition: all 0.25s ease;
}
.lc-el:hover { filter: brightness(1.08); }
.lc-brand-el { color: #fff; font-weight: 700; font-size: 0.98rem; }
.lc-label-el { color: rgba(0,0,0,0.85); background: rgba(0,0,0,0.04); font-size: 0.9rem; font-weight: 500; }
.lc-label-el[style*="background:#"] { color: #fff; }
.lc-bar-el {
  color: rgba(0,0,0,0.9); background: rgba(0,0,0,0.03);
  padding: 0 0.9rem 0 0.6rem; font-size: 0.88rem; font-weight: 600; cursor: default;
  justify-content: flex-start; text-align: left;
  /* right-pointing arrow tip — same fill as the bar, natural continuation */
  clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%);
}
.lc-bar-el:hover { background: rgba(0,0,0,0.12); color: rgba(0,0,0,1); box-shadow: 0 0 12px rgba(201,71,225,0.4); transform: scale(1.01); }
.lc-brand-el:hover { filter: brightness(1.25); box-shadow: 0 0 15px rgba(201,71,225,0.5); }
.lc-label-el:hover { filter: brightness(1.2); box-shadow: 0 0 12px rgba(201,71,225,0.4); }
.lc-tl-el {
  background: #0070C0; color: #fff; font-weight: 600; font-size: 0.88rem;
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%, 10px 50%);
}
.lc-tl-first {
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%);
  border-radius: 3px 0 0 3px;
}
.lc-tl-launch { background: #C945E3; font-weight: 700; font-size: 0.65rem; border-radius: 3px; clip-path: none; }
/* Lifecycle chart on dark (grey) section — light text on bars */
.s-dark .lc-bar-el { color: rgba(255,255,255,0.95); background: rgba(255,255,255,0.05); }
.s-dark .lc-bar-el:hover { color: #fff; background: rgba(255,255,255,0.14); }

/* Designations + Lifecycle phases bar (FDA row + chevron phases) */
.odlc { max-width: 1200px; margin: -5% auto 0; }
@media (max-width: 640px){ .odlc { margin-top: 1rem; } }
.odlc__row1 { display: grid; grid-template-columns: repeat(4, 0.9fr) 0.55fr 1.9fr; gap: 4px; }
.odlc__seg { background:#E8EEF5; border:1px solid #C9D6E3; color:#1F3B5C; font-size:0.82rem; font-weight:600; line-height:1.2; text-align:center; padding:0.6rem 0.4rem; display:flex; align-items:center; justify-content:center; border-radius:3px; }
.odlc__seg--launch { background:#C03BC9; border-color:#C03BC9; color:#FFFFFF; font-weight:800; letter-spacing:0.05em; }
.odlc__row2 { display:flex; margin-top:6px; }
.odlc__phase { flex:1; position:relative; background:#2F77BE; color:#FFFFFF; font-weight:700; font-size:0.82rem; line-height:1.2; text-align:center; padding:0.8rem 0.6rem 0.8rem 1.4rem; display:flex; align-items:center; justify-content:center; clip-path:polygon(0 0, calc(100% - 15px) 0, 100% 50%, calc(100% - 15px) 100%, 0 100%, 15px 50%); margin-left:-13px; }
.odlc__phase:first-child { margin-left:0; padding-left:0.6rem; clip-path:polygon(0 0, calc(100% - 15px) 0, 100% 50%, calc(100% - 15px) 100%, 0 100%); border-radius:4px 0 0 4px; }
.odlc__phase--wide { flex:2.2; }
.odlc__phase:nth-child(1){ z-index:5; } .odlc__phase:nth-child(2){ z-index:4; } .odlc__phase:nth-child(3){ z-index:3; } .odlc__phase:nth-child(4){ z-index:2; } .odlc__phase:nth-child(5){ z-index:1; }
@media (max-width: 640px){
  .odlc__row1 { grid-template-columns:1fr 1fr; }
  .odlc__row2 { flex-direction:column; }
  .odlc__phase { flex:none; clip-path:none; margin-left:0; margin-top:4px; border-radius:4px; padding:0.7rem; }
  .odlc__phase:first-child { margin-top:0; }
}

/* ---- Focus Area 1 — Ecosystem diagram (faithful PowerPoint reproduction) ---- */
.eco-wrap { background:#FFFFFF; border-radius:18px; padding:1.8rem 1.6rem; margin:1.5rem 0; box-shadow:0 12px 40px rgba(0,0,0,0.25); }
.eco-svg { width:100%; height:auto; display:block; }
.eco-grid { display:grid; grid-template-columns:0.95fr 50px 1.15fr 56px 1.7fr; gap:0.5rem; align-items:stretch; }
.eco-conn { position:relative; }
.eco-conn .eco-arr { position:absolute; left:50%; width:46px; height:auto; }
@media (max-width: 860px){ .eco-grid { grid-template-columns:1fr; } .eco-conn { display:none; } }
.eco-coltitle { font-size:0.66rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:#8E2DA8; margin:0 0 0.5rem; text-align:center; }
/* Column A — blue pillar */
.eco-hq { background:#2F77BE; border-radius:14px; padding:0.9rem 0.7rem; display:flex; flex-direction:column; gap:0.45rem; }
.eco-stage { background:#EDEDED; border:1px solid #D5D5D5; border-radius:8px; padding:0.55rem 0.45rem; text-align:center; color:#5C2E5C; font-size:0.95rem; font-weight:600; line-height:1.25; }
.eco-hq__label { color:#FFFFFF; text-align:center; font-size:0.98rem; font-weight:700; margin-top:0.4rem; }
.eco-bridge { color:#C03BC9; font-weight:800; font-size:1.25rem; text-align:center; margin:0.7rem 0 0; }
/* Column B — purple platform */
.eco-platform { background:#8E2DA8; border-radius:14px; padding:0.9rem 0.7rem; display:flex; flex-direction:column; gap:0.55rem; justify-content:center; }
.eco-card { background:#FFFFFF; border-radius:10px; padding:0.7rem 0.8rem; }
.eco-card__svc { color:#333333; font-size:0.9rem; font-weight:600; line-height:1.35; display:block; margin-bottom:0.5rem; }
.eco-band { display:block; background:#C03BC9; color:#FFFFFF; border-radius:6px; padding:0.32rem 0.55rem; font-size:0.72rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; text-align:center; }
.eco-band + .eco-band { margin-top:0.3rem; }
/* Column C — market cards */
.eco-markets { display:flex; flex-direction:column; gap:0.7rem; justify-content:center; }
.eco-market { display:grid; grid-template-columns:1fr auto; gap:0.7rem; align-items:center; background:#FFFFFF; border:2px solid #5B9BD5; border-radius:10px; padding:0.65rem 0.8rem; }
.eco-market__title { color:#5C2E8C; font-size:1.05rem; font-weight:800; }
.eco-market__desc { color:#2A2A2A; font-size:0.95rem; line-height:1.5; margin:0.35rem 0 0; font-weight:500; }
.eco-chips { display:flex; flex-direction:column; gap:0.32rem; }
.eco-chip { background:#C03BC9; color:#FFFFFF; border-radius:6px; padding:0.34rem 0.65rem; font-size:0.72rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; white-space:nowrap; text-align:center; }
/* Execution band + caption */
.eco-exec { margin-top:1rem; background:#2F77BE; color:#FFFFFF; font-weight:800; letter-spacing:0.05em; text-transform:uppercase; text-align:center; padding:0.85rem 1rem; border-radius:8px; font-size:1.05rem; clip-path:polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%); }
.eco-caption { color:#C03BC9; font-style:italic; text-align:center; margin:1.4rem auto 0; max-width:900px; font-size:clamp(1.1rem, 1.6vw, 1.4rem); font-weight:600; line-height:1.5; }
.eco-caption em { font-style:italic; }
@media (max-width: 860px){
  .eco-grid{ grid-template-columns:1fr; }
  .eco-market{ grid-template-columns:1fr; }
  .eco-chips{ flex-direction:row; flex-wrap:wrap; }
  .eco-exec{ clip-path:none; }
}

/* ---- Light (rosa-pastell) section variants for Focus Area components ---- */
.s-light .fa-h2 { color: #14141C; }
.s-light .fa-prose p,
.s-light .fa-prose ol,
.s-light .fa-prose ul { color: rgba(20,20,28,0.95); }
.s-light .fa-prose strong { color: #14141C !important; }
.s-light .fa-subaccent { color: #9B2FB0; }
.s-light .fa-disclaimer { color: rgba(20,20,28,0.96); }
.s-light .fa-band { background: linear-gradient(90deg, rgba(201,71,225,0.32), rgba(74,123,200,0.22)); color: #14141C; border-color: rgba(201,71,225,0.4); }
.s-light .fa-caption { color: #9B2FB0; }

.s-light .fa-tile { background: rgba(255,255,255,0.65); border-color: rgba(201,71,225,0.22); }
.s-light .fa-tile__name { color: #14141C; }
.s-light .fa-tile--accent { background: linear-gradient(135deg, rgba(201,71,225,0.22), rgba(122,79,184,0.15)); border-color: var(--brand); }
.s-light .fa-tile--accent .fa-tile__name { color: #14141C; }

.s-light .fa-stat__label { color: rgba(20,20,28,0.8); }

.s-light .fa-card { background: rgba(255,255,255,0.6); border-color: rgba(201,71,225,0.22); }
.s-light .fa-card__desc { color: rgba(20,20,28,0.7); }
.s-light .fa-card__brand { color: #14141C; }

.s-light .fa-tag { background: rgba(255,255,255,0.6); border-color: rgba(201,71,225,0.28); color: #14141C; }

.s-light .fa-process__col { background: rgba(255,255,255,0.6); border-color: rgba(201,71,225,0.18); }
.s-light .fa-process__list li { color: rgba(20,20,28,0.8); border-bottom-color: rgba(20,20,40,0.08); }
.s-light .fa-benefit { background: rgba(255,255,255,0.6); border-color: rgba(201,71,225,0.22); }
.s-light .fa-benefit__title { color: #14141C; }
.s-light .fa-benefit__desc { color: rgba(20,20,28,0.72); }

.s-light .fa-flow__stage { background: rgba(255,255,255,0.6); border-color: rgba(20,20,40,0.1); color: rgba(20,20,28,0.85); }
.s-light .fa-flow__block { background: rgba(255,255,255,0.65); border-color: rgba(201,71,225,0.22); }
.s-light .fa-flow__block-title { color: #14141C; }
.s-light .fa-flow__path { background: linear-gradient(135deg, rgba(201,71,225,0.12), rgba(122,79,184,0.08)); border-color: rgba(201,71,225,0.3); }
.s-light .fa-flow__path-title { color: #14141C; }
.s-light .fa-flow__path-desc { color: rgba(20,20,28,0.7); }

.s-light .fa-life__brand { background: rgba(255,255,255,0.6); border-color: rgba(201,71,225,0.25); }
.s-light .fa-life__brand b { color: #14141C; }
.s-light .fa-life__band { background: rgba(255,255,255,0.55); border-color: rgba(20,20,40,0.08); color: rgba(20,20,28,0.82); }
.s-light .fa-life__step { background: rgba(255,255,255,0.6); border-color: rgba(20,20,40,0.12); color: rgba(20,20,28,0.85); }
.s-light .fa-life__arrow { color: rgba(20,20,28,0.8); }
.s-light .fa-life__arrow span { background: rgba(74,123,200,0.12); border-color: rgba(74,123,200,0.35); }

.s-light .fa-stacklist__item { background: rgba(255,255,255,0.65); border-color: rgba(201,71,225,0.25); color: #14141C; }
.s-light .fa-btn--ghost { background: linear-gradient(135deg, rgba(255,255,255,0.92) 0%, rgba(201,71,225,0.20) 100%); color: #14141C; border-color: rgba(201,71,225,0.6); box-shadow: 0 0 14px rgba(201,71,225,0.3); }
.s-light .fa-btn--ghost:hover { background: linear-gradient(135deg, rgba(255,255,255,0.98) 0%, rgba(201,71,225,0.32) 100%); box-shadow: 0 0 20px rgba(201,71,225,0.45); }

/* expandable (native <details>) for focus-area sections */
.fa-expand { margin-top: 1.2rem; border-left: 3px solid var(--brand); padding-left: 1.5rem; }
.fa-expand__summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 0.55rem; color: var(--brand); font-weight: 600; font-size: 1.05rem; user-select: none; }
.fa-expand__summary::-webkit-details-marker { display: none; }
.fa-expand__summary::after { content: ''; width: 9px; height: 9px; border-right: 2px solid var(--brand); border-bottom: 2px solid var(--brand); transform: rotate(45deg); transition: transform .25s ease; margin-top: -3px; }
.fa-expand[open] .fa-expand__summary::after { transform: rotate(-135deg); margin-top: 2px; }
.fa-expand__summary:hover { filter: brightness(1.15); }
.fa-expand__body { margin-top: 0.9rem; }

/* Signature blocks inside the "Why subrosa exists" statement — clickable, jump to Executive Board */
.statement-signature { cursor: pointer; }
.statement-signature:hover {
  background: rgba(201,71,225,0.08);
  transform: translateY(-2px);
}
.statement-signature:hover img {
  border-color: var(--brand) !important;
  box-shadow: 0 8px 24px rgba(201,71,225,0.32) !important;
}
.statement-signature:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 3px;
}

/* ============================================================
   subrosa OmicsAI Services — interactive infographic (.omx)
   Edit colors/texts freely; structure mirrors the print template.
   ============================================================ */
.omx {
  /* ---- palette (change here to recolor the whole graphic) ---- */
  --omx-magenta: #C947E1;
  --omx-magenta-2: #A435C0;
  --omx-lavender: #E5B8E5;
  --omx-text: #333333;
  --omx-tint: #FBEEF9;          /* hover/active background tint */
  background: #FFFFFF;
  border: 1px solid rgba(201,71,225,0.14);
  border-radius: 20px;
  padding: clamp(1.4rem, 3vw, 2.6rem);
  box-shadow: 0 20px 50px rgba(80,20,80,0.10);
  color: var(--omx-text);
  font-family: var(--font-body, 'Source Sans Pro', sans-serif);
}

/* ---- header ---- */
.omx__head-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 1.8rem; }
.omx__title { font-size: clamp(1.5rem, 3vw, 2.3rem); letter-spacing: -0.01em; line-height: 1.15; margin: 0 0 0.4rem; }
.omx__subtitle { color: var(--omx-text); font-size: clamp(0.95rem, 1.4vw, 1.12rem); font-style: italic; margin: 0; }
.omx__subtitle u { text-decoration-color: var(--omx-magenta); text-underline-offset: 2px; }
.omx__lead { max-width: 1180px; margin: 0 0 2rem; font-size: clamp(1.02rem, 1.35vw, 1.25rem); font-weight: 500; line-height: 1.5; color: #2a2740; }

/* Connected Solutions — bridge section (Patient Access + Medical) */
.cs__lead { margin: 0.2rem 0 1rem; color: var(--brand); font-weight: 700; font-size: clamp(1.1rem, 1.7vw, 1.45rem); line-height: 1.3; }
.cs__intro { max-width: 920px; margin: 0.4rem 0 2.4rem; color: #2a2740; font-size: clamp(1.02rem, 1.4vw, 1.2rem); line-height: 1.6; }
.cs__cards { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1.6rem; }
.cs__card {
  display: flex; flex-direction: column; background: #fff; border-radius: 14px;
  padding: 1.9rem 1.75rem; border-top: 3px solid var(--cs-accent, #c947e1);
  box-shadow: 0 8px 24px rgba(20,20,40,0.07); transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.cs__card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(20,20,40,0.12); }
.cs__card--access { --cs-accent: #5b6fae; }
.cs__card--clinical { --cs-accent: #6b7385; }
.cs__card--medical { --cs-accent: #c947e1; }
.cs__card-label { color: var(--cs-accent); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 0.45rem; }
.cs__card-title { color: #14141C; font-size: 1.45rem; font-weight: 700; line-height: 1.2; margin: 0 0 0.85rem; }
.cs__card-text { color: rgba(20,20,28,0.78); font-size: 0.98rem; line-height: 1.6; margin: 0 0 1.6rem; }
.cs__card-btn {
  align-self: flex-start; margin-top: auto; display: inline-block; text-decoration: none;
  background: var(--cs-accent); color: #fff; font-weight: 600; font-size: 0.92rem;
  padding: 0.7rem 1.35rem; border-radius: 999px; transition: opacity 0.2s ease, transform 0.2s ease;
}
.cs__card-btn:hover { opacity: 0.9; transform: translateY(-1px); }
.cs__close { text-align: left; margin: 2.6rem 0 0; max-width: 820px; color: #2a2740; font-size: clamp(1.05rem, 1.5vw, 1.3rem); font-weight: 600; line-height: 1.4; }
.cs__more { text-align: left; margin: 0.8rem 0 0; color: #2a2740; font-size: clamp(0.85rem, 1.15vw, 1.05rem); line-height: 1.5; white-space: nowrap; }
@media (max-width: 980px) { .cs__more { white-space: normal; } }

/* subrosa OmicsAI — compact stats, integrated directly into the grey s-dark section */
.omxstats { }
.omxstats__head { margin-bottom: 1.8rem; }
.omxstats__title { font-family: var(--font-body); color: var(--brand); font-size: clamp(1.3rem, 2.4vw, 1.9rem); font-weight: 700; line-height: 1.2; margin: 0 0 0.5rem; }
.omxstats__tagline { color: #ffffff; font-size: clamp(0.95rem, 1.35vw, 1.1rem); font-weight: 500; font-style: italic; margin: 0; }
.omxstats__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.omxstats__cell {
  background:
    linear-gradient(150deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.06) 58%, rgba(255,255,255,0.02) 100%),
    linear-gradient(0deg, rgba(201,71,225,0.12), rgba(201,71,225,0.12));
  border: 1px solid rgba(255,255,255,0.16); border-left: 4px solid var(--brand);
  border-radius: 14px; padding: 1.3rem 1.2rem; display: flex; flex-direction: column; gap: 0.4rem;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.22),
    inset 0 0 0 1px rgba(201,71,225,0.18),
    0 10px 26px -8px rgba(201,71,225,0.42),
    0 4px 14px rgba(0,0,0,0.3);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.omxstats__cell:hover {
  transform: translateY(-3px); border-color: var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.3),
    inset 0 0 0 1px rgba(201,71,225,0.32),
    0 18px 38px -8px rgba(201,71,225,0.62),
    0 6px 16px rgba(0,0,0,0.35);
}
.omxstats__num { color: var(--brand); font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 700; line-height: 1; }
.omxstats__desc { color: #ffffff; font-size: 0.95rem; font-weight: 500; line-height: 1.5; }
.omxstats__foot { margin-top: 1.8rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,0.12); }
.omxstats__person { color: #fff; font-weight: 700; font-size: 1.05rem; margin: 0 0 0.25rem; }
.omxstats__person-sub { color: #ffffff; font-size: 0.95rem; font-weight: 500; margin: 0; }
@media (max-width: 760px) { .omxstats__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .omxstats__grid { grid-template-columns: 1fr; } }
.cs__more-link { color: var(--brand); font-weight: 700; text-decoration: none; white-space: nowrap; }
.cs__more-link:hover { text-decoration: underline; }
@media (max-width: 980px) { .cs__cards { grid-template-columns: 1fr; } }

/* Bridge paragraph between the 5 pillars and the Connected Solutions block */
.fa-bridge { max-width: 1020px; margin: 2.8rem auto 0; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,0.12); }

/* Clickable pillars → scroll to & flash the matching text */
.fa-stacklist__item[data-pillar] { cursor: pointer; }
.pillar-target { border-radius: 8px; scroll-margin-top: 96px; }
.pillar-target--pad { padding: 0.45rem 0.7rem; margin-left: -0.7rem; margin-right: -0.7rem; }
.pillar-flash { animation: pillarFlash 1.7s ease; }
@keyframes pillarFlash {
  0%   { background-color: rgba(201,71,225,0);    box-shadow: 0 0 0 0 rgba(201,71,225,0); }
  12%  { background-color: rgba(201,71,225,0.30); box-shadow: 0 0 0 5px rgba(201,71,225,0.16); }
  100% { background-color: rgba(201,71,225,0);    box-shadow: 0 0 0 0 rgba(201,71,225,0); }
}
@media (prefers-reduced-motion: reduce) { .pillar-flash { animation: none; } }

/* Bridge heading on one line; glowing question; CTA link with arrow → Connected Solutions */
.fa-bridge__head { text-align: left; letter-spacing: -0.015em; margin: 0 0 1.2rem; font-size: clamp(0.95rem, 1.6vw, 1.3rem); white-space: nowrap; }
@media (max-width: 860px) { .fa-bridge__head { white-space: normal; } }
.bridge-q { font-style: italic; color: #e96bff; text-shadow: 0 0 14px rgba(201,71,225,0.5); }
.bridge-cta-wrap { margin: 1.6rem 0 0; }
.bridge-cta { display: inline-block; color: #e96bff; font-weight: 700; text-decoration: none; font-size: 1.02rem; transition: color 0.2s ease; }
.bridge-cta:hover { color: #fff; }
.bridge-cta__arrow { display: inline-block; transition: transform 0.2s ease; }
.bridge-cta:hover .bridge-cta__arrow { transform: translateX(4px); }
#connected-solutions { scroll-margin-top: 90px; }
.omx__logo { flex-shrink: 0; margin-top: -2.2rem; }
.omx__logo img { height: 140px; width: auto; display: block; }

/* ---- two-column row: left label + body ---- */
.omx__row { display: grid; grid-template-columns: 88px 1fr; gap: 1rem; align-items: center; margin-top: 1.4rem; }
.omx__rowlabel { color: var(--omx-magenta); font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.95rem; text-align: center; }
.omx__rowbody { min-width: 0; }

/* ---- chevron header banner (interlocking arrows, magenta outline) ---- */
.omx__banner { display: flex; }
.omx__head {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem;
  text-align: center;
  background: #FFFFFF;
  color: var(--omx-magenta-2);
  border: none; cursor: pointer;
  font-family: inherit;
  padding: 1rem 1.3rem 1rem 1.9rem;
  clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%, 16px 50%);
  margin-left: -14px;
  filter: drop-shadow(1.5px 0 0 var(--omx-magenta)) drop-shadow(-1.5px 0 0 var(--omx-magenta)) drop-shadow(0 1.5px 0 var(--omx-magenta)) drop-shadow(0 -1.5px 0 var(--omx-magenta));
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.omx__head:first-child { clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%); margin-left: 0; padding-left: 1.3rem; }
.omx__head:nth-child(1) { z-index: 3; }
.omx__head:nth-child(2) { z-index: 2; }
.omx__head:nth-child(3) { z-index: 1; }
.omx__head-icon { color: var(--omx-magenta); display: inline-flex; }
.omx__head-icon svg { width: 30px; height: 30px; }
.omx__head-title { font-weight: 700; font-size: clamp(0.85rem, 1.2vw, 1rem); line-height: 1.2; }
.omx__head.is-hot, .omx__head.is-active { background: var(--omx-tint); }
.omx__head.is-dim { opacity: 0.45; }

/* ---- checklist cards ---- */
.omx__lists { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.9rem; margin-top: 0.9rem; }
.omx__list { list-style: none; margin: 0; padding: 1rem 1.1rem; background: #FCFAFD; border: 1px solid rgba(201,71,225,0.12); border-radius: 12px; transition: transform .25s ease, box-shadow .25s ease, background .25s ease, opacity .25s ease; }
.omx__list li { position: relative; padding: 0.42rem 0 0.42rem 1.7rem; font-size: 0.9rem; line-height: 1.4; color: var(--omx-text); border-bottom: 1px solid rgba(20,20,40,0.06); }
.omx__list li:last-child { border-bottom: none; }
.omx__list li::before { content: '\2713'; position: absolute; left: 0; top: 0.42rem; color: var(--omx-magenta); font-weight: 800; font-size: 0.95rem; }
.omx__list.is-hot, .omx__list.is-active { transform: translateY(-4px); background: var(--omx-tint); box-shadow: 0 14px 30px rgba(201,71,225,0.16); }
.omx__list.is-dim { opacity: 0.45; }

/* ---- mid chevron banner ---- */
.omx__midband {
  display: flex; align-items: center; justify-content: center; text-align: center;
  margin: 1.8rem 0;
  background: linear-gradient(90deg, rgba(164,53,192,0.55), rgba(201,71,225,0.42));
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  color: #FFFFFF;
  text-shadow: 0 1px 3px rgba(110,15,100,0.5);
  font-weight: 700; font-size: clamp(0.92rem, 1.3vw, 1.08rem);
  padding: 1rem 3.2rem 1rem 1.6rem;
  clip-path: polygon(0 0, calc(100% - 42px) 0, 100% 50%, calc(100% - 42px) 100%, 0 100%);
  filter: drop-shadow(0 5px 12px rgba(164,53,192,0.18));
}

/* ---- benefit circles ---- */
.omx__benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; margin-top: 0.9rem; }
.omx__circle {
  aspect-ratio: 1 / 1; border-radius: 50%;
  background: radial-gradient(circle at 30% 24%, rgba(228,176,240,0.34) 0%, rgba(201,71,225,0.28) 52%, rgba(164,53,192,0.30) 100%);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: #74747c;
  border: 1px solid rgba(255,255,255,0.55);
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  gap: 0.5rem; padding: 12%;
  box-shadow: 0 10px 28px rgba(164,53,192,0.16);
  transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease;
}
.omx__circle strong { color: #5c5c64; font-size: clamp(0.92rem, 1.25vw, 1.1rem); font-weight: 700; line-height: 1.18; }
.omx__circle span { color: #74747c; font-size: clamp(0.8rem, 1vw, 0.94rem); font-weight: 500; line-height: 1.3; }
.omx__circle b { font-weight: 800; }
.omx__circle.is-hot, .omx__circle:hover { transform: scale(1.04); box-shadow: 0 16px 36px rgba(164,53,192,0.30); }
.omx__circle.is-dim { opacity: 0.45; }

/* ---- footer ---- */
.omx__slogan { text-align: center; color: var(--omx-magenta); font-weight: 800; font-size: clamp(1.05rem, 1.8vw, 1.5rem); margin: 2rem 0 0.3rem; }
.omx__footnote { text-align: center; color: #555; font-size: 0.88rem; font-weight: 600; margin: 1.4rem 0 0; }

/* ---- staggered entry animation (gated by reveal-s .in-view) ---- */
.omx__anim { opacity: 0; transform: translateY(14px); transition: opacity .6s cubic-bezier(0.22,1,0.36,1), transform .6s cubic-bezier(0.22,1,0.36,1); transition-delay: var(--omx-d, 0ms); }
.reveal-s.in-view .omx__anim { opacity: 1; transform: none; }
.omx__list li { opacity: 0; transform: translateY(8px); transition: opacity .45s ease, transform .45s ease; }
.reveal-s.in-view .omx__list li { opacity: 1; transform: none; }
.reveal-s.in-view .omx__list li:nth-child(1) { transition-delay: .30s; }
.reveal-s.in-view .omx__list li:nth-child(2) { transition-delay: .38s; }
.reveal-s.in-view .omx__list li:nth-child(3) { transition-delay: .46s; }
.reveal-s.in-view .omx__list li:nth-child(4) { transition-delay: .54s; }
@media (prefers-reduced-motion: reduce) {
  .omx__anim, .omx__list li { opacity: 1; transform: none; transition: none; }
}

/* ---- responsive: stack on mobile ---- */
@media (max-width: 860px) {
  .omx__row { grid-template-columns: 1fr; gap: 0.5rem; }
  .omx__rowlabel { text-align: left; }
  .omx__banner { flex-direction: column; gap: 8px; }
  .omx__head { clip-path: none; margin-left: 0; padding: 0.8rem 1rem; border-radius: 10px; flex-direction: row; justify-content: flex-start; gap: 0.7rem; filter: none; border: 1.5px solid var(--omx-magenta); }
  .omx__head:first-child { padding-left: 1rem; }
  .omx__lists { grid-template-columns: 1fr; }
  .omx__midband { clip-path: none; padding: 0.95rem 1.2rem; border-radius: 10px; filter: none; }
  .omx__benefits { grid-template-columns: 1fr; }
  .omx__circle { aspect-ratio: auto; border-radius: 18px; padding: 1.5rem 1.4rem; }
}

/* ============================================================
   subrosa OmicsAI Team Competence & Facts — interactive radar (.tcf)
   Edit numbers in HTML (data-target), colors via the vars below.
   ============================================================ */
.tcf {
  --tcf-magenta: #C947E1;
  --tcf-magenta-2: #A435C0;
  --tcf-navy: #2B2D42;
  --tcf-text: #333333;
  background: #FFFFFF;
  border: 1px solid rgba(201,71,225,0.14);
  border-radius: 20px;
  padding: clamp(1.4rem, 3vw, 2.6rem);
  box-shadow: 0 20px 50px rgba(80,20,80,0.10);
  color: var(--tcf-text);
  font-family: var(--font-body, 'Source Sans Pro', sans-serif);
}

/* header */
.tcf__head { position: relative; text-align: center; margin-bottom: 1.6rem; padding-top: 0.2rem; }
.tcf__logo { position: absolute; top: 0; left: 0; }
.tcf__logo img { height: 86px; width: auto; display: block; }
.tcf__title { font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1.15; margin: 0 0 0.5rem; }
.tcf__subtitle { color: var(--tcf-text); font-style: italic; max-width: none; white-space: nowrap; margin: 0 auto; font-size: clamp(0.78rem, 1.15vw, 1.02rem); line-height: 1.45; }

/* layout: 3 stats | center | 3 stats */
.tcf__grid { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1.5rem; align-items: center; }
.tcf__col { display: flex; flex-direction: column; justify-content: space-between; gap: 1.8rem; align-self: stretch; }

/* one stat */
.tcf__stat { display: flex; align-items: center; gap: 1rem; outline: none; border-radius: 12px; padding: 0.3rem; }
.tcf__col--left .tcf__stat { flex-direction: row-reverse; text-align: right; }
.tcf__col--right .tcf__stat { flex-direction: row; text-align: left; }
.tcf__icon {
  width: 54px; height: 54px; flex-shrink: 0; border-radius: 14px;
  background: linear-gradient(135deg, var(--tcf-magenta), var(--tcf-magenta-2));
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 12px rgba(201,71,225,0.22);
  transition: transform .25s ease, box-shadow .25s ease;
}
.tcf__icon svg { width: 28px; height: 28px; color: #FFFFFF; }
.tcf__text { min-width: 0; }
.tcf__num { color: var(--tcf-magenta); font-size: clamp(1.4rem, 2.2vw, 2rem); font-weight: 800; line-height: 1; }
.tcf__desc { color: #2c2c33; font-size: 0.92rem; font-weight: 500; line-height: 1.4; margin-top: 0.35rem; }
.tcf__stat.is-hot .tcf__icon, .tcf__stat:focus-visible .tcf__icon { transform: translateY(-3px) scale(1.05); box-shadow: 0 10px 22px rgba(201,71,225,0.4); }

/* center figure */
.tcf__center { display: flex; flex-direction: column; align-items: center; }
.tcf-svg { width: clamp(240px, 30vw, 340px); height: auto; overflow: visible; }
.tcf__cc-title { color: var(--tcf-magenta); font-weight: 800; font-size: clamp(1.05rem, 1.5vw, 1.25rem); margin-top: 0.7rem; }
.tcf__cc-name { color: #2A2230; font-weight: 700; font-size: clamp(0.82rem, 1vw, 0.95rem); text-align: center; max-width: 340px; margin-top: 0.35rem; line-height: 1.35; }

/* footer */
.tcf__foot { margin-top: 2rem; }
.tcf__foot-tag { color: var(--tcf-text); font-style: italic; text-align: center; font-size: clamp(1.1rem, 1.7vw, 1.45rem); margin: 0 0 2rem; }
.tcf__foot-tag u { text-decoration-color: var(--tcf-magenta); text-underline-offset: 3px; }
.tcf__foot-right { color: #666; font-size: 0.8rem; margin: 0; text-align: right; }

/* ---- SVG: ring-draw + arc hover + pulse ---- */
.tcf-ring { stroke-dasharray: var(--len); stroke-dashoffset: var(--len); }
.reveal-s.in-view .tcf-ring { animation: tcfDraw 1.4s cubic-bezier(0.22,1,0.36,1) forwards; }
@keyframes tcfDraw { to { stroke-dashoffset: 0; } }
.tcf-figure { opacity: 0; transform: translateY(8px); transform-origin: center; transition: opacity .7s ease, transform .7s ease; }
.reveal-s.in-view .tcf-figure { opacity: 1; transform: none; }
.tcf-arc { opacity: 0; transition: opacity .4s ease, stroke .2s ease, stroke-width .2s ease; }
.reveal-s.in-view .tcf-arc { opacity: 0.85; transition-delay: 1s; }
.tcf-arc.is-hot { stroke: var(--tcf-magenta); stroke-width: 12; opacity: 1; transition-delay: 0s; }
.tcf-glow { transform-origin: center; animation: tcfPulse 3.6s ease-in-out infinite; }
@keyframes tcfPulse { 0%,100% { opacity: 0.18; } 50% { opacity: 0.42; } }

@media (prefers-reduced-motion: reduce) {
  .tcf-ring { stroke-dashoffset: 0; animation: none; }
  .tcf-figure { opacity: 1; transform: none; transition: none; }
  .tcf-arc { opacity: 0.85; transition: none; }
  .tcf-glow { animation: none; opacity: 0.3; }
}

/* ---- responsive: stack center on top, stats below ---- */
@media (max-width: 860px) {
  .tcf__grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .tcf__center { order: -1; }
  .tcf__col { gap: 1.4rem; }
  .tcf__col--left .tcf__stat { flex-direction: row; text-align: left; }
  .tcf__head { text-align: center; }
  .tcf__logo { position: static; margin: 0 auto 0.8rem; }
  .tcf__logo img { height: 64px; }
  .tcf__subtitle { white-space: normal; }
}

/* ============================================================
   Our Therapeutic Focus Areas — interactive mosaic (.tfa)
   Edit therapy names/photos in the HTML; colors via vars below.
   ============================================================ */
.tfa {
  --tfa-magenta: #C947E1; --tfa-magenta-2: #A435C0; --tfa-navy: #2B2D42;
  display: grid; grid-template-columns: minmax(190px, 0.85fr) 3fr; gap: 2.2rem; align-items: center;
}
.tfa__intro { text-align: center; color: var(--tfa-navy); font-size: clamp(1rem, 1.25vw, 1.18rem); font-weight: 500; line-height: 1.6; }
.tfa__main { min-width: 0; }
.tfa__head { text-align: left; margin-bottom: 1.1rem; }
.tfa__title { color: #333; font-size: clamp(1.5rem, 2.6vw, 2.2rem); font-weight: 800; line-height: 1.1; margin: 0; }
.tfa__subtitle { color: var(--tfa-magenta); font-style: italic; font-weight: 600; font-size: clamp(1rem, 1.5vw, 1.3rem); margin: 0 0 0.7rem; }

.tfa__grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0.6rem; }
.tfa__tile { position: relative; aspect-ratio: 4 / 5; border-radius: 10px; overflow: hidden; opacity: 0; transition: transform .25s ease, box-shadow .25s ease; }
.reveal-s.in-view .tfa__tile { animation: tfaFade .6s ease forwards; animation-delay: var(--d, 0ms); }
@keyframes tfaFade { from { opacity: 0; } to { opacity: 1; } }

/* magenta text tiles */
.tfa__tile--text { background: linear-gradient(150deg, var(--tfa-magenta), var(--tfa-magenta-2)); display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 0.75rem 0.45rem; text-align: center; outline: none; }
.tfa__tile--text:hover, .tfa__tile--text:focus-visible { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(164,53,192,0.42); }
.tfa__term { color: #fff; font-weight: 700; font-size: clamp(0.6rem, 0.82vw, 0.82rem); line-height: 1.12; }
.tfa__gear { color: #fff; display: inline-flex; }
.tfa__gear svg { width: clamp(24px, 2.6vw, 36px); height: auto; }
.tfa__tile--text:hover .tfa__gear svg, .tfa__tile--text:focus-visible .tfa__gear svg { animation: tfaSpin 3.5s linear infinite; }
@keyframes tfaSpin { to { transform: rotate(360deg); } }

/* photo tiles */
.tfa__tile--photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.tfa__tile--photo::after { content: ''; position: absolute; inset: 0; background: rgba(201,71,225,0); transition: background .3s ease; pointer-events: none; }
.tfa__tile--photo:hover img { transform: scale(1.06); }
.tfa__tile--photo:hover::after { background: rgba(201,71,225,0.28); }

@media (prefers-reduced-motion: reduce) {
  .tfa__tile { opacity: 1; animation: none; transition: none; }
  .tfa__tile--text:hover .tfa__gear svg, .tfa__tile--text:focus-visible .tfa__gear svg { animation: none; }
  .tfa__tile--photo:hover img { transform: none; }
}

/* responsive */
@media (max-width: 1000px) {
  .tfa { grid-template-columns: 1fr; gap: 1.4rem; }
  .tfa__head { text-align: center; }
  .tfa__grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 560px) {
  .tfa__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ===========================================================
   Focus Area: GTM Strategies — additive components
   =========================================================== */

/* ---- Quote / Testimonial ---- */
.fa-quote {
  margin: 1.5rem 0 0; padding: 1.6rem 1.8rem 1.4rem;
  background: linear-gradient(135deg, rgba(201,71,225,0.06), rgba(74,123,200,0.04));
  border-left: 4px solid var(--brand);
  border-radius: 0 14px 14px 0;
  box-shadow: 0 6px 24px rgba(20,20,40,0.05);
}
.fa-quote__brand {
  margin-left: auto; height: 104px; width: auto; flex-shrink: 0;
  animation: fa-quote-brand-blink 1s ease-in-out 0.4s 1 both;
}
@keyframes fa-quote-brand-blink {
  0%   { opacity: 1; }
  35%  { opacity: 0.05; }
  70%  { opacity: 1; }
  100% { opacity: 1; }
}
.s-dark .fa-quote__brand { filter: brightness(0) invert(1); opacity: 0.92; }
@media (max-width: 640px) {
  .fa-quote__cite { flex-wrap: wrap; }
  .fa-quote__brand { margin-left: 0; height: 72px; }
}
.fa-quote p {
  font-size: 1.05rem; line-height: 1.7; color: rgba(20,20,28,0.95);
  margin: 0 0 1rem; font-weight: 400;
}
.fa-quote p:last-of-type { margin-bottom: 0; }
.fa-quote__tagline {
  font-family: var(--font-hero); font-size: 1.3rem !important; font-weight: 400 !important;
  color: var(--brand) !important; font-style: italic; margin-top: 0.5rem !important;
}
.fa-quote__cite {
  display: flex; align-items: center; gap: 1.3rem; margin-top: 1.5rem;
  padding-top: 1.2rem; border-top: 1px solid rgba(20,20,28,0.1);
  color: #14141C; font-size: 1rem; line-height: 1.5; font-weight: 600;
}
.fa-quote__avatar {
  flex-shrink: 0; width: 120px; height: 120px; border-radius: 50%;
  background: linear-gradient(135deg, #C947E1, #7A4FB8);
  color: #fff; font-weight: 700; font-size: 1.6rem; letter-spacing: 0.05em;
  display: flex; align-items: center; justify-content: center;
}
.fa-quote__role { color: rgba(20,20,28,0.82); font-size: 0.9rem; font-weight: 500; }
img.fa-quote__avatar--img {
  object-fit: cover; object-position: center top;
  padding: 0; border: 3px solid rgba(201,71,225,0.5);
  box-shadow: 0 8px 22px rgba(201,71,225,0.25);
}
.s-dark .fa-quote { background: linear-gradient(135deg, rgba(201,71,225,0.1), rgba(255,255,255,0.03)); box-shadow: none; }
.s-dark .fa-quote p { color: rgba(255,255,255,0.85); }
.s-dark .fa-quote__cite { color: #fff; border-top-color: rgba(255,255,255,0.15); }
.s-dark .fa-quote__role { color: rgba(255,255,255,0.65); }

/* ---- Pull stat (big number + lead-in text) ---- */
.fa-pullstat {
  display: flex; align-items: center; gap: 1.9rem;
  background: linear-gradient(135deg, rgba(201,71,225,0.22), rgba(74,123,200,0.1));
  border: 1px solid rgba(201,71,225,0.45); border-left: 5px solid var(--brand); border-radius: 18px;
  padding: 1.9rem 2.1rem; margin: 0;
  box-shadow: 0 0 44px rgba(201,71,225,0.24), inset 0 1px 0 rgba(255,255,255,0.12);
}
.fa-pullstat__num {
  flex-shrink: 0; font-family: var(--font-hero);
  font-size: clamp(3.8rem, 8.5vw, 6.4rem); line-height: 0.92;
  background: linear-gradient(135deg, #C947E1, #4A7BC8);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; font-weight: 400;
  filter: drop-shadow(0 4px 20px rgba(201,71,225,0.4));
}
.fa-pullstat__text { font-size: clamp(1.2rem, 1.95vw, 1.65rem); line-height: 1.4; color: rgba(255,255,255,0.96); margin: 0; font-weight: 500; }
.fa-pullstat__text strong { color: #fff; font-weight: 800; }
.s-light .fa-pullstat__text { color: rgba(20,20,28,0.85); }
.s-light .fa-pullstat__text strong { color: #14141C; }
@media (max-width: 640px) {
  .fa-pullstat { flex-direction: column; align-items: flex-start; text-align: left; }
}

/* ---- Core deliverables (numbered cards) ---- */
.fa-cores {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin: 0 0 2.2rem;
}
.fa-core {
  background:
    linear-gradient(150deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.55) 60%, rgba(255,255,255,0.2) 100%),
    linear-gradient(0deg, rgba(201,71,225,0.10), rgba(201,71,225,0.10));
  border: 1px solid rgba(255,255,255,0.8); border-left: 4px solid var(--brand);
  border-radius: 16px; padding: 1.2rem 1.3rem;
  display: flex; gap: 1rem; align-items: flex-start;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.9),
    inset 0 0 0 1px rgba(201,71,225,0.14),
    0 10px 24px -8px rgba(201,71,225,0.32),
    0 4px 12px rgba(20,20,40,0.05);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.fa-core:hover {
  transform: translateY(-3px); border-color: var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    inset 0 0 0 1px rgba(201,71,225,0.22),
    0 18px 34px -8px rgba(201,71,225,0.45),
    0 6px 16px rgba(20,20,40,0.08);
}
.fa-core__num {
  flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%;
  border: 2px solid var(--brand); color: var(--brand);
  font-weight: 700; font-size: 0.85rem;
  display: flex; align-items: center; justify-content: center;
}
.fa-core p { margin: 0; color: rgba(20,20,28,0.9); font-weight: 500; font-size: 0.98rem; line-height: 1.55; }
@media (max-width: 720px) { .fa-cores { grid-template-columns: 1fr; } }

.fa-subheading {
  font-family: var(--font-body); font-size: 1.2rem; font-weight: 700;
  color: #14141C; margin: 0 0 1rem; letter-spacing: -0.01em;
}

/* ---- Pathway cards (4-up) ---- */
.fa-pathways { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.fa-pathway {
  background:
    linear-gradient(150deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.28) 100%),
    linear-gradient(0deg, rgba(201,71,225,0.08), rgba(201,71,225,0.08));
  border: 1px solid rgba(255,255,255,0.85); border-left: 4px solid var(--brand);
  border-radius: 16px; padding: 1.3rem 1.2rem;
  display: flex; flex-direction: column; gap: 0.7rem;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.95),
    inset 0 0 0 1px rgba(201,71,225,0.14),
    0 10px 26px -8px rgba(201,71,225,0.4),
    0 4px 14px rgba(20,20,40,0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.fa-pathway:hover {
  transform: translateY(-4px); border-color: var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    inset 0 0 0 1px rgba(201,71,225,0.24),
    0 20px 40px -8px rgba(201,71,225,0.55),
    0 6px 16px rgba(20,20,40,0.1);
}
.fa-pathway__head { display: flex; align-items: center; gap: 0.6rem; }
.fa-pathway__icon {
  flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, rgba(201,71,225,0.18), rgba(74,123,200,0.12));
  color: var(--brand); display: flex; align-items: center; justify-content: center;
}
.fa-pathway h4 { margin: 0; font-size: 1.1rem; font-weight: 700; color: #14141C; }
.fa-pathway p { margin: 0; color: rgba(20,20,28,0.85); font-weight: 500; font-size: 0.95rem; line-height: 1.5; flex: 1; }
.fa-pathway__brand {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--brand-2, #7A4FB8);
  padding-top: 0.7rem; border-top: 1px dashed rgba(201,71,225,0.25);
}
@media (max-width: 1023px) { .fa-pathways { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .fa-pathways { grid-template-columns: 1fr; } }

/* ---- Lifecycle (compact horizontal phases + 3 pathway pillars) ---- */
.fa-lifecycle {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 18px; padding: 1.4rem 1.4rem 1.6rem;
}
.fa-lifecycle__phases {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.4rem; margin-bottom: 0.7rem;
}
.fa-lifecycle__phase {
  background: linear-gradient(135deg, #2F77BE, #1F5A99);
  color: #fff; font-size: 0.78rem; font-weight: 600;
  text-align: center; padding: 0.65rem 0.4rem; border-radius: 8px;
  line-height: 1.2;
}
.fa-lifecycle__bridge {
  margin: 0.6rem 0 1.2rem;
  background: linear-gradient(90deg, rgba(201,71,225,0.35), rgba(74,123,200,0.25));
  border-radius: 10px; padding: 0.8rem 1rem; text-align: center;
}
.fa-lifecycle__bridge-label {
  color: #fff; font-weight: 700; font-size: 1rem; letter-spacing: 0.02em;
}
.fa-lifecycle__paths { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.9rem; }
.fa-lifecycle__path {
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px; padding: 1rem 1.1rem;
}
.fa-lifecycle__path-title {
  display: block; font-size: 0.8rem; font-weight: 800;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--brand); margin-bottom: 0.5rem;
}
.fa-lifecycle__path p { margin: 0 0 0.6rem; color: rgba(255,255,255,0.8); font-size: 0.92rem; line-height: 1.5; }
.fa-lifecycle__path-brand {
  display: block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em;
  text-transform: uppercase; color: rgba(255,255,255,0.55);
}
@media (max-width: 860px) {
  .fa-lifecycle__phases { grid-template-columns: repeat(2, 1fr); }
  .fa-lifecycle__paths  { grid-template-columns: 1fr; }
}

/* ---- 3-Phase framework cards ---- */
.fa-phases { display: grid; grid-template-columns: 1fr; gap: 1.1rem; }
.fa-phase {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 16px; padding: 1.3rem 1.5rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.fa-phase:hover { border-color: rgba(201,71,225,0.4); box-shadow: 0 14px 36px rgba(0,0,0,0.25); }
.fa-phase__header {
  display: flex; align-items: baseline; gap: 0.9rem; flex-wrap: wrap;
  padding-bottom: 0.9rem; margin-bottom: 1rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.fa-phase__num {
  font-family: var(--font-hero); font-size: 1.4rem;
  background: linear-gradient(135deg, #C947E1, #4A7BC8);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; line-height: 1;
}
.fa-phase__header h3 { margin: 0; font-size: 1.2rem; font-weight: 600; color: #fff; line-height: 1.3; }
.fa-phase__body { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem; }
.fa-phase__body > div h4 {
  margin: 0 0 0.6rem; color: var(--brand); font-size: 0.78rem;
  font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
}
.fa-phase__body > div ul {
  margin: 0; padding-left: 1.1rem; color: rgba(255,255,255,0.8);
  font-size: 0.92rem; line-height: 1.55; font-weight: 300;
}
.fa-phase__body > div li { margin-bottom: 0.35rem; }
@media (max-width: 860px) { .fa-phase__body { grid-template-columns: 1fr; } }

/* ---- Engagement timeline ---- */
.fa-timeline {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem;
  position: relative;
}
.fa-timeline__step {
  background: rgba(255,255,255,0.7); border: 1px solid rgba(201,71,225,0.2);
  border-radius: 14px; padding: 1.3rem 1.2rem;
  display: flex; gap: 1rem; align-items: flex-start;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.fa-timeline__step:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(201,71,225,0.18); }
.fa-timeline__num {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
  background: linear-gradient(135deg, #C947E1, #7A4FB8);
  color: #fff; font-weight: 800; font-size: 1.1rem;
  display: flex; align-items: center; justify-content: center;
}
.fa-timeline__when {
  display: inline-block; font-size: 0.72rem; font-weight: 800;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--brand); margin-bottom: 0.4rem;
}
.fa-timeline__step h3 { margin: 0 0 0.4rem; font-size: 1.05rem; font-weight: 700; color: #14141C; line-height: 1.3; }
.fa-timeline__step p { margin: 0; color: rgba(20,20,28,0.78); font-size: 0.92rem; line-height: 1.55; }
@media (max-width: 860px) { .fa-timeline { grid-template-columns: 1fr; } }

/* ---- Case study blocks ---- */
.fa-case { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
.fa-case__block {
  background:
    linear-gradient(150deg, rgba(255,255,255,0.13) 0%, rgba(255,255,255,0.04) 60%, rgba(255,255,255,0.02) 100%),
    linear-gradient(0deg, rgba(201,71,225,0.09), rgba(201,71,225,0.09));
  border: 1px solid rgba(255,255,255,0.13); border-left: 4px solid var(--brand);
  border-radius: 16px; padding: 1.3rem 1.4rem;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.18),
    0 8px 20px -8px rgba(201,71,225,0.32),
    0 3px 10px rgba(0,0,0,0.25);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.fa-case__block:hover {
  transform: translateY(-3px); border-color: var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.26),
    0 16px 32px -8px rgba(201,71,225,0.48),
    0 5px 14px rgba(0,0,0,0.3);
}
.fa-case__block h3 {
  margin: 0 0 0.7rem; color: var(--brand); font-size: 0.82rem;
  font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
}
.fa-case__block p { margin: 0 0 0.6rem; color: rgba(255,255,255,0.92); font-size: 0.96rem; line-height: 1.58; font-weight: 400; }
.fa-case__block p:last-child { margin-bottom: 0; }
.fa-case__block p strong { color: #fff; font-weight: 700; }
.fa-case__block ul { margin: 0; padding-left: 1.2rem; color: rgba(255,255,255,0.92); font-size: 0.96rem; line-height: 1.58; font-weight: 400; }
.fa-case__block li strong { color: #fff; font-weight: 700; }
.fa-case__block li { margin-bottom: 0.4rem; }
@media (max-width: 720px) { .fa-case { grid-template-columns: 1fr; } }

/* ---- Eyebrow centring helper when row is centred ---- */
.fa-eyebrow { display: inline-flex; }

/* ===========================================================
   Go-to-Market page — slide-faithful components
   =========================================================== */

/* Quote bullet list */
.fa-quote__list { margin: 0.4rem 0 1rem 0; padding-left: 1.2rem; color: rgba(20,20,28,0.95); }
.fa-quote__list li { font-size: 1rem; line-height: 1.65; margin-bottom: 0.4rem; font-weight: 400; }
.s-dark .fa-quote__list { color: rgba(255,255,255,0.85); }

/* Pills (small chips inline) */
.fa-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.5rem; }
.fa-pill {
  display: inline-block; padding: 0.35rem 0.9rem; border-radius: 20px;
  background: rgba(201,71,225,0.18); border: 1px solid rgba(201,71,225,0.4);
  color: #fff; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
}
.s-light .fa-pill { background: rgba(201,71,225,0.1); color: #7A2D9B; border-color: rgba(201,71,225,0.35); }

/* Cores — dark-section variant */
.fa-cores--dark .fa-core {
  background:
    linear-gradient(150deg, rgba(255,255,255,0.16) 0%, rgba(255,255,255,0.05) 60%, rgba(255,255,255,0.02) 100%),
    linear-gradient(0deg, rgba(201,71,225,0.12), rgba(201,71,225,0.12));
  border: 1px solid rgba(255,255,255,0.16); border-left: 4px solid var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.22),
    inset 0 0 0 1px rgba(201,71,225,0.18),
    0 10px 26px -8px rgba(201,71,225,0.42),
    0 4px 14px rgba(0,0,0,0.3);
}
.fa-cores--dark .fa-core:hover {
  border-color: var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.3),
    inset 0 0 0 1px rgba(201,71,225,0.32),
    0 18px 38px -8px rgba(201,71,225,0.6),
    0 6px 16px rgba(0,0,0,0.35);
}
.fa-cores--dark .fa-core p { color: rgba(255,255,255,0.92); }
.fa-cores--dark .fa-core p strong { color: #fff; }

/* Subheading variants */
.fa-subheading--dark { color: #fff; }

/* Stat — dark variant */
.fa-stat--dark { background: rgba(255,255,255,0.04); border: 1px solid rgba(201,71,225,0.25); }
.fa-stat--dark .fa-stat__label { color: rgba(255,255,255,0.75); }

/* ===========================================================
   Patient Access (Solution 2) — page-specific components
   =========================================================== */

/* ---- Circle diagram with 6 segments (Slide 1) ---- */
.pa-circle {
  position: relative; width: min(560px, 100%); margin: 0 auto 3rem;
  aspect-ratio: 1 / 1;
}
.pa-circle__center {
  position: absolute; inset: 26%; border-radius: 50%;
  background: linear-gradient(135deg, rgba(201,71,225,0.18), rgba(74,123,200,0.12));
  border: 2px solid rgba(201,71,225,0.5);
  display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 1.2rem;
  color: #fff; font-size: 1.02rem; line-height: 1.45; font-weight: 400;
  box-shadow: 0 0 60px rgba(201,71,225,0.3);
}
.pa-circle__seg {
  position: absolute; width: 36%; aspect-ratio: 1 / 1;
  background: rgba(255,255,255,0.04);
  border: 1.5px solid rgba(201,71,225,0.35);
  border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 0.6rem;
  color: #FFFFFF; text-decoration: none;
  font-size: 0.88rem; font-weight: 700; line-height: 1.25;
  transition: transform 0.3s cubic-bezier(0.22,1,0.36,1), border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
}
.pa-circle__seg:hover {
  transform: scale(1.08);
  background: linear-gradient(135deg, rgba(201,71,225,0.22), rgba(122,79,184,0.15));
  border-color: var(--brand);
  box-shadow: 0 0 30px rgba(201,71,225,0.45);
  z-index: 2;
}
.pa-circle__num { color: var(--brand); font-weight: 800; font-size: 0.9rem; letter-spacing: 0.06em; margin-bottom: 0.2rem; }
.pa-circle__label { font-weight: 600; }
/* Six positions around the center (12 / 2 / 4 / 6 / 8 / 10 o'clock) */
.pa-circle__seg--1 { top: 0; left: 32%; }
.pa-circle__seg--2 { top: 16%; right: 0; }
.pa-circle__seg--3 { bottom: 16%; right: 0; }
.pa-circle__seg--4 { bottom: 0; left: 32%; }
.pa-circle__seg--5 { bottom: 16%; left: 0; }
.pa-circle__seg--6 { top: 16%; left: 0; }
@media (max-width: 560px) {
  .pa-circle { width: 100%; max-width: 360px; }
  .pa-circle__seg { font-size: 0.7rem; padding: 0.3rem; }
  .pa-circle__num { font-size: 0.75rem; }
}

/* ---- Pillar cards (Slide 2) ---- */
.pa-pillars {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem; margin-top: 1.5rem;
}
.pa-pillar {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px; padding: 1.3rem 1.35rem;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
  scroll-margin-top: 120px;
}
.pa-pillar:hover { border-color: var(--brand); box-shadow: 0 16px 40px rgba(201,71,225,0.2); transform: translateY(-3px); }
.pa-pillar { text-align: center; }
.pa-pillar__head { display: flex; flex-direction: column; align-items: center; gap: 0.6rem; margin-bottom: 0.85rem; }
.pa-pillar__num {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
  background: linear-gradient(135deg, #C947E1, #7A4FB8);
  color: #fff; font-weight: 800; font-size: 0.95rem;
  display: flex; align-items: center; justify-content: center;
}
.pa-pillar__head h3 { margin: 0; color: #fff; font-size: 1.02rem; font-weight: 700; line-height: 1.3; }
.pa-pillar__headline { margin: 0.25rem 0 0; color: #E08CF0; font-size: 0.9rem; font-style: italic; font-weight: 600; }
.pa-pillar > p { margin: 0; color: #FFFFFF; font-size: 0.92rem; line-height: 1.6; font-weight: 400; }
.pa-pillar__foot {
  display: flex; justify-content: center; align-items: center; gap: 1rem;
  flex-wrap: wrap; margin-top: 1rem; padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,0.1);
}
.pa-pillar__link {
  color: var(--brand); text-decoration: none; font-size: 0.88rem; font-weight: 700;
  letter-spacing: 0.03em; transition: color 0.2s ease;
}
.pa-pillar__link:hover { color: #fff; }
.pa-pillar__brand {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.05em;
  text-transform: uppercase; color: rgba(255,255,255,0.85);
}
@media (max-width: 720px) { .pa-pillars { grid-template-columns: 1fr; } }

/* ---- Two-column info blocks (Slide 3) ---- */
.pa-blocks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.6rem; margin-top: 1.2rem; }
.pa-block {
  position: relative; overflow: hidden;
  background: rgba(255,255,255,0.96); border: 1px solid rgba(201,71,225,0.25);
  border-radius: 16px; padding: 1.9rem 1.9rem 1.7rem;
  box-shadow: 0 8px 26px rgba(201,71,225,0.12), 0 2px 8px rgba(20,20,40,0.05);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.pa-block::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, #C947E1, #7A4FB8);
}
.pa-block:hover { transform: translateY(-4px); border-color: var(--brand); box-shadow: 0 18px 42px rgba(201,71,225,0.24); }
.pa-block h3 {
  margin: 0 0 1.1rem; padding-bottom: 0.75rem; color: #14141C;
  font-size: 1.18rem; font-weight: 700; line-height: 1.3;
  border-bottom: 1px solid rgba(201,71,225,0.18);
}
.pa-block h3 em { color: var(--brand); font-style: normal; }
.pa-block ul { list-style: none; margin: 0; padding: 0; color: #1a1a22; font-size: 0.97rem; line-height: 1.6; }
.pa-block li { position: relative; padding-left: 1.7rem; margin-bottom: 0.75rem; }
.pa-block li:last-child { margin-bottom: 0; }
.pa-block li::before {
  content: "✓"; position: absolute; left: 0; top: 0;
  color: var(--brand); font-weight: 800; font-size: 0.95rem;
}
.pa-block strong { color: #14141C; }
@media (max-width: 860px) { .pa-blocks { grid-template-columns: 1fr; } }

/* ---- Medical Solutions: Talent section (centered + chip role lists) ---- */
.fa-prose--center { text-align: center; max-width: 880px; margin-left: auto; margin-right: auto; }
.fa-prose--center p { margin-left: auto; margin-right: auto; }
#talent .pa-blocks {
  grid-template-columns: 1fr;
}
#talent .pa-block {
  text-align: center;
  background: linear-gradient(160deg, #ffffff 0%, #f8eefc 52%, #efe2f8 100%);
}
#talent .pa-block:nth-child(2) {
  background: linear-gradient(160deg, #ffffff 0%, #eef3fc 52%, #e2eaf7 100%);
}
#talent .pa-block h3 { text-align: center; }
#talent .pa-block ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 0.55rem;
}
#talent .pa-block li {
  margin: 0; padding: 0.45rem 0.95rem; border-radius: 2em;
  background: rgba(201,71,225,0.08); border: 1px solid rgba(201,71,225,0.25);
  color: #1a1a22; font-size: 0.9rem; font-weight: 600; line-height: 1.2;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
#talent .pa-block li::before { content: none; }
#talent .pa-block li:hover { background: rgba(201,71,225,0.16); border-color: var(--brand); transform: translateY(-2px); }
@media (max-width: 860px) { #talent .pa-blocks { grid-template-columns: 1fr; } }

/* ---- Key quote / pull statement ---- */
.pa-keyquote {
  display: flex; align-items: center; gap: 1.2rem;
  margin: 2rem 0 0; padding: 1.3rem 1.6rem;
  background: linear-gradient(135deg, rgba(201,71,225,0.1), rgba(74,123,200,0.06));
  border-left: 4px solid var(--brand); border-radius: 0 14px 14px 0;
}
.pa-keyquote p { margin: 0; color: #14141C; font-size: 1.2rem; font-weight: 600; line-height: 1.4; font-style: italic; }
.pa-keyquote p strong { color: var(--brand); font-style: normal; }
.pa-keyquote__icon {
  flex-shrink: 0; font-family: var(--font-hero); font-size: 3.5rem;
  color: var(--brand); line-height: 0.7;
}
.pa-keyquote--dark { background: linear-gradient(135deg, rgba(201,71,225,0.15), rgba(255,255,255,0.02)); }
.pa-keyquote--dark p { color: #fff; }

/* ---- Protocol table (Slide 4) ---- */
.pa-table-wrap { overflow-x: auto; border-radius: 16px; -webkit-overflow-scrolling: touch; }
.pa-table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.025));
  border: 1px solid rgba(201,71,225,0.18);
  border-radius: 16px; overflow: hidden;
  box-shadow: 0 18px 44px rgba(0,0,0,0.30);
}
.pa-table th, .pa-table td {
  padding: 1.05rem 1.2rem; text-align: left; vertical-align: top;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.92); font-size: 0.98rem; line-height: 1.6;
  font-weight: 400;
}
.pa-table thead th {
  background: linear-gradient(135deg, rgba(201,71,225,0.40), rgba(122,79,184,0.32));
  color: #fff; font-weight: 700;
  font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase;
  box-shadow: inset 0 -1px 0 rgba(201,71,225,0.5);
}
.pa-table tbody th {
  color: #fff; font-weight: 700; font-size: 1rem; width: 22%;
}
.pa-table tbody tr { transition: background 0.2s ease; }
.pa-table tbody tr:nth-child(even) { background: rgba(255,255,255,0.03); }
.pa-table tbody tr:hover { background: rgba(201,71,225,0.10); }
.pa-table tbody tr:last-child td, .pa-table tbody tr:last-child th { border-bottom: none; }
.pa-table strong { color: #fff; }
.pa-table em { color: #E891F2; font-style: italic; }
.pa-owner {
  display: inline-block; padding: 0.3rem 0.85rem; border-radius: 2em;
  font-size: 0.74rem; font-weight: 700; letter-spacing: 0.05em;
  text-transform: uppercase; white-space: nowrap; border: 1px solid transparent;
}
.pa-owner--sponsor { background: rgba(201,71,225,0.22); color: #F0A5F8; border-color: rgba(201,71,225,0.45); }
.pa-owner--cro     { background: rgba(74,123,200,0.22); color: #9DC0EE; border-color: rgba(74,123,200,0.45); }
.pa-owner--shared  { background: rgba(255,255,255,0.12); color: #fff; border-color: rgba(255,255,255,0.25); }
/* mobile: stack each row as a card with field labels */
@media (max-width: 720px) {
  .pa-table-wrap { overflow: visible; }
  .pa-table, .pa-table tbody, .pa-table tr, .pa-table th, .pa-table td { display: block; width: auto; }
  .pa-table { background: none; border: none; box-shadow: none; }
  .pa-table thead { display: none; }
  .pa-table tbody tr {
    background: rgba(255,255,255,0.04) !important; border: 1px solid rgba(201,71,225,0.18);
    border-radius: 14px; padding: 0.6rem 1rem 0.9rem; margin-bottom: 1rem;
    box-shadow: 0 10px 26px rgba(0,0,0,0.28);
  }
  .pa-table tbody th { width: auto; font-size: 1.05rem; border-bottom: none; padding: 0.6rem 0 0.3rem; }
  .pa-table td { border-bottom: none; padding: 0.4rem 0; }
  .pa-table td[data-label]::before {
    content: attr(data-label); display: block;
    font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--brand); margin-bottom: 0.3rem;
  }
}

/* ---- OmicsAI service list ---- */
.pa-svc-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.6rem;
}
.pa-svc-list li {
  padding: 0.7rem 1rem;
  background: rgba(255,255,255,0.7); border: 1px solid rgba(201,71,225,0.18);
  border-left: 4px solid var(--brand);
  border-radius: 8px; color: #14141C; font-size: 0.95rem; font-weight: 500;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.pa-svc-list li:hover { transform: translateX(3px); box-shadow: 0 8px 20px rgba(201,71,225,0.15); }
@media (max-width: 720px) { .pa-svc-list { grid-template-columns: 1fr; } }

.pa-benefit-effect { margin: 0.6rem 0 0 !important; color: var(--brand) !important; font-size: 0.92rem !important; font-weight: 700 !important; }

/* ---- Stats (Slide 6 — count-up) ---- */
.pa-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.8rem;
}
.pa-stat {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(201,71,225,0.25);
  border-radius: 14px; padding: 1.5rem 1.4rem; text-align: center;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.pa-stat:hover { transform: translateY(-4px); border-color: var(--brand); box-shadow: 0 16px 36px rgba(201,71,225,0.2); }
.pa-stat__num {
  display: block; font-family: var(--font-hero);
  font-size: clamp(2.2rem, 4vw, 3.2rem); font-weight: 400; line-height: 1;
  background: linear-gradient(135deg, #C947E1, #4A7BC8);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 0.6rem;
}
.pa-stat__label { color: rgba(255,255,255,0.78); font-size: 0.88rem; line-height: 1.45; font-weight: 400; }
@media (max-width: 860px) { .pa-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .pa-stats { grid-template-columns: 1fr; } }

.pa-team {
  margin: 1.5rem 0 0; padding: 1.4rem 1.6rem;
  background: rgba(255,255,255,0.04); border: 1px solid rgba(201,71,225,0.25);
  border-radius: 14px;
}
.pa-team h3 { margin: 0 0 0.4rem; color: var(--brand); font-size: 0.85rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.pa-team p { margin: 0; color: rgba(255,255,255,0.85); font-size: 1.05rem; line-height: 1.55; }
.pa-team strong { color: #fff; }

/* ---- Region matrix (Slide 7) ---- */
.pa-keystrip {
  background: rgba(201,71,225,0.1); border: 1px solid rgba(201,71,225,0.3);
  border-radius: 10px; padding: 0.8rem 1.2rem; margin-bottom: 1.5rem;
  color: #14141C; font-size: 1rem; font-weight: 500; text-align: center;
}
.pa-keystrip strong { color: var(--brand); font-size: 1.2rem; font-weight: 800; margin: 0 0.2rem; }
.pa-matrix-wrap { overflow-x: auto; border-radius: 14px; }
.pa-matrix {
  width: 100%; border-collapse: collapse;
  background: rgba(255,255,255,0.6);
  border: 1px solid rgba(201,71,225,0.18);
  border-radius: 14px; overflow: hidden;
}
.pa-matrix th, .pa-matrix td {
  padding: 0.85rem 0.9rem; border-bottom: 1px solid rgba(20,20,28,0.06);
  text-align: center; vertical-align: middle;
}
.pa-matrix thead th {
  background: rgba(122,79,184,0.18); color: #14141C; font-weight: 700;
  font-size: 0.82rem; letter-spacing: 0.04em; text-transform: uppercase;
  border-bottom: 2px solid rgba(201,71,225,0.3);
}
.pa-matrix tbody th {
  text-align: left; color: #14141C; font-weight: 700; font-size: 0.92rem;
  background: rgba(255,255,255,0.4);
}
.pa-matrix tbody tr { transition: background 0.2s ease; }
.pa-matrix tbody tr:hover { background: rgba(201,71,225,0.08); }
.pa-matrix tbody tr:hover th { background: rgba(201,71,225,0.12); }
.pa-matrix tbody tr:last-child td, .pa-matrix tbody tr:last-child th { border-bottom: none; }
/* Coverage marks — repeatable inline checkmark icons + distinct cross */
.pa-matrix td[data-check]::before, .pa-matrix td[data-check]::after { content: none; }
.pa-matrix td { white-space: nowrap; }
.pa-chk, .pa-x {
  display: inline-block; vertical-align: middle; margin: 0 1.5px;
  background-repeat: no-repeat; background-position: center; background-size: contain;
}
.pa-chk {
  width: 15px; height: 15px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23c947e1' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
}
.pa-x {
  width: 18px; height: 18px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23b86fd6' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'><line x1='18' y1='6' x2='6' y2='18'/><line x1='6' y1='6' x2='18' y2='18'/></svg>");
}
/* Strength shading retained via data-check */
.pa-matrix td[data-check="1"] { background: rgba(201,71,225,0.04); }
.pa-matrix td[data-check="2"] { background: rgba(201,71,225,0.08); }
.pa-matrix td[data-check="3"] { background: rgba(201,71,225,0.14); }
.pa-matrix td[data-check="4"] { background: rgba(201,71,225,0.22); }
.pa-matrix td.pa-cell--x { background: rgba(201,71,225,0.06); }

/* ---- Case study cards (Slides 8-10) ---- */
.pa-case {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 16px; padding: 1.8rem 2rem; margin-bottom: 1.5rem;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.pa-case:hover { border-color: var(--brand); box-shadow: 0 18px 42px rgba(201,71,225,0.2); }
.pa-case__head { margin-bottom: 1.4rem; padding-bottom: 1.2rem; border-bottom: 1px solid rgba(255,255,255,0.1); }
.pa-case__tag {
  display: inline-block; font-size: 0.72rem; font-weight: 800;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--brand);
  margin-bottom: 0.6rem;
}
.pa-case__head h3 { margin: 0 0 0.5rem; color: #fff; font-size: 1.4rem; font-weight: 700; line-height: 1.3; }
.pa-case__sub { margin: 0; color: rgba(255,255,255,0.7); font-size: 1rem; font-style: italic; }
.pa-case__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem; }
.pa-case__block { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; padding: 1.2rem 1.3rem; }
.pa-case__block h4 { margin: 0 0 0.7rem; color: var(--brand); font-size: 0.82rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.pa-case__block p { margin: 0 0 0.6rem; color: rgba(255,255,255,0.85); font-size: 0.95rem; line-height: 1.55; }
.pa-case__block p:last-child { margin-bottom: 0; }
.pa-case__block ul { margin: 0; padding-left: 1.2rem; color: rgba(255,255,255,0.85); font-size: 0.95rem; line-height: 1.55; }
.pa-case__block li { margin-bottom: 0.35rem; }
.pa-case__block strong { color: #fff; }
.pa-case__refs { margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,0.1); color: rgba(255,255,255,0.6); font-size: 0.85rem; }
.pa-case__refs strong { color: rgba(255,255,255,0.85); }
@media (max-width: 720px) { .pa-case__grid { grid-template-columns: 1fr; } .pa-case { padding: 1.4rem; } }

/* Light footnote (used inside s-light sections) */
.fa-footnote-light { margin: 1.2rem 0 0; color: #1a1a22; font-size: 0.85rem; font-style: italic; }

/* ===========================================================
   Preclinical & Clinical Operations (Solution 3)
   =========================================================== */

/* ---- Numbered tile grid (Slides 2 + 3) ---- */
.pc-tiles {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.8rem;
  margin-top: 1rem;
}
.pc-tile {
  display: flex; flex-direction: column; gap: 0.55rem;
  padding: 1rem 1rem; min-height: 110px;
  background:
    linear-gradient(150deg, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.05) 100%),
    linear-gradient(0deg, rgba(201,71,225,0.10), rgba(201,71,225,0.10));
  border: 1px solid rgba(255,255,255,0.2); border-left: 3px solid var(--brand);
  border-radius: 12px; color: #fff;
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.16), 0 4px 14px rgba(0,0,0,0.25);
  text-decoration: none; cursor: default;
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
  position: relative;
}
.pc-tile:hover {
  transform: translateY(-4px);
  border-color: var(--brand);
  background: linear-gradient(135deg, rgba(201,71,225,0.1), rgba(74,123,200,0.06));
  box-shadow: 0 14px 32px rgba(201,71,225,0.2);
}
.pc-tile__num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 50%;
  background: linear-gradient(135deg, #C947E1, #7A4FB8);
  color: #fff; font-weight: 800; font-size: 0.78rem;
}
.pc-tile__name { font-size: 0.92rem; font-weight: 600; line-height: 1.35; }
.pc-tile--link { cursor: pointer; }
.pc-tile--link::after {
  content: "\2192"; position: absolute; right: 0.8rem; bottom: 0.8rem;
  color: var(--brand); opacity: 0; transition: opacity 0.2s ease, transform 0.2s ease;
  font-weight: 700;
}
.pc-tile--link:hover::after { opacity: 1; transform: translateX(2px); }

.pc-tiles--light .pc-tile {
  background: rgba(255,255,255,0.7);
  border-color: rgba(201,71,225,0.18);
  color: #14141C;
}
.pc-tiles--light .pc-tile:hover {
  background: #fff;
  border-color: var(--brand);
  box-shadow: 0 14px 32px rgba(201,71,225,0.18);
}
.pc-tiles--light .pc-tile__name { color: #14141C; }

@media (max-width: 1023px) { .pc-tiles { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px)  { .pc-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px)  { .pc-tiles { grid-template-columns: 1fr; } }

/* ---- Compare columns (Slides 4 + 5) ---- */
.pc-compare { display: grid; gap: 1.2rem; margin-top: 1rem; }
.pc-compare--3 { grid-template-columns: repeat(3, 1fr); }
.pc-compare--2 { grid-template-columns: repeat(2, 1fr); }
.pc-col {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 16px; padding: 0; overflow: hidden;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.pc-col:hover { transform: translateY(-4px); border-color: var(--brand); box-shadow: 0 16px 36px rgba(201,71,225,0.2); }
.pc-col__head {
  display: flex; align-items: center; gap: 0.9rem;
  padding: 1.1rem 1.4rem; color: #fff;
}
.pc-col__head--a { background: linear-gradient(135deg, #C947E1, #8E2DA8); }
.pc-col__head--b { background: linear-gradient(135deg, #7A4FB8, #4A7BC8); }
.pc-col__head--c { background: linear-gradient(135deg, #5C2E8C, #2F77BE); }
.pc-col__icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pc-col__head h3 { margin: 0; font-size: 1.05rem; font-weight: 700; line-height: 1.25; }
.pc-col__acro { display: inline-block; margin-top: 0.15rem; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.85; }
.pc-col__list {
  margin: 0; padding: 1.2rem 1.4rem 1.4rem 2.6rem;
  color: rgba(255,255,255,0.85); font-size: 0.93rem; line-height: 1.55;
}
.pc-col__list li { margin-bottom: 0.5rem; }
.pc-col__list li:last-child { margin-bottom: 0; }

.pc-compare--light .pc-col {
  background: rgba(255,255,255,0.7);
  border-color: rgba(201,71,225,0.18);
}
.pc-compare--light .pc-col__list { color: rgba(20,20,28,0.82); }

@media (max-width: 860px) {
  .pc-compare--3, .pc-compare--2 { grid-template-columns: 1fr; }
}

/* ---- Roles grid (Slide 6 — Executive Search) ---- */
.pc-roles {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem;
  margin-top: 1.2rem;
}
.pc-role {
  position: relative; overflow: hidden;
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px; padding: 1.6rem 1.8rem 1.5rem;
  box-shadow: 0 6px 22px rgba(0,0,0,0.18);
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.pc-role::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, #C947E1, #7A4FB8);
}
.pc-role:has(.pc-role__badge--non)::before { background: linear-gradient(90deg, #4A7BC8, #6f9bdc); }
.pc-role:hover { transform: translateY(-4px); border-color: var(--brand); box-shadow: 0 18px 40px rgba(201,71,225,0.22); }
.pc-role:has(.pc-role__badge--non):hover { border-color: #6f9bdc; box-shadow: 0 18px 40px rgba(74,123,200,0.24); }
.pc-role__head { display: flex; align-items: center; gap: 0.7rem; margin-bottom: 1rem; padding-bottom: 0.8rem; border-bottom: 1px solid rgba(255,255,255,0.12); }
.pc-role__head h3 { margin: 0; color: #fff; font-size: 1.08rem; font-weight: 700; }
.pc-role__badge {
  display: inline-block; padding: 0.28rem 0.75rem; border-radius: 12px;
  font-size: 0.68rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
  white-space: nowrap;
}
.pc-role__badge--exec { background: linear-gradient(135deg, rgba(201,71,225,0.30), rgba(201,71,225,0.16)); color: #F0A8F7; }
.pc-role__badge--non  { background: linear-gradient(135deg, rgba(74,123,200,0.30), rgba(74,123,200,0.16)); color: #A9C8F0; }
.pc-role ul {
  margin: 0; padding: 0; list-style: none;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.5rem 1.2rem;
}
.pc-role ul li {
  position: relative; padding-left: 1.1rem;
  color: rgba(255,255,255,0.92); font-size: 0.92rem; line-height: 1.5; font-weight: 400;
}
.pc-role ul li::before {
  content: "\203A"; position: absolute; left: 0; top: -0.05em;
  color: var(--brand); font-weight: 800; font-size: 1.05em;
}
.pc-role:has(.pc-role__badge--non) ul li::before { color: #6f9bdc; }
@media (max-width: 1023px) { .pc-roles { grid-template-columns: 1fr; } .pc-role ul { grid-template-columns: 1fr; } }

/* Subheading dark-section variant */
.fa-subheading--dark { color: #fff; }

/* ===========================================================
   Talent & HR Services (Solution 7)
   =========================================================== */

/* ---- pa-stats light variant (used inside s-light) ---- */
.pa-stats--light .pa-stat {
  background: rgba(255,255,255,0.7);
  border-color: rgba(201,71,225,0.18);
}
.pa-stats--light .pa-stat__label { color: rgba(20,20,28,0.7); }
.pa-stats--light .pa-stat:hover {
  background: #fff;
  border-color: var(--brand);
  box-shadow: 0 16px 36px rgba(201,71,225,0.18);
}

/* ---- 10-step process stepper (Pillar 1) ---- */
.thr-steps {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.9rem;
  counter-reset: thr-step;
}
.thr-step {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px; padding: 1.2rem 1.2rem;
  position: relative;
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.thr-step:hover {
  transform: translateY(-4px); border-color: var(--brand);
  box-shadow: 0 14px 32px rgba(201,71,225,0.2);
}
.thr-step__num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%;
  background: linear-gradient(135deg, #C947E1, #7A4FB8);
  color: #fff; font-weight: 800; font-size: 0.9rem; letter-spacing: 0.04em;
  margin-bottom: 0.7rem;
}
.thr-step h3 {
  margin: 0 0 0.45rem; color: #fff;
  font-size: 0.98rem; font-weight: 700; line-height: 1.3;
}
.thr-step p {
  margin: 0; color: rgba(255,255,255,0.78);
  font-size: 0.86rem; line-height: 1.5;
}
@media (max-width: 1100px) { .thr-steps { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px)  { .thr-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px)  { .thr-steps { grid-template-columns: 1fr; } }

/* ---- 5-module HR Consulting grid (Pillar 3) ---- */
.thr-modules { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.thr-mod {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px; padding: 1.4rem 1.5rem;
  display: flex; flex-direction: column; gap: 0.6rem;
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.thr-mod:hover {
  transform: translateY(-4px); border-color: var(--brand);
  box-shadow: 0 14px 32px rgba(201,71,225,0.18);
}
.thr-mod__num {
  align-self: flex-start;
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, #C947E1, #7A4FB8);
  color: #fff; font-weight: 800; font-size: 0.85rem;
}
.thr-mod h3 { margin: 0; color: #fff; font-size: 1.05rem; font-weight: 700; line-height: 1.3; }
.thr-mod p { margin: 0; color: rgba(255,255,255,0.82); font-size: 0.93rem; line-height: 1.55; }
.thr-mod p em, .thr-mod p strong { color: #fff; }
@media (max-width: 860px) { .thr-modules { grid-template-columns: 1fr; } }

/* ---- 3-problem cards (Pillar 6 / RPO) ---- */
.thr-problems { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1rem; }
.thr-problem {
  background: rgba(255,255,255,0.04); border-left: 4px solid var(--brand);
  border-radius: 0 12px 12px 0; padding: 1.2rem 1.4rem;
}
.thr-problem h4 {
  margin: 0 0 0.5rem; color: var(--brand); font-size: 1rem; font-weight: 700;
}
.thr-problem p { margin: 0; color: rgba(255,255,255,0.85); font-size: 0.93rem; line-height: 1.55; }
@media (max-width: 860px) { .thr-problems { grid-template-columns: 1fr; } }

/* ---- Contact person card (Slides 2 + 3) ---- */
.pc-person {
  display: flex; align-items: center; gap: 1.5rem;
  margin-top: 2rem; padding: 1.4rem 1.6rem;
  background: linear-gradient(135deg, rgba(201,71,225,0.1), rgba(74,123,200,0.04));
  border: 1px solid rgba(201,71,225,0.3); border-radius: 16px;
  max-width: 560px;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}
.pc-person:hover { border-color: var(--brand); box-shadow: 0 14px 36px rgba(201,71,225,0.22); transform: translateY(-2px); }
.pc-person__photo {
  flex-shrink: 0; width: 96px; height: 96px; border-radius: 50%;
  object-fit: cover; object-position: center top;
  border: 3px solid rgba(201,71,225,0.55);
  box-shadow: 0 8px 22px rgba(201,71,225,0.3);
}
.pc-person__info { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.pc-person__role-eyebrow {
  font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--brand); margin-bottom: 0.15rem;
}
.pc-person__name { color: #fff; font-size: 1.15rem; font-weight: 700; line-height: 1.25; }
.pc-person__role { color: rgba(255,255,255,0.78); font-size: 0.92rem; line-height: 1.4; }
.pc-person--light { background: linear-gradient(135deg, rgba(201,71,225,0.08), rgba(255,255,255,0.5)); }
.pc-person--light .pc-person__name { color: #14141C; }
.pc-person--light .pc-person__role { color: rgba(20,20,28,0.7); }
@media (max-width: 560px) {
  .pc-person { flex-direction: column; text-align: center; }
}

/* ---- Team Competence & Facts — dark-theme variant ---- */
.tcf--dark { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.10); box-shadow: 0 20px 50px rgba(0,0,0,0.28); }
.tcf--dark .tcf__title { color: #fff; }
.tcf--dark .tcf__subtitle { color: rgba(255,255,255,0.78); }
.tcf--dark .tcf__num { color: var(--tcf-magenta, #C03BC9); }
.tcf--dark .tcf__desc { color: rgba(255,255,255,0.82); }
.tcf--dark .tcf__cc-title { color: var(--tcf-magenta, #C03BC9); }
.tcf--dark .tcf__cc-name { color: rgba(255,255,255,0.88); }
.tcf--dark .tcf__foot-tag { color: rgba(255,255,255,0.85); }
.tcf--dark .tcf__foot-right { color: rgba(255,255,255,0.92); font-size: 0.95rem; font-weight: 500; }
.tcf--dark .tcf-ring,
.tcf--dark .tcf-arc { stroke: rgba(255,255,255,0.7); }
.tcf--dark .tcf-arc.is-hot { stroke: var(--tcf-magenta, #C03BC9); }
.tcf--dark .tcf-figure { fill: rgba(255,255,255,0.88); }

/* World map (Slide 4) — Leaflet variant for GTM page */
.fa-gtm-map {
  max-width: 1100px; margin: 2rem auto 0;
  height: 520px;
  border-radius: 12px; overflow: hidden;
  border: 1px solid rgba(201,71,225,0.25);
  box-shadow: 0 12px 36px rgba(0,0,0,0.25);
}
.map-legend__line {
  display: inline-block; width: 18px; height: 3px;
  border-radius: 2px; margin-right: 6px; vertical-align: middle;
}
@media (max-width: 720px) { .fa-gtm-map { height: 360px; } }

/* Region chips */
.fa-regions { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; margin-top: 1.5rem; }
.fa-region {
  display: inline-block; padding: 0.45rem 1rem; border-radius: 18px;
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.9); font-size: 0.85rem; font-weight: 600; letter-spacing: 0.04em;
  transition: background 0.25s ease, transform 0.2s ease, border-color 0.25s ease;
}
.fa-region:hover { background: rgba(201,71,225,0.2); border-color: var(--brand); transform: translateY(-2px); }

/* Three pillars (Slide 5) */
.fa-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 0 0 2.2rem; }
.fa-pillar {
  background:
    linear-gradient(150deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.28) 100%),
    linear-gradient(0deg, rgba(201,71,225,0.08), rgba(201,71,225,0.08));
  border: 1px solid rgba(255,255,255,0.85); border-left: 4px solid var(--brand);
  border-radius: 16px; padding: 1.4rem 1.3rem;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.95),
    inset 0 0 0 1px rgba(201,71,225,0.14),
    0 10px 26px -8px rgba(201,71,225,0.4),
    0 4px 14px rgba(20,20,40,0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.fa-pillar:hover {
  transform: translateY(-4px); border-color: var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    inset 0 0 0 1px rgba(201,71,225,0.24),
    0 20px 40px -8px rgba(201,71,225,0.55),
    0 6px 16px rgba(20,20,40,0.1);
}
.fa-pillar__icon {
  display: inline-flex; width: 44px; height: 44px; border-radius: 50%;
  background: linear-gradient(135deg, rgba(201,71,225,0.18), rgba(74,123,200,0.12));
  color: var(--brand); align-items: center; justify-content: center;
  margin-bottom: 0.8rem;
}
.fa-pillar h3 { margin: 0 0 0.4rem; font-size: 1.1rem; font-weight: 700; color: #14141C; }
.fa-pillar p { margin: 0; color: rgba(20,20,28,0.85); font-weight: 500; font-size: 0.95rem; line-height: 1.55; }
@media (max-width: 860px) { .fa-pillars { grid-template-columns: 1fr; } }

/* Capability tiles (Slide 5) — interactive hover */
.fa-caps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.8rem; margin-top: 1rem; }
.fa-cap {
  position: relative; padding: 1.2rem 1.2rem 1.2rem 1.35rem; overflow: hidden;
  background:
    linear-gradient(150deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.62) 60%, rgba(255,255,255,0.3) 100%),
    linear-gradient(0deg, rgba(201,71,225,0.07), rgba(201,71,225,0.07));
  border: 1px solid rgba(255,255,255,0.85);
  border-radius: 14px; min-height: 100px; display: flex; align-items: center;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.9),
    0 8px 20px -8px rgba(201,71,225,0.34),
    0 3px 10px rgba(20,20,40,0.05);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  cursor: default;
}
.fa-cap::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: linear-gradient(180deg, #C947E1, #7A4FB8);
  opacity: 1;
}
.fa-cap:hover {
  transform: translateY(-4px); border-color: var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    0 16px 34px -8px rgba(201,71,225,0.52),
    0 5px 14px rgba(20,20,40,0.08);
}
.fa-cap__name { color: #14141C; font-size: 0.95rem; font-weight: 600; line-height: 1.4; }
@media (max-width: 1023px) { .fa-caps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .fa-caps { grid-template-columns: 1fr; } }

/* Case study on light bg + numbered */
.fa-case--light .fa-case__block {
  background:
    linear-gradient(150deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.66) 60%, rgba(255,255,255,0.34) 100%),
    linear-gradient(0deg, rgba(201,71,225,0.06), rgba(201,71,225,0.06));
  border: 1px solid rgba(255,255,255,0.85); border-left: 4px solid var(--brand);
  border-radius: 16px; padding: 1.5rem 1.5rem 1.4rem; position: relative;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.95),
    0 8px 22px -8px rgba(201,71,225,0.3),
    0 4px 12px rgba(20,20,40,0.05);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.fa-case--light .fa-case__block:hover {
  transform: translateY(-3px); border-color: var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    0 16px 34px -8px rgba(201,71,225,0.48),
    0 6px 16px rgba(20,20,40,0.08);
}
.fa-case--light .fa-case__block h3 { color: #14141C; font-size: 1.05rem; margin: 0.4rem 0 0.7rem; text-transform: none; letter-spacing: 0; font-weight: 700; }
.fa-case--light .fa-case__block p { color: rgba(20,20,28,0.92); font-weight: 500; font-size: 0.95rem; line-height: 1.55; margin: 0 0 0.7rem; }
.fa-case--light .fa-case__block p:last-child { margin-bottom: 0; }
.fa-case--light .fa-case__block ul { color: rgba(20,20,28,0.92); font-weight: 500; font-size: 0.95rem; line-height: 1.55; margin: 0 0 0.7rem; padding-left: 1.2rem; }
.fa-case--light .fa-case__block p strong, .fa-case--light .fa-case__block li strong { color: #14141C; font-weight: 700; }
.fa-case--light .fa-case__block li { margin-bottom: 0.3rem; }
/* Clickable, collapsible case studies (axxessive — Market Access) */
.cs-cases { display: flex; flex-direction: column; gap: 1rem; }
.cs-case {
  background:
    linear-gradient(150deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.62) 60%, rgba(255,255,255,0.3) 100%),
    linear-gradient(0deg, rgba(201,71,225,0.07), rgba(201,71,225,0.07));
  border: 1px solid rgba(255,255,255,0.85); border-left: 4px solid var(--brand);
  border-radius: 16px;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.9),
    0 8px 22px -8px rgba(201,71,225,0.3),
    0 4px 12px rgba(20,20,40,0.05);
  overflow: hidden;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.25s ease;
}
.cs-case:hover {
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    0 16px 32px -8px rgba(201,71,225,0.42),
    0 6px 16px rgba(20,20,40,0.08);
}
.cs-case[open] {
  border-color: var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    0 16px 38px -8px rgba(201,71,225,0.5),
    0 6px 16px rgba(20,20,40,0.08);
}
.cs-case__summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; gap: 1.1rem;
  padding: 1.15rem 1.4rem;
}
.cs-case__summary::-webkit-details-marker { display: none; }
.cs-case__summary:hover .cs-case__title { color: var(--brand); }
.cs-case__head { flex: 1; display: flex; flex-direction: column; gap: 0.25rem; }
.cs-case__title { color: #14141C; font-family: var(--font-body); font-weight: 700; font-size: clamp(1rem, 1.7vw, 1.22rem); line-height: 1.3; transition: color 0.2s ease; }
.cs-case__sub { color: rgba(20,20,28,0.85); font-weight: 500; font-size: 0.95rem; line-height: 1.45; }
.cs-case__chev { width: 22px; height: 22px; flex-shrink: 0; color: var(--brand); transition: transform 0.3s ease; }
.cs-case[open] .cs-case__chev { transform: rotate(180deg); }
.cs-case__body { padding: 0 1.4rem 1.4rem; }
.cs-case__body .fa-case { margin-top: 0.2rem; }
/* Dark glass case-study cards (Patient Access) */
.cs-case--dark {
  margin-bottom: 1.4rem;
  background:
    linear-gradient(150deg, rgba(255,255,255,0.20) 0%, rgba(255,255,255,0.09) 60%, rgba(255,255,255,0.05) 100%),
    linear-gradient(0deg, rgba(201,71,225,0.16), rgba(201,71,225,0.16));
  border: 1px solid rgba(255,255,255,0.30); border-left: 4px solid var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.2),
    0 8px 22px -8px rgba(201,71,225,0.34),
    0 4px 14px rgba(0,0,0,0.3);
}
.cs-case--dark:hover {
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.28),
    0 16px 34px -8px rgba(201,71,225,0.5),
    0 6px 16px rgba(0,0,0,0.35);
}
.cs-case--dark[open] {
  border-color: var(--brand);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.28),
    0 16px 38px -8px rgba(201,71,225,0.55),
    0 6px 16px rgba(0,0,0,0.35);
}
.cs-case--dark .cs-case__title { color: #fff; }
.cs-case--dark .cs-case__summary:hover .cs-case__title { color: var(--brand); }
.cs-case--dark .cs-case__sub { color: rgba(255,255,255,0.88); }
.cs-case__tag { display: inline-block; color: var(--brand); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 0.35rem; }
.cs-case__refs { margin: 1.1rem 0 0; color: rgba(255,255,255,0.75); font-size: 0.85rem; line-height: 1.5; }
.cs-case__refs strong { color: #fff; }
/* clearer inner detail blocks on the dark case-study cards */
.cs-case--dark .fa-case__block { border-color: rgba(255,255,255,0.22); }
.cs-case--dark .fa-case__block h3 { color: #fff; }
.fa-case__num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 50%;
  background: linear-gradient(135deg, #C947E1, #7A4FB8);
  color: #fff; font-weight: 800; font-size: 0.9rem; margin-bottom: 0.5rem;
}

/* Stepbar (Slide 8) */
.fa-stepbar { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 0.8rem; align-items: stretch; margin-top: 1.5rem; }
.fa-stepbar__step {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(201,71,225,0.3);
  border-radius: 14px; padding: 1.4rem 1.3rem;
  display: flex; flex-direction: column; gap: 0.5rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}
.fa-stepbar__step:hover { border-color: var(--brand); box-shadow: 0 14px 32px rgba(201,71,225,0.18); transform: translateY(-3px); }
.fa-stepbar__num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  background: linear-gradient(135deg, #C947E1, #7A4FB8);
  color: #fff; font-weight: 800; font-size: 1.1rem;
}
.fa-stepbar__step h3 { margin: 0; color: #fff; font-size: 1.1rem; font-weight: 700; line-height: 1.3; }
.fa-stepbar__step p { margin: 0; color: rgba(255,255,255,0.8); font-size: 0.95rem; line-height: 1.5; }
.fa-stepbar__arrow {
  display: flex; align-items: center; justify-content: center;
  color: var(--brand); font-size: 2rem; opacity: 0.7;
}
@media (max-width: 860px) {
  .fa-stepbar { grid-template-columns: 1fr; }
  .fa-stepbar__arrow { transform: rotate(90deg); }
}

/* Tabs (Slides 9-11) */
.fa-tabs {
  background: rgba(255,255,255,0.55); border: 1px solid rgba(201,71,225,0.18);
  border-radius: 18px; padding: 0.8rem; margin-top: 1rem;
  box-shadow: 0 12px 32px rgba(20,20,40,0.06);
}
.fa-tabs__list {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem;
  background: rgba(255,255,255,0.5); border-radius: 12px; padding: 0.4rem;
}
.fa-tabs__tab {
  display: flex; align-items: center; gap: 0.7rem;
  background: transparent; border: none; cursor: pointer;
  padding: 0.85rem 1rem; border-radius: 10px;
  text-align: left; font-family: inherit; color: rgba(20,20,28,0.65);
  transition: background 0.2s ease, color 0.2s ease;
}
.fa-tabs__tab:hover { background: rgba(201,71,225,0.08); color: #14141C; }
.fa-tabs__tab.is-active {
  background: linear-gradient(135deg, #C947E1, #7A4FB8);
  color: #fff; box-shadow: 0 8px 22px rgba(201,71,225,0.35);
}
.fa-tabs__num {
  flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%;
  background: rgba(20,20,28,0.08); color: #14141C;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 0.9rem;
  transition: background 0.2s ease, color 0.2s ease;
}
.fa-tabs__tab.is-active .fa-tabs__num { background: rgba(255,255,255,0.25); color: #fff; }
.fa-tabs__label { font-weight: 700; font-size: 0.92rem; line-height: 1.3; }
.fa-tabs__panel { padding: 1.6rem 1.2rem 1rem; }
.fa-tabs__panel[hidden] { display: none !important; }
.fa-tabs__panel.is-active { animation: faTabsFade 0.3s ease; }
@keyframes faTabsFade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
.fa-tabs__intro { font-style: italic; color: rgba(20,20,28,0.9); margin: 0 0 1.2rem; font-size: 1rem; }
.fa-tabs__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.fa-tabs__card {
  background: rgba(255,255,255,0.92); border: 1px solid rgba(201,71,225,0.3);
  border-radius: 12px; padding: 1.2rem 1.3rem;
  box-shadow: 0 6px 22px rgba(201,71,225,0.18), 0 2px 8px rgba(20,20,40,0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.fa-tabs__card:hover { transform: translateY(-3px); box-shadow: 0 14px 36px rgba(201,71,225,0.32), 0 4px 12px rgba(20,20,40,0.08); border-color: var(--brand); }
.fa-tabs__card h4 {
  margin: 0 0 0.7rem; color: var(--brand); font-size: 0.85rem;
  font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase;
  display: flex; align-items: center; gap: 0.5rem;
}
.fa-tabs__card ul { margin: 0; padding-left: 1.1rem; color: rgba(20,20,28,0.95); font-size: 0.95rem; line-height: 1.6; }
.fa-tabs__card li { margin-bottom: 0.35rem; }
.fa-tabs__chip {
  display: inline-block; font-size: 0.62rem; font-weight: 700;
  padding: 0.15rem 0.5rem; border-radius: 4px;
  background: rgba(201,71,225,0.15); color: var(--brand);
  text-transform: uppercase; letter-spacing: 0.05em;
}
.fa-tabs__footnote { margin: 1rem 0 0; color: rgba(20,20,28,0.85); font-size: 0.9rem; font-style: italic; }
@media (max-width: 860px) {
  .fa-tabs__list { grid-template-columns: 1fr; }
  .fa-tabs__grid { grid-template-columns: 1fr; }
  .fa-tabs__label { font-size: 0.88rem; }
}

/* Quads (4-up icon cards, Slide 12) */
.fa-quads { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.9rem; margin: 0 0 2rem; }
.fa-quad {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px; padding: 1.2rem 1.2rem;
  transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
.fa-quad:hover { border-color: var(--brand); transform: translateY(-4px); box-shadow: 0 14px 32px rgba(0,0,0,0.3); }
.fa-quad__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 50%;
  background: linear-gradient(135deg, #C947E1, #7A4FB8);
  color: #fff; font-size: 1.2rem; margin-bottom: 0.8rem;
}
.fa-quad h4 { margin: 0 0 0.4rem; color: #fff; font-size: 1rem; font-weight: 700; }
.fa-quad p { margin: 0; color: rgba(255,255,255,0.78); font-size: 0.9rem; line-height: 1.5; }
@media (max-width: 1023px) { .fa-quads { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .fa-quads { grid-template-columns: 1fr; } }

/* Deliverable grid (3-up, Slide 12) */
.fa-deliverable-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.fa-deliverable {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px; padding: 1.3rem 1.4rem;
}
.fa-deliverable h4 {
  margin: 0 0 0.7rem; color: var(--brand); font-size: 0.85rem;
  font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase;
}
.fa-deliverable ul { margin: 0; padding-left: 1.1rem; color: rgba(255,255,255,0.8); font-size: 0.93rem; line-height: 1.55; }
.fa-deliverable li { margin-bottom: 0.3rem; }
@media (max-width: 860px) { .fa-deliverable-grid { grid-template-columns: 1fr; } }

/* ---- Phase chart (Slide 8) ---- */
.fa-phasechart { margin-top: 1rem; }
.fa-phasechart__groups {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0.6rem; margin-bottom: 0.6rem;
}
.fa-phasechart__grouplabel {
  display: flex; align-items: center; gap: 0.8rem;
  color: rgba(255,255,255,0.9); font-size: 0.95rem; font-weight: 500;
  text-align: center; justify-content: center;
}
.fa-phasechart__grouplabel::before,
.fa-phasechart__grouplabel::after {
  content: ""; flex: 1; height: 1px; background: rgba(255,255,255,0.7);
}
.s-light .fa-phasechart__grouplabel { color: #14141C; }
.s-light .fa-phasechart__grouplabel::before,
.s-light .fa-phasechart__grouplabel::after { background: #14141C; }

.fa-phasechart__phases {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.6rem;
}
.fa-phasechart__phase { display: flex; flex-direction: column; }
.fa-phasechart__phasehead {
  background: #D9D3E8; color: #14141C;
  padding: 0.75rem 1rem; border-radius: 6px 6px 0 0;
  font-size: 1.02rem; font-weight: 600; text-align: center;
  border-bottom: 1px solid rgba(20,20,28,0.05);
}
.fa-phasechart__cards {
  display: grid; grid-template-columns: 1fr; gap: 0;
  flex: 1;
}
.fa-phasechart__phase:has(.fa-phasechart__card + .fa-phasechart__card) .fa-phasechart__cards {
  grid-template-columns: 1fr 1fr; gap: 0;
}
.fa-phasechart__card {
  color: #fff; font-size: 1rem; font-weight: 500;
  padding: 1.6rem 1.2rem; line-height: 1.4;
  text-align: center; min-height: 180px;
  display: flex; align-items: center; justify-content: center;
  transition: filter 0.2s ease, transform 0.2s ease;
}
.fa-phasechart__card:hover { filter: brightness(1.08); transform: translateY(-2px); }
.fa-phasechart__card--lilac  { background: linear-gradient(160deg, #C98FCB 0%, #A45FA6 100%); }
.fa-phasechart__card--gray   { background: linear-gradient(160deg, #AEB3C2 0%, #828799 100%); }
.fa-phasechart__card--purple { background: linear-gradient(160deg, #7A3FB0 0%, #4A2275 100%); }
@media (max-width: 860px) {
  .fa-phasechart__groups,
  .fa-phasechart__phases { grid-template-columns: 1fr; }
  .fa-phasechart__grouplabel { grid-column: 1 !important; }
  .fa-phasechart__phase { grid-column: 1 !important; }
  .fa-phasechart__phase:has(.fa-phasechart__card + .fa-phasechart__card) .fa-phasechart__cards { grid-template-columns: 1fr; }
  .fa-phasechart__card { min-height: 100px; padding: 1.2rem; }
}

/* ---- Bullet list with nested indent (Slide 12 intro) ---- */
.fa-bullets {
  margin: 0 0 1.8rem; padding-left: 1.5rem;
  color: rgba(255,255,255,0.82); font-size: 1rem; line-height: 1.65; font-weight: 300;
}
.fa-bullets > li { margin-bottom: 0.7rem; }
.fa-bullets ul { margin: 0.6rem 0 0; padding-left: 1.5rem; }
.fa-bullets ul li { margin-bottom: 0.4rem; }
.s-light .fa-bullets { color: rgba(20,20,28,0.82); }

/* ---- Forecast model process flow (Slide 12) ---- */
.fa-flow { margin: 0 0 2rem; position: relative; width: 100%; }
.fa-flow__track {
  display: grid;
  grid-template-columns: 1fr 56px 1fr 56px 1fr;
  align-items: stretch;
  gap: 0 0.5rem;
  background: rgba(122, 79, 184, 0.12);
  padding: 1.2rem 1.2rem;
  border-radius: 6px;
  border: 1px solid rgba(201,71,225,0.18);
  width: 100%; box-sizing: border-box;
}
.fa-flow__col { display: flex; flex-direction: column; gap: 0; }
.fa-flow__cell {
  display: flex; align-items: center; gap: 0.7rem;
  padding: 0.85rem 1.1rem; min-height: 52px; box-sizing: border-box;
  color: #fff; font-family: var(--font-body); font-weight: 700; font-size: 1.08rem;
  border-radius: 4px;
  transition: filter 0.2s ease, transform 0.2s ease;
}
.fa-flow__cell:hover { filter: brightness(1.08); transform: translateY(-1px); }
.fa-flow__cell + .fa-flow__desc { margin-top: 0.7rem; }
.fa-flow__desc + .fa-flow__cell { margin-top: 1.2rem; }
.fa-flow__icon { display: inline-flex; align-items: center; justify-content: center; }
.fa-flow__label { letter-spacing: 0.01em; }
.fa-flow__desc {
  margin: 0; padding: 0 0.4rem;
  color: rgba(255,255,255,0.88); font-size: 0.92rem; line-height: 1.5;
}
.fa-flow__desc strong { color: #fff; font-weight: 700; }
.fa-flow__cell--forecasting    { background: #B486B0; }
.fa-flow__cell--sequencing     { background: #C03BC9; }
.fa-flow__cell--optimization   { background: #5C2E8C; }
.fa-flow__cell--prioritization { background: #8E2DA8; }
.fa-flow__sep {
  display: flex; align-items: flex-start; justify-content: center;
  align-self: stretch;
  padding-top: 1.5rem;
}
.fa-flow__arrowdown {
  display: flex; justify-content: center;
  margin: 0.9rem auto 0;
}
@media (max-width: 860px) {
  .fa-flow__track { grid-template-columns: 1fr; }
  .fa-flow__col, .fa-flow__sep { grid-column: 1 !important; }
  .fa-flow__sep { padding-top: 0; align-items: center; height: 36px; transform: rotate(90deg); }
}

/* ---- Result cards (Slide 12 bottom row) ---- */
.fa-result-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.fa-result-card { background: transparent; }
.fa-result-card h4 {
  color: #fff; font-size: 1.2rem; font-weight: 700;
  padding: 0.95rem 1.3rem; border-radius: 4px;
  margin: 0 0 0.9rem; text-transform: none; letter-spacing: 0;
  text-align: center;
}
.fa-result-card--magenta h4 { background: #C03BC9; }
.fa-result-card--purple  h4 { background: #8E2DA8; }
.fa-result-card--blue    h4 { background: #2F77BE; }
.fa-result-card ul {
  margin: 0; padding: 0 1rem; list-style: none;
  color: rgba(255,255,255,0.88); font-size: 0.95rem; line-height: 1.55;
}
.fa-result-card li {
  margin-bottom: 0.45rem; position: relative; padding-left: 1rem;
}
.fa-result-card li::before {
  content: "—"; position: absolute; left: 0; color: var(--brand);
}
@media (max-width: 860px) { .fa-result-cards { grid-template-columns: 1fr; } }

.fa-footnote { margin: 1.2rem 0 0; color: rgba(255,255,255,0.55); font-size: 0.85rem; font-style: italic; }

/* Engagement Gantt timeline (Slide 13) */
.fa-gantt {
  display: grid;
  grid-template-columns: 320px repeat(4, 1fr);
  background: rgba(255,255,255,0.5);
  border-radius: 14px; overflow: hidden;
  border: 1px solid rgba(20,20,28,0.08);
  font-size: 0.9rem;
}
.fa-gantt__head { display: contents; }
.fa-gantt__head > div {
  padding: 0.7rem 0.9rem; font-weight: 800; color: #14141C;
  font-size: 0.95rem; border-bottom: 1px solid rgba(20,20,28,0.08);
}
.fa-gantt__month { text-align: left; background: rgba(255,255,255,0.4); }
.fa-gantt__cell-label { background: rgba(255,255,255,0.4); }

.fa-gantt__group {
  grid-column: 1 / -1;
  display: grid; grid-template-columns: 320px 1fr;
}
.fa-gantt__group-label {
  padding: 0.55rem 1rem; color: #fff;
  font-weight: 700; font-size: 0.92rem; line-height: 1.3;
}
.fa-gantt__group-track { background: inherit; }
.fa-gantt__group--alignment .fa-gantt__group-label,
.fa-gantt__group--alignment .fa-gantt__group-track { background: #5C2E8C; }
.fa-gantt__group--phase1   .fa-gantt__group-label,
.fa-gantt__group--phase1   .fa-gantt__group-track { background: #C29ABF; }
.fa-gantt__group--phase2   .fa-gantt__group-label,
.fa-gantt__group--phase2   .fa-gantt__group-track { background: #5C5C5C; }
.fa-gantt__group--roadmap  .fa-gantt__group-label,
.fa-gantt__group--roadmap  .fa-gantt__group-track { background: #E0D2DD; color: #14141C; }

.fa-gantt__row {
  grid-column: 1 / -1;
  display: grid; grid-template-columns: 320px 1fr;
  align-items: center; min-height: 52px;
  border-bottom: 1px solid rgba(20,20,28,0.06);
  background: rgba(232, 238, 224, 0.35);
}
.fa-gantt__row:nth-of-type(even) { background: rgba(255,255,255,0.4); }
.fa-gantt__cell-label {
  padding: 0.7rem 1rem; color: #14141C; font-size: 0.88rem;
  line-height: 1.4; font-weight: 500;
}
.fa-gantt__cell-label--muted { color: rgba(20,20,28,0.55); font-weight: 400; }

.fa-gantt__track { position: relative; height: 100%; padding: 0.7rem 0; }
.fa-gantt__bar {
  position: absolute; top: 50%; transform: translateY(-50%);
  height: 22px;
  left: calc(var(--s) / 4 * 100%);
  width:  calc(var(--w) / 4 * 100%);
  background: var(--bar-color, #5C2E8C);
  clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%);
  transition: filter 0.2s ease, transform 0.2s ease;
}
.fa-gantt__bar:hover { filter: brightness(1.1); transform: translateY(-50%) scale(1.02); }
.fa-gantt__bar--alignment { --bar-color: #5C2E8C; }
.fa-gantt__bar--phase1    { --bar-color: #B486B0; }
.fa-gantt__bar--phase2    { --bar-color: #595959; }
.fa-gantt__bar--roadmap   { --bar-color: #7A2D9B; }

@media (max-width: 860px) {
  .fa-gantt { grid-template-columns: 1fr; font-size: 0.85rem; }
  .fa-gantt__head, .fa-gantt__head > div:first-child { display: none; }
  .fa-gantt__head > div { border: none; padding: 0.4rem 0.6rem; background: rgba(0,0,0,0.04); font-size: 0.75rem; }
  .fa-gantt__group { grid-template-columns: 1fr; }
  .fa-gantt__row { grid-template-columns: 1fr; min-height: auto; padding: 0.3rem 0; }
  .fa-gantt__cell-label { padding: 0.4rem 0.9rem 0.2rem; font-size: 0.85rem; font-weight: 600; }
  .fa-gantt__track { padding: 0.4rem 0.9rem; height: 30px; }
  .fa-gantt__bar { height: 18px; clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%); }
}

/* Timeline v2 (legacy) */
.fa-timeline2 { margin-top: 1.5rem; }
.fa-timeline2__months {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem;
  padding-bottom: 0.6rem; margin-bottom: 0.8rem;
  border-bottom: 1px solid rgba(20,20,28,0.1);
}
.fa-timeline2__months span {
  font-size: 0.75rem; font-weight: 800; color: var(--brand);
  letter-spacing: 0.06em; text-transform: uppercase; text-align: center;
}
.fa-timeline2__bars { display: grid; gap: 0.8rem; grid-template-columns: repeat(4, 1fr); }
.fa-timeline2__bar {
  grid-column: calc(var(--start) + 1) / span var(--span);
  background: rgba(255,255,255,0.7); border: 1px solid rgba(201,71,225,0.25);
  border-left: 4px solid var(--brand);
  border-radius: 12px; padding: 1.2rem 1.3rem;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.fa-timeline2__bar:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(201,71,225,0.18); }
.fa-timeline2__step {
  display: inline-block; font-size: 0.72rem; font-weight: 800;
  color: var(--brand); letter-spacing: 0.05em; text-transform: uppercase;
  margin-bottom: 0.3rem;
}
.fa-timeline2__bar h3 { margin: 0 0 0.5rem; color: #14141C; font-size: 1.05rem; font-weight: 700; }
.fa-timeline2__bar ul { margin: 0; padding-left: 1.1rem; color: rgba(20,20,28,0.78); font-size: 0.92rem; line-height: 1.55; }
.fa-timeline2__bar li { margin-bottom: 0.3rem; }
@media (max-width: 860px) {
  .fa-timeline2__months { grid-template-columns: 1fr; }
  .fa-timeline2__months span:not(:first-child) { display: none; }
  .fa-timeline2__bars { grid-template-columns: 1fr; }
  .fa-timeline2__bar { grid-column: 1 / -1 !important; }
}

/* ============================================================
   Who we are (#discover) — animated brand background (video)
   A muted, looping DNA/cell video sits behind the copy. A brand
   tint (mix-blend: color) recolours it into our magenta→navy
   palette without darkening it, and a milky-violet veil keeps the
   centre bright so the text stays fully readable.
   Playback / reduced-motion handling: inline script in index.html.
   ============================================================ */
#discover { isolation: isolate; }

/* video layer — sits behind everything, covers the section */
.whoweare-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
  display: block;
  pointer-events: none;
  opacity: 0.5;               /* keep the footage subtle behind the copy */
  /* promote to its own GPU layer for smooth, jank-free playback */
  transform: translateZ(0);
  will-change: transform;
  backface-visibility: hidden;
}

/* brand tint — gentle normal-blend wash for cohesion. The strong brand
   colour is now baked into the video itself, so NO mix-blend-mode here
   (blend modes over a video break hardware compositing -> stutter). */
.whoweare-tint {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(130deg,
    rgba(201,71,225,0.10) 0%,
    rgba(122,79,184,0.06) 45%,
    rgba(32,66,124,0.10) 100%);
}

/* milky-violet veil — keeps the section light and the text readable.
   Brightest in the centre (behind the copy), lighter toward the edges
   so the animation stays visible around the text. */
.whoweare-art__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(125% 95% at 50% 45%,
      rgba(255,255,255,0.86) 0%,
      rgba(250,244,253,0.64) 40%,
      rgba(240,232,247,0.30) 70%,
      rgba(255,255,255,0.06) 100%),
    linear-gradient(180deg,
      rgba(255,255,255,0.74) 0%,
      rgba(255,255,255,0.22) 28%,
      rgba(255,255,255,0.22) 72%,
      rgba(255,255,255,0.80) 100%);
}

/* ============ Medical Solutions — PPT-style schaubilder ============ */
/* Integrated Solutions: 2-column grid of pill tiles in alternating purple shades */
.medsol-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.1rem; margin: 1.8rem 0 0; }
.medsol-tile { position: relative; overflow: hidden; display: flex; align-items: center; gap: 1.1rem; padding: 1.25rem 1.5rem; border-radius: 16px; color: #fff; border: 1px solid rgba(255,255,255,0.14); box-shadow: 0 8px 26px rgba(0,0,0,0.30); transition: transform .25s ease, box-shadow .25s ease; }
.medsol-tile:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,0.45), 0 0 30px rgba(201,71,225,0.45); }
.medsol-tile__num {
  flex: 0 0 auto; width: 2.7rem; height: 2.7rem; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.16); border: 1px solid rgba(255,255,255,0.32);
  font-family: var(--font-body); font-weight: 800; font-size: 1.05rem; color: #fff;
}
.medsol-tile__label { flex: 1; font-weight: 700; font-size: 1.05rem; line-height: 1.3; padding-right: 1.2rem; }
.medsol-tile::after {
  content: "\203A"; position: absolute; right: 1.25rem; top: 50%;
  transform: translateY(-50%) translateX(-6px); font-size: 1.7rem; line-height: 1;
  color: rgba(255,255,255,0.85); opacity: 0; transition: opacity .25s ease, transform .25s ease;
}
.medsol-tile:hover::after { opacity: 1; transform: translateY(-50%) translateX(0); }
.medsol-tile:nth-child(4n+1) { background: linear-gradient(135deg, #c947e1 0%, #9e2fb6 100%); }
.medsol-tile:nth-child(4n+2) { background: linear-gradient(135deg, #7a2390 0%, #4d1a63 100%); }
.medsol-tile:nth-child(4n+3) { background: linear-gradient(135deg, #a02b93 0%, #6d1f78 100%); }
.medsol-tile:nth-child(4n)   { background: linear-gradient(135deg, #2a3560 0%, #1a2547 100%); }
@media (max-width: 720px) { .medsol-grid { grid-template-columns: 1fr; } }

/* Deployed teams: role chips (light section) */
.medsol-roles { display: flex; flex-wrap: wrap; gap: 0.7rem; margin: 1.6rem 0 0; }
.medsol-chip { display: inline-flex; align-items: center; padding: 0.6rem 1.15rem; border-radius: 2em; background: linear-gradient(135deg, #c947e1 0%, #8d2fb0 100%); color: #fff; font-weight: 700; font-size: 0.98rem; box-shadow: 0 4px 16px rgba(201,71,225,0.28); transition: transform .2s ease, box-shadow .2s ease; }
.medsol-chip:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(201,71,225,0.45); }

/* ============ Interactive holistic patient access model (flower + detail panel) ============ */
.pa-model { display: flex; align-items: center; gap: 2.6rem; margin-top: 1.5rem; }
.pa-model .pa-circle { margin: 0; flex: 0 0 clamp(420px, 56%, 680px); }
.pa-detail { flex: 0 1 380px; min-width: 0; display: flex; flex-direction: column; gap: 1.3rem; }
/* grid-stack: all cards share one cell -> height = tallest card -> no layout jump */
.pa-detail__viewport { display: grid; }
.pa-detail__card {
  grid-area: 1 / 1;
  opacity: 0; visibility: hidden; transform: translateY(10px); pointer-events: none;
  transition: opacity .35s ease, transform .35s ease, visibility 0s linear .35s;
}
.pa-detail__card.is-active {
  opacity: 1; visibility: visible; transform: none; pointer-events: auto;
  transition: opacity .35s ease, transform .35s ease, visibility 0s;
}
/* no hover-lift inside the panel (it's not a clickable card here) */
.pa-detail .pa-pillar:hover { transform: none; box-shadow: none; border-color: var(--brand); }
.pa-detail__controls { display: flex; align-items: center; justify-content: center; gap: 1.3rem; }
.pa-detail__arrow {
  width: 46px; height: 46px; border-radius: 50%; cursor: pointer; border: none;
  display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #C947E1, #7A4FB8); color: #fff;
  transition: transform .2s ease, box-shadow .2s ease;
}
.pa-detail__arrow:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(201,71,225,0.45); }
.pa-detail__arrow:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; }
.pa-detail__arrow svg { width: 20px; height: 20px; }
.pa-detail__indicator { color: rgba(255,255,255,0.7); font-weight: 700; letter-spacing: 0.08em; font-size: 0.9rem; min-width: 5em; text-align: center; }
/* active pillar highlight in the flower */
.pa-circle__seg.is-active {
  background: linear-gradient(135deg, rgba(201,71,225,0.30), rgba(122,79,184,0.22));
  border-color: var(--brand);
  box-shadow: 0 0 30px rgba(201,71,225,0.55);
}
.pa-circle__seg.is-active .pa-circle__num { color: #fff; }
@media (max-width: 900px) {
  .pa-model { flex-direction: column; gap: 2rem; }
  .pa-model .pa-circle { flex: none; width: min(440px, 100%); }
  .pa-detail { width: 100%; }
}

/* two contact persons side by side */
.pc-people { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-top: 2rem; }
.pc-people .pc-person { margin-top: 0; flex: 1 1 340px; max-width: none; }

/* Clinical Operations pull-quote */
.pc-quote {
  position: relative; margin: 0 0 1.7rem; padding: 0.5rem 0 0.6rem 1.5rem;
  border-left: 4px solid var(--brand);
  font-size: clamp(1.2rem, 1.9vw, 1.6rem); line-height: 1.4;
  font-style: italic; font-weight: 600; color: #14141C; max-width: 62ch;
  text-shadow: 0 1px 0 rgba(255,255,255,0.5);
}
.pc-quote::first-letter { color: var(--brand); }
/* subtle always-on glow for the light solution tiles */
.pc-tiles--light .pc-tile { box-shadow: 0 6px 18px rgba(201,71,225,0.10), inset 0 1px 1px rgba(255,255,255,0.6); }

/* compact contact card (inline, centered) */
.pc-person--sm { display: inline-flex; gap: 0.85rem; padding: 0.6rem 0.95rem; margin: 0 auto 1.4rem; max-width: none; }
.pc-person--sm .pc-person__photo { width: 54px; height: 54px; border-width: 2px; box-shadow: 0 5px 14px rgba(201,71,225,0.30); }
.pc-person--sm .pc-person__role-eyebrow { font-size: 0.6rem; margin-bottom: 0.05rem; }
.pc-person--sm .pc-person__name { font-size: 0.95rem; }
.pc-person--sm .pc-person__role { font-size: 0.78rem; }

/* round contact photo integrated into the Integrated-Solutions header (no reflow) */
.medsol-contact { position: absolute; top: 0.6rem; left: 3rem; width: 130px; margin: 0; text-align: center; z-index: 3; }
.medsol-contact__link { display: inline-block; border-radius: 50%; transition: transform 0.25s ease, box-shadow 0.25s ease; }
.medsol-contact__link:hover { transform: translateY(-2px); }
.medsol-contact__link:hover .medsol-contact__photo { border-color: var(--brand); box-shadow: 0 12px 28px rgba(201,71,225,0.45); }
.medsol-contact__photo { width: 92px; height: 92px; border-radius: 50%; object-fit: cover; object-position: center top; border: 3px solid rgba(201,71,225,0.55); box-shadow: 0 8px 22px rgba(201,71,225,0.30); }
.medsol-contact__cap { display: flex; flex-direction: column; gap: 0.05rem; margin-top: 0.45rem; }
.medsol-contact__cap strong { color: #fff; font-size: 0.8rem; font-weight: 700; }
.medsol-contact__cap span { color: rgba(255,255,255,0.7); font-size: 0.64rem; line-height: 1.25; }
@media (max-width: 980px) { .medsol-contact { position: static; width: auto; margin: 0 auto 1.6rem; } }

/* Form submit error message (set via page-forms.js) — form-error (CSP-safe) */
.form-error {
  display: none;
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  background: rgba(220, 53, 69, 0.12);
  border: 1px solid rgba(220, 53, 69, 0.5);
  color: #ff6b6b;
  font-family: var(--font-body);
  font-size: 0.95rem;
}
