  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  :root {
        /* Impact Bridge brand palette - anchored on the real teal #437C90 */
    --teal-dark: #2d5868;
    --teal: #437C90;
    --teal-mid: #437C90;
    --teal-light: #7aa5b4;
    --teal-soft: #d4e1e6;
    --cream: #f4efe6;
    --cream-dark: #ebe4d4;
    --sage: #a8b89a;
    --gold: #c4a961;
    --gold-dark: #a88c44;
    --white: #ffffff;
    --text: #1e2a30;
    --muted: #5b6b72;
    --border: #dfd9ce;
    --light-bg: #faf7f1;
  }

  html { scroll-behavior: smooth; font-size: 20px; }

  body {
    font-family: 'Inter', sans-serif;
    color: var(--text);
    background: var(--white);
    overflow-x: hidden;
    font-size: 15px;
    line-height: 1.6;
  }

  a { color: inherit; }

  /* ── NAV ── */
  nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    background: rgba(255,255,255,0.97);
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(8px);
    transition: box-shadow 0.3s;
  }
  nav.scrolled { box-shadow: 0 2px 20px rgba(0,0,0,0.06); }

  .nav-inner {
    max-width: 1440px; margin: 0 auto;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 2.5rem; height: 76px;
  }

  .logo {
    display: flex; align-items: center; gap: 10px; text-decoration: none; cursor: pointer;
  }

  .logo-b {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 2.3rem; font-weight: 500; color: var(--teal-dark);
    line-height: 1; padding: 0 2px;
  }

  .logo-text {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.15rem; font-weight: 500; color: var(--teal-dark);
    line-height: 1.05; letter-spacing: 0;
  }
  .logo-text span { display: block; }

  .nav-links {
    display: flex; align-items: center; list-style: none;
  }

  .nav-links > li { position: relative; }

  .nav-links > li > a {
    display: block; padding: 0 1.1rem; height: 76px;
    line-height: 76px; font-size: 0.74rem; font-weight: 500;
    letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--text); text-decoration: none; cursor: pointer;
    transition: color 0.2s; position: relative;
  }

  .nav-links > li > a::after {
    content: ''; position: absolute;
    bottom: 22px; left: 1.1rem; right: 1.1rem; height: 1px;
    background: var(--teal); transform: scaleX(0);
    transition: transform 0.3s;
  }

  .nav-links > li > a.active::after,
  .nav-links > li:hover > a::after { transform: scaleX(1); }
  .nav-links > li:hover > a { color: var(--teal-dark); }

  .dropdown {
    position: absolute; top: 76px; left: 0;
    background: var(--white); border-top: 2px solid var(--teal);
    box-shadow: 0 12px 40px rgba(43,85,96,0.12);
    min-width: 240px; opacity: 0; pointer-events: none;
    transform: translateY(-8px); transition: all 0.2s;
  }

  .nav-links > li:hover .dropdown { opacity: 1; pointer-events: all; transform: translateY(0); }

  .dropdown a {
    display: block; padding: 0.85rem 1.3rem;
    font-size: 0.72rem; font-weight: 400; letter-spacing: 0.05em;
    color: var(--text); text-decoration: none; cursor: pointer;
    border-bottom: 1px solid var(--border);
    transition: background 0.15s, color 0.15s;
  }

  .dropdown a:last-child { border-bottom: none; }
  .dropdown a:hover { background: var(--cream); color: var(--teal-dark); padding-left: 1.6rem; }

  .nav-right { display: flex; align-items: center; gap: 0.75rem; }

  .lang-btn {
    font-size: 0.7rem; font-weight: 600; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--muted);
    text-decoration: none; padding: 0.28rem 0.75rem;
    border-radius: 999px;
    transition: all 0.2s; cursor: pointer;
  }

  .mobile-toggle {
    display: none; background: none; border: none;
    font-size: 1.4rem; cursor: pointer; color: var(--teal-dark);
  }

  /* ── PAGES ── */
  .page { display: none; min-height: 100vh; }
  .page.active { display: block; }

  main { padding-top: 76px; }

  /* ── HERO ── */
  .hero {
    min-height: calc(100vh - 76px); display: flex; align-items: center;
    background: var(--cream); position: relative; overflow: hidden;
  }

  .hero-grid {
    display: grid; grid-template-columns: 1.1fr 1fr;
    max-width: 1440px; margin: 0 auto;
    width: 100%; min-height: 620px; align-items: stretch;
  }

  .hero-text {
    padding: 5rem 2.5rem; display: flex;
    flex-direction: column; justify-content: center;
  }

  .hero-eyebrow {
    font-size: 0.7rem; font-weight: 500; letter-spacing: 0.3em;
    text-transform: uppercase; color: var(--teal);
    margin-bottom: 1.75rem;
    display: flex; align-items: center; gap: 12px;
  }
  .hero-eyebrow::before {
    content: ''; width: 40px; height: 1px; background: var(--teal);
  }

  .hero h1 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2.8rem, 5.5vw, 4.8rem);
    font-weight: 300; line-height: 1.05;
    color: var(--teal-dark); margin-bottom: 1.75rem;
    letter-spacing: -0.01em;
  }
  .hero h1 em {
    font-style: italic; color: var(--teal);
  }

  .hero p {
    font-size: 1rem; font-weight: 300; line-height: 1.8;
    color: var(--text); max-width: 520px; margin-bottom: 2.5rem;
  }

  .hero-images {
    display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 6px;
    padding: 2rem 2.5rem 2rem 1rem;
  }
  .hero-img {
    background-size: cover; background-position: center;
    border-radius: 2px;
  }
  .hero-img:first-child { grid-column: 1 / -1; }

  .hi1 { background-image: url('https://images.unsplash.com/photo-1542601906990-b4d3fb778b09?w=900&q=80'); }
  .hi2 { background-image: url('https://images.unsplash.com/photo-1523348837708-15d4a09cfac2?w=600&q=80'); }
  .hi3 { background-image: url('https://images.unsplash.com/photo-1464226184884-fa280b87c399?w=600&q=80'); }

  .btn-primary {
    display: inline-flex; align-items: center; gap: 10px;
    font-size: 0.72rem; font-weight: 500; letter-spacing: 0.12em;
    text-transform: uppercase; text-decoration: none;
    color: var(--white); background: var(--teal-dark);
    padding: 0.95rem 1.9rem; cursor: pointer; border: none;
    transition: all 0.3s; position: relative; overflow: hidden;
    align-self: flex-start;
  }
  .btn-primary:hover { background: var(--teal); transform: translateY(-2px); }
  .btn-primary svg { transition: transform 0.3s; }
  .btn-primary:hover svg { transform: translateX(4px); }

  .btn-outline {
    display: inline-flex; align-items: center; gap: 10px;
    font-size: 0.72rem; font-weight: 500; letter-spacing: 0.12em;
    text-transform: uppercase; text-decoration: none;
    color: var(--teal-dark); background: transparent;
    padding: 0.85rem 1.75rem; cursor: pointer;
    border: 1px solid var(--teal-dark);
    transition: all 0.3s;
  }
  .btn-outline:hover { background: var(--teal-dark); color: var(--white); }

  /* STATS */
  .stats-bar { background: var(--white); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
  .stats-inner {
    max-width: 1440px; margin: 0 auto;
    display: grid; grid-template-columns: repeat(4, 1fr);
  }
  .stat-item {
    padding: 3rem 2rem; border-right: 1px solid var(--border); text-align: center;
  }
  .stat-item:last-child { border-right: none; }

  .stat-number {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 3rem; font-weight: 400;
    color: var(--teal-dark); line-height: 1; margin-bottom: 0.5rem;
  }
  .stat-number small { font-size: 1.6rem; color: var(--teal); }

  .stat-label {
    font-size: 0.68rem; font-weight: 500; letter-spacing: 0.14em;
    text-transform: uppercase; color: var(--muted);
  }

  /* ── SECTIONS ── */
  .section { padding: 6rem 2.5rem; }
  .section-cream { background: var(--cream); }
  .section-light { background: var(--light-bg); }
  .section-dark { background: var(--teal-dark); color: var(--white); }

  .section-inner { max-width: 1440px; margin: 0 auto; }

  .section-tag {
    font-size: 0.65rem; font-weight: 600; letter-spacing: 0.3em;
    text-transform: uppercase; color: var(--teal);
    margin-bottom: 1.25rem;
    display: flex; align-items: center; gap: 12px;
  }
  .section-tag::before {
    content: ''; width: 30px; height: 1px; background: var(--teal);
  }

  .section-title {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2rem, 3.8vw, 3.2rem);
    font-weight: 400; line-height: 1.15; color: var(--teal-dark);
    margin-bottom: 1.25rem;
    letter-spacing: -0.01em;
  }
  .section-title em { font-style: italic; color: var(--teal); }

  .section-lead {
    font-size: 1rem; font-weight: 300; line-height: 1.8;
    color: var(--text); max-width: 680px; margin-bottom: 3rem;
  }

  .link-arrow {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 0.7rem; font-weight: 600; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--teal-dark);
    text-decoration: none; cursor: pointer; transition: gap 0.2s;
  }
  .link-arrow:hover { gap: 14px; }

  /* MISSION & VALUES */
  .mission-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 3rem;
    margin-top: 4rem;
  }

  .mv-block {
    padding-left: 2rem;
    border-left: 3px solid var(--teal);
  }
  .mv-block h3 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 2rem; font-weight: 400;
    color: var(--teal-dark); margin-bottom: 1rem;
    font-style: italic;
  }
  .mv-block p {
    font-size: 0.95rem; line-height: 1.85; color: var(--text);
    font-weight: 300;
  }

  /* VALUES ROW */
  .values-row {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
    background: var(--border); border: 1px solid var(--border);
    margin-top: 3rem;
  }
  .value-card {
    background: var(--white); padding: 2.5rem 2rem; text-align: center;
    transition: background 0.3s;
  }
  .value-card:hover { background: var(--light-bg); }
  .value-icon {
    width: 52px; height: 52px; margin: 0 auto 1.25rem;
    display: flex; align-items: center; justify-content: center;
    background: var(--cream); border-radius: 50%;
    color: var(--teal-dark);
  }
  .value-card h4 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.35rem; font-weight: 500; color: var(--teal-dark);
    margin-bottom: 0.5rem;
  }
  .value-card p {
    font-size: 0.82rem; color: var(--muted); line-height: 1.65;
  }

  /* SOLUTIONS TABLE */
  .solutions-table {
    margin-top: 3rem; background: var(--white);
    border: 1px solid var(--border);
  }

  .st-header {
    display: grid; grid-template-columns: 210px repeat(8, 1fr);
    background: var(--teal-dark); color: var(--white);
  }
  .st-header > div {
    padding: 1.1rem 0.5rem; font-size: 0.65rem; font-weight: 600;
    letter-spacing: 0.1em; text-transform: uppercase;
    border-right: 1px solid rgba(255,255,255,0.1);
    text-align: center;
    display: flex; align-items: center; justify-content: center;
  }
  .st-header > div:first-child { text-align: left; justify-content: flex-start; }
  .st-header > div:last-child { border-right: none; }

  .st-row {
    display: grid; grid-template-columns: 210px repeat(8, 1fr);
    border-top: 1px solid var(--border);
    transition: background 0.2s; cursor: pointer;
  }
  .st-row:hover { background: var(--cream); }

  .st-row > div {
    padding: 1.4rem 0.5rem; font-size: 0.75rem;
    border-right: 1px solid var(--border);
    display: flex; align-items: center; justify-content: center;
    text-align: center;
  }
  .st-row > div:last-child { border-right: none; }

  /* "Other strategies" table variant: 8 columns (no Theme column) */
  .solutions-table.st-other .st-header,
  .solutions-table.st-other .st-row {
    grid-template-columns: 210px repeat(7, 1fr);
  }

  .st-row-title {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.05rem !important; font-weight: 500;
    color: var(--teal-dark); line-height: 1.2;
    justify-content: flex-start !important; text-align: left !important;
  }

  .st-amount {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.3rem; font-weight: 500; color: var(--teal);
  }

  /* Theme badges (impact strategies only) — flat, no border */
  .theme-badge {
    display: inline-block; padding: 4px 10px;
    font-size: 0.62rem; font-weight: 600; letter-spacing: 0.05em;
    border-radius: 4px; line-height: 1.3;
    border: none !important;
  }
  .theme-agri,
  .theme-agrifood {
    background: rgba(124,179,66,0.16); color: #4a6b2a; border: none;
  }
  .theme-spanish-debt {
    background: rgba(67,124,144,0.14); color: var(--teal-dark); border: none;
  }
  .theme-international-debt {
    background: rgba(196,169,97,0.22); color: #7a6330; border: none;
  }
  .theme-neutral {
    background: rgba(45,88,104,0.10); color: var(--teal-dark); border: none;
  }

  /* IMPACT SECTION */
  .impact-section {
    background: var(--teal-dark); color: var(--white);
    padding: 6rem 2.5rem;
  }
  .impact-section .section-tag { color: var(--gold); }
  .impact-section .section-tag::before { background: var(--gold); }
  .impact-section .section-title { color: var(--white); }

  .impact-grid {
    display: grid; grid-template-columns: 1.2fr 1fr; gap: 4rem;
    align-items: center; margin-top: 3rem;
  }

  .impact-grid p {
    font-size: 0.95rem; font-weight: 300; line-height: 1.9;
    color: rgba(255,255,255,0.75); margin-bottom: 1.5rem;
  }

  .ibist-visual {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.15);
    padding: 2.5rem; border-radius: 2px;
    text-align: center;
  }
  .ibist-visual svg { margin: 0 auto 1.5rem; }
  .ibist-visual h4 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.6rem; font-weight: 500;
    color: var(--white); margin-bottom: 0.75rem;
  }
  .ibist-visual p {
    font-size: 0.85rem; color: rgba(255,255,255,0.65);
    margin-bottom: 0;
  }

  /* NEWS GRID */
  .news-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
  }
  .news-card {
    background: var(--white); border: 1px solid var(--border);
    padding: 2rem; transition: all 0.25s; cursor: pointer;
    display: flex; flex-direction: column;
  }
  .news-card:hover {
    box-shadow: 0 10px 30px rgba(43,85,96,0.1);
    transform: translateY(-3px); border-color: var(--teal);
  }
  .news-date {
    font-size: 0.68rem; font-weight: 500; letter-spacing: 0.12em;
    color: var(--muted); margin-bottom: 0.75rem; text-transform: uppercase;
  }
  .news-tag {
    display: inline-block; padding: 2px 10px;
    background: var(--cream); font-size: 0.62rem; font-weight: 500;
    letter-spacing: 0.08em; color: var(--teal-dark); text-transform: uppercase;
    margin-left: 0.5rem; border-radius: 2px;
  }
  .news-title {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.2rem; font-weight: 500; line-height: 1.4;
    color: var(--teal-dark); margin-bottom: 1.25rem; flex-grow: 1;
  }
  .news-link {
    font-size: 0.68rem; font-weight: 600; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--teal);
    display: inline-flex; align-items: center; gap: 6px;
  }

  /* PAGE HEADER */
  .page-header {
    background: var(--teal-dark); color: var(--white);
    padding: 8rem 2.5rem 5rem; position: relative; overflow: hidden;
  }
  .page-header::before {
    content: ''; position: absolute; inset: 0;
    background-image:
      repeating-linear-gradient(45deg, transparent, transparent 80px, rgba(255,255,255,0.02) 80px, rgba(255,255,255,0.02) 81px);
  }
  .page-header-inner {
    max-width: 1440px; margin: 0 auto; position: relative;
  }
  .breadcrumb {
    font-size: 0.68rem; font-weight: 500; letter-spacing: 0.16em;
    text-transform: uppercase; color: rgba(255,255,255,0.55);
    margin-bottom: 1.5rem;
  }
  .breadcrumb a { color: var(--gold); text-decoration: none; cursor: pointer; }
  .page-header h1 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    font-weight: 300; line-height: 1.05;
    letter-spacing: -0.01em;
  }
  .page-header h1 em { font-style: italic; color: var(--teal-light); }
  .page-header-desc {
    margin-top: 1.5rem; font-size: 1rem; font-weight: 300;
    color: rgba(255,255,255,0.75); max-width: 720px; line-height: 1.75;
  }

  /* TIMELINE */
  .timeline {
    position: relative; max-width: 900px; margin: 4rem auto 0;
    padding-left: 2rem;
  }
  .timeline::before {
    content: ''; position: absolute;
    left: 8px; top: 12px; bottom: 12px;
    width: 2px; background: var(--teal-light);
  }
  .timeline-item { position: relative; padding-bottom: 2.5rem; padding-left: 2rem; }
  .timeline-item::before {
    content: ''; position: absolute;
    left: -2rem; top: 8px;
    width: 18px; height: 18px; border-radius: 50%;
    background: var(--white); border: 3px solid var(--teal);
    box-shadow: 0 0 0 4px var(--white);
  }
  .timeline-date {
    font-size: 0.7rem; font-weight: 600; letter-spacing: 0.15em;
    text-transform: uppercase; color: var(--teal);
    margin-bottom: 0.4rem;
  }
  .timeline-title {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.25rem; font-weight: 500; color: var(--teal-dark);
    margin-bottom: 0.35rem;
  }
  .timeline-desc {
    font-size: 0.88rem; color: var(--muted); line-height: 1.65;
  }

  /* TEAM */
  .team-category {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.6rem; font-weight: 500; color: var(--teal-dark);
    margin: 3rem 0 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border);
    font-style: italic;
  }
  .team-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem;
  }
  .team-member { text-align: center; cursor: pointer; }
  .team-photo {
    width: 140px; height: 140px; border-radius: 50%;
    background: var(--cream-dark); margin: 0 auto 1rem;
    position: relative; overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    transition: transform 0.3s;
  }
  .team-member:hover .team-photo { transform: scale(1.05); }
  .team-photo::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(135deg, #dfd9ce, #c5bfb0);
  }
  .team-photo svg {
    width: 60px; height: 60px;
    color: rgba(43,85,96,0.4); position: relative; z-index: 1;
  }
  .team-name {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif; font-size: 1.15rem;
    font-weight: 500; color: var(--teal-dark); margin-bottom: 0.2rem;
  }
  .team-role {
    font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--muted); line-height: 1.5;
  }
  .team-prev {
    font-size: 0.72rem; color: var(--teal); margin-top: 0.4rem; font-style: italic;
  }
  .team-desc {
    font-size: 0.78rem; color: var(--muted); line-height: 1.55;
    text-align: left; padding: 0 0.25rem;
    max-height: 0; opacity: 0; overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin-top 0.3s ease;
    margin-top: 0;
  }
  .team-expand-btn {
    background: transparent; border: 1px solid var(--border);
    width: 22px; height: 22px; padding: 0;
    border-radius: 50%;
    font-size: 0.9rem; line-height: 1; font-weight: 400;
    color: var(--teal); cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    margin-top: 0.5rem;
    transition: transform 0.25s ease, background 0.2s ease, color 0.2s ease;
  }
  .team-expand-btn:hover {
    background: var(--teal-dark); color: var(--white); border-color: var(--teal-dark);
  }
  .team-member.expanded .team-expand-btn {
    transform: rotate(45deg);
    background: var(--teal-dark); color: var(--white); border-color: var(--teal-dark);
  }
  /* On wide screens where hover works, fade the expand button out when hovering */
  @media (hover: hover) {
    .team-member:hover .team-expand-btn { opacity: 0.3; }
  }
  .team-member {
    background: transparent; padding: 0.75rem 0.5rem; border-radius: 4px;
    transition: background 0.25s ease;
  }
  .team-member:hover {
    background: var(--cream);
  }
  .team-member:hover .team-desc {
    max-height: 400px; opacity: 1; margin-top: 0.75rem;
  }

  /* TEAM FILTERS */
  .team-filters {
    display: flex; flex-wrap: wrap; gap: 0.5rem;
    margin-bottom: 3rem; padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--border);
    justify-content: center;
  }
  .team-filter-btn {
    background: transparent; border: 1px solid var(--border);
    padding: 0.55rem 1.1rem; font-size: 0.75rem; letter-spacing: 0.06em;
    color: var(--teal-dark); cursor: pointer; transition: all 0.2s;
    font-family: inherit; border-radius: 2px;
    display: inline-flex; align-items: center; gap: 0.4rem;
  }
  .team-filter-btn:hover {
    background: var(--cream); border-color: var(--teal);
  }
  .team-filter-btn.active {
    background: var(--teal-dark); color: var(--white); border-color: var(--teal-dark);
  }
  .team-filter-btn .tf-count {
    font-size: 0.65rem; opacity: 0.7;
    background: rgba(255,255,255,0.15); padding: 1px 6px; border-radius: 8px;
  }
  .team-filter-btn.active .tf-count {
    background: rgba(255,255,255,0.2);
  }
  .team-grid-filterable {
    grid-template-columns: repeat(4, 1fr);
    align-items: start;
  }
  .team-grid-filterable .team-member {
    display: flex; flex-direction: column; align-items: center;
    transition: opacity 0.3s, background 0.25s ease;
  }
  .team-grid-filterable .team-member.hidden {
    display: none;
  }
  /* On touch devices, hover doesn't work well - add a tap-to-expand state */
  .team-member.expanded .team-desc {
    max-height: 400px; opacity: 1; margin-top: 0.75rem;
  }
  .team-member.expanded {
    background: var(--cream);
  }
  @media (max-width: 768px) {
    .team-grid-filterable { grid-template-columns: repeat(2, 1fr) !important; }
  }

  /* FUND DETAIL */
  .fund-header {
    display: grid; grid-template-columns: 1fr 1fr; gap: 4rem;
    align-items: center; margin-bottom: 4rem;
  }
  .fund-header h2 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 3rem; font-weight: 400; color: var(--teal-dark);
    line-height: 1.1; margin-bottom: 1rem;
  }
  .fund-header .fund-subtitle {
    font-size: 0.75rem; font-weight: 500; letter-spacing: 0.2em;
    text-transform: uppercase; color: var(--teal);
    margin-bottom: 1rem;
  }
  .fund-header p {
    font-size: 0.95rem; line-height: 1.85; color: var(--text);
  }

  .fund-metrics {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
    background: var(--border); border: 1px solid var(--border);
  }
  .fund-metric {
    background: var(--light-bg); padding: 1.75rem 1.5rem; text-align: center;
  }
  .fund-metric-value {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 2rem; font-weight: 500; color: var(--teal-dark);
    line-height: 1; margin-bottom: 0.4rem;
  }
  .fund-metric-label {
    font-size: 0.65rem; font-weight: 500; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--muted);
  }

  .info-card {
    background: var(--white); border: 1px solid var(--border);
    padding: 2.5rem; margin-bottom: 1.5rem;
  }
  .info-card h3 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.75rem; font-weight: 500; color: var(--teal-dark);
    margin-bottom: 1.5rem;
    display: flex; align-items: center; gap: 12px;
  }
  .info-card h3::before {
    content: ''; width: 32px; height: 2px; background: var(--teal);
  }

  .info-list { list-style: none; }
  .info-list li {
    padding: 0.85rem 0; border-bottom: 1px solid var(--border);
    display: grid; grid-template-columns: 180px 1fr; gap: 1.5rem;
    font-size: 0.88rem;
  }
  .info-list li:last-child { border-bottom: none; }
  .info-list li strong {
    font-size: 0.68rem; font-weight: 600; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--muted);
  }
  /* Other Strategies — consistent grid for every row */
  .info-list-os li { grid-template-columns: 150px 1fr; align-items: start; }
  .info-list-os li.info-row-wide { grid-template-columns: 150px 1fr; align-items: start; }
  .info-list-os li.info-row-wide span { line-height: 1.65; }

  /* VERTICALS */
  .verticals-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
    margin-top: 3rem;
  }
  .vertical-card {
    background: var(--white); border: 1px solid var(--border);
    padding: 2.5rem 2rem;
    border-top: 3px solid var(--teal);
    transition: all 0.25s;
  }
  .vertical-card:hover {
    box-shadow: 0 10px 30px rgba(43,85,96,0.08);
    transform: translateY(-4px);
  }
  .vertical-card h3 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.5rem; font-weight: 500; color: var(--teal-dark);
    margin-bottom: 0.5rem;
  }
  .vertical-card .vertical-sub {
    font-size: 0.75rem; color: var(--teal); font-style: italic;
    margin-bottom: 1rem;
  }
  .vertical-card ul { list-style: none; padding: 0; }
  .vertical-card ul li {
    padding: 0.4rem 0; font-size: 0.85rem; color: var(--muted);
    padding-left: 1.25rem; position: relative;
  }
  .vertical-card ul li::before {
    content: ''; position: absolute; left: 0; top: 0.95rem;
    width: 6px; height: 1px; background: var(--teal);
  }

  /* IMPACT THEMES */
  .impact-themes {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
    margin-top: 2.5rem;
  }
  .impact-theme-group {
    background: var(--white); border: 1px solid var(--border);
    overflow: hidden;
  }
  .impact-theme-header {
    background: var(--teal-dark); color: var(--white);
    padding: 1rem 1.5rem;
    font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em;
    text-transform: uppercase;
  }
  .impact-theme-list {
    padding: 1.5rem; display: grid;
    grid-template-columns: 1fr 1fr; gap: 0.75rem;
  }
  .impact-theme-item {
    font-size: 0.82rem; color: var(--text);
    display: flex; align-items: center; gap: 8px;
  }
  .impact-theme-item::before {
    content: ''; width: 6px; height: 6px; border-radius: 50%;
    background: var(--teal); flex-shrink: 0;
  }

  /* PORTFOLIO */
  .portfolio-filters {
    display: flex; gap: 0.75rem; margin-bottom: 2.5rem;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--border); padding-bottom: 1rem;
  }
  .portfolio-filters button {
    background: none; border: 1px solid var(--border); padding: 0.6rem 1.25rem;
    font-size: 0.72rem; font-weight: 500; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--muted); cursor: pointer;
    font-family: inherit; transition: all 0.2s;
    border-radius: 2px;
  }
  .portfolio-filters button.active,
  .portfolio-filters button:hover {
    color: var(--white); background: var(--teal-dark); border-color: var(--teal-dark);
  }

  .portfolio-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
  }

  .portfolio-card {
    background: var(--white); border: 1px solid var(--border);
    padding: 2rem; transition: all 0.25s; cursor: pointer;
  }
  .portfolio-card:hover {
    box-shadow: 0 10px 30px rgba(43,85,96,0.08); border-color: var(--teal-light);
  }
  .portfolio-fund-tag {
    font-size: 0.62rem; font-weight: 600; letter-spacing: 0.15em;
    text-transform: uppercase; color: var(--teal);
    margin-bottom: 0.75rem;
  }
  .portfolio-name {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.5rem; font-weight: 500; color: var(--teal-dark);
    margin-bottom: 0.5rem;
  }
  .portfolio-desc {
    font-size: 0.85rem; color: var(--muted); line-height: 1.7;
    margin-bottom: 1rem;
  }
  .portfolio-themes {
    display: flex; gap: 0.4rem; flex-wrap: wrap;
  }
  .portfolio-theme-pill {
    font-size: 0.62rem; padding: 3px 8px;
    background: var(--cream); color: var(--teal-dark);
    border-radius: 2px; letter-spacing: 0.04em;
  }

  /* CONTACT */
  .contact-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 4rem;
    margin-top: 3rem;
  }

  .contact-info-block { margin-bottom: 2.5rem; }
  .contact-info-block h4 {
    font-size: 0.68rem; font-weight: 600; letter-spacing: 0.2em;
    text-transform: uppercase; color: var(--teal);
    margin-bottom: 0.75rem;
    display: flex; align-items: center; gap: 10px;
  }
  .contact-info-block h4 svg {
    width: 18px; height: 18px; stroke: var(--teal);
  }
  .contact-info-block p, .contact-info-block a {
    font-size: 0.92rem; font-weight: 400; line-height: 1.8;
    color: var(--text); text-decoration: none; display: block;
  }

  .contact-form {
    background: var(--cream); padding: 2.5rem; border: 1px solid var(--border);
  }
  .contact-form h3 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.75rem; color: var(--teal-dark); margin-bottom: 1.5rem;
  }
  .form-group { margin-bottom: 1.25rem; }
  .form-group label {
    display: block; font-size: 0.65rem; font-weight: 500; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--muted); margin-bottom: 0.4rem;
  }
  .form-group input, .form-group textarea, .form-group select {
    width: 100%; padding: 0.8rem 1rem;
    border: 1px solid var(--border); background: var(--white);
    font-family: inherit; font-size: 0.88rem; color: var(--text);
    transition: border-color 0.2s;
  }
  .form-group input:focus, .form-group textarea:focus, .form-group select:focus {
    outline: none; border-color: var(--teal);
  }
  .form-group textarea { resize: vertical; min-height: 120px; }

  .form-check {
    display: flex; gap: 0.5rem; margin: 1.5rem 0;
    font-size: 0.76rem; line-height: 1.6; color: var(--muted);
  }

  .btn-submit {
    display: inline-flex; align-items: center; gap: 10px;
    background: var(--teal-dark); color: var(--white); border: none;
    padding: 0.95rem 1.9rem; font-size: 0.72rem; font-weight: 500;
    letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer;
    font-family: inherit; transition: background 0.2s;
  }
  .btn-submit:hover { background: var(--teal); }

  /* ECOSYSTEM LOGOS */
  .ecosystem-band {
    background: var(--light-bg); padding: 3rem 2.5rem;
    border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
  }
  .ecosystem-inner {
    max-width: 1440px; margin: 0 auto;
    display: flex; align-items: center; gap: 3rem; justify-content: space-between;
    flex-wrap: wrap;
  }
  .ecosystem-label {
    font-size: 0.68rem; font-weight: 500; letter-spacing: 0.2em;
    text-transform: uppercase; color: var(--muted);
  }
  .ecosystem-logos {
    display: flex; gap: 2.5rem; flex-wrap: wrap; align-items: center;
  }
  .ecosystem-logo {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 0.85rem; color: var(--muted); letter-spacing: 0.05em;
    opacity: 0.75; transition: opacity 0.2s;
  }
  .ecosystem-logo:hover { opacity: 1; }

  /* FOOTER */
  footer {
    background: #1f3e47; color: rgba(255,255,255,0.55);
    padding: 4rem 2.5rem 2rem;
  }
  .footer-inner {
    max-width: 1440px; margin: 0 auto;
    display: grid; grid-template-columns: 1.8fr 1fr 1.3fr 1fr;
    gap: 4.5rem; margin-bottom: 3rem;
  }
  .footer-brand .logo-text { color: var(--white); }
  .footer-brand .logo-b { color: var(--white); }
  .footer-brand p {
    font-size: 0.82rem; font-weight: 300; line-height: 1.8;
    margin-top: 1.25rem; color: rgba(255,255,255,0.55);
    max-width: 320px;
  }
  .footer-contact {
    margin-top: 1rem;
    font-size: 0.82rem;
    line-height: 1.8;
    color: rgba(255,255,255,0.82);
  }
  .footer-contact a {
    color: rgba(255,255,255,0.92);
    text-decoration: none;
    border-bottom: 1px dotted rgba(255,255,255,0.35);
  }
  .footer-contact a:hover { color: var(--white); border-bottom-color: var(--white); }

  .footer-col h4 {
    font-size: 0.68rem; font-weight: 600; letter-spacing: 0.18em;
    text-transform: uppercase; color: rgba(255,255,255,0.85);
    margin-bottom: 1.25rem;
  }
  .footer-col a {
    display: block; font-size: 0.82rem; font-weight: 300;
    color: rgba(255,255,255,0.5); text-decoration: none;
    margin-bottom: 0.65rem; cursor: pointer; transition: color 0.2s;
  }
  .footer-col a:hover { color: var(--white); }

  .footer-cert {
    max-width: 1440px; margin: 0 auto;
    display: flex; gap: 1.5rem; flex-wrap: wrap;
    padding: 1.5rem 0; border-top: 1px solid rgba(255,255,255,0.08);
    font-size: 0.72rem; color: rgba(255,255,255,0.4);
  }
  .footer-cert span {
    padding: 6px 12px; background: rgba(255,255,255,0.05);
    border-radius: 2px; font-weight: 500; letter-spacing: 0.08em;
  }

  .footer-bottom {
    max-width: 1440px; margin: 0 auto;
    border-top: 1px solid rgba(255,255,255,0.08);
    padding-top: 1.5rem;
    display: flex; justify-content: space-between; align-items: center;
    flex-wrap: wrap; gap: 1rem;
    font-size: 0.72rem; color: rgba(255,255,255,0.4);
  }

  /* DISCLAIMER ON FUND PAGES */
  .disclaimer-note {
    background: var(--cream); border-left: 3px solid var(--gold);
    padding: 1.25rem 1.5rem; font-size: 0.78rem; color: var(--muted);
    line-height: 1.7; margin-top: 3rem;
  }

  /* LINKEDIN HERO BLOCK (News page) */
  .linkedin-hero {
    background: linear-gradient(135deg, #f5f9fc 0%, #eaf2f8 100%);
    border: 1px solid #d6e3ec;
    border-left: 5px solid #0A66C2;
    padding: 3.5rem 3rem;
    margin-bottom: 1rem;
    position: relative;
    overflow: hidden;
  }
  .linkedin-hero::before {
    content: '';
    position: absolute;
    top: -60px; right: -60px;
    width: 240px; height: 240px;
    background: radial-gradient(circle, rgba(10,102,194,0.06) 0%, transparent 70%);
    border-radius: 50%;
  }
  .linkedin-hero-content {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2rem;
    align-items: flex-start;
    position: relative;
    z-index: 1;
  }
  .linkedin-icon-wrap {
    background: var(--white);
    border: 1px solid #d6e3ec;
    padding: 1rem;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(10,102,194,0.08);
  }
  .linkedin-eyebrow {
    font-size: 0.7rem;
    color: #0A66C2;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 0.75rem;
  }
  .linkedin-hero-text h2 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 2.25rem;
    color: var(--teal-dark);
    line-height: 1.15;
    margin-bottom: 1rem;
    font-weight: 500;
  }
  .linkedin-hero-text p {
    color: var(--muted);
    line-height: 1.7;
    font-size: 0.95rem;
    margin-bottom: 1.75rem;
    max-width: 640px;
  }
  .linkedin-cta-row {
    display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap;
  }
  .linkedin-btn {
    background: #0A66C2 !important;
    border-color: #0A66C2 !important;
  }
  .linkedin-btn:hover {
    background: #084c92 !important;
  }
  .linkedin-follow-link {
    color: #0A66C2;
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
  }
  .linkedin-follow-link:hover {
    border-bottom-color: #0A66C2;
  }
  .news-card.linkedin-card {
    text-decoration: none; color: inherit; display: block;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
  }
  .news-card.linkedin-card:hover {
    border-color: #0A66C2;
  }
  @media (max-width: 768px) {
    .linkedin-hero { padding: 2rem 1.5rem; }
    .linkedin-hero-content { grid-template-columns: 1fr; gap: 1.25rem; }
    .linkedin-hero-text h2 { font-size: 1.75rem; }
  }

  /* SFDR badge */
  .sfdr-badge {
    display: inline-block; padding: 3px 10px;
    background: var(--sage); color: var(--teal-dark);
    font-size: 0.65rem; font-weight: 600; letter-spacing: 0.1em;
    text-transform: uppercase; border-radius: 2px;
  }
  .sfdr-badge.sfdr-6 {
    background: #f0eeea; color: #6b5f4a; border: 1px solid #d6cfc1;
  }
  .sfdr-badge.sfdr-8 {
    background: #fff3d6; color: #8a6a1e; border: 1px solid #ecd89a;
  }

  /* Status badge (Open / Closed) */
  .status-badge {
    display: inline-block; padding: 3px 10px;
    font-size: 0.65rem; font-weight: 600; letter-spacing: 0.1em;
    text-transform: uppercase; border-radius: 2px;
  }
  .status-open {
    background: #e8f3ed; color: #2d7a4e;
    border: 1px solid #b5d7c2;
  }
  .status-closed {
    background: #f0eeea; color: #6b5f4a;
    border: 1px solid #d6cfc1;
  }

  /* PARTNER NETWORK */
  .network-cols {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem;
    margin-top: 3rem;
  }
  .network-col h4 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.35rem; color: var(--teal-dark);
    margin-bottom: 1rem; padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--teal);
    display: inline-block;
  }
  .network-col p {
    font-size: 0.88rem; line-height: 1.75; color: var(--muted);
    margin-bottom: 0.75rem;
  }

  @media (max-width: 900px) {
    .nav-links { display: none; }
    .mobile-toggle { display: block; }
    .hero-grid, .mission-grid, .contact-grid, .impact-grid, .fund-header { grid-template-columns: 1fr; }
    .values-row, .verticals-grid, .news-grid, .team-grid,
    .portfolio-grid, .impact-themes, .network-cols,
    .stats-inner, .footer-inner, .explore-grid { grid-template-columns: 1fr !important; }
    .team-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .stats-inner { grid-template-columns: repeat(2, 1fr) !important; }
    .footer-inner { grid-template-columns: 1fr 1fr !important; }
    .st-header, .st-row { grid-template-columns: 1fr 1fr; font-size: 0.75rem; }
    .st-header > div:nth-child(n+3), .st-row > div:nth-child(n+3) { display: none; }
    .section { padding: 4rem 1.5rem; }
    .hero-text { padding: 3rem 1.5rem; }
    .hero-images { padding: 1rem 1.5rem; }
    .ibist-radar-grid { grid-template-columns: 1fr !important; }
  }

  /* CERTIFICATION LOGOS */
  .cert-logos {
    display: flex; gap: 2.5rem; flex-wrap: wrap; align-items: center;
    justify-content: flex-end;
  }
  .cert-logo {
    display: flex; align-items: center; gap: 12px;
    transition: opacity 0.2s; cursor: default;
    opacity: 0.85;
  }
  .cert-logo:hover { opacity: 1; }
  .cert-logo img {
    max-height: 46px; width: auto;
    filter: grayscale(30%);
    transition: filter 0.3s;
  }
  .cert-logo:hover img { filter: grayscale(0%); }
  .cert-logo span {
    font-size: 0.72rem; line-height: 1.35; color: var(--muted);
    letter-spacing: 0.04em;
  }
  .cert-logo span strong {
    color: var(--teal-dark); font-weight: 600; font-size: 0.8rem;
  }

  /* EXPLORE CARDS */
  .explore-grid {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem;
    margin-top: 3rem;
    max-width: 980px; margin-left: auto; margin-right: auto;
  }
  .explore-card { padding: 3rem 2.5rem !important; }
  .explore-card {
    background: var(--white); padding: 2.75rem 2.25rem;
    border: 1px solid var(--border); text-decoration: none;
    cursor: pointer; transition: all 0.3s; display: block;
    position: relative; overflow: hidden;
  }
  .explore-card::before {
    content: ''; position: absolute;
    top: 0; left: 0; right: 0; height: 3px;
    background: var(--teal); transform: scaleX(0);
    transition: transform 0.3s; transform-origin: left;
  }
  .explore-card:hover::before { transform: scaleX(1); }
  .explore-card:hover {
    box-shadow: 0 12px 36px rgba(43,85,96,0.08);
    transform: translateY(-4px); border-color: var(--teal-light);
  }
  .explore-num {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 3rem; font-weight: 300; color: rgba(43,85,96,0.12);
    line-height: 1; margin-bottom: 1rem;
  }
  .explore-card h3 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.75rem; font-weight: 500; color: var(--teal-dark);
    margin-bottom: 0.75rem;
  }
  .explore-card p {
    font-size: 0.88rem; color: var(--muted); line-height: 1.75;
    margin-bottom: 1.25rem;
  }
  .explore-link {
    font-size: 0.68rem; font-weight: 600; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--teal);
  }

  /* PORTFOLIO CARDS WITH LOGOS */
  .portfolio-logo {
    width: 100%; height: 90px;
    display: flex; align-items: center; justify-content: center;
    background: var(--light-bg); border-radius: 2px;
    margin-bottom: 1.25rem; padding: 1rem;
    border: 1px solid var(--border);
  }
  .portfolio-logo img {
    max-height: 50px; max-width: 160px; object-fit: contain;
    filter: grayscale(20%);
    transition: filter 0.3s;
  }
  .portfolio-card:hover .portfolio-logo img { filter: grayscale(0%); }

  /* IBIST RADAR CHARTS */
  .ibist-radar-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem;
    margin-top: 3rem;
  }
  .ibist-radar-card {
    background: var(--white); border: 1px solid var(--border);
    padding: 2.5rem 1.75rem; text-align: center;
  }
  .ibist-radar-card h3 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.5rem; color: var(--teal-dark); margin-bottom: 0.25rem;
    font-style: italic;
  }
  .ibist-radar-card .ibist-score {
    font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em;
    color: var(--teal); margin-bottom: 1.5rem;
  }
  .ibist-radar-svg {
    width: 100%; max-width: 250px; margin: 0 auto 1rem; display: block;
  }
  .ibist-axis { stroke: rgba(43,85,96,0.15); stroke-width: 1; fill: none; }
  .ibist-shape { fill: rgba(107,161,173,0.25); stroke: var(--teal); stroke-width: 2; }
  .ibist-label {
    font-size: 9px; font-family: Inter; font-weight: 500;
    fill: var(--muted); letter-spacing: 0.04em;
  }

  /* REQUIREMENTS TABLE */
  .ibist-req-table {
    width: 100%; margin-top: 1.5rem;
    border-collapse: collapse; font-size: 0.82rem;
    background: var(--white);
  }
  .ibist-req-table th, .ibist-req-table td {
    padding: 0.85rem 1rem; text-align: center;
    border: 1px solid var(--border);
  }
  .ibist-req-table th {
    background: var(--teal-dark); color: var(--white);
    font-size: 0.68rem; font-weight: 600; letter-spacing: 0.1em;
    text-transform: uppercase;
  }
  .ibist-req-table td:first-child {
    text-align: left; font-weight: 500; color: var(--teal-dark);
    background: var(--light-bg);
  }
  .ibist-req-table tr.highlight-row td {
    background: rgba(200,169,97,0.1);
    border-color: var(--gold);
  }

  /* PARTNER LOGOS */
  .partner-logos-grid {
    display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.5rem;
    margin-top: 2.5rem; align-items: center;
  }
  .partner-logo-box {
    background: var(--white); border: 1px solid var(--border);
    padding: 1.5rem 1rem; height: 100px;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.25s;
  }
  .partner-logo-box:hover {
    box-shadow: 0 6px 20px rgba(43,85,96,0.08);
    border-color: var(--teal-light);
  }
  .partner-logo-box img {
    max-width: 100%; max-height: 50px; object-fit: contain;
    filter: grayscale(35%) opacity(0.85);
    transition: filter 0.25s;
  }
  .partner-logo-box:hover img {
    filter: grayscale(0%) opacity(1);
  }

  @media (max-width: 700px) {
    .partner-logos-grid { grid-template-columns: repeat(2, 1fr); }
  }


  /* ───────────────────────────────────────────────────────────── */
  /* Committee cards with photos + experience (IB DIE / SAF / ID) */
  /* ───────────────────────────────────────────────────────────── */
  .committee-heading {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.55rem;
    color: var(--teal-dark);
    font-weight: 500;
    letter-spacing: 0.01em;
    margin-bottom: 0.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border);
  }
  .committee-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
    margin-top: 1rem;
  }
  .committee-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1.5rem 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
  }
  .committee-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(67,124,144,0.10);
    border-color: var(--teal-light);
  }
  .committee-photo {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 1rem;
    background: var(--cream);
    filter: grayscale(0.15);
    transition: filter 0.3s;
  }
  .committee-card:hover .committee-photo { filter: grayscale(0); }
  .committee-photo-initials {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 2rem;
    font-weight: 500;
    color: var(--teal-dark);
    background: var(--cream-dark);
  }
  .committee-name {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--teal-dark);
    line-height: 1.25;
    margin-bottom: 0.35rem;
  }
  .committee-role {
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--teal);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 0.9rem;
  }
  .committee-exp {
    font-size: 0.82rem;
    color: var(--muted);
    line-height: 1.55;
    text-align: left;
    width: 100%;
    border-top: 1px solid var(--border);
    padding-top: 0.9rem;
  }
  .committee-exp strong {
    color: var(--teal-dark);
    font-weight: 600;
  }
  .committee-link {
    margin-top: 1rem;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--teal);
    text-decoration: none;
    letter-spacing: 0.04em;
    transition: color 0.2s;
  }
  .committee-link:hover { color: var(--gold-dark); }

  /* Legal documentation list per fund */
  .legal-docs {
    list-style: none;
    padding: 0;
    margin: 0.75rem 0 0.5rem;
  }
  .legal-docs li {
    border-bottom: 1px solid var(--border);
  }
  .legal-docs li:last-child { border-bottom: none; }
  .legal-docs a {
    display: grid;
    grid-template-columns: 34px 1fr 24px;
    align-items: center;
    gap: 1rem;
    padding: 1rem 0.5rem;
    text-decoration: none;
    color: var(--text);
    transition: background 0.2s, padding 0.2s;
  }
  .legal-docs a:hover {
    background: var(--light-bg);
    padding-left: 1rem;
  }
  .legal-doc-icon {
    font-size: 1.3rem;
    line-height: 1;
    color: var(--teal);
  }
  .legal-docs strong {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--teal-dark);
    letter-spacing: 0.01em;
  }
  .legal-docs span span {
    font-size: 0.82rem;
    color: var(--muted);
  }
  .legal-doc-arrow {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.3rem;
    color: var(--teal);
    text-align: right;
    transition: transform 0.2s;
  }
  .legal-docs a:hover .legal-doc-arrow { transform: translateX(4px); }

  /* ───────────────────────────────────────────────────────────── */
  /* Cert-logo anchor styling (now linked to external sites)      */
  /* ───────────────────────────────────────────────────────────── */
  a.cert-logo {
    text-decoration: none;
    color: inherit;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0.5rem 0.75rem;
    border-radius: 4px;
    transition: background 0.25s, transform 0.25s;
  }
  a.cert-logo:hover {
    background: rgba(255,255,255,0.55);
    transform: translateY(-2px);
  }

  /* ───────────────────────────────────────────────────────────── */
  /* IBIST scroll-reveal storytelling layout                       */
  /* ───────────────────────────────────────────────────────────── */
  .ibist-story {
    position: relative;
    background: linear-gradient(180deg, var(--teal-dark) 0%, #163843 100%);
    color: #fff;
    padding: 6rem 0;
    overflow: hidden;
  }
  .ibist-story::before {
    content: '';
    position: absolute; inset: 0;
    background-image: radial-gradient(circle at 20% 20%, rgba(196,169,97,0.12), transparent 40%),
                      radial-gradient(circle at 80% 70%, rgba(107,161,173,0.10), transparent 45%);
    pointer-events: none;
  }
  .ibist-story-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 2.5rem;
    position: relative;
  }
  .ibist-story-intro {
    max-width: 760px;
    margin: 0 auto 5rem;
    text-align: center;
  }
  .ibist-story-intro .section-tag {
    color: var(--gold);
    letter-spacing: 0.18em;
    font-size: 0.8rem;
    text-transform: uppercase;
    margin-bottom: 1rem;
    display: inline-block;
  }
  .ibist-story-intro h2 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-weight: 400;
    font-size: clamp(2.3rem, 5vw, 3.4rem);
    line-height: 1.1;
    margin-bottom: 1.25rem;
  }
  .ibist-story-intro em {
    font-style: italic;
    color: var(--gold);
  }
  .ibist-story-intro p {
    color: rgba(255,255,255,0.78);
    font-size: 1.05rem;
    line-height: 1.7;
  }
  .ibist-pillars {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
    margin: 0 auto;
    max-width: 1100px;
  }
  .ibist-pillar {
    padding: 2.5rem 1.75rem;
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 12px;
    background: rgba(255,255,255,0.035);
    backdrop-filter: blur(6px);
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.9s ease-out, transform 0.9s ease-out, border-color 0.3s;
  }
  .ibist-pillar.revealed { opacity: 1; transform: translateY(0); }
  .ibist-pillar:hover { border-color: rgba(196,169,97,0.55); }
  .ibist-pillar .pillar-num {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-size: 2.2rem;
    color: var(--gold);
    margin-bottom: 1rem;
    display: block;
  }
  .ibist-pillar h3 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 1.75rem;
    margin-bottom: 1rem;
    color: #fff;
  }
  .ibist-pillar p {
    color: rgba(255,255,255,0.75);
    font-size: 0.95rem;
    line-height: 1.65;
  }
  .ibist-meta-bar {
    margin-top: 4.5rem;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    padding: 2.5rem 2rem;
    border-top: 1px solid rgba(255,255,255,0.14);
    border-bottom: 1px solid rgba(255,255,255,0.14);
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.9s ease-out 0.2s, transform 0.9s ease-out 0.2s;
  }
  .ibist-meta-bar.revealed { opacity: 1; transform: translateY(0); }
  .ibist-meta-bar > div {
    text-align: center;
  }
  .ibist-meta-bar .num {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 3rem;
    font-weight: 400;
    color: var(--gold);
    line-height: 1;
    margin-bottom: 0.4rem;
  }
  .ibist-meta-bar .lbl {
    font-size: 0.8rem;
    color: rgba(255,255,255,0.7);
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .ibist-cta-row {
    margin-top: 3.5rem;
    text-align: center;
  }
  .ibist-cta-row .btn-outline {
    border: 1px solid rgba(255,255,255,0.35);
    background: transparent;
    color: #fff;
    padding: 0.95rem 1.9rem;
    font-size: 0.78rem;
    letter-spacing: 0.12em;
    font-weight: 500;
    text-transform: uppercase;
    cursor: pointer;
    border-radius: 2px;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
  }
  .ibist-cta-row .btn-outline:hover {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--teal-dark);
  }
  @media (max-width: 768px) {
    .ibist-pillars { grid-template-columns: 1fr; gap: 1.5rem; }
    .ibist-meta-bar { grid-template-columns: 1fr; }
  }

  /* ───────────────────────────────────────────────────────────── */
  /* Language pill toggle                                          */
  /* ───────────────────────────────────────────────────────────── */
  .lang-toggle {
    display: inline-flex; align-items: center;
    background: rgba(67,124,144,0.06);
    border: 1px solid rgba(67,124,144,0.18);
    border-radius: 999px;
    padding: 3px;
    gap: 0;
  }
  .lang-toggle .lang-btn {
    cursor: pointer;
    font-size: 0.7rem; font-weight: 600;
    letter-spacing: 0.12em;
    padding: 0.28rem 0.75rem;
    color: var(--muted);
    text-decoration: none;
    border: none; border-radius: 999px;
    transition: color 0.2s, background 0.2s;
    user-select: none;
    line-height: 1;
  }
  .lang-toggle .lang-btn.active {
    color: var(--white);
    background: var(--teal-dark);
    box-shadow: 0 1px 4px rgba(45,88,104,0.18);
  }
  .lang-toggle .lang-btn:not(.active):hover { color: var(--teal-dark); }
  .lang-toggle .lang-divider {
    width: 1px; height: 14px; background: rgba(67,124,144,0.25);
    display: inline-block;
  }
  .lang-toggle .lang-btn.active + .lang-divider,
  .lang-toggle .lang-divider + .lang-btn.active,
  .lang-toggle:has(.lang-btn.active + .lang-divider) .lang-divider,
  .lang-toggle:has(.lang-divider + .lang-btn.active) .lang-divider { background: transparent; }

  /* Generic reveal-on-scroll utility */
  .reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  }
  .reveal.revealed { opacity: 1; transform: translateY(0); }

  /* Team photo as <img> vs. silhouette fallback */
  .team-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
  }


  /* Portfolio logo anchors (stage 3) */
  .portfolio-logo-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-decoration: none;
    transition: transform 0.25s ease;
  }
  .portfolio-logo-link:hover { transform: scale(1.04); }
  .portfolio-logo-link img {
    max-height: 52px;
    max-width: 140px;
    object-fit: contain;
    filter: grayscale(30%);
    transition: filter 0.25s ease;
  }
  .portfolio-card:hover .portfolio-logo-link img { filter: grayscale(0%); }
  .portfolio-logo-fallback {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: 0.05em;
  }
  /* Site link pill that opens each portfolio company website */
  .portfolio-site-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    color: var(--teal);
    text-decoration: none;
    margin-top: 0.8rem;
    font-weight: 500;
    border-top: 1px solid rgba(0,0,0,0.06);
    padding-top: 0.75rem;
  }
  .portfolio-site-link:hover { color: var(--teal-dark); }
  .portfolio-site-link::after { content: '↗'; font-size: 0.9rem; }


  /* ═══ STAGE 4 - visual overhaul ═══ */

  /* Nav logo swap */
  .brand-logo        { display: inline-flex; align-items: center; gap: .5rem; }
  .brand-logo-img    { height: 38px; width: auto; display: block; }
  .brand-logo-text   { display: inline-flex; align-items: center; gap: .3rem; }
  nav#mainNav        { backdrop-filter: blur(14px) saturate(130%); -webkit-backdrop-filter: blur(14px) saturate(130%); background: rgba(255,255,255,0.78); transition: background 0.3s ease, box-shadow 0.3s ease; }
  nav#mainNav.scrolled { background: rgba(255,255,255,0.96); box-shadow: 0 4px 30px rgba(45,88,104,0.08); }

  /* Full-viewport hero */
  .hero.hero-real {
    position: relative;
    min-height: 92vh;
    padding: 9rem 0 6rem;
    overflow: hidden;
    background: linear-gradient(180deg, #fbf8f1 0%, #f4efe6 100%);
    isolation: isolate;
  }
  .hero-bg {
    position: absolute; inset: 0; z-index: 0;
  }
  .hero-abstract {
    position: absolute; inset: 0;
    background-image: url('../img/abstract.svg');
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 55% auto;
    opacity: 0.18;
    mix-blend-mode: multiply;
  }
  .hero-bridge {
    position: absolute;
    right: -4%;
    bottom: 0;
    width: 64%;
    max-width: 980px;
    pointer-events: none;
    animation: hero-float 9s ease-in-out infinite;
  }
  .hero-bridge img { width: 100%; height: auto; display: block; filter: drop-shadow(0 18px 40px rgba(45,88,104,0.22)); }
  @keyframes hero-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-18px); } }
  .hero-gradient {
    position: absolute; inset: 0;
    background: linear-gradient(100deg, rgba(244,239,230,0.92) 0%, rgba(244,239,230,0.72) 35%, rgba(244,239,230,0) 62%);
  }
  .hero-inner {
    position: relative; z-index: 2;
    max-width: 1240px; margin: 0 auto; padding: 0 2rem;
    display: grid; grid-template-columns: minmax(0, 620px) 1fr; gap: 3rem;
    min-height: 70vh; align-items: center;
  }
  .hero-real .hero-text { color: var(--text); }
  .hero-real .hero-eyebrow {
    display: inline-block;
    font-family: Inter, sans-serif; font-size: .78rem; font-weight: 500;
    letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--teal);
    background: rgba(67,124,144,0.08);
    padding: .55rem 1.1rem; border-radius: 60px;
    margin-bottom: 1.5rem;
  }
  .hero-real h1 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2.6rem, 5.5vw, 5.2rem);
    font-weight: 500;
    line-height: 1.04;
    letter-spacing: -0.01em;
    color: var(--teal-dark);
    margin-bottom: 1.5rem;
  }
  .hero-real h1 em { font-style: italic; color: var(--gold-dark); font-weight: 500; }
  .hero-real .hero-text p {
    font-size: 1.15rem;
    line-height: 1.65;
    color: var(--muted);
    max-width: 540px;
    margin-bottom: 2.2rem;
  }
  .hero-ctas { display: flex; gap: 1rem; flex-wrap: wrap; }
  .btn-outline-light {
    padding: .85rem 1.6rem; border-radius: 60px;
    border: 1.5px solid rgba(45,88,104,0.25); background: transparent;
    color: var(--teal-dark); font-family: Inter; font-size: .95rem; font-weight: 500;
    cursor: pointer; transition: all .25s ease;
  }
  .btn-outline-light:hover { background: var(--teal-dark); color: white; border-color: var(--teal-dark); }
  .hero-scroll-indicator {
    position: absolute; left: 2rem; bottom: 2rem;
    display: flex; flex-direction: column; align-items: center; gap: .6rem;
    font-size: .7rem; letter-spacing: 0.3em; text-transform: uppercase;
    color: var(--teal); opacity: .7;
  }
  .hero-scroll-line {
    width: 1px; height: 42px;
    background: linear-gradient(180deg, var(--teal) 0%, transparent 100%);
    position: relative; overflow: hidden;
  }
  .hero-scroll-line::after {
    content: ''; position: absolute; top: 0; left: 0;
    width: 100%; height: 14px; background: var(--teal-dark);
    animation: scroll-bounce 1.8s ease-in-out infinite;
  }
  @keyframes scroll-bounce { 0% { transform: translateY(-100%); } 100% { transform: translateY(400%); } }

  /* Hero reveal on load */
  .hero-reveal > * { opacity: 0; transform: translateY(30px); animation: hero-rise .9s cubic-bezier(.2,.8,.2,1) forwards; }
  .hero-reveal > *:nth-child(1) { animation-delay: .1s; }
  .hero-reveal > *:nth-child(2) { animation-delay: .25s; }
  .hero-reveal > *:nth-child(3) { animation-delay: .4s; }
  .hero-reveal > *:nth-child(4) { animation-delay: .55s; }
  @keyframes hero-rise { to { opacity: 1; transform: none; } }

  @media (max-width: 900px) {
    .hero-bridge { width: 90%; right: -15%; opacity: .35; }
    .hero-inner { grid-template-columns: 1fr; }
  }

  /* IBIST PYRAMID */
  .ibist-pyramid {
    position: relative;
    padding: 9rem 2rem 8rem;
    background: linear-gradient(180deg, #f4efe6 0%, #ebe4d4 100%);
    overflow: hidden;
  }
  .ibist-bg-pattern {
    position: absolute; inset: 0;
    background-image: url('../img/abstract.svg');
    background-repeat: repeat;
    background-size: 380px auto;
    opacity: 0.06;
    pointer-events: none;
  }
  .ibist-pyramid .ibist-story-inner { position: relative; z-index: 1; }
  .pyramid-wrap {
    display: flex; justify-content: center; align-items: center;
    margin: 7.5rem 0 5rem;
    perspective: 900px;
    padding: 10rem 11rem 3.5rem;
  }
  .pyramid-triangle {
    position: relative;
    width: 100%; max-width: 520px; aspect-ratio: 600/460;
  }
  .pyramid-svg { width: 100%; height: 100%; display: block; }

  .pyr-main { stroke-dasharray: 1800; stroke-dashoffset: 1800; transition: stroke-dashoffset 1.6s ease .4s; }
  .reveal.show .pyr-main { stroke-dashoffset: 0; }

  .pyr-node {
    position: absolute;
    display: flex; flex-direction: column; align-items: center;
    width: 230px; text-align: center;
    opacity: 0; transform: translateY(20px) scale(.95);
    transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1);
  }
  .pyr-node.show { opacity: 1; transform: none; }
  .pyr-node-top { top: -120px; left: 50%; transform-origin: center; transform: translateX(-50%) translateY(20px) scale(.95); }
  .pyr-node-top.show { transform: translateX(-50%); }
  .pyr-node-bl  { bottom: -20px; left: -200px; }
  .pyr-node-br  { bottom: -20px; right: -200px; }

  .pyr-icon {
    width: 86px; height: 86px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ffffff 0%, #f8f5ec 100%);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 12px 40px rgba(45,88,104,0.22);
    margin-bottom: 1rem;
    transition: transform .3s ease;
    border: 2px solid var(--teal);
  }
  .pyr-node:hover .pyr-icon { transform: translateY(-4px) scale(1.08); box-shadow: 0 16px 48px rgba(45,88,104,0.32); }
  .pyr-icon svg { width: 40px; height: 40px; color: var(--teal); stroke: var(--teal); }
  .pyr-num {
    display: inline-block;
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: .8rem; font-weight: 600;
    color: var(--gold-dark); letter-spacing: 0.25em;
    margin-bottom: .25rem;
  }
  .pyr-label {
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(2px);
    padding: 1rem 1rem 1.1rem;
    border-radius: 10px;
    box-shadow: 0 6px 24px rgba(45,88,104,0.1);
    border: 1px solid rgba(67,124,144,0.12);
  }
  .pyr-label h3 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 1.45rem; font-weight: 600;
    color: var(--teal-dark); margin-bottom: .35rem; font-style: italic;
  }
  .pyr-label p {
    font-size: .82rem; line-height: 1.55;
    color: var(--text);
  }

  @media (max-width: 1100px) {
    .pyramid-wrap { padding: 0 2rem; }
    .pyr-node-bl { left: -20px; }
    .pyr-node-br { right: -20px; }
  }
  @media (max-width: 780px) {
    .pyramid-wrap { padding: 0 1rem; margin-bottom: 3rem; }
    .pyramid-triangle { max-width: 100%; aspect-ratio: auto; height: auto; }
    .pyr-node { position: static; width: 100%; margin: 1.2rem 0; transform: none; }
    .pyr-node.show { transform: none; }
    .pyramid-svg { display: none; }
  }

  /* Stat counter animation */
  .ibist-meta-bar .num {
    font-variant-numeric: tabular-nums;
    transition: color .3s ease;
  }

  /* Section background pattern for all .section */
  .section-cream { position: relative; }
  .section-cream::before {
    content: ''; position: absolute; inset: 0;
    background-image: url('../img/abstract.svg');
    background-repeat: no-repeat; background-position: left top;
    background-size: 320px auto; opacity: 0.07;
    pointer-events: none;
  }

  /* Fund page hero banner */
  .fund-hero-banner {
    position: relative;
    height: 340px;
    background: linear-gradient(135deg, var(--teal-dark) 0%, var(--teal) 100%);
    overflow: hidden;
    display: flex; align-items: center;
    margin-bottom: 0;
  }
  .fund-hero-banner::before {
    content: ''; position: absolute; inset: 0;
    background-image: url('../img/abstract.svg');
    background-repeat: no-repeat;
    background-position: right center;
    background-size: contain;
    opacity: 0.18;
  }
  .fund-hero-banner .fund-hero-inner {
    position: relative; z-index: 1;
    max-width: 1240px; margin: 0 auto; padding: 0 2rem;
    color: white; width: 100%;
  }
  .fund-hero-banner .fund-hero-inner .breadcrumb { color: rgba(255,255,255,0.75); }
  .fund-hero-banner .fund-hero-inner .breadcrumb a { color: white; }
  .fund-hero-banner .fund-hero-inner h1 {
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2.2rem, 4vw, 3.6rem);
    font-weight: 500; line-height: 1.08;
    margin: .5rem 0;
  }
  .fund-hero-banner .fund-hero-inner h1 em { color: var(--gold); font-style: italic; }
  .fund-hero-banner .fund-hero-inner p { color: rgba(255,255,255,0.88); max-width: 720px; font-size: 1.05rem; line-height: 1.6; }

  /* Team card hover - already has JS-injected img, upgrade the container */
  .team-member { transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease; }
  .team-member:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(45,88,104,0.14); }
  .team-photo {
    position: relative; overflow: hidden;
    background: linear-gradient(135deg, #e8e1d4 0%, #d4cabc 100%);
  }
  .team-photo::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(45,88,104,0.35) 100%);
    opacity: 0; transition: opacity .35s ease;
  }
  .team-member:hover .team-photo::after { opacity: 1; }
  .team-photo img { transition: transform .6s cubic-bezier(.2,.8,.2,1); }
  .team-member:hover .team-photo img { transform: scale(1.06); }

  /* Committee card - add subtle hover */
  .committee-card { transition: transform .3s ease, box-shadow .3s ease; }
  .committee-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(45,88,104,0.12); }
  .committee-photo { transition: transform .45s ease; }
  .committee-card:hover .committee-photo { transform: scale(1.05); }

  /* Portfolio card lift */
  .portfolio-card { transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; position: relative; overflow: hidden; }
  .portfolio-card::before {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(67,124,144,0.04) 0%, transparent 60%);
    opacity: 0; transition: opacity .3s ease;
    pointer-events: none;
  }
  .portfolio-card:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(45,88,104,0.12); border-color: var(--teal-light); }
  .portfolio-card:hover::before { opacity: 1; }

  /* News card hover lift */
  .news-card { transition: transform .3s ease, box-shadow .3s ease; }
  .news-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(45,88,104,0.12); }

  /* Value card - add icon hue */
  .value-card { transition: transform .3s ease, box-shadow .3s ease; }
  .value-card:hover { transform: translateY(-5px); box-shadow: 0 18px 45px rgba(45,88,104,0.12); }
  .value-icon { transition: transform .3s ease, color .3s ease; }
  .value-card:hover .value-icon { transform: scale(1.1) rotate(-4deg); color: var(--gold-dark); }


  #page-fund-ibsaf .page-header,
  #page-fund-ibdie .page-header,
  #page-fund-ibid  .page-header {
    position: relative; overflow: hidden; color: white;
    background: linear-gradient(135deg, var(--teal-dark) 0%, var(--teal) 100%);
    padding-top: 6rem; padding-bottom: 4rem;
  }
  #page-fund-ibsaf .page-header::before,
  #page-fund-ibdie .page-header::before,
  #page-fund-ibid  .page-header::before {
    content: ''; position: absolute; inset: 0;
    background-image: url('../img/abstract.svg');
    background-repeat: no-repeat; background-position: right center; background-size: 55% auto;
    opacity: 0.2;
  }
  #page-fund-ibsaf .page-header .page-header-inner,
  #page-fund-ibdie .page-header .page-header-inner,
  #page-fund-ibid  .page-header .page-header-inner { position: relative; z-index: 1; }
  #page-fund-ibsaf .page-header h1,
  #page-fund-ibdie .page-header h1,
  #page-fund-ibid  .page-header h1 { color: white; }
  #page-fund-ibsaf .page-header h1 em,
  #page-fund-ibdie .page-header h1 em,
  #page-fund-ibid  .page-header h1 em { color: var(--gold); }
  #page-fund-ibsaf .page-header .breadcrumb,
  #page-fund-ibdie .page-header .breadcrumb,
  #page-fund-ibid  .page-header .breadcrumb { color: rgba(255,255,255,0.75); }
  #page-fund-ibsaf .page-header .breadcrumb a,
  #page-fund-ibdie .page-header .breadcrumb a,
  #page-fund-ibid  .page-header .breadcrumb a { color: white; }
  #page-fund-ibsaf .page-header .page-header-desc,
  #page-fund-ibdie .page-header .page-header-desc,
  #page-fund-ibid  .page-header .page-header-desc { color: rgba(255,255,255,0.9); }
  #page-fund-ibsaf .page-header .fund-pills .fund-pill,
  #page-fund-ibdie .page-header .fund-pills .fund-pill,
  #page-fund-ibid  .page-header .fund-pills .fund-pill {
    background: rgba(255,255,255,0.14); color: white; border: 1px solid rgba(255,255,255,0.3);
  }


  /* Stage 5 - team initials fallback + linkedin badge */
  .team-photo { position: relative; overflow: hidden; background: linear-gradient(135deg, #ebe4d4 0%, #d4cabc 100%); aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; }
  .team-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .team-initials {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-family: 'FS Sally', 'fs sally', 'Fraunces', 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    font-size: 2.4rem; font-weight: 500;
    color: var(--teal); letter-spacing: 0.08em;
    background: linear-gradient(135deg, #ebe4d4 0%, #d4cabc 100%);
  }
  .team-name { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
  .team-linkedin {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px; border-radius: 50%;
    background: #0A66C2; color: white;
    transition: transform .2s ease, background .2s ease;
    text-decoration: none;
  }
  .team-linkedin:hover { transform: scale(1.15); background: #004182; }


  /* ═══ STAGE 6 - Brand colour + FS Sally headline stack ═══ */
  :root {
    --font-display: 'FS Sally', 'fs sally', 'Fraunces', 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    --font-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  }
  body { font-family: var(--font-body); color: var(--text); }
  h1, h2, h3, h4, h5,
  .hero h1, .hero-real h1,
  .section-title, .page-header h1,
  .logo-text, .brand-logo-text,
  .ibist-story-intro h2,
  .pyr-label h3, .pyr-num,
  .team-category, .committee-heading,
  .value-card h4, .mv-block h3,
  .explore-card h3, .news-title,
  .portfolio-name, .committee-name,
  .fund-hero-banner .fund-hero-inner h1,
  .footer-brand .logo-text,
  em {
    font-family: var(--font-display) !important;
  }
  /* Fraunces optical-size axis tuning for large headings */
  .hero-real h1,
  .section-title,
  .page-header h1,
  .fund-hero-banner .fund-hero-inner h1,
  .ibist-story-intro h2 {
    font-optical-sizing: auto;
    font-variation-settings: "opsz" 120, "SOFT" 50;
    letter-spacing: -0.015em;
  }
  h3, h4 {
    font-optical-sizing: auto;
    font-variation-settings: "opsz" 24;
  }

  /* Subtle refinements that come with the real teal */
  .btn-primary { background: var(--teal); }
  .btn-primary:hover { background: var(--teal-dark); }
  .hero-real .hero-eyebrow { color: var(--teal); background: rgba(67,124,144,0.10); }
  nav#mainNav.scrolled { box-shadow: 0 4px 30px rgba(45,88,104,0.10); }

  /* Selection colour */
  ::selection { background: var(--teal); color: white; }


  /* ═══ STAGE 8 - IBIST section high-contrast ═══ */
  .ibist-pyramid {
    background: linear-gradient(145deg, #2d5868 0%, #437C90 55%, #3a6d80 100%) !important;
    color: #ffffff !important;
  }
  .ibist-pyramid::after {
    content: '';
    position: absolute; inset: 0;
    background-image:
      radial-gradient(ellipse at 20% 30%, rgba(255,255,255,0.12) 0%, transparent 45%),
      radial-gradient(ellipse at 80% 70%, rgba(196,169,97,0.20) 0%, transparent 50%);
    pointer-events: none; z-index: 0;
  }
  .ibist-pyramid .ibist-bg-pattern {
    opacity: 0.14 !important;
    filter: invert(1) brightness(2);
    background-size: 520px auto !important;
  }
  .ibist-pyramid .ibist-story-inner { position: relative; z-index: 2; }

  .ibist-pyramid .section-tag {
    color: var(--gold) !important;
    background: rgba(255,255,255,0.08);
    padding: .5rem 1rem; border-radius: 50px;
    display: inline-block;
    letter-spacing: 0.25em;
    border: 1px solid rgba(255,255,255,0.2);
    font-weight: 500;
  }
  .ibist-pyramid .ibist-story-intro h2 {
    color: #ffffff !important;
    font-size: clamp(2.6rem, 4.5vw, 4.2rem) !important;
  }
  .ibist-pyramid .ibist-story-intro h2 em {
    color: var(--gold) !important;
    font-style: italic;
  }
  .ibist-pyramid .ibist-story-intro p {
    color: rgba(255,255,255,0.85) !important;
    font-size: 1.12rem !important;
  }
  .ibist-pyramid .ibist-story-intro strong {
    color: var(--gold);
  }

  /* Pyramid lines become gold + white */
  .ibist-pyramid .pyr-main { stroke: rgba(255,255,255,0.85) !important; stroke-width: 2 !important; }
  .ibist-pyramid .pyr-shadow { fill: rgba(196,169,97,0.15) !important; }
  .ibist-pyramid .pyr-inner-1,
  .ibist-pyramid .pyr-inner-2 { stroke: var(--gold) !important; opacity: 0.7 !important; }

  /* Node cards now sit on white pills over teal */
  .ibist-pyramid .pyr-node {
    background: rgba(255,255,255,0.97);
    padding: 1.2rem 1.1rem;
    border-radius: 14px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.25), 0 0 0 1px rgba(196,169,97,0.25);
    width: 230px;
    backdrop-filter: blur(4px);
  }
  .ibist-pyramid .pyr-icon {
    width: 66px; height: 66px;
    background: linear-gradient(135deg, var(--gold) 0%, #d4ba76 100%);
    box-shadow: 0 8px 24px rgba(196,169,97,0.45);
  }
  .ibist-pyramid .pyr-icon img {
    filter: brightness(0) invert(1);
  }
  .ibist-pyramid .pyr-num {
    color: var(--gold-dark);
    font-weight: 600;
  }
  .ibist-pyramid .pyr-label h3 {
    color: var(--teal-dark) !important;
    font-size: 1.35rem !important;
  }
  .ibist-pyramid .pyr-label p {
    color: var(--text) !important;
    font-size: .82rem !important;
    line-height: 1.55 !important;
  }
  .ibist-pyramid .pyr-node:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 28px 60px rgba(0,0,0,0.35), 0 0 0 2px var(--gold);
  }
  .ibist-pyramid .pyr-node-top:hover {
    transform: translateX(-50%) translateY(-6px) !important;
  }
  .ibist-pyramid .pyr-node-top {
    top: -140px !important;
  }

  .ibist-pyramid .pyr-node-bl,
  .ibist-pyramid .pyr-node-br {
    bottom: 40px !important;
  }

  .ibist-pyramid .pyramid-wrap {
    padding-top: 13rem !important;
    margin-top: 4rem !important;
  }

  /* Meta bar - golden numbers on teal */
  .ibist-pyramid .ibist-meta-bar {
    margin-top: 6rem !important;
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid rgba(255,255,255,0.18) !important;
    border-radius: 18px !important;
    padding: 2.5rem 2rem !important;
    backdrop-filter: blur(10px);
  }
  .ibist-pyramid .ibist-meta-bar .num {
    color: var(--gold) !important;
    font-size: 3.6rem !important;
    font-weight: 500;
  }
  .ibist-pyramid .ibist-meta-bar .lbl {
    color: rgba(255,255,255,0.8) !important;
    font-size: 0.82rem !important;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  /* CTA button inverts for the dark ground */
  .ibist-pyramid .btn-outline {
    background: var(--gold) !important;
    color: var(--teal-dark) !important;
    border: 1.5px solid var(--gold) !important;
    padding: 1rem 2.2rem !important;
    font-weight: 500;
  }
  .ibist-pyramid .btn-outline:hover {
    background: #d4ba76 !important;
    border-color: #d4ba76 !important;
    transform: translateY(-2px);
    box-shadow: 0 15px 35px rgba(196,169,97,0.4);
  }

  /* ESSENCE section - also gets accents so the 3 values stand out more */
  .value-card {
    border: 1px solid var(--border);
    position: relative;
    overflow: hidden;
  }
  .value-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--teal) 0%, var(--gold) 100%);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .5s cubic-bezier(.2,.8,.2,1);
  }
  .value-card:hover::before { transform: scaleX(1); }
  .value-icon {
    background: linear-gradient(135deg, rgba(67,124,144,0.12) 0%, rgba(196,169,97,0.12) 100%) !important;
    color: var(--teal) !important;
    width: 60px; height: 60px;
    border-radius: 14px;
    display: flex !important; align-items: center; justify-content: center;
    margin-bottom: 1.2rem;
  }
  .value-card h4 {
    color: var(--teal-dark);
    font-size: 1.55rem !important;
  }

  /* Section title em accent */
  .section-title em { color: var(--teal) !important; }

  /* CTA primary button - more colour */
  .btn-primary {
    background: linear-gradient(135deg, var(--teal) 0%, var(--teal-dark) 100%) !important;
    box-shadow: 0 10px 30px rgba(67,124,144,0.35);
    transition: all .3s ease;
  }
  .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 40px rgba(67,124,144,0.5);
  }

  /* Hero eyebrow more visible */
  .hero-real .hero-eyebrow {
    background: rgba(67,124,144,0.12) !important;
    color: var(--teal-dark) !important;
    font-weight: 600;
  }

  /* Stats bar on the home - make numbers sing */
  .stats-bar .stat-number {
    background: linear-gradient(135deg, var(--teal) 0%, var(--gold-dark) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }


  /* ═══ STAGE 9 - compact team cards ═══ */
  .team-member.tm-v2 {
    background: white;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 1.5rem 1.25rem;
    text-align: center;
    display: flex; flex-direction: column; align-items: stretch;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  }
  .team-member.tm-v2 .team-photo {
    width: 130px; height: 130px;
    border-radius: 50%;
    margin: 0 auto 1rem;
    border: 2px solid var(--border);
    box-shadow: 0 6px 18px rgba(45,88,104,0.08);
  }
  .team-member.tm-v2 .team-name {
    font-family: var(--font-display) !important;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--teal-dark);
    display: flex; align-items: center; justify-content: center;
    gap: .5rem; margin-bottom: .2rem;
  }
  .team-member.tm-v2 .team-role {
    font-family: var(--font-display) !important;
    font-style: italic;
    color: var(--teal);
    font-size: 0.98rem;
    font-weight: 500;
    text-transform: none !important;
    letter-spacing: 0;
    margin-bottom: 0.25rem;
  }
  .team-member.tm-v2 .tm-bullets {
    list-style: none;
    padding: 0; margin: 0;
    text-align: left;
    font-size: 0.8rem;
    line-height: 1.45;
    color: var(--text);
  }
  .team-member.tm-v2 .tm-bullets li {
    position: relative;
    padding-left: 1rem;
    margin-bottom: .3rem;
  }
  .team-member.tm-v2 .tm-bullets li::before {
    content: '•';
    position: absolute;
    left: 0; top: -1px;
    color: var(--teal);
    font-weight: 600;
  }
  .team-member.tm-v2 .tm-former-label {
    font-family: var(--font-display) !important;
    font-style: italic;
    color: var(--teal-dark);
    font-weight: 600;
    font-size: 0.85rem;
    margin: .6rem 0 .3rem;
  }
  .team-member.tm-v2:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 50px rgba(45,88,104,0.12);
    border-color: var(--teal-light);
  }
  .team-grid-filterable .team-member.tm-v2.hidden { display: none; }

  /* Hide the old +/- expand button entirely for tm-v2 cards */
  .team-member.tm-v2 .team-expand-btn,
  .team-member.tm-v2 .team-desc { display: none !important; }

  /* Filter buttons use brand teal */
  .team-filter-btn {
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    padding: .55rem 1.1rem;
    border-radius: 60px;
    border: 1px solid var(--border);
    background: white;
    color: var(--text);
    cursor: pointer;
    transition: all .2s ease;
  }
  .team-filter-btn:hover {
    border-color: var(--teal);
    color: var(--teal);
  }
  .team-filter-btn.active {
    background: var(--teal);
    color: white;
    border-color: var(--teal);
    box-shadow: 0 6px 18px rgba(67,124,144,0.25);
  }
  .team-filter-btn .tf-count {
    display: inline-block;
    margin-left: .4rem;
    font-size: .75rem;
    opacity: .7;
  }

  /* 4-up grid by default for tm-v2 */
  #teamGrid { grid-template-columns: repeat(4, 1fr) !important; gap: 1.5rem; }
  @media (max-width: 1100px) { #teamGrid { grid-template-columns: repeat(3, 1fr) !important; } }
  @media (max-width: 780px)  { #teamGrid { grid-template-columns: repeat(2, 1fr) !important; } }
  @media (max-width: 500px)  { #teamGrid { grid-template-columns: 1fr !important; } }


  /* ═══ STAGE 10 - team hover-only bullets + rectangular filters ═══ */
  /* Collapse bullets by default, reveal on hover */
  .team-member.tm-v2 .tm-bullets,
  .team-member.tm-v2 .tm-former-label {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    margin: 0;
    transition: max-height .45s cubic-bezier(.2,.8,.2,1),
                opacity .25s ease,
                margin .35s ease;
  }
  .team-member.tm-v2:hover .tm-bullets,
  .team-member.tm-v2:hover .tm-former-label,
  .team-member.tm-v2:focus-within .tm-bullets,
  .team-member.tm-v2:focus-within .tm-former-label {
    max-height: 700px;
    opacity: 1;
  }
  .team-member.tm-v2:hover .tm-bullets,
  .team-member.tm-v2:focus-within .tm-bullets {
    margin-top: .35rem;
  }
  .team-member.tm-v2:hover .tm-former-label,
  .team-member.tm-v2:focus-within .tm-former-label {
    margin: .6rem 0 .25rem;
  }
  /* Keep card height stable-ish: let it grow on hover naturally */
  .team-member.tm-v2 {
    align-self: start;
    min-height: 300px;
  }

  /* Rectangular filter buttons - same language as portfolio filters */
  .team-filters {
    border-bottom: 1px solid var(--border);
    padding-bottom: 1rem;
    margin-bottom: 2.25rem;
    gap: .6rem;
  }
  .team-filter-btn {
    background: none !important;
    border: 1px solid var(--border) !important;
    padding: 0.6rem 1.25rem !important;
    font-size: 0.72rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--muted) !important;
    cursor: pointer;
    font-family: inherit !important;
    border-radius: 2px !important;
    transition: all 0.2s ease;
    box-shadow: none !important;
  }
  .team-filter-btn:hover,
  .team-filter-btn.active {
    color: var(--white) !important;
    background: var(--teal-dark) !important;
    border-color: var(--teal-dark) !important;
  }
  .team-filter-btn .tf-count {
    display: inline-block;
    margin-left: .35rem;
    font-size: .7rem;
    opacity: .8;
    font-weight: 600;
  }

  /* ═══ STAGE 10 - committee hover-only experience ═══ */
  .committee-card .committee-exp,
  .committee-card .committee-link {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    margin: 0 !important;
    padding: 0 !important;
    transition: max-height .45s cubic-bezier(.2,.8,.2,1),
                opacity .25s ease,
                margin .35s ease,
                padding .35s ease;
  }
  .committee-card:hover .committee-exp,
  .committee-card:hover .committee-link,
  .committee-card:focus-within .committee-exp,
  .committee-card:focus-within .committee-link {
    max-height: 600px;
    opacity: 1;
  }
  .committee-card:hover .committee-exp,
  .committee-card:focus-within .committee-exp {
    margin-top: .25rem !important;
  }
  .committee-card:hover .committee-link,
  .committee-card:focus-within .committee-link {
    margin-top: .6rem !important;
  }
  .committee-card {
    align-self: start;
    cursor: default;
  }
  .committee-role {
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-style: italic;
    font-size: 0.88rem !important;
    color: var(--teal) !important;
    margin-bottom: 0 !important;
    font-family: var(--font-display) !important;
  }

  /* ═══ STAGE 10 - IBIST strong + paragraph polish ═══ */
  .ibist-pyramid .ibist-story-intro p strong {
    color: var(--gold) !important;
    font-weight: 600;
    letter-spacing: 0.01em;
    background: rgba(196,169,97,0.12);
    padding: 2px 8px;
    border-radius: 4px;
  }
  .ibist-pyramid .ibist-story-intro p em {
    color: var(--gold) !important;
    font-style: italic;
  }

  /* ═══ STAGE 10 - academia rebuild ═══ */
  .acad-focus-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
    margin-top: 2.5rem;
  }
  .acad-focus-card {
    background: var(--white); border: 1px solid var(--border);
    padding: 2rem 1.75rem; border-radius: 6px;
    position: relative; overflow: hidden;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  }
  .acad-focus-card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, var(--teal) 0%, var(--gold) 100%);
  }
  .acad-focus-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(45,88,104,0.08);
    border-color: var(--teal-light);
  }
  .acad-focus-num {
    font-family: var(--font-display);
    font-size: 1.1rem; font-style: italic;
    color: var(--gold-dark); letter-spacing: 0.08em;
    margin-bottom: .75rem;
  }
  .acad-focus-card h3 {
    font-family: var(--font-display);
    font-size: 1.55rem;
    color: var(--teal-dark);
    margin-bottom: 1rem;
  }
  .acad-focus-card ul {
    list-style: none; padding: 0; margin: 0;
  }
  .acad-focus-card li {
    padding: .35rem 0 .35rem 1.1rem;
    position: relative;
    font-size: .92rem; line-height: 1.5; color: var(--text);
  }
  .acad-focus-card li::before {
    content: '•'; position: absolute; left: 0; top: .32rem;
    color: var(--teal); font-weight: 700;
  }
  .acad-focus-card li strong { color: var(--teal-dark); }

  /* Chair cards */
  .chair-grid {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem;
    margin-top: 2.5rem;
  }
  .chair-card {
    background: var(--white); border: 1px solid var(--border); border-radius: 6px;
    padding: 2rem 2rem 1.5rem;
    position: relative;
    transition: transform .3s ease, box-shadow .3s ease;
  }
  .chair-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(45,88,104,0.08); }
  .chair-header {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem;
    padding-bottom: 1.25rem; border-bottom: 1px dashed var(--border);
  }
  .chair-badge {
    font-family: var(--font-display);
    font-style: italic;
    color: var(--teal-dark);
    font-size: 1.25rem;
    margin-bottom: .75rem;
  }
  .chair-bullets {
    list-style: none; padding: 0; margin: 0;
    font-size: .9rem; color: var(--text);
  }
  .chair-bullets li {
    padding: .28rem 0 .28rem 1.1rem; position: relative;
  }
  .chair-bullets li::before {
    content: '•'; position: absolute; left: 0; top: .24rem;
    color: var(--teal); font-weight: 700;
  }
  .chair-inst-logo {
    flex-shrink: 0;
    padding: .75rem 1rem;
    background: var(--light-bg);
    border-radius: 4px;
  }
  .chair-director {
    display: flex; align-items: flex-start; gap: 1rem; margin-top: 1.25rem;
  }
  .chair-director-avatar {
    width: 60px; height: 60px; border-radius: 50%;
    background: linear-gradient(135deg, var(--teal-soft) 0%, var(--cream-dark) 100%);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-display); color: var(--teal-dark);
    font-weight: 600; font-size: 1.2rem; flex-shrink: 0;
  }
  .chair-director-name {
    font-family: var(--font-display);
    color: var(--teal-dark); font-weight: 600; font-size: 1.15rem;
  }
  .chair-director-role {
    font-family: var(--font-display); font-style: italic;
    color: var(--teal); font-size: .85rem; margin-bottom: .35rem;
  }
  .chair-director-bio {
    font-size: .88rem; color: var(--muted); margin: 0;
  }

  /* Case studies */
  .case-study-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
    margin-top: 2.5rem;
  }
  .case-study-card {
    background: var(--white); border: 1px solid var(--border);
    padding: 2rem 1.75rem; border-radius: 6px;
    transition: transform .3s ease, box-shadow .3s ease;
  }
  .case-study-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(45,88,104,0.08); }
  .case-study-tag {
    display: inline-block;
    font-size: .65rem; letter-spacing: 0.15em; text-transform: uppercase;
    color: var(--gold-dark); font-weight: 600;
    border: 1px solid var(--gold); padding: .3rem .7rem;
    margin-bottom: 1rem; border-radius: 2px;
  }
  .case-study-card h3 {
    font-family: var(--font-display);
    font-size: 1.5rem; color: var(--teal-dark); margin-bottom: .8rem;
  }
  .case-study-card p { font-size: .9rem; line-height: 1.55; color: var(--text); margin-bottom: 1rem; }
  .case-study-card ul { list-style: none; padding: 0; margin: 0; font-size: .85rem; }
  .case-study-card li {
    padding: .3rem 0 .3rem 1rem; position: relative; color: var(--muted);
  }
  .case-study-card li::before {
    content: '›'; position: absolute; left: 0; top: .26rem;
    color: var(--teal); font-weight: 700;
  }

  /* Publications */
  .publications-grid {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem;
    margin-top: 2rem;
  }
  .publication-card {
    display: block;
    background: var(--white); border: 1px solid var(--border);
    padding: 1.5rem 1.75rem; border-radius: 6px;
    text-decoration: none; color: inherit;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  .publication-card:hover {
    transform: translateY(-3px); border-color: var(--teal-light);
    box-shadow: 0 14px 32px rgba(45,88,104,0.08);
  }
  .pub-date {
    font-size: .65rem; letter-spacing: 0.15em; color: var(--teal);
    font-weight: 600; text-transform: uppercase; margin-bottom: .5rem;
  }
  .publication-card h3 {
    font-family: var(--font-display);
    font-size: 1.15rem; color: var(--teal-dark);
    line-height: 1.35; margin-bottom: .6rem;
  }
  .pub-meta { font-size: .78rem; color: var(--muted); margin-bottom: .75rem; }
  .pub-arrow { font-size: .82rem; color: var(--teal); font-weight: 500; }

  /* Partner logos grid tidy */
  .partner-logos-grid a.partner-logo-box { text-decoration: none; }

  @media (max-width: 1000px) {
    .acad-focus-grid, .case-study-grid, .chair-grid, .publications-grid {
      grid-template-columns: 1fr !important;
    }
  }

  /* ═══ STAGE 15 - impact management process WHEEL (SVG based) ═══ */
  .imp-cycle {
    display: grid; grid-template-columns: 320px 1fr; gap: 2.5rem;
    margin-top: 3rem; align-items: flex-start;
  }
  .imp-cycle-intro {
    background: var(--teal-dark); color: white;
    padding: 1.75rem 1.5rem; border-radius: 6px;
  }
  .imp-cycle-intro h4 {
    font-family: var(--font-display); font-size: 1.15rem;
    margin-bottom: 1rem; color: white; font-weight: 500; line-height: 1.35;
  }
  .imp-cycle-intro ul { list-style: none; padding: 0; margin: 0; }
  .imp-cycle-intro li {
    padding: .35rem 0 .35rem 1rem;
    position: relative; font-size: .85rem;
    color: rgba(255,255,255,0.88);
  }
  .imp-cycle-intro li::before {
    content: '•'; position: absolute; left: 0;
    color: var(--gold); font-weight: 700;
  }

  /* Legacy wheel CSS (kept harmless) */
  .imp-wheel-svg-wrap { max-width: 620px; margin: 0 auto; padding: 0 1rem; }
  .imp-wheel-svg { display: block; width: 100%; height: auto; }

  /* Impact management process - horizontal path cards */
  .imp-process { margin-top: 3rem; }
  .imp-process-intro {
    background: linear-gradient(135deg, var(--teal-dark) 0%, var(--teal) 100%);
    color: white;
    padding: 2rem 2.25rem;
    border-radius: 10px;
    margin-bottom: 2.75rem;
    box-shadow: 0 10px 30px rgba(45,88,104,0.12);
  }
  .imp-process-intro-title {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 500;
    font-style: italic;
    color: white;
    margin-bottom: 1.1rem;
  }
  .imp-process-intro-tags {
    display: flex; flex-wrap: wrap; gap: 0.55rem 0.7rem;
  }
  .imp-tag {
    display: inline-block;
    padding: 0.35rem 0.85rem;
    border: 1px solid rgba(255,255,255,0.28);
    border-radius: 999px;
    font-size: 0.78rem;
    color: rgba(255,255,255,0.94);
    background: rgba(255,255,255,0.08);
  }
  .imp-tag sup { font-size: 0.6rem; }

  .imp-steps {
    display: grid;
    grid-template-columns: 1fr 32px 1fr 32px 1fr 32px 1fr;
    gap: 0.75rem;
    align-items: stretch;
  }
  .imp-step {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1.5rem 1.35rem 1.65rem;
    border-top: 4px solid var(--teal);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    display: flex; flex-direction: column;
  }
  .imp-step:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 38px rgba(45,88,104,0.12);
    border-color: var(--teal);
  }
  .imp-step:nth-child(5) { border-top-color: var(--gold); }
  .imp-step:nth-child(9) { border-top-color: var(--teal-dark); }
  .imp-step-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 0.85rem;
  }
  .imp-step-num {
    font-family: var(--font-display);
    font-size: 2rem; font-weight: 400; font-style: italic;
    color: var(--teal);
    line-height: 1; letter-spacing: -0.02em;
  }
  .imp-step-icon {
    width: 44px; height: 44px;
    border-radius: 50%;
    background: rgba(67,124,144,0.08);
    display: flex; align-items: center; justify-content: center;
    color: var(--teal);
  }
  .imp-step-icon svg { width: 22px; height: 22px; }
  .imp-step-title {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 1.3rem; font-weight: 600;
    color: var(--teal-dark);
    margin-bottom: 0.85rem;
  }
  .imp-step-list {
    list-style: none; padding: 0; margin: 0;
    border-top: 1px dashed rgba(67,124,144,0.22);
    padding-top: 0.85rem;
  }
  .imp-step-list li {
    font-size: 0.85rem; line-height: 1.5;
    color: var(--text);
    padding: 0.3rem 0 0.3rem 1rem;
    position: relative;
  }
  .imp-step-list li::before {
    content: '';
    position: absolute; left: 0; top: 0.7em;
    width: 6px; height: 6px;
    background: var(--gold);
    border-radius: 50%;
  }
  .imp-step-arrow {
    display: flex; align-items: center; justify-content: center;
    color: var(--teal);
    opacity: 0.55;
  }
  .imp-step-arrow svg { width: 28px; height: 14px; }

  @media (max-width: 1100px) {
    .imp-steps { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
    .imp-step-arrow { display: none; }
  }
  @media (max-width: 640px) {
    .imp-steps { grid-template-columns: 1fr; }
    .imp-process-intro { padding: 1.5rem 1.25rem; }
  }

  @media (max-width: 960px) {
    .imp-cycle { grid-template-columns: 1fr; }
  }


  /* ═══ STAGE 10 - impact toolkit ═══ */
  .toolkit-steps {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem;
    margin-top: 2.5rem;
  }
  .toolkit-step {
    background: var(--white); border: 1px solid var(--border);
    padding: 2rem 1.5rem 1.5rem;
    border-radius: 6px;
    border-top: 4px solid var(--teal);
    position: relative;
    display: block;
    text-align: left;
  }
  .toolkit-step-num {
    width: 52px; height: 52px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(67,124,144,0.10) 0%, rgba(196,169,97,0.12) 100%);
    color: var(--teal);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1rem;
    border: 1px solid rgba(67,124,144,0.25);
  }
  .toolkit-step-num svg {
    width: 26px; height: 26px;
    stroke: var(--teal); stroke-width: 1.8;
    fill: none; stroke-linecap: round; stroke-linejoin: round;
  }
  .toolkit-step p { font-size: .9rem; line-height: 1.6; margin: 0; color: var(--text); }
  .toolkit-step strong { color: var(--teal-dark); font-weight: 600; }
  .toolkit-tiles {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem;
    margin-top: 2.5rem;
  }
  .toolkit-tile {
    background: var(--white); border: 1px solid var(--border);
    padding: 2rem 1.75rem; border-radius: 6px;
    text-align: center;
    border-top: 4px solid var(--teal);
  }
  .toolkit-tile-logo {
    margin-bottom: 1rem; display: flex; gap: .5rem;
    align-items: center; justify-content: center; min-height: 40px;
  }
  .toolkit-tile h4 {
    font-family: var(--font-display); color: var(--teal-dark);
    font-size: 1.4rem; margin-bottom: .6rem;
  }
  .toolkit-tile p { font-size: .88rem; line-height: 1.55; color: var(--text); }

  /* Social procurement deep-dive */
  .sp-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 2rem;
    margin-top: 2.5rem;
  }
  .sp-card {
    background: var(--white); border: 1px solid var(--border);
    padding: 2rem 1.75rem; border-radius: 6px;
    margin-bottom: 1.25rem;
  }
  .sp-card h4 {
    font-family: var(--font-display); color: var(--teal-dark);
    font-size: 1.4rem; margin-bottom: 1rem;
    padding: .6rem 1rem; background: var(--teal-dark); color: white;
    border-radius: 4px; text-align: center; font-weight: 500;
  }
  .sp-card h5 {
    font-family: var(--font-display); font-style: italic;
    color: var(--teal-dark); font-size: 1.15rem; margin-bottom: .75rem;
  }
  .sp-card p { font-size: .88rem; line-height: 1.55; margin-bottom: .75rem; }
  .sp-technical { background: var(--cream); }
  .sp-vertical { margin-bottom: 1rem; }
  .sp-vertical-label {
    font-weight: 600; color: var(--teal-dark);
    font-size: .92rem; margin-bottom: .5rem;
    background: var(--light-bg); padding: .5rem .8rem; border-left: 3px solid var(--gold);
  }
  .sp-vertical ul { list-style: none; padding: 0 0 0 .5rem; margin: 0; font-size: .85rem; }
  .sp-vertical li { padding: .3rem 0 .3rem 1rem; position: relative; }
  .sp-vertical li::before { content: '•'; position: absolute; left: 0; color: var(--teal); font-weight: 700; }
  .sp-suppliers {
    background: var(--white); border: 1px solid var(--border);
    padding: 1.5rem 1.75rem; border-radius: 6px;
  }
  .sp-suppliers-label {
    font-size: .72rem; letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--teal); font-weight: 600; margin-bottom: 1rem;
  }
  .sp-suppliers-logos {
    display: flex; flex-wrap: wrap; gap: 1rem 1.5rem;
    font-family: var(--font-display); color: var(--teal-dark); font-weight: 500;
  }
  .sp-suppliers-logos span {
    padding: .5rem 1rem; border: 1px solid var(--border); border-radius: 3px;
    font-size: .88rem;
  }
  @media (max-width: 900px) {
    .toolkit-steps, .toolkit-tiles, .sp-grid, .case-study-grid {
      grid-template-columns: 1fr;
    }
  }

  /* ═══ STAGE 10 - impact objective cards polish ═══ */
  .impact-themes {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
    gap: 1.25rem;
    margin-top: 2rem !important;
  }
  .impact-theme-group {
    border-radius: 6px;
    background: var(--white);
    border: 1px solid var(--border);
    overflow: hidden;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
    border-top: 4px solid var(--teal);
  }
  .impact-theme-group:nth-child(2n) { border-top-color: var(--gold); }
  .impact-theme-group:nth-child(3n) { border-top-color: var(--teal-dark); }
  .impact-theme-group:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(45,88,104,0.10);
    border-color: var(--teal-light);
  }
  .impact-theme-header {
    background: linear-gradient(135deg, var(--teal-dark) 0%, var(--teal) 100%);
    color: white;
    font-family: var(--font-display);
    font-style: italic;
    font-size: 1rem !important;
    letter-spacing: 0.04em !important;
    text-transform: none !important;
    padding: 1rem 1.5rem !important;
    font-weight: 500 !important;
  }
  .impact-theme-list {
    padding: 1.25rem 1.5rem !important;
    grid-template-columns: 1fr !important;
  }
  .impact-theme-item {
    font-size: 0.88rem !important;
    padding: .35rem 0;
  }
  .impact-theme-item::before {
    width: 8px !important; height: 8px !important;
    background: var(--teal) !important;
    box-shadow: 0 0 0 3px rgba(67,124,144,0.15);
  }


  /* ═══ STAGE 11 — committee cards identical to team tm-v2 ═══ */
  .committee-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.5rem;
    margin-top: 1.5rem;
    align-items: stretch;
  }
  .committee-card {
    background: white !important;
    border: 1px solid var(--border) !important;
    border-radius: 14px !important;
    padding: 1.5rem 1.25rem !important;
    text-align: center;
    display: flex !important; flex-direction: column !important;
    box-shadow: none !important;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
    align-self: start;
  }
  .committee-card .committee-photo {
    width: 130px !important; height: 130px !important;
    border-radius: 50% !important;
    margin: 0 auto 1rem !important;
    border: 2px solid var(--border) !important;
    box-shadow: 0 6px 18px rgba(45,88,104,0.08) !important;
    object-fit: cover;
    filter: none !important;
    transition: transform .35s ease;
  }
  .committee-card .committee-name {
    font-family: var(--font-display) !important;
    font-size: 1.25rem !important;
    font-weight: 600 !important;
    color: var(--teal-dark) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin-bottom: .2rem !important;
    line-height: 1.25 !important;
  }
  .committee-card .committee-role {
    font-family: var(--font-display) !important;
    font-style: italic !important;
    color: var(--teal) !important;
    font-size: 0.98rem !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin-bottom: 0 !important;
    line-height: 1.3 !important;
  }
  .committee-card .committee-exp {
    font-size: 0.8rem !important;
    line-height: 1.45 !important;
    color: var(--text) !important;
    text-align: left !important;
    margin-top: .55rem !important;
  }
  .committee-card .committee-exp strong {
    color: var(--teal-dark) !important;
    font-weight: 600 !important;
  }
  .committee-card .committee-link {
    color: var(--teal) !important;
    font-size: 0.8rem !important;
    margin-top: .55rem !important;
    text-align: left !important;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    align-self: flex-start;
  }
  .committee-card .committee-link:hover {
    color: var(--teal-dark) !important;
    border-bottom-color: var(--teal-dark);
  }
  .committee-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 50px rgba(45,88,104,0.12) !important;
    border-color: var(--teal-light, var(--teal)) !important;
  }
  .committee-card:hover .committee-photo { transform: scale(1.04); }

  /* Keep hover-reveal behaviour from stage 10 */
  .committee-card .committee-exp,
  .committee-card .committee-link {
    max-height: 0; opacity: 0; overflow: hidden;
    transition: max-height .45s cubic-bezier(.2,.8,.2,1),
                opacity .25s ease,
                margin .35s ease,
                padding .35s ease,
                transform .35s ease;
  }
  .committee-card:hover .committee-exp,
  .committee-card:focus-within .committee-exp,
  .committee-card:hover .committee-link,
  .committee-card:focus-within .committee-link {
    max-height: 600px;
    opacity: 1;
  }
  .committee-card:hover .committee-exp,
  .committee-card:focus-within .committee-exp { margin-top: .55rem !important; }
  .committee-card:hover .committee-link,
  .committee-card:focus-within .committee-link { margin-top: .55rem !important; }

  /* ═══ STAGE 13 — solutions table as real HTML <table> ═══ */
  table.solutions-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    background: var(--white);
    border: 1px solid var(--border);
    margin-top: 1.25rem;
    table-layout: fixed;
  }
  /* Fixed column widths so both Solutions tables match exactly */
  table.solutions-table col.col-theme    { width: 14%; }
  table.solutions-table col.col-vehicle  { width: 17%; }
  table.solutions-table col.col-asset    { width: 11%; }
  table.solutions-table col.col-launch   { width:  9%; }
  table.solutions-table col.col-size     { width:  8%; }
  table.solutions-table col.col-vtype    { width: 10%; }
  table.solutions-table col.col-geo      { width: 14%; }
  table.solutions-table col.col-sfdr     { width:  7%; }
  table.solutions-table col.col-status   { width: 10%; }
  table.solutions-table thead th,
  table.solutions-table tbody td {
    overflow-wrap: break-word;
    word-wrap: break-word;
  }
  table.solutions-table thead th {
    background: var(--teal-dark);
    color: #ffffff !important;
    font-size: 0.7rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    font-weight: 600;
    padding: 0.95rem 0.85rem;
    text-align: left;
    border-right: 1px solid rgba(255,255,255,0.12);
  }
  table.solutions-table thead th:last-child { border-right: none; }
  table.solutions-table tbody td {
    padding: 1rem 0.85rem;
    border-bottom: 1px solid var(--border);
    border-right: 1px solid var(--border);
    vertical-align: middle;
    color: var(--text);
  }
  table.solutions-table tbody td:last-child { border-right: none; }
  table.solutions-table tbody tr:last-child td { border-bottom: none; }
  table.solutions-table tbody tr:hover { background: var(--cream); }
  table.solutions-table tbody tr[onclick] { cursor: pointer; }
  table.solutions-table .st-vehicle-name {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 0.98rem;
    color: var(--teal-dark);
  }
  table.solutions-table .st-amount {
    font-weight: 600;
    color: var(--teal-dark);
  }
  table.solutions-table .theme-badge {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 0.35rem 0.6rem;
    border-radius: 4px;
    line-height: 1.25;
    white-space: normal;
    text-align: center;
    max-width: 100%;
    box-sizing: border-box;
    word-break: break-word;
  }
  table.solutions-table td:first-child { padding-right: 0.6rem; }
  table.solutions-table .theme-agri { background: rgba(124,179,66,0.16); color: #4a7a2c; border: none; }
  table.solutions-table .theme-spanish-debt { background: rgba(67,124,144,0.14); color: var(--teal-dark); border: none; }
  table.solutions-table .theme-international-debt { background: rgba(196,169,97,0.22); color: #7a6330; border: none; }
  table.solutions-table .theme-neutral { background: rgba(45,88,104,0.10); color: var(--teal-dark); border: none; }
  table.solutions-table .sfdr-badge {
    display: inline;
    background: transparent !important;
    color: var(--text) !important;
    padding: 0 !important;
    border: none !important;
    font-weight: 500;
    font-size: 0.72rem;
    letter-spacing: 0.02em;
    text-transform: none;
  }
  table.solutions-table .sfdr-6,
  table.solutions-table .sfdr-8,
  table.solutions-table .sfdr-9 { background: transparent !important; color: var(--text) !important; border: none !important; }
  table.solutions-table .status-badge {
    display: inline-block;
    font-size: 0.7rem;
    padding: 0.28rem 0.6rem;
    border-radius: 3px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
  }
  table.solutions-table .status-open { background: rgba(124,179,66,0.2); color: #4a7a2c; }
  table.solutions-table .status-closed { background: rgba(120,120,120,0.14); color: var(--muted); }

  @media (max-width: 960px) {
    table.solutions-table, table.solutions-table thead, table.solutions-table tbody,
    table.solutions-table tr, table.solutions-table td, table.solutions-table th { display: block; width: 100%; }
    table.solutions-table thead { display: none; }
    table.solutions-table tbody tr { border-bottom: 1px solid var(--border); padding: 0.5rem 0; }
    table.solutions-table tbody td { border-right: none; padding: 0.5rem 0.85rem; }
  }


  /* ═══ STAGE 12 — strategy fund snapshot tables ═══ */
  .fund-snapshot {
    margin-bottom: 3rem;
  }
  .fund-snapshot-label {
    font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--muted); font-weight: 600; margin-bottom: 0.75rem;
  }
  .fund-snapshot .solutions-table {
    border: 1px solid var(--border);
    background: var(--white);
  }


  /* ═══ STAGE 12 — committee cards fully identical to team tm-v2 ═══ */
  .committee-team-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 2rem !important;
    margin-top: 1.5rem !important;
    /* romper el padding del info-card para igualar el ancho a la rejilla de Team */
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  @media (max-width: 768px) {
    .committee-team-grid { grid-template-columns: repeat(2, 1fr) !important; margin-left: 0 !important; margin-right: 0 !important; }
  }
  /* Condensed card body inside fund committee grids so 5 fit on 1 row */
  /* (overrides de comite eliminados: tarjetas identicas a Team) */
  /* Force LinkedIn icon to stay inline with name on same row, never below */
  .committee-team-grid .team-member.tm-v2 .team-name { white-space: normal; }
  .committee-team-grid .team-member.tm-v2 .team-linkedin { flex-shrink: 0; }
  /* Apply tm-v2 styling explicitly within committee grids */
  .committee-team-grid .team-member.tm-v2 {
    background: var(--white);
    border: 1px solid var(--border);
    padding: 1.5rem 1.25rem 1.75rem;
    transition: all .3s ease;
    position: relative; overflow: hidden;
  }


  /* Other-strategies legal-docs filter */
  .legal-filter-bar {
    display: flex; flex-wrap: wrap; gap: .5rem;
    margin: 0 0 1.25rem;
  }
  .legal-filter-btn {
    font-family: inherit;
    background: #fff;
    border: 1px solid rgba(67,124,144,0.25);
    color: var(--teal-dark);
    padding: .45rem .95rem;
    border-radius: 999px;
    font-size: .82rem;
    cursor: pointer;
    transition: all .2s ease;
  }
  .legal-filter-btn:hover { border-color: var(--teal); color: var(--teal); }
  .legal-filter-btn.active {
    background: var(--teal);
    color: #fff;
    border-color: var(--teal);
  }
  .legal-docs li.hidden { display: none; }

  /* Vehicle section header */
  .vehicle-section-head {
    border-top: 2px solid var(--teal);
    padding-top: 1.4rem;
    margin-top: 2rem;
  }
  .vehicle-section-head h3 {
    font-family: var(--font-display);
    font-size: 1.55rem;
    font-style: italic;
    color: var(--teal-dark);
    margin: 0 0 .3rem;
  }
  .vehicle-section-head .vehicle-meta {
    color: var(--muted);
    font-size: .88rem;
  }
  .vehicle-section-head .vehicle-delegation {
    display: inline-block;
    margin-top: .6rem;
    background: rgba(196,169,97,0.14);
    color: #8a6d2e;
    padding: .35rem .8rem;
    border-radius: 999px;
    font-size: .78rem;
    letter-spacing: .03em;
    text-transform: uppercase;
    font-weight: 600;
  }
  .vehicle-section-head .vehicle-delegation-inhouse {
    background: rgba(67,124,144,0.14);
    color: var(--teal-dark);
  }

  /* Aggregate portfolio pie */
  .os-pie-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
  }
  @media (max-width: 820px) {
    .os-pie-wrap { grid-template-columns: 1fr; }
  }
  .os-pie-legend { list-style: none; padding: 0; margin: 0; }
  .os-pie-legend li {
    display: flex; align-items: center;
    gap: .8rem;
    padding: .55rem 0;
    border-bottom: 1px solid rgba(67,124,144,0.1);
    font-size: .9rem;
  }
  .os-pie-legend li:last-child { border-bottom: none; }
  .os-pie-legend .legend-sw {
    width: 14px; height: 14px; border-radius: 3px;
    flex-shrink: 0;
  }
  .os-pie-legend .legend-label { flex: 1; color: var(--text); }
  .os-pie-legend .legend-val {
    font-family: var(--font-display);
    font-size: 1.05rem;
    color: var(--teal-dark);
    font-weight: 600;
  }


  tr.st-row-clickable { transition: background .18s ease; }
  tr.st-row-clickable:hover td { background: rgba(67,124,144,0.06); }

/* === V4 CINEMATIC === */
/* =========================================================
   IMPACT BRIDGE — V4 CINEMATIC
   Imágenes reales, secciones full-bleed, tipografía monumental,
   paleta sofisticada. Nivel Tresmares / Miura.
   ========================================================= */

/* ---------- 1. Tipografía magazine ---------- */
html.fx-ready .hero h1,
html.fx-ready .hero-title {
  font-family: 'FS Sally', 'Cormorant Garamond', Georgia, serif !important;
  font-size: clamp(3.2rem, 7vw, 6.4rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.02em !important;
  font-weight: 400 !important;
}
html.fx-ready .hero h1 em,
html.fx-ready .hero-title em {
  font-style: italic !important;
  color: #E8C672 !important;
}

html.fx-ready .page-header h1 {
  font-family: 'FS Sally', 'Cormorant Garamond', Georgia, serif !important;
  font-size: clamp(2.6rem, 5.5vw, 4.8rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.015em !important;
  font-weight: 400 !important;
}

html.fx-ready .section-title {
  font-size: clamp(2rem, 4vw, 3.4rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
}

html.fx-ready .hero-eyebrow,
html.fx-ready .page-header .eyebrow,
html.fx-ready .section-tag {
  font-size: 0.72rem !important;
  letter-spacing: 0.32em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
}

/* ---------- 2. Hero — imagen real full-bleed ---------- */
html.fx-ready .hero.hero-real {
  min-height: 100vh !important;
  position: relative !important;
  overflow: hidden !important;
  background: #437C90 !important;
}

html.fx-ready .hero.hero-real::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('https://images.unsplash.com/photo-1470813740244-df37b8c1edcb?auto=format&fit=crop&w=2400&q=85');
  background-size: cover;
  background-position: center;
  opacity: 0.55;
  filter: contrast(1.1) saturate(0.9);
  z-index: 0;
}

html.fx-ready .hero.hero-real::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 30% 40%, rgba(67,124,144,0.55) 0%, transparent 60%),
    linear-gradient(180deg, rgba(67,124,144,0.4) 0%, rgba(67,124,144,0.95) 100%);
  z-index: 1;
}

html.fx-ready .hero.hero-real .hero-bg,
html.fx-ready .hero.hero-real .hero-abstract,
html.fx-ready .hero.hero-real .hero-bridge,
html.fx-ready .hero.hero-real .hero-gradient {
  display: none !important;
}
/* Keep the bridge SVG wrapper visible even in fx-ready mode */
html.fx-ready .hero.hero-real .hero-bg {
  display: block !important;
  background: transparent !important;
}
html.fx-ready .hero.hero-real .hero-bg > .hero-abstract,
html.fx-ready .hero.hero-real .hero-bg > .hero-bridge,
html.fx-ready .hero.hero-real .hero-bg > .hero-gradient {
  display: none !important;
}
html.fx-ready .hero.hero-real .hero-bridge-stack {
  display: block !important;
}
/* Inside the hero: hide decorative blobs/rings/noise, but KEEP the animated white wave + horizontal line */
html.v2 .hero.hero-real .ph-canvas .ph-blob,
html.v2 .hero.hero-real .ph-canvas .ph-ring,
html.v2 .hero.hero-real .ph-canvas .ph-noise,
html.v2 .hero.hero-real .ph-canvas .ph-grid,
html.v2 .hero.hero-real .ph-canvas .ph-glow,
html.v2 .hero.hero-real .ph-canvas .v2-cursor-glow-hero,
html.fx-ready .hero.hero-real .ph-canvas .ph-blob,
html.fx-ready .hero.hero-real .ph-canvas .ph-ring,
html.fx-ready .hero.hero-real .ph-canvas .ph-noise,
html.fx-ready .hero.hero-real .ph-canvas .ph-grid,
html.fx-ready .hero.hero-real .ph-canvas .ph-glow,
html.fx-ready .hero.hero-real .ph-canvas .v2-cursor-glow-hero {
  display: none !important;
}
/* Keep the wave visible, give it a gentle animation */
html.v2 .hero.hero-real .ph-canvas,
html.fx-ready .hero.hero-real .ph-canvas {
  display: block !important;
}
html.v2 .hero.hero-real .ph-canvas .ph-svg-wave,
html.fx-ready .hero.hero-real .ph-canvas .ph-svg-wave {
  display: block !important;
  opacity: 1 !important;
  z-index: 0 !important; /* behind the bridge */
  width: 200% !important;
  animation: heroWaveScroll 60s linear infinite;
}
html.v2 .hero.hero-real .ph-canvas .ph-svg-wave path,
html.fx-ready .hero.hero-real .ph-canvas .ph-svg-wave path {
  fill: #437C90 !important;
}
@keyframes heroWaveScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

html.fx-ready .hero.hero-real .hero-inner {
  position: relative !important;
  z-index: 2 !important;
  padding: 8vh 8vw !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-height: 100vh !important;
}

html.fx-ready .hero.hero-real .hero-text {
  max-width: 920px;
}

html.fx-ready .hero.hero-real .hero-eyebrow {
  color: #a07a28 !important;
  background: rgba(160,122,40,0.10) !important;
  margin-bottom: 2rem !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
}
html.fx-ready .hero.hero-real .hero-eyebrow::before {
  content: '';
  width: 3rem;
  height: 1px;
  background: #a07a28;
  display: inline-block;
}

html.fx-ready .hero.hero-real h1 {
  color: #12303b !important;
  margin-bottom: 2rem !important;
}

html.fx-ready .hero.hero-real .hero-subtitle,
html.fx-ready .hero.hero-real p {
  color: rgba(18,48,59,0.78) !important;
  font-size: clamp(1.05rem, 1.3vw, 1.2rem) !important;
  line-height: 1.65 !important;
  max-width: 620px;
  margin-bottom: 2.5rem !important;
}

html.fx-ready .hero.hero-real .hero-ctas {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 2rem;
}

html.fx-ready .hero.hero-real .btn-primary {
  background: #E8C672 !important;
  color: #437C90 !important;
  border: none !important;
  padding: 1.1rem 2rem !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  border-radius: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  transition: all 0.4s cubic-bezier(0.16,1,0.3,1) !important;
  cursor: pointer;
}
html.fx-ready .hero.hero-real .btn-primary:hover {
  background: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 20px 40px rgba(232,198,114,0.25);
}

html.fx-ready .hero.hero-real .btn-outline-light {
  background: transparent !important;
  color: #12303b !important;
  border: 1px solid rgba(18,48,59,0.4) !important;
  padding: 1.1rem 2rem !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  border-radius: 0 !important;
  transition: all 0.4s cubic-bezier(0.16,1,0.3,1) !important;
  cursor: pointer;
}
html.fx-ready .hero.hero-real .btn-outline-light:hover {
  background: rgba(18,48,59,0.06) !important;
  border-color: #12303b !important;
}

html.fx-ready .hero-scroll-indicator {
  position: absolute !important;
  bottom: 3rem !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  color: rgba(255,255,255,0.7) !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 1rem !important;
  animation: scroll-pulse 2.4s ease-in-out infinite;
  z-index: 3 !important;
}
html.fx-ready .hero-scroll-line {
  width: 1px !important;
  height: 50px !important;
  background: linear-gradient(to bottom, #E8C672, transparent) !important;
  display: block !important;
}
@keyframes scroll-pulse {
  0%, 100% { opacity: 0.4; transform: translateX(-50%) translateY(0); }
  50%      { opacity: 1;   transform: translateX(-50%) translateY(6px); }
}

/* ---------- 3. Page headers con imagen ---------- */
html.fx-ready .page .page-header,
html.fx-ready #page-fund-ibsaf .page-header,
html.fx-ready #page-fund-ibdie .page-header,
html.fx-ready #page-fund-ibid  .page-header {
  position: relative !important;
  background: #437C90 !important;
  overflow: hidden !important;
}

html.fx-ready .page .page-header::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background-image: url('https://images.unsplash.com/photo-1473081556163-2a17de81fc97?auto=format&fit=crop&w=2400&q=85');
  background-size: cover !important;
  background-position: center !important;
  opacity: 0.4 !important;
  z-index: 0 !important;
}
html.fx-ready .page .page-header > * {
  position: relative;
  z-index: 1;
}

/* Diferentes imágenes por página */
html.fx-ready #page-about .page-header::before {
  background-image: url('https://images.unsplash.com/photo-1604014237800-1c9102c219da?auto=format&fit=crop&w=2400&q=85') !important;
}
html.fx-ready #page-solutions .page-header::before {
  background-image: url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=2400&q=85') !important;
}
html.fx-ready #page-impact .page-header::before {
  background-image: url('https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?auto=format&fit=crop&w=2400&q=85') !important;
}
html.fx-ready #page-portfolio .page-header::before {
  background-image: url('https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?auto=format&fit=crop&w=2400&q=85') !important;
}
html.fx-ready #page-news .page-header::before {
  background-image: url('https://images.unsplash.com/photo-1495020689067-958852a7765e?auto=format&fit=crop&w=2400&q=85') !important;
}
html.fx-ready #page-team .page-header::before {
  background-image: url('https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?auto=format&fit=crop&w=2400&q=85') !important;
}
html.fx-ready #page-contact .page-header::before {
  background-image: url('https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?auto=format&fit=crop&w=2400&q=85') !important;
}
html.fx-ready #page-academia .page-header::before {
  background-image: url('https://images.unsplash.com/photo-1523240795612-9a054b0db644?auto=format&fit=crop&w=2400&q=85') !important;
}
html.fx-ready #page-fund-ibsaf .page-header::before {
  background-image: url('https://images.unsplash.com/photo-1542601906990-b4d3fb778b09?auto=format&fit=crop&w=2400&q=85') !important;
}
html.fx-ready #page-fund-ibdie .page-header::before {
  background-image: url('https://images.unsplash.com/photo-1466611653911-95081537e5b7?auto=format&fit=crop&w=2400&q=85') !important;
}
html.fx-ready #page-fund-ibid .page-header::before {
  background-image: url('https://images.unsplash.com/photo-1497366216548-37526070297c?auto=format&fit=crop&w=2400&q=85') !important;
}

html.fx-ready .page .page-header::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(67,124,144,0.7) 0%, rgba(67,124,144,0.9) 100%) !important;
  z-index: 0 !important;
}

html.fx-ready .page .page-header,
html.fx-ready #page-fund-ibsaf .page-header,
html.fx-ready #page-fund-ibdie .page-header,
html.fx-ready #page-fund-ibid  .page-header {
  height: 480px !important;
  min-height: 480px !important;
  max-height: 480px !important;
  padding-top: 9rem !important;
  padding-bottom: 2rem !important;
  display: block !important;
  box-sizing: border-box !important;
}
html.fx-ready .page-header-inner {
  text-align: left !important;
  max-width: 1440px !important;
  margin: 0 auto !important;
}

@media (min-width: 1600px) {
  html.fx-ready .page .page-header,
  html.fx-ready #page-fund-ibsaf .page-header,
  html.fx-ready #page-fund-ibdie .page-header,
  html.fx-ready #page-fund-ibid  .page-header {
    height: 540px !important;
    min-height: 540px !important;
    max-height: 540px !important;
  }
}

@media (max-width: 720px) {
  html.fx-ready .page .page-header,
  html.fx-ready #page-fund-ibsaf .page-header,
  html.fx-ready #page-fund-ibdie .page-header,
  html.fx-ready #page-fund-ibid  .page-header {
    height: 380px !important;
    min-height: 380px !important;
    max-height: 380px !important;
  }
}

html.fx-ready .page-header h1 {
  color: #fff !important;
}
html.fx-ready .page-header h1 em {
  color: #E8C672 !important;
}
html.fx-ready .page-header .eyebrow {
  color: #E8C672 !important;
  margin-bottom: 1rem !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
}
html.fx-ready .page-header .eyebrow::before {
  content: '';
  width: 2.5rem;
  height: 1px;
  background: #E8C672;
  display: inline-block;
}
html.fx-ready .page-header p,
html.fx-ready .page-header .page-header-desc {
  color: rgba(255,255,255,0.85) !important;
  max-width: 1020px !important;
}

/* ---------- 4. Stats bar — dark sophisticated ---------- */
html.fx-ready .stats-bar {
  background: #437C90 !important;
  position: relative;
  padding: 5rem 2rem !important;
}
html.fx-ready .stats-bar::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(67,124,144,0.15) 0%, transparent 50%);
  pointer-events: none;
}
html.fx-ready .stats-bar .stat-number {
  font-family: 'FS Sally', 'Cormorant Garamond', Georgia, serif !important;
  font-size: clamp(3rem, 5.5vw, 5rem) !important;
  color: #E8C672 !important;
  line-height: 1 !important;
  font-weight: 400 !important;
  letter-spacing: -0.02em !important;
}
html.fx-ready .stats-bar .stat-number small {
  font-size: 0.5em !important;
  color: #E8C672 !important;
  opacity: 0.8;
}
html.fx-ready .stats-bar .stat-label {
  color: rgba(255,255,255,0.7) !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  margin-top: 1rem !important;
}
html.fx-ready .stats-bar .stat-item {
  border-left: 1px solid rgba(232,198,114,0.3);
  padding-left: 2rem !important;
  position: relative;
}
html.fx-ready .stats-bar .stat-item:first-child {
  border-left: none;
  padding-left: 0 !important;
}
@media (max-width: 720px) {
  html.fx-ready .stats-bar .stat-item {
    border-left: none;
    padding-left: 0 !important;
  }
}

/* ---------- 5. Portfolio cards con imagen ---------- */
html.fx-ready .portfolio-card {
  position: relative !important;
  overflow: hidden !important;
  background: #437C90 !important;
  min-height: 380px;
  display: flex;
  flex-direction: column !important;
  justify-content: flex-end !important;
  padding: 2rem !important;
  border-radius: 0 !important;
  transition: transform 0.6s cubic-bezier(0.16,1,0.3,1) !important;
  cursor: pointer;
}
/* Portfolio filter: respect inline display:none from filterPortfolio JS */
html.fx-ready .portfolio-card[style*="display: none"],
html.fx-ready .portfolio-card[style*="display:none"] {
  display: none !important;
}
html.fx-ready .portfolio-card[style*="display: block"],
html.fx-ready .portfolio-card[style*="display:block"] {
  display: flex !important;
}

/* ---------- Portfolio filters (cinematic) ---------- */
html.fx-ready .portfolio-filters {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.6rem !important;
  justify-content: center !important;
  margin-bottom: 3rem !important;
  position: relative !important;
  z-index: 10 !important;
}
html.fx-ready .portfolio-filters button {
  background: transparent !important;
  border: 1.25px solid rgba(67,124,144,0.3) !important;
  color: #437C90 !important;
  padding: 0.7rem 1.4rem !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  border-radius: 999px !important;
  cursor: pointer !important;
  transition: all 0.3s cubic-bezier(0.16,1,0.3,1) !important;
  position: relative !important;
  z-index: 10 !important;
  pointer-events: auto !important;
}
html.fx-ready .portfolio-filters button:hover {
  background: rgba(67,124,144,0.08) !important;
  border-color: #437C90 !important;
  transform: translateY(-1px) !important;
}
html.fx-ready .portfolio-filters button.active {
  background: #437C90 !important;
  color: #fff !important;
  border-color: #437C90 !important;
  box-shadow: 0 8px 20px rgba(67,124,144,0.25) !important;
}
html.fx-ready .portfolio-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=1200&q=80');
  background-size: cover;
  background-position: center;
  opacity: 0.45;
  z-index: 0;
  transition: transform 1s cubic-bezier(0.16,1,0.3,1), opacity 0.5s;
}
html.fx-ready .portfolio-card:hover::before {
  transform: scale(1.08);
  opacity: 0.6;
}
html.fx-ready .portfolio-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(67,124,144,0.92) 100%);
  z-index: 1;
}
html.fx-ready .portfolio-card > * {
  position: relative;
  z-index: 2;
}
html.fx-ready .portfolio-card h3,
html.fx-ready .portfolio-card .portfolio-name {
  color: #fff !important;
  font-family: 'FS Sally', Georgia, serif !important;
  font-size: 1.6rem !important;
  font-weight: 400 !important;
  margin-bottom: 0.5rem !important;
}
html.fx-ready .portfolio-card p,
html.fx-ready .portfolio-card .portfolio-desc {
  color: rgba(255,255,255,0.75) !important;
  font-size: 0.9rem !important;
}
html.fx-ready .portfolio-card .portfolio-tag,
html.fx-ready .portfolio-card .portfolio-fund-tag {
  color: #E8C672 !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  margin-bottom: 0.75rem !important;
  font-weight: 700 !important;
}

html.fx-ready .portfolio-card .portfolio-name,
html.fx-ready .portfolio-card .committee-name {
  color: #fff !important;
}
html.fx-ready .portfolio-card .portfolio-desc {
  color: rgba(255,255,255,0.82) !important;
  font-size: 0.88rem !important;
  line-height: 1.55 !important;
  margin-top: 0.4rem !important;
}
html.fx-ready .portfolio-card .portfolio-theme-pill {
  background: rgba(255,255,255,0.12) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.3) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.08em !important;
  padding: 0.28rem 0.7rem !important;
  border-radius: 999px !important;
}
html.fx-ready .portfolio-card .portfolio-logo {
  background: rgba(255,255,255,0.9) !important;
  padding: 0.5rem 0.8rem !important;
  display: inline-flex !important;
  align-items: center !important;
  align-self: flex-start !important;
  margin-bottom: 0.75rem !important;
  border-radius: 4px !important;
}
html.fx-ready .portfolio-card .portfolio-themes {
  margin-top: 0.75rem !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.4rem !important;
}

/* Imágenes por sector de portfolio */
html.fx-ready .portfolio-card[data-sector="healthcare"]::before,
html.fx-ready .portfolio-card:nth-child(4n+1)::before {
  background-image: url('https://images.unsplash.com/photo-1576091160399-112ba8d25d1d?auto=format&fit=crop&w=1200&q=80');
}
html.fx-ready .portfolio-card[data-sector="education"]::before,
html.fx-ready .portfolio-card:nth-child(4n+2)::before {
  background-image: url('https://images.unsplash.com/photo-1427504494785-3a9ca7044f45?auto=format&fit=crop&w=1200&q=80');
}
html.fx-ready .portfolio-card[data-sector="environment"]::before,
html.fx-ready .portfolio-card:nth-child(4n+3)::before {
  background-image: url('https://images.unsplash.com/photo-1466611653911-95081537e5b7?auto=format&fit=crop&w=1200&q=80');
}
html.fx-ready .portfolio-card[data-sector="social"]::before,
html.fx-ready .portfolio-card:nth-child(4n+4)::before {
  background-image: url('https://images.unsplash.com/photo-1559027615-cd4628902d4a?auto=format&fit=crop&w=1200&q=80');
}

/* ---------- 6. News cards con imagen ---------- */
html.fx-ready .news-card {
  background: #fff !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(0,0,0,0.06) !important;
  transition: transform 0.5s cubic-bezier(0.16,1,0.3,1), box-shadow 0.5s !important;
  cursor: pointer;
  display: flex !important;
  flex-direction: column !important;
}
html.fx-ready .news-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 30px 60px rgba(67,124,144,0.12);
}
html.fx-ready .news-card::before {
  content: '';
  display: block;
  height: 220px;
  background-image: url('https://images.unsplash.com/photo-1495020689067-958852a7765e?auto=format&fit=crop&w=1200&q=80');
  background-size: cover;
  background-position: center;
  transition: transform 0.8s cubic-bezier(0.16,1,0.3,1);
}
html.fx-ready .news-card:hover::before {
  transform: scale(1.05);
}
html.fx-ready .news-card:nth-child(3n+1)::before {
  background-image: url('https://images.unsplash.com/photo-1560472354-b33ff0c44a43?auto=format&fit=crop&w=1200&q=80');
}
html.fx-ready .news-card:nth-child(3n+2)::before {
  background-image: url('https://images.unsplash.com/photo-1542744094-24638eff58bb?auto=format&fit=crop&w=1200&q=80');
}
html.fx-ready .news-card:nth-child(3n+3)::before {
  background-image: url('https://images.unsplash.com/photo-1504384308090-c894fdcc538d?auto=format&fit=crop&w=1200&q=80');
}
html.fx-ready .news-card-body,
html.fx-ready .news-card-content {
  padding: 2rem !important;
  flex: 1;
}
html.fx-ready .news-card h3,
html.fx-ready .news-card .news-title {
  font-family: 'FS Sally', Georgia, serif !important;
  font-size: 1.35rem !important;
  line-height: 1.25 !important;
  font-weight: 400 !important;
  color: #437C90 !important;
  margin-bottom: 0.75rem !important;
}
html.fx-ready .news-card .news-date,
html.fx-ready .news-card time {
  color: #437C90 !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
}

/* ---------- 7. Team cards ---------- */
html.fx-ready .team-member {
  background: #fff !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(0,0,0,0.06) !important;
  transition: all 0.5s cubic-bezier(0.16,1,0.3,1) !important;
}
html.fx-ready .team-member:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 48px rgba(67,124,144,0.1);
  border-color: #E8C672;
}
html.fx-ready .team-member .team-photo,
html.fx-ready .team-member img {
  filter: grayscale(0.2) contrast(1.05);
  transition: filter 0.5s;
}
html.fx-ready .team-member:hover .team-photo,
html.fx-ready .team-member:hover img {
  filter: grayscale(0) contrast(1);
}

/* ---------- 8. Value cards refinadas ---------- */
html.fx-ready .value-card,
html.fx-ready .info-card,
html.fx-ready .explore-card,
html.fx-ready .vertical-card {
  background: #fff !important;
  border: 1px solid rgba(67,124,144,0.08) !important;
  border-radius: 0 !important;
  padding: 2.5rem !important;
  transition: all 0.5s cubic-bezier(0.16,1,0.3,1) !important;
  position: relative;
  overflow: hidden;
}
html.fx-ready .value-card::before,
html.fx-ready .info-card::before,
html.fx-ready .explore-card::before,
html.fx-ready .vertical-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 40px; height: 2px;
  background: #E8C672;
  transition: width 0.5s cubic-bezier(0.16,1,0.3,1);
}
html.fx-ready .value-card:hover::before,
html.fx-ready .info-card:hover::before,
html.fx-ready .explore-card:hover::before,
html.fx-ready .vertical-card:hover::before {
  width: 100%;
}
html.fx-ready .value-card:hover,
html.fx-ready .info-card:hover,
html.fx-ready .explore-card:hover,
html.fx-ready .vertical-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 50px rgba(67,124,144,0.08);
  border-color: transparent;
}
html.fx-ready .value-card h3,
html.fx-ready .info-card h3,
html.fx-ready .vertical-card h3 {
  font-family: 'FS Sally', Georgia, serif !important;
  font-size: 1.4rem !important;
  font-weight: 400 !important;
  color: #437C90 !important;
  margin-bottom: 1rem !important;
}

/* ---------- 9. Section full-bleed con imagen ---------- */
html.fx-ready .section-lead-image,
html.fx-ready .impact-section,
html.fx-ready .mv-section {
  position: relative;
}

/* Secciones alternadas: cada section par lleva fondo sand */
html.fx-ready .page section:nth-of-type(even) {
  background: #FAF7EF;
}

/* ---------- 10. Botones globales ---------- */
html.fx-ready .btn-primary:not(.hero .btn-primary) {
  background: #437C90 !important;
  color: #fff !important;
  border: none !important;
  padding: 1rem 2rem !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  border-radius: 0 !important;
  transition: all 0.35s cubic-bezier(0.16,1,0.3,1) !important;
  cursor: pointer;
}
html.fx-ready .btn-primary:not(.hero .btn-primary):hover {
  background: #437C90 !important;
  transform: translateY(-1px);
}

/* ---------- 11. Navigation mejorada ---------- */
html.fx-ready .main-nav,
html.fx-ready #mainNav {
  background: rgba(255,255,255,0.95) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border-bottom: 1px solid rgba(67,124,144,0.06) !important;
}
html.fx-ready .nav-investor-btn {
  background: transparent !important;
  color: #437C90 !important;
  border: 1.25px solid #437C90 !important;
  padding: 0.38rem 0.85rem !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  border-radius: 10px !important;
  line-height: 1 !important;
  text-transform: uppercase;
  transition: all 0.25s ease !important;
}
html.fx-ready .nav-investor-btn:hover {
  background: #437C90 !important;
  color: #fff !important;
  border-color: #437C90 !important;
}

/* ---------- 12. Footer cinematográfico ---------- */
html.fx-ready footer,
html.fx-ready .site-footer,
html.fx-ready .footer {
  background: #437C90 !important;
  color: rgba(255,255,255,0.7) !important;
  padding: 5rem 2rem 3rem !important;
}
html.fx-ready footer h3,
html.fx-ready footer h4,
html.fx-ready .footer-col h3,
html.fx-ready .footer-col h4 {
  color: #E8C672 !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  margin-bottom: 1.5rem !important;
}
html.fx-ready footer a {
  color: rgba(255,255,255,0.7) !important;
  transition: color 0.25s;
}
html.fx-ready footer a:hover {
  color: #E8C672 !important;
}

/* ---------- 13. Sections con más aire ---------- */
html.fx-ready .page section,
html.fx-ready .page-section {
  padding: 6rem 2rem !important;
}
@media (max-width: 720px) {
  html.fx-ready .page section,
  html.fx-ready .page-section {
    padding: 4rem 1.25rem !important;
  }
}

/* ---------- 14. Reveal animations mejoradas ---------- */
html.fx-ready [data-fx="fade-up"] {
  opacity: 0;
  transform: translateY(48px);
  transition: opacity 1.2s cubic-bezier(0.16,1,0.3,1), transform 1.2s cubic-bezier(0.16,1,0.3,1);
}
html.fx-ready [data-fx="fade-up"].fx-in {
  opacity: 1;
  transform: none;
}

/* Text reveal por líneas — clip-path */
html.fx-ready [data-fx-split] {
  overflow: hidden;
  display: inline-block;
}
html.fx-ready [data-fx-split] .fx-line {
  display: block;
  opacity: 0;
  transform: translateY(110%);
  transition: opacity 1s cubic-bezier(0.16,1,0.3,1), transform 1s cubic-bezier(0.16,1,0.3,1);
}
html.fx-ready [data-fx-split].fx-in .fx-line {
  opacity: 1;
  transform: none;
}

/* Image reveal */
html.fx-ready .img-reveal {
  position: relative;
  overflow: hidden;
}
html.fx-ready .img-reveal::after {
  content: '';
  position: absolute;
  inset: 0;
  background: #437C90;
  transform: scaleX(1);
  transform-origin: right;
  transition: transform 1.3s cubic-bezier(0.85,0,0.15,1);
  z-index: 2;
}
html.fx-ready .img-reveal.fx-in::after {
  transform: scaleX(0);
}

/* ---------- 15. Cursor custom premium ---------- */
html.fx-ready .custom-cursor {
  position: fixed;
  width: 40px;
  height: 40px;
  border: 1px solid #E8C672;
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transition: width 0.25s, height 0.25s, background 0.25s, border-color 0.25s;
  transform: translate(-50%, -50%);
  mix-blend-mode: difference;
  display: none;
}
@media (hover: hover) and (pointer: fine) {
  html.fx-ready .custom-cursor { display: block; }
}
html.fx-ready .custom-cursor.is-hover {
  width: 60px;
  height: 60px;
  background: rgba(232,198,114,0.1);
  border-color: #E8C672;
}

/* ---------- 16. IBIST triangle — fix para evitar desajuste ---------- */
html.fx-ready .pyr-node { opacity: 1 !important; }

/* ---------- 17. Mobile polish ---------- */
@media (max-width: 720px) {
  html.fx-ready .hero.hero-real .hero-inner { padding: 6vh 6vw !important; }
  html.fx-ready .hero.hero-real h1 { font-size: 2.4rem !important; }
  html.fx-ready .hero.hero-real .hero-ctas { flex-direction: column; }
  html.fx-ready .hero.hero-real .btn-primary,
  html.fx-ready .hero.hero-real .btn-outline-light { width: 100%; }
}
e;
  overflow: hidden;
}

/* ---------- 18. Impact Toolkit — refinado ---------- */
html.fx-ready .toolkit-steps {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 1.75rem !important;
  margin-top: 3rem !important;
  counter-reset: tkstep;
}
@media (max-width: 900px) {
  html.fx-ready .toolkit-steps { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 520px) {
  html.fx-ready .toolkit-steps { grid-template-columns: 1fr !important; }
}

html.fx-ready .toolkit-step {
  background: #fff !important;
  border: 1px solid rgba(67,124,144,0.06) !important;
  border-top: none !important;
  border-radius: 0 !important;
  padding: 2.5rem 1.75rem 2rem !important;
  position: relative !important;
  transition: all 0.5s cubic-bezier(0.16,1,0.3,1) !important;
  overflow: hidden;
  counter-increment: tkstep;
}
html.fx-ready .toolkit-step::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 48px; height: 2px;
  background: #E8C672;
  transition: width 0.5s cubic-bezier(0.16,1,0.3,1);
}
html.fx-ready .toolkit-step::after {
  content: '0' counter(tkstep);
  position: absolute;
  top: 1.25rem; right: 1.5rem;
  font-family: 'FS Sally', 'Cormorant Garamond', Georgia, serif;
  font-size: 2.6rem;
  line-height: 1;
  color: rgba(67,124,144,0.15);
  font-weight: 400;
  font-style: italic;
  transition: color 0.4s;
  pointer-events: none;
}
html.fx-ready .toolkit-step:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 50px rgba(67,124,144,0.1);
  border-color: transparent !important;
}
html.fx-ready .toolkit-step:hover::before {
  width: 100%;
}
html.fx-ready .toolkit-step:hover::after {
  color: rgba(232,198,114,0.35);
}
html.fx-ready .toolkit-step-num {
  width: 64px !important;
  height: 64px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, rgba(67,124,144,0.08) 0%, rgba(232,198,114,0.15) 100%) !important;
  border: 1px solid rgba(67,124,144,0.2) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 1.5rem !important;
  transition: all 0.4s cubic-bezier(0.16,1,0.3,1) !important;
  position: relative;
  z-index: 1;
}
html.fx-ready .toolkit-step:hover .toolkit-step-num {
  background: linear-gradient(135deg, #437C90 0%, #E8C672 100%) !important;
  border-color: transparent !important;
  transform: scale(1.08);
}
html.fx-ready .toolkit-step-num svg {
  width: 28px !important;
  height: 28px !important;
  stroke: #437C90 !important;
  transition: stroke 0.4s !important;
  stroke-width: 1.6 !important;
}
html.fx-ready .toolkit-step:hover .toolkit-step-num svg {
  stroke: #fff !important;
}
html.fx-ready .toolkit-step p {
  font-size: 0.92rem !important;
  line-height: 1.65 !important;
  color: #2E3A43 !important;
  margin: 0 !important;
  position: relative;
  z-index: 1;
}
html.fx-ready .toolkit-step strong {
  color: #437C90 !important;
  font-weight: 600 !important;
}

/* Toolkit tiles — logos de partners */
html.fx-ready .toolkit-tiles {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.5rem !important;
  margin-top: 4rem !important;
}
@media (max-width: 900px) {
  html.fx-ready .toolkit-tiles { grid-template-columns: 1fr !important; }
}

html.fx-ready .toolkit-tile {
  background: #fff !important;
  border: 1px solid rgba(67,124,144,0.06) !important;
  border-top: none !important;
  border-radius: 0 !important;
  padding: 2.5rem 2rem !important;
  text-align: center !important;
  position: relative !important;
  transition: all 0.5s cubic-bezier(0.16,1,0.3,1) !important;
  overflow: hidden;
}
html.fx-ready .toolkit-tile::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  width: 48px; height: 2px;
  background: #E8C672;
  transform: translateX(-50%);
  transition: width 0.5s cubic-bezier(0.16,1,0.3,1);
}
html.fx-ready .toolkit-tile:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 50px rgba(67,124,144,0.1);
  border-color: transparent !important;
}
html.fx-ready .toolkit-tile:hover::before {
  width: 80%;
}
html.fx-ready .toolkit-tile-logo {
  margin-bottom: 1.5rem !important;
  min-height: 60px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
}
html.fx-ready .toolkit-tile-logo img {
  max-height: 48px !important;
  width: auto !important;
  filter: grayscale(0.3);
  transition: filter 0.4s;
}
html.fx-ready .toolkit-tile:hover .toolkit-tile-logo img {
  filter: grayscale(0);
}
html.fx-ready .toolkit-tile h4 {
  font-family: 'FS Sally', 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.45rem !important;
  font-weight: 400 !important;
  color: #437C90 !important;
  margin-bottom: 0.75rem !important;
  letter-spacing: -0.01em !important;
}
html.fx-ready .toolkit-tile p {
  font-size: 0.9rem !important;
  line-height: 1.65 !important;
  color: #2E3A43 !important;
  margin: 0 !important;
}
html.fx-ready .toolkit-tile p strong {
  color: #437C90 !important;
  font-weight: 600 !important;
}

/* Section cream con espaciado más generoso para el toolkit */
html.fx-ready .section-cream {
  background: #FAF7EF !important;
}
html.fx-ready .section-cream .section-inner {
  padding-top: 1rem !important;
}

/* ═══════════════════════════════════════════════════════════
   IMPACT PAGE — enhanced effects
   ═══════════════════════════════════════════════════════════ */

/* --- Decorative gold bar under section-title --- */
html.fx-ready #page-impact .section-title {
  position: relative;
  padding-bottom: 1rem;
}
html.fx-ready #page-impact .section-title::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 2px;
  background: #E8C672;
  transition: width 1.1s cubic-bezier(0.16,1,0.3,1) 0.2s;
}
html.fx-ready #page-impact .section-title.fx-in::after {
  width: 64px;
}

/* --- mv-block: impact investing spectrum --- */
html.fx-ready #page-impact .mv-block {
  background: #fff !important;
  border: 1px solid rgba(67,124,144,0.06) !important;
  border-radius: 0 !important;
  padding: 2.25rem 1.75rem !important;
  transition: all 0.6s cubic-bezier(0.16,1,0.3,1) !important;
  position: relative;
  overflow: hidden;
}
html.fx-ready #page-impact .mv-block::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(67,124,144,0.03) 100%);
  opacity: 0;
  transition: opacity 0.5s;
  pointer-events: none;
}
html.fx-ready #page-impact .mv-block::after {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 3rem; height: 3px;
  background: #E8C672;
  transition: width 0.6s cubic-bezier(0.16,1,0.3,1);
}
html.fx-ready #page-impact .mv-block:hover {
  transform: translateY(-8px);
  box-shadow: 0 28px 60px rgba(67,124,144,0.1);
  border-color: transparent !important;
}
html.fx-ready #page-impact .mv-block:hover::before {
  opacity: 1;
}
html.fx-ready #page-impact .mv-block:hover::after {
  width: 100%;
}
html.fx-ready #page-impact .mv-block h3,
html.fx-ready #page-impact .mv-block h4 {
  font-family: 'FS Sally', 'Cormorant Garamond', Georgia, serif !important;
  color: #437C90 !important;
  font-size: 1.35rem !important;
  font-weight: 400 !important;
  margin-bottom: 0.75rem !important;
}

/* Stagger direction: bloques impares entran desde la izquierda, pares desde la derecha */
html.fx-ready #page-impact [data-fx].mv-block:nth-child(odd)  { transform: translateX(-40px); }
html.fx-ready #page-impact [data-fx].mv-block:nth-child(even) { transform: translateX(40px); }
html.fx-ready #page-impact [data-fx].mv-block.fx-in { transform: none; }

/* --- IBIST radar card — draw-in polygon --- */
html.fx-ready .ibist-radar-card {
  background: #fff !important;
  border: 1px solid rgba(67,124,144,0.06) !important;
  border-radius: 0 !important;
  padding: 2rem 1.5rem !important;
  transition: all 0.5s cubic-bezier(0.16,1,0.3,1) !important;
  position: relative;
  overflow: hidden;
}
html.fx-ready .ibist-radar-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 0; height: 2px;
  background: linear-gradient(90deg, #437C90, #E8C672);
  transition: width 0.8s cubic-bezier(0.16,1,0.3,1);
}
html.fx-ready .ibist-radar-card:hover::before {
  width: 100%;
}
html.fx-ready .ibist-radar-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 30px 60px rgba(67,124,144,0.1);
  border-color: transparent !important;
}
html.fx-ready .ibist-score {
  color: #437C90 !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  margin-bottom: 1.25rem !important;
  text-align: center;
}

/* Radar polygon: start invisible, animate in with stroke draw */
html.fx-ready .ibist-radar-svg .ibist-shape {
  stroke: #437C90;
  stroke-width: 1.5;
  fill: rgba(67,124,144,0.12);
  stroke-dasharray: 600;
  stroke-dashoffset: 600;
  transition: stroke-dashoffset 1.6s cubic-bezier(0.16,1,0.3,1) 0.3s, fill 1s ease 1.3s;
  fill-opacity: 0;
}
html.fx-ready .ibist-radar-card.fx-in .ibist-radar-svg .ibist-shape {
  stroke-dashoffset: 0;
  fill-opacity: 1;
}

/* Radar axis lines fade in first */
html.fx-ready .ibist-radar-svg .ibist-axis {
  opacity: 0;
  transition: opacity 0.8s ease;
}
html.fx-ready .ibist-radar-card.fx-in .ibist-radar-svg .ibist-axis {
  opacity: 1;
}

/* Radar labels fade in with delay */
html.fx-ready .ibist-radar-svg .ibist-label {
  opacity: 0;
  transition: opacity 0.8s ease 0.8s;
}
html.fx-ready .ibist-radar-card.fx-in .ibist-radar-svg .ibist-label {
  opacity: 1;
}

/* --- IBIST pyramid — sequential fade o


/* ═══════════════════════════════════════════════════════════════════
   ═══  V2 CINEMATIC OVERHAUL — abstract shapes, motion, rhythm   ═══
   ═══  All overrides below this line. Keep HTML & copy unchanged. ═══
   ═══════════════════════════════════════════════════════════════════ */

:root {
  --teal: #437C90;
  --teal-dark: #2d5868;
  --teal-deep: #1f3e49;
  --teal-light: #7aa5b4;
  --teal-soft: #d4e1e6;
  --cream: #f4efe6;
  --bone: #faf7f1;
  --sand: #ebe4d4;
  --ink: #1e2a30;
  --accent-warm: #E8C672;
}

html.v2 body {
  background: #ffffff;
  color: var(--ink);
}
html.v2 body::before {
  /* subtle global noise */
  content: "";
  position: fixed; inset: 0; pointer-events: none; z-index: 1;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  mix-blend-mode: multiply;
  opacity: .7;
}

/* Nav: keep, tighten a bit */
html.v2 nav#mainNav {
  background: rgba(255,255,255,0.85);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid rgba(45,88,104,0.08);
  transition: background .3s ease, border-color .3s ease;
}
html.v2 nav#mainNav.scrolled {
  background: rgba(255,255,255,0.96);
  border-bottom-color: rgba(45,88,104,0.14);
  box-shadow: 0 1px 0 rgba(45,88,104,0.05);
}
html.v2 .nav-links > li > a {
  font-weight: 500; letter-spacing: .14em;
}
html.v2 .nav-links > li > a::after {
  height: 1px; background: var(--teal);
}

/* ═══ PAGE-HEADER: kill photos, use dynamic shapes ═══ */
html.v2.fx-ready .hero.hero-real::before,
html.v2.fx-ready .hero.hero-real::after,
html.v2.fx-ready .page .page-header::before,
html.v2.fx-ready #page-team .page-header::before,
html.v2.fx-ready #page-academia .page-header::before,
html.v2.fx-ready #page-solutions .page-header::before,
html.v2.fx-ready #page-impact .page-header::before,
html.v2.fx-ready #page-portfolio .page-header::before,
html.v2.fx-ready #page-news .page-header::before,
html.v2.fx-ready #page-contact .page-header::before,
html.v2.fx-ready #page-fund-ibsaf .page-header::before,
html.v2.fx-ready #page-fund-ibdie .page-header::before,
html.v2.fx-ready #page-fund-ibid .page-header::before,
html.v2.fx-ready #page-other-strategies .page-header::before {
  background-image: none !important;
  background: transparent !important;
}

/* The new page-header: deep teal base with layered abstract shapes and grain */
html.v2 .page-header {
  position: relative;
  background: linear-gradient(145deg, #12303b 0%, #1f3e49 35%, #2d5868 70%, #437C90 100%) !important;
  overflow: hidden;
  isolation: isolate;
}

/* ═══ PAGE-HEADER: 3 animated waves (same concept as home hero) ═══
   Scaled down vs home hero so they sit within the limited page-header height
   without invading the title area. All 3 anchor at bottom: -30px so the fill
   runs all the way to the bottom of the header. Z-order: back to front = 1→3. */
html.v2 .page-header .phd-wave {
  position: absolute;
  left: -50%; right: -50%;
  width: 200%;
  display: block;
  will-change: transform;
  pointer-events: none;
  /* Vertical "motion" uses scaleY; origin at bottom keeps the bottom edge
     of every wave glued to the same line (page-header bottom). */
  transform-origin: bottom center;
}
/* Back wave — lightest beige, reaches highest (still a bit lower than before). */
html.v2 .page-header .phd-wave-3 {
  bottom: 0;
  height: 295px;
  animation: phdWaveDrift3 17s ease-in-out infinite alternate;
  z-index: 1;
}
/* Middle wave — medium beige, mid height. */
html.v2 .page-header .phd-wave-2 {
  bottom: 0;
  height: 210px;
  animation: phdWaveDrift2 12s ease-in-out infinite alternate;
  z-index: 2;
}
/* Front wave — darkest beige/warm tone, stays lower. */
html.v2 .page-header .phd-wave-1 {
  bottom: 0;
  height: 160px;
  animation: phdWaveDrift1 20s ease-in-out infinite alternate;
  z-index: 3;
}
/* Ensure header inner content sits above the waves */
html.v2 .page-header .page-header-inner { position: relative; z-index: 5; }

/* ═══ Bridge art on every page-header (photo + abstract overlay) ═══
   Anchored to the right edge, sits behind the waves but in front of the
   background. Smaller than the home hero version so it doesn't dominate
   the title. The abstract overlay draws itself on page load. */
html.v2 .page-header .ph-bridge-art {
  position: absolute;
  top: 6%;
  right: -4%;
  width: 78%;
  max-width: 1200px;
  min-width: 520px;
  height: 92%;
  pointer-events: none;
  z-index: 2;             /* above bg/glow, below waves (z3) and content (z5) */
}
html.v2 .page-header .ph-bridge-art img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: right center;
  display: block;
}
/* Photo — soft, low-contrast so the dark teal still reads as the dominant tone */
html.v2 .page-header .ph-bridge-art .phb-photo {
  opacity: 0.32;
  filter: grayscale(0.4) contrast(1.05) brightness(1.25) sepia(0.15);
}
/* Abstract overlay — gold-tinted, draws in left→right on load */
html.v2 .page-header .ph-bridge-art .phb-abstract {
  opacity: 0.55;
  filter: brightness(2.2) contrast(1.4) sepia(0.6) hue-rotate(-10deg) saturate(1.3);
  mix-blend-mode: screen;
  clip-path: inset(0 100% 0 0);
  -webkit-clip-path: inset(0 100% 0 0);
  animation: phbDraw 2.4s cubic-bezier(.55,.05,.25,1) 0.3s forwards;
}
@keyframes phbFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}
@keyframes phbDraw {
  0%   { clip-path: inset(0 100% 0 0); -webkit-clip-path: inset(0 100% 0 0); }
  100% { clip-path: inset(0 0 0 0);    -webkit-clip-path: inset(0 0 0 0); }
}
/* Mobile — hide the bridge so headlines stay readable */
@media (max-width: 900px) {
  html.v2 .page-header .ph-bridge-art { display: none; }
}
/* HIDE the static white curve divider — the 3 animated beige waves replace it. */
html.v2 .page-header .ph-svg-wave { display: none !important; }

/* Keyframes — each wave drifts horizontally at a different speed & direction.
   Vertical "breathing" comes from scaleY (with transform-origin: bottom) so
   the BOTTOM edge of the wave never moves — all 3 stay glued to the line
   where the next section begins. */
@keyframes phdWaveDrift3 {
  0%   { transform: translate3d(80px, 0, 0)   scaleY(1); }
  25%  { transform: translate3d(-60px, 0, 0)  scaleY(1.07); }
  50%  { transform: translate3d(-220px, 0, 0) scaleY(0.94); }
  75%  { transform: translate3d(-380px, 0, 0) scaleY(1.05); }
  100% { transform: translate3d(-520px, 0, 0) scaleY(0.97); }
}
@keyframes phdWaveDrift2 {
  0%   { transform: translate3d(-100px, 0, 0) scaleY(1); }
  25%  { transform: translate3d(120px, 0, 0)  scaleY(0.95); }
  50%  { transform: translate3d(280px, 0, 0)  scaleY(1.08); }
  75%  { transform: translate3d(440px, 0, 0)  scaleY(0.96); }
  100% { transform: translate3d(600px, 0, 0)  scaleY(1.04); }
}
@keyframes phdWaveDrift1 {
  0%   { transform: translate3d(110px, 0, 0)  scaleY(1); }
  25%  { transform: translate3d(-90px, 0, 0)  scaleY(1.06); }
  50%  { transform: translate3d(-280px, 0, 0) scaleY(0.93); }
  75%  { transform: translate3d(-480px, 0, 0) scaleY(1.05); }
  100% { transform: translate3d(-660px, 0, 0) scaleY(0.97); }
}
/* Hero: very light beige canvas — the bridge + wave + text sit on this */
html.v2 .hero.hero-real {
  position: relative;
  background: linear-gradient(180deg, #faf5e9 0%, #f4ead5 60%, #ebdfbf 100%) !important;
  color: #fff;
  isolation: isolate;
  overflow: hidden;
}
html.v2 .page-header { padding: 11rem 2.5rem 7rem; }

/* Glow field inside headers */
html.v2 .page-header .ph-canvas,
html.v2 .hero.hero-real .ph-canvas {
  position: absolute; inset: 0; pointer-events: none;
  z-index: 0;
}
/* Bridge stack: photo behind + abstract line drawing on top, both full width of hero bottom */
html.v2 .hero.hero-real .hero-bridge-stack {
  position: absolute;
  left: 0; right: 0; bottom: 70px;
  height: 70%;
  z-index: 2;
  pointer-events: none;
  mask-image: linear-gradient(180deg, transparent 0%, #000 10%, #000 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 10%, #000 100%);
}
html.v2 .hero.hero-real .hero-bridge-stack img,
html.v2 .hero.hero-real .hero-bridge-stack svg {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
  display: block;
}
html.v2 .hero.hero-real .hero-bridge-stack .hb-photo {
  opacity: 0.85;
  filter: grayscale(0.15) contrast(1.15) brightness(0.75);
}
html.v2 .hero.hero-real .hero-bridge-stack .hb-abstract {
  opacity: 1;
  mix-blend-mode: multiply;
  filter: contrast(1.25) brightness(0.7);
}
html.v2 .hero.hero-real .hero-bridge-stack .hb-abstract {
  opacity: 0.9;
  mix-blend-mode: multiply;
}
html.v2 .hero.hero-real .hero-bridge-stack {
  animation: heroBridgeFloat 14s ease-in-out infinite;
}
@keyframes heroBridgeFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
html.v2 .page-header .ph-canvas svg,
html.v2 .hero.hero-real .ph-canvas svg {
  position: absolute; inset: 0; width: 100%; height: 100%;
}

html.v2 .page-header .ph-glow,
html.v2 .hero.hero-real .ph-glow {
  position: absolute; inset: -20%;
  pointer-events: none;
  background:
    radial-gradient(ellipse 60% 50% at 20% 30%, rgba(122,165,180,0.35), transparent 60%),
    radial-gradient(ellipse 45% 40% at 85% 75%, rgba(232,198,114,0.18), transparent 70%),
    radial-gradient(ellipse 70% 60% at 50% 120%, rgba(67,124,144,0.9), transparent 70%);
  filter: blur(2px);
  z-index: 0;
}
html.v2 .page-header .ph-grid,
html.v2 .hero.hero-real .ph-grid {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    linear-gradient(to right, rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 88px 88px;
  mask-image: radial-gradient(ellipse 80% 90% at 50% 50%, #000 40%, transparent 85%);
  -webkit-mask-image: radial-gradient(ellipse 80% 90% at 50% 50%, #000 40%, transparent 85%);
}
html.v2 .page-header .ph-noise,
html.v2 .hero.hero-real .ph-noise {
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  opacity: .35; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/></svg>");
}

html.v2 .page-header-inner,
html.v2 .hero.hero-real .hero-inner {
  position: relative; z-index: 4;
}

/* Typography inside teal header — bigger, airy */
html.v2 .page-header .breadcrumb {
  color: rgba(255,255,255,0.55);
  letter-spacing: .22em;
  font-size: .68rem;
}
html.v2 .page-header .breadcrumb a { color: var(--accent-warm); }
html.v2 .page-header h1 {
  font-size: clamp(3rem, 6.5vw, 6.5rem);
  font-weight: 300; line-height: 0.98;
  letter-spacing: -0.02em;
  color: #fff;
}
html.v2 .page-header h1 em { color: var(--accent-warm); font-style: italic; }
html.v2 .page-header-desc {
  font-size: 1.1rem; line-height: 1.7;
  color: rgba(255,255,255,0.78);
  max-width: 680px; margin-top: 2rem;
  font-weight: 300;
}

/* ═══ HERO on HOME ═══ */
html.v2 .hero.hero-real {
  min-height: 100vh;
  padding: 0 !important;
}
html.v2 .hero.hero-real .hero-inner {
  max-width: 1440px; margin: 0 auto;
  padding: 7vh 2.5rem 8vh !important;
  display: block !important;
  min-height: 100vh;
}
html.v2 .hero.hero-real .hero-text {
  max-width: 980px;
  padding: 0 !important;
  margin-top: 2vh;
}
html.v2 .hero.hero-real .hero-eyebrow {
  color: var(--accent-warm) !important;
  font-size: .72rem;
  letter-spacing: .3em;
  margin-bottom: 2.5rem !important;
}
html.v2 .hero.hero-real .hero-eyebrow::before {
  background: var(--accent-warm) !important;
  width: 3rem; height: 1px;
}
html.v2 .hero.hero-real h1 {
  font-size: clamp(3.2rem, 7.5vw, 7.5rem) !important;
  font-weight: 300; line-height: 0.98;
  letter-spacing: -0.025em;
  color: #fff !important;
  text-shadow: 0 2px 30px rgba(0,0,0,0.25);
  margin-bottom: 2.25rem !important;
}
html.v2 .hero.hero-real h1 em { color: #a07a28 !important; font-style: italic; }
html.v2 .hero.hero-real p {
  font-size: clamp(1.05rem, 1.25vw, 1.2rem) !important;
  line-height: 1.7 !important; max-width: 620px;
  color: rgba(255,255,255,0.82) !important;
  font-weight: 300;
  margin-bottom: 2.75rem !important;
}

/* Hero scroll indicator */
html.v2 .hero.hero-real .hero-scroll-indicator {
  position: absolute;
  bottom: 3rem; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: .75rem;
  color: rgba(255,255,255,0.6);
  font-size: .65rem; letter-spacing: .32em; text-transform: uppercase;
  z-index: 5;
}
html.v2 .hero.hero-real .hero-scroll-line {
  width: 1px; height: 54px;
  background: linear-gradient(to bottom, transparent, var(--accent-warm));
  position: relative;
  overflow: hidden;
}
html.v2 .hero.hero-real .hero-scroll-line::after {
  content: ""; position: absolute; left: 0; top: -40%;
  width: 1px; height: 40%;
  background: linear-gradient(to bottom, transparent, #fff);
  animation: scroll-run 2.2s ease-in-out infinite;
}
@keyframes scroll-run {
  0%   { transform: translateY(0); }
  80%  { transform: translateY(220%); }
  100% { transform: translateY(220%); opacity: 0; }
}

/* Hero CTAs refreshed */
html.v2 .hero.hero-real .btn-primary,
html.v2 .hero.hero-real .btn-outline-light {
  background: #437C90; color: #fff !important;
  padding: 1.1rem 2.2rem; border: 1px solid #437C90;
  font-size: .72rem; letter-spacing: .18em;
  transition: all .35s cubic-bezier(.2,.8,.2,1);
}
html.v2 .hero.hero-real .btn-primary:hover {
  background: var(--accent-warm); border-color: var(--accent-warm); color: var(--teal-deep) !important;
}
html.v2 .hero.hero-real .btn-outline-light {
  background: transparent; color: #12303b !important; border-color: rgba(18,48,59,0.4);
}
html.v2 .hero.hero-real .btn-outline-light:hover {
  background: rgba(18,48,59,0.06); border-color: #12303b;
}

/* ═══ STATS BAR ═══ */
html.v2 .stats-bar {
  background: #0f2a33;
  color: #fff;
  border: none;
  position: relative;
  overflow: hidden;
}
html.v2 .stats-bar::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 40% 80% at 15% 50%, rgba(67,124,144,0.5), transparent 70%),
    radial-gradient(ellipse 40% 80% at 85% 50%, rgba(67,124,144,0.4), transparent 70%);
}
html.v2 .stats-bar .stats-inner { position: relative; }
html.v2 .stat-item {
  padding: 5rem 2rem;
  border-right: 1px solid rgba(255,255,255,0.08) !important;
  border-left: none !important;
  text-align: left;
  position: relative;
  overflow: hidden;
}
html.v2 .stat-item:last-child { border-right: none !important; }
html.v2 .stat-item::before {
  content: ""; position: absolute;
  top: 0; left: 0; width: 40px; height: 1px;
  background: var(--accent-warm);
  transition: width .8s cubic-bezier(.2,.8,.2,1);
}
html.v2 .stat-item:hover::before { width: 100%; }
html.v2 .stats-bar .stat-number,
html.v2 .stats-bar .stat-number *,
html.v2.fx-ready .stats-bar .stat-number,
html.v2.fx-ready .stats-bar .stat-number *,
html.v2 body .stats-bar .stat-number,
html.v2 body.fx-ready .stats-bar .stat-number {
  background: linear-gradient(180deg, #ffffff 0%, #ffffff 55%, #F3D98A 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  opacity: 1 !important;
}
html.v2 .stats-bar .stat-number small,
html.v2.fx-ready .stats-bar .stat-number small {
  background: linear-gradient(180deg, #F3D98A 0%, #E8C672 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  opacity: 1 !important;
}
html.v2 .stats-bar .stat-label,
html.v2.fx-ready .stats-bar .stat-label {
  font-size: .74rem !important;
  letter-spacing: .24em !important;
  text-transform: uppercase !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  opacity: 1 !important;
}

/* ═══ SECTION RHYTHM — alternating bgs keyed to section-tag ═══ */
html.v2 .section {
  position: relative;
  padding: 8rem 2.5rem;
  transition: background-color .6s ease;
}
html.v2 .section-cream { background: var(--cream) !important; }

/* Auto alternating section treatments on pages with multiple section-tag blocks */
html.v2 .page > .section + .section { border-top: 1px solid transparent; }
html.v2 .page .section.v2-section-bone { background: var(--bone); }
html.v2 .page .section.v2-section-sand {
  background: linear-gradient(180deg, var(--cream) 0%, var(--sand) 100%);
}
html.v2 .page .section.v2-section-ink {
  background: #0f2a33; color: #fff;
}
html.v2 .page .section.v2-section-ink .section-title,
html.v2 .page .section.v2-section-ink .section-title em { color: #fff; }
html.v2 .page .section.v2-section-ink .section-lead { color: rgba(255,255,255,0.78); }
html.v2 .page .section.v2-section-ink .section-tag { color: var(--accent-warm); }
html.v2 .page .section.v2-section-ink .section-tag::before { background: var(--accent-warm); }

/* Section divider motif */
html.v2 .section::before {
  content: "";
  position: absolute;
  top: 0; left: 50%; transform: translateX(-50%);
  width: 1px; height: 48px;
  background: linear-gradient(to bottom, transparent, var(--teal));
  opacity: .3;
}
html.v2 .section:first-child::before,
html.v2 .section-cream::before { display: none; }

html.v2 .section-tag {
  font-size: .7rem;
  letter-spacing: .3em;
  color: var(--teal);
  font-weight: 500;
  margin-bottom: 1.75rem;
}
html.v2 .section-tag::before {
  width: 48px; height: 1px; background: var(--teal);
}
html.v2 .v2-section-ink .section-tag::before { background: var(--accent-warm); }
html.v2 .section-title {
  font-size: clamp(2.4rem, 4.2vw, 3.8rem) !important;
  font-weight: 300 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.015em;
  max-width: 980px;
}
html.v2 .section-title em { font-weight: 300; }
html.v2 .section-lead {
  font-size: 1.1rem;
  line-height: 1.75;
  font-weight: 300;
  max-width: 720px;
}

/* ═══ VALUE CARDS ═══ */
html.v2 .values-row {
  gap: 1px; background: rgba(45,88,104,0.08);
  border: none; margin-top: 4rem;
}
html.v2 .value-card {
  padding: 3.5rem 2.5rem;
  text-align: left;
  background: #fff;
  position: relative;
  overflow: hidden;
  transition: background .4s ease, transform .4s cubic-bezier(.2,.8,.2,1);
}
html.v2 .value-card::after {
  content: ""; position: absolute;
  bottom: 0; left: 0; width: 0; height: 2px;
  background: var(--teal);
  transition: width .6s cubic-bezier(.2,.8,.2,1);
}
html.v2 .value-card:hover {
  background: var(--bone);
  transform: translateY(-4px);
}
html.v2 .value-card:hover::after { width: 100%; }
html.v2 .value-icon {
  width: 56px; height: 56px;
  background: transparent;
  border: 1px solid var(--teal);
  border-radius: 0;
  margin: 0 0 2rem 0;
  color: var(--teal);
}
html.v2 .value-card h4 {
  font-size: 1.5rem; font-weight: 400;
  margin-bottom: 1rem;
}
html.v2 .value-card p {
  font-size: .95rem; line-height: 1.7;
  color: var(--ink); opacity: .72;
}

/* ═══ VALUES — flip cards ═══ */
html.v2 .values-flip {
  margin-top: 5rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  perspective: 1600px;
}
html.v2 .vflip {
  position: relative;
  height: 380px;
}
html.v2 .vflip-inner {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  transition: transform .75s cubic-bezier(.2,.8,.2,1);
  transform-style: preserve-3d;
}
html.v2 .vflip:hover .vflip-inner,
html.v2 .vflip:focus-within .vflip-inner {
  transform: rotateY(180deg);
}
html.v2 .vflip-face {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  padding: 2.75rem 2rem;
  display: flex; flex-direction: column;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  border-radius: 4px;
  overflow: hidden;
  box-sizing: border-box;
}

/* Modern: flat bone/off-white front, clean serif, subtle gold dot + teal back */
html.v2 .vflip:nth-child(1) .vflip-front,
html.v2 .vflip:nth-child(2) .vflip-front,
html.v2 .vflip:nth-child(3) .vflip-front {
  background: #f5efe3;
  color: #1a3440;
  border: none;
  box-shadow: inset 0 0 0 1px rgba(26,52,64,0.06);
}
html.v2 .vflip:nth-child(1) .vflip-back,
html.v2 .vflip:nth-child(2) .vflip-back,
html.v2 .vflip:nth-child(3) .vflip-back {
  background: #1a3440;
  color: #ffffff;
  border: none;
}
/* Gold dot marker top-left */
html.v2 .vflip-front::before {
  content: "";
  position: absolute;
  left: 2rem; top: 2rem;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #c4a961;
  transition: transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s ease;
}
html.v2 .vflip:hover .vflip-front::before {
  transform: scale(1.8);
  box-shadow: 0 0 0 6px rgba(196,169,97,0.18);
}
/* Arrow indicator bottom-right */
html.v2 .vflip-front .vflip-hint {
  position: absolute;
  bottom: 1.75rem; right: 2rem;
  margin-top: 0;
  font-size: .58rem;
  letter-spacing: .34em;
  color: rgba(26,52,64,0.5);
  display: inline-flex; align-items: center; gap: .5rem;
}
html.v2 .vflip-front .vflip-hint::after {
  content: "→";
  font-family: system-ui, sans-serif;
  font-size: .9rem;
  transition: transform .4s ease;
}
html.v2 .vflip:hover .vflip-front .vflip-hint::after {
  transform: translateX(4px);
}

html.v2 .vflip-front {
  align-items: flex-start; justify-content: flex-end;
  text-align: left;
  gap: 0;
  position: relative;
}
html.v2 .vflip-front h4 {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-size: 2.5rem; font-weight: 300;
  letter-spacing: -0.025em;
  line-height: 1;
  margin: 0;
  color: inherit;
  max-width: 80%;
}
/* Decorative glyph in background */
html.v2 .vflip-front::after {
  content: none;
}

/* Icon — abstract geometric mark, no border, large */
html.v2 .vflip-mark {
  width: 96px; height: 96px;
  color: inherit;
  opacity: .85;
  margin-bottom: auto;
  position: relative; z-index: 1;
  transition: transform .6s cubic-bezier(.2,.8,.2,1), opacity .3s ease;
}
html.v2 .vflip-mark svg {
  width: 100%; height: 100%;
  display: block;
}
html.v2 .vflip:hover .vflip-mark {
  transform: translateY(-4px) rotate(-4deg);
  opacity: 1;
}

/* Legacy icon (keep defined but unused) */
html.v2 .vflip-icon {
  width: 48px; height: 48px;
  display: none;
}

html.v2 .vflip-front h4 {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-size: 2.15rem; font-weight: 400;
  color: inherit;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0;
  position: relative; z-index: 1;
}
html.v2 .vflip-hint {
  font-size: .62rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  opacity: .55;
  margin-top: 1rem;
  display: inline-flex; align-items: center; gap: .6rem;
  position: relative; z-index: 1;
}
html.v2 .vflip-hint::after {
  content: ""; width: 22px; height: 1px;
  background: currentColor;
  transition: width .3s ease;
}
html.v2 .vflip:hover .vflip-hint::after { width: 40px; }

html.v2 .vflip-back {
  transform: rotateY(180deg);
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: 1.25rem;
  padding: 2.5rem 2.5rem;
}
html.v2 .vflip-back h4 {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-size: 2rem; font-weight: 400;
  color: inherit;
  margin: 0 0 .5rem;
  letter-spacing: -0.015em;
}
html.v2 .vflip-back p {
  font-size: 1.08rem;
  line-height: 1.6;
  color: inherit;
  opacity: .88;
  margin: 0;
  max-width: 36ch;
}
@media (max-width: 820px) {
  html.v2 .values-flip { grid-template-columns: 1fr; }
}

/* legacy editorial (hidden) */
html.v2 .values-editorial { display: none; }
html.v2 .val-row {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 3.5rem;
  align-items: start;
  padding: 3rem 0 2.75rem;
  position: relative;
}
html.v2 .val-row:first-child { padding-top: 0; }
html.v2 .val-rule {
  position: absolute;
  left: 110px; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(45,88,104,0.18), rgba(45,88,104,0.04));
}
html.v2 .val-num {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-size: 3.25rem;
  font-weight: 300;
  line-height: 1;
  color: var(--accent-warm);
  font-style: italic;
  letter-spacing: -0.02em;
  padding-top: .35rem;
  transition: transform .5s cubic-bezier(.2,.8,.2,1), color .3s ease;
}
html.v2 .val-row:hover .val-num {
  transform: translateX(6px);
  color: var(--gold-dark);
}
html.v2 .val-head {
  display: flex; align-items: center; gap: 1.1rem;
  margin-bottom: 1rem;
}
html.v2 .val-icon {
  width: 40px; height: 40px;
  border: 1px solid rgba(45,88,104,0.22);
  display: flex; align-items: center; justify-content: center;
  color: var(--teal);
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
html.v2 .val-row:hover .val-icon {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
}
html.v2 .val-body h4 {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-size: 2rem; font-weight: 400;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0;
}
html.v2 .val-body p {
  font-size: 1.02rem;
  line-height: 1.72;
  color: var(--ink);
  opacity: .7;
  max-width: 60ch;
  margin: 0;
}
@media (max-width: 720px) {
  html.v2 .val-row { grid-template-columns: 70px 1fr; gap: 1.5rem; padding: 2rem 0 1.75rem; }
  html.v2 .val-rule { left: 70px; }
  html.v2 .val-num { font-size: 2.25rem; }
  html.v2 .val-body h4 { font-size: 1.5rem; }
}

/* ═══ DISCOVER MORE — editorial card ═══ */
html.v2 .discover-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-top: 5rem;
}
html.v2 .discover-card {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 2rem;
  padding: 2.75rem 2.75rem 2.5rem;
  background: #ffffff;
  border: 1px solid rgba(45,88,104,0.12);
  text-decoration: none;
  color: var(--ink);
  overflow: hidden;
  transition: transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s ease, border-color .3s ease;
  cursor: pointer;
}
html.v2 .discover-card::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--teal);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .6s cubic-bezier(.2,.8,.2,1);
}
html.v2 .discover-card:hover {
  transform: translateY(-6px);
  border-color: rgba(45,88,104,0.25);
  box-shadow: 0 30px 70px -20px rgba(45,88,104,0.2);
}
html.v2 .discover-card:hover::before { transform: scaleY(1); }
html.v2 .dc-index {
  display: flex; align-items: baseline; justify-content: space-between;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid rgba(45,88,104,0.12);
}
html.v2 .dc-num {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-size: 1.1rem;
  font-style: italic;
  color: var(--accent-warm);
  font-weight: 400;
}
html.v2 .dc-label {
  font-size: .68rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--ink);
  opacity: .55;
}
html.v2 .dc-main h3 {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-size: 2.75rem;
  font-weight: 300;
  letter-spacing: -0.02em;
  margin: 0 0 1rem;
  color: var(--ink);
}
html.v2 .dc-main p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--ink);
  opacity: .7;
  margin: 0 0 1.75rem;
  max-width: 44ch;
}
html.v2 .dc-cta {
  display: inline-flex; align-items: center; gap: .85rem;
  font-size: .78rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--teal);
  font-weight: 500;
}
html.v2 .dc-cta svg {
  transition: transform .45s cubic-bezier(.2,.8,.2,1);
}
html.v2 .discover-card:hover .dc-cta svg { transform: translateX(8px); }
html.v2 .dc-meta {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 1rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(45,88,104,0.12);
}
html.v2 .dc-meta > div {
  display: flex; flex-direction: column; gap: .2rem;
}
html.v2 .dc-metric {
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
  font-size: 1.35rem;
  font-weight: 400;
  color: var(--teal);
  letter-spacing: -0.01em;
}
html.v2 .dc-caption {
  font-size: .65rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ink);
  opacity: .55;
}
@media (max-width: 900px) {
  html.v2 .discover-grid { grid-template-columns: 1fr; }
  html.v2 .dc-main h3 { font-size: 2.1rem; }
}

/* ═══ EXPLORE CARDS ═══ */
html.v2 .explore-grid { gap: 1.5rem; margin-top: 4rem; }
html.v2 .explore-card {
  background: #fff;
  border: 1px solid rgba(45,88,104,0.12);
  padding: 3rem 2.5rem;
  transition: all .4s cubic-bezier(.2,.8,.2,1);
  position: relative;
  overflow: hidden;
  cursor: pointer;
}
html.v2 .explore-card::before {
  content: ""; position: absolute;
  top: 0; right: 0; width: 60px; height: 60px;
  background: var(--teal);
  clip-path: polygon(100% 0, 0 0, 100% 100%);
  opacity: .08;
  transition: all .5s cubic-bezier(.2,.8,.2,1);
}
html.v2 .explore-card:hover {
  border-color: var(--teal);
  transform: translateY(-6px);
  box-shadow: 0 24px 60px rgba(45,88,104,0.12);
}
html.v2 .explore-card:hover::before { width: 120px; height: 120px; opacity: .14; }

/* ═══ NEWS CARDS ═══ */
html.v2 .news-card {
  background: #fff;
  border: 1px solid rgba(45,88,104,0.1);
  padding: 2.5rem;
  transition: all .4s cubic-bezier(.2,.8,.2,1);
}
html.v2 .news-card:hover {
  border-color: var(--teal);
  transform: translateY(-6px);
  box-shadow: 0 24px 50px rgba(45,88,104,0.14);
}

/* ═══ BUTTONS ═══ */
html.v2 .btn-primary {
  background: var(--teal-deep);
  color: #fff;
  padding: 1.05rem 2.1rem;
  font-size: .72rem;
  letter-spacing: .16em;
  position: relative;
  overflow: hidden;
  transition: all .4s cubic-bezier(.2,.8,.2,1);
}
html.v2 .btn-primary::before {
  content: ""; position: absolute; inset: 0;
  background: var(--teal);
  transform: translateX(-100%);
  transition: transform .45s cubic-bezier(.2,.8,.2,1);
  z-index: 0;
}
html.v2 .btn-primary:hover::before { transform: translateX(0); }
html.v2 .btn-primary > * { position: relative; z-index: 1; }
html.v2 .btn-outline {
  border-color: var(--teal-deep);
  padding: 1rem 2rem;
  transition: all .4s cubic-bezier(.2,.8,.2,1);
}

/* ═══ FUND / SOLUTIONS PAGES ═══ */
html.v2 .fund-metric-value,
html.v2 .st-amount {
  color: var(--teal-deep) !important;
}
html.v2 .solutions-table { border: 1px solid rgba(45,88,104,0.12); }
html.v2 .st-header { background: var(--teal-deep); }
html.v2 .st-row { transition: background .2s ease; }
html.v2 .st-row:hover { background: var(--bone); }
html.v2 .st-row-title { color: var(--teal-deep) !important; }

/* ═══ PORTFOLIO & TEAM FILTERS — consistent across the site ═══ */
html.v2 .portfolio-filters,
html.v2 .team-filters {
  gap: .6rem !important;
  padding-bottom: 1.5rem !important;
  margin-bottom: 3rem !important;
  border-bottom: 1px solid rgba(45,88,104,0.1) !important;
  justify-content: flex-start !important;
}
html.v2 .portfolio-filters button,
html.v2 .team-filter-btn {
  background: transparent !important;
  border: 1px solid rgba(45,88,104,0.14) !important;
  padding: .65rem 1.25rem !important;
  font-size: .7rem !important;
  font-weight: 500 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--teal-deep) !important;
  border-radius: 999px !important;
  transition: all .25s ease !important;
  box-shadow: none !important;
  font-family: 'Inter', sans-serif !important;
}
html.v2 .portfolio-filters button:hover,
html.v2 .team-filter-btn:hover {
  background: var(--teal-soft) !important;
  border-color: var(--teal) !important;
  color: var(--teal-deep) !important;
}
html.v2 .portfolio-filters button.active,
html.v2 .team-filter-btn.active {
  background: var(--teal-deep) !important;
  color: #fff !important;
  border-color: var(--teal-deep) !important;
}
html.v2 .team-filter-btn .tf-count {
  background: rgba(67,124,144,0.08);
  color: var(--teal-deep);
  padding: 2px 8px;
  border-radius: 999px;
  font-size: .62rem;
  margin-left: .5rem;
  opacity: 1 !important;
  font-weight: 600;
}
html.v2 .team-filter-btn.active .tf-count {
  background: rgba(255,255,255,0.2);
  color: #fff;
}

/* ═══ TEAM CARDS ═══ */
html.v2 .team-member.tm-v2 {
  background: #fff;
  border: 1px solid rgba(45,88,104,0.08);
  transition: all .4s cubic-bezier(.2,.8,.2,1);
}
html.v2 .team-member.tm-v2:hover {
  border-color: var(--teal-light);
  box-shadow: 0 24px 50px rgba(45,88,104,0.14);
  transform: translateY(-6px);
}

/* ═══ PORTFOLIO CARDS ═══ */
html.v2 .portfolio-card {
  background: #fff;
  border: 1px solid rgba(45,88,104,0.08);
  padding: 2.25rem;
  transition: all .4s cubic-bezier(.2,.8,.2,1);
  position: relative;
  overflow: hidden;
}
html.v2 .portfolio-card::after {
  content: ""; position: absolute;
  bottom: 0; left: 0; width: 0; height: 2px;
  background: var(--teal);
  transition: width .5s cubic-bezier(.2,.8,.2,1);
}
html.v2 .portfolio-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 50px rgba(45,88,104,0.14);
  border-color: var(--teal-light);
}
html.v2 .portfolio-card:hover::after { width: 100%; }

/* ═══ CONTACT ═══ */
html.v2 #page-contact .contact-grid { margin-top: 4rem; }

/* ═══ FOOTER ═══ */
html.v2 footer {
  background: #0b2128 !important;
  color: rgba(255,255,255,0.7);
}

/* ═══ SCROLL REVEAL ═══ */
html.v2 [data-reveal] {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1);
  transition-delay: var(--reveal-delay, 0ms);
}
html.v2 [data-reveal].is-in {
  opacity: 1; transform: translateY(0);
}

/* Hero text word-by-word reveal */
html.v2 .v2-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1);
  transition-delay: calc(var(--w-idx, 0) * 80ms);
}
html.v2 .is-hero-in .v2-word { opacity: 1; transform: translateY(0); }

/* Cursor glow (desktop only) */
html.v2 .v2-cursor-glow {
  position: fixed; top: 0; left: 0;
  width: 520px; height: 520px; border-radius: 50%;
  background: radial-gradient(circle, rgba(67,124,144,0.12) 0%, transparent 60%);
  pointer-events: none;
  transform: translate(-50%, -50%);
  z-index: 2;
  mix-blend-mode: multiply;
  opacity: 0;
  transition: opacity .4s ease;
}
@media (hover: hover) and (pointer: fine) {
  html.v2 .v2-cursor-glow { opacity: 1; }
}
html.v2 .hero.hero-real .v2-cursor-glow-hero,
html.v2 .page-header .v2-cursor-glow-hero {
  position: absolute; width: 620px; height: 620px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(232,198,114,0.18) 0%, transparent 60%);
  pointer-events: none;
  transform: translate(-50%, -50%);
  z-index: 2;
  mix-blend-mode: screen;
  transition: opacity .5s ease;
  opacity: 0;
}
@media (hover: hover) and (pointer: fine) {
  html.v2 .hero.hero-real:hover .v2-cursor-glow-hero,
  html.v2 .page-header:hover .v2-cursor-glow-hero { opacity: 1; }
}

/* ═══ ABSTRACT SHAPES animation ═══ */
@keyframes float-a { 0%,100% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(30px, -25px) rotate(6deg); } }
@keyframes float-b { 0%,100% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(-22px, 30px) rotate(-4deg); } }
@keyframes float-c { 0%,100% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(18px, 18px) rotate(-5deg); } }
@keyframes morph-a { 0%,100% { border-radius: 62% 38% 46% 54% / 58% 63% 37% 42%; } 50% { border-radius: 36% 64% 62% 38% / 44% 33% 67% 56%; } }
@keyframes drift-h { 0%,100% { transform: translateX(-60%); } 50% { transform: translateX(60%); } }
@keyframes pulse-ring { 0% { opacity: 0; transform: scale(.6); } 50% { opacity: 1; } 100% { opacity: 0; transform: scale(1.8); } }
@keyframes rotate-slow { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes rotate-slow-rev { from { transform: rotate(360deg); } to { transform: rotate(0deg); } }

html.v2 .ph-blob {
  position: absolute; pointer-events: none;
  background: rgba(122,165,180,0.35);
  filter: blur(40px);
  animation: morph-a 18s ease-in-out infinite, float-a 22s ease-in-out infinite;
}
html.v2 .ph-blob.is-warm { background: rgba(232,198,114,0.18); }
html.v2 .ph-blob.is-deep { background: rgba(67,124,144,0.5); }

html.v2 .ph-ring {
  position: absolute; border: 1px solid rgba(255,255,255,0.08);
  border-radius: 50%; pointer-events: none;
}
html.v2 .ph-ring.spin { animation: rotate-slow 60s linear infinite; }
html.v2 .ph-ring.spin-rev { animation: rotate-slow-rev 80s linear infinite; }

html.v2 .ph-line {
  position: absolute; height: 1px;
  background: linear-gradient(to right, transparent, rgba(232,198,114,0.5), transparent);
  pointer-events: none;
  animation: drift-h 14s ease-in-out infinite;
}

html.v2 .ph-svg-wave {
  position: absolute; left: 0; right: 0; bottom: -2px; width: 100%; height: 120px;
  pointer-events: none;  z-index: 3;
}

/* ====== HOME METRICS (redesigned stats band) ====== */
html.v2 .home-metrics,
html.v2.fx-ready .home-metrics,
html.v2 section.home-metrics,
html.v2 body .home-metrics {
  position: relative;
  background: #437C90 !important;
  background-image: none !important;
  padding: 0.85rem 2rem 0.85rem;
  overflow: hidden;
  isolation: isolate;
}
html.v2 .home-metrics::before,
html.v2 .home-metrics::after { content: none !important; display: none !important; }
html.v2 .home-metrics-deco { display: none !important; }
html.v2 .home-metrics-deco svg { width: 100%; height: 100%; display: block; }
html.v2 .home-metrics-inner {
  position: relative; z-index: 2;
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 0;
}
html.v2 .home-metric {
  position: relative;
  text-align: center;
  padding: 0.25rem 2.5rem;
  color: #fff;
}
html.v2 .home-metric + .home-metric::before {
  content: "";
  position: absolute; left: 0; top: 22%; bottom: 22%; width: 1px;
  background: linear-gradient(180deg, transparent 0%, rgba(232,198,114,0.35) 25%, rgba(232,198,114,0.55) 50%, rgba(232,198,114,0.35) 75%, transparent 100%);
}
html.v2 .home-metric .hm-icon { display: none !important; }
html.v2 .home-metric .hm-icon svg { display: none !important; }
html.v2 .home-metric .hm-number {
  font-family: 'FS Sally', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2rem, 3.4vw, 3rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.03em;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: none !important;
  margin-bottom: 0.15rem;
  text-shadow: 0 2px 12px rgba(0,0,0,0.25);
}
html.v2 .home-metric .hm-number small,
html.v2.fx-ready .home-metric .hm-number small {
  font-size: 0.48em;
  font-weight: 400;
  margin-left: 0.12em;
  letter-spacing: 0;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: none !important;
  opacity: 1;
}
html.v2 .home-metric .hm-label {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78);
  margin-top: 0.75rem;
  font-weight: 500;
}
html.v2 .home-metric .hm-label::before {
  content: "";
  display: block;
  width: 28px; height: 1px;
  background: #E8C672;
  margin: 0 auto 0.6rem;
  opacity: 0.7;
}
@media (max-width: 820px) {
  html.v2 .home-metrics { padding: 4rem 1.25rem; }
  html.v2 .home-metrics-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  html.v2 .home-metric { padding: 1.5rem 1rem; }
  html.v2 .home-metric + .home-metric::before {
    left: 15%; right: 15%; top: -1.25rem; bottom: auto;
    width: auto; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(232,198,114,0.5), transparent);
  }
}

/* ═══ IBIST story — keep but refresh background ═══ */
html.v2 .ibist-story {
  background: linear-gradient(180deg, #0f2a33 0%, #1f3e49 100%);
  color: #fff;
  position: relative;
  overflow: hidden;
}
html.v2 .ibist-story .section-tag { color: var(--accent-warm); }
html.v2 .ibist-story .section-tag::before { background: var(--accent-warm); }
html.v2 .ibist-story h2,
html.v2 .ibist-story h2 em { color: #fff; }

/* ═══ Floating abstract badge logotype behind large titles ═══ */
html.v2 .v2-title-flourish {
  position: absolute; right: 2rem; top: -40px;
  width: 180px; height: 180px; opacity: .1;
  pointer-events: none;
  animation: rotate-slow 120s linear infinite;
}

/* ═══ Responsive ═══ */
@media (max-width: 900px) {
  html.v2 .page-header { padding: 8rem 1.5rem 5rem; }
  html.v2 .section { padding: 5rem 1.5rem; }
  html.v2 .stat-item { padding: 3rem 1.25rem; }
  html.v2 .stat-number { font-size: 3rem !important; }
}

/* ═══ EDITORIAL HERO — clean, airy take on home hero ═══ */
/* Height is content-driven (no min-height) so zoom-out never opens a gap
   between the title and the waves. The background fades to teal in the
   bottom portion so nothing beige is ever visible beneath the waves. */
html.v2 .hero.hero-real.hero-editorial,
html.v2.fx-ready .hero.hero-real.hero-editorial,
html.v2 body .hero.hero-real.hero-editorial {
  background: linear-gradient(180deg, #faf5e9 0%, #f2e6cc 50%, #d4dfe3 72%, #437C90 92%, #437C90 100%) !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  /* Horizontal padding matches .home-metrics (2rem) so the inner 1280px
     container lines up exactly with the numbers below */
  padding: 5rem 2rem 13rem !important;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  color: #12303b;
}
/* Zoom-out fix: as the viewport grows wider (user zooms out), the gap between text and waves
   looks disproportionately large because rem-based padding stays fixed while content wraps into
   fewer lines. Shrink the bottom padding progressively at wider widths so the text/wave ratio
   stays visually consistent. Also scale wave SVG heights down proportionally so the curves stay
   anchored near the bottom instead of floating into the middle of the hero. */
@media (min-width: 1500px) {
  html.v2 .hero.hero-real.hero-editorial,
  html.v2.fx-ready .hero.hero-real.hero-editorial,
  html.v2 body .hero.hero-real.hero-editorial { padding-bottom: 10rem !important; }
  html.v2 .hero.hero-real.hero-editorial .hero-wave-3 { height: 800px; }
  html.v2 .hero.hero-real.hero-editorial .hero-wave-2 { height: 680px; }
  html.v2 .hero.hero-real.hero-editorial .hero-wave-1 { height: 360px; }
}
@media (min-width: 1900px) {
  html.v2 .hero.hero-real.hero-editorial,
  html.v2.fx-ready .hero.hero-real.hero-editorial,
  html.v2 body .hero.hero-real.hero-editorial { padding-bottom: 7.5rem !important; }
  html.v2 .hero.hero-real.hero-editorial .hero-wave-3 { height: 650px; }
  html.v2 .hero.hero-real.hero-editorial .hero-wave-2 { height: 550px; }
  html.v2 .hero.hero-real.hero-editorial .hero-wave-1 { height: 300px; }
}
@media (min-width: 2400px) {
  html.v2 .hero.hero-real.hero-editorial,
  html.v2.fx-ready .hero.hero-real.hero-editorial,
  html.v2 body .hero.hero-real.hero-editorial { padding-bottom: 5.5rem !important; }
  html.v2 .hero.hero-real.hero-editorial .hero-wave-3 { height: 520px; }
  html.v2 .hero.hero-real.hero-editorial .hero-wave-2 { height: 440px; }
  html.v2 .hero.hero-real.hero-editorial .hero-wave-1 { height: 250px; }
}
/* Solid teal strip at the very bottom — seamless bridge into .home-metrics */
html.v2 .hero.hero-real.hero-editorial::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 40px;
  background: #437C90;
  z-index: 0;
  pointer-events: none;
}
html.v2 .hero.hero-real.hero-editorial .hero-bg-editorial {
  position: absolute; inset: 0;
  pointer-events: none;
  z-index: 0;
}
html.v2 .hero.hero-real.hero-editorial .hero-grid-lines {
  width: 100%; height: 100%;
  display: block;
}
html.v2 .hero.hero-real.hero-editorial .hero-wave-ed {
  position: absolute;
  left: -50%; right: -50%;
  width: 200%;
  height: 560px;
  display: block;
  will-change: transform;
  pointer-events: none;
}
/* Z-order: topmost wave at the BACK (z1), bottom wave in FRONT (z3).
   Lateral drift amplitude bumped so the side-to-side motion is obvious. */
html.v2 .hero.hero-real.hero-editorial .hero-wave-3 {
  bottom: -30px;
  height: 980px;
  --px: 0px;
  animation: heroWaveDrift3 9s ease-in-out infinite alternate;
  z-index: 1;
}
html.v2 .hero.hero-real.hero-editorial .hero-wave-2 {
  bottom: -30px;
  height: 820px;
  --px: 0px;
  animation: heroWaveDrift2 11s ease-in-out infinite alternate;
  z-index: 2;
}
html.v2 .hero.hero-real.hero-editorial .hero-wave-1 {
  bottom: -30px;
  height: 440px;
  --px: 0px;
  animation: heroWaveDrift1 13s ease-in-out infinite alternate;
  z-index: 3;
}
/* Wave 3 (light, top/back) drifts LEFT — slightly larger amplitude */
@keyframes heroWaveDrift3 {
  0%   { transform: translate3d(calc(80px + var(--px, 0px)), 0px, 0); }
  50%  { transform: translate3d(calc(-200px + var(--px, 0px)), -22px, 0); }
  100% { transform: translate3d(calc(-440px + var(--px, 0px)), 12px, 0); }
}
/* Wave 2 (medium) drifts RIGHT — slightly larger amplitude */
@keyframes heroWaveDrift2 {
  0%   { transform: translate3d(calc(-80px + var(--px, 0px)), 0px, 0); }
  50%  { transform: translate3d(calc(220px + var(--px, 0px)), -26px, 0); }
  100% { transform: translate3d(calc(460px + var(--px, 0px)), 14px, 0); }
}
/* Wave 1 (dark, bottom/front) drifts LEFT — slightly larger amplitude */
@keyframes heroWaveDrift1 {
  0%   { transform: translate3d(calc(100px + var(--px, 0px)), 0px, 0); }
  50%  { transform: translate3d(calc(-260px + var(--px, 0px)), 18px, 0); }
  100% { transform: translate3d(calc(-500px + var(--px, 0px)), -14px, 0); }
}
html.v2 .hero.hero-real.hero-editorial .hero-inner-editorial {
  position: relative; z-index: 2;
  /* Align with the rest of the page: same max-width as .section-inner (1440)
     and same horizontal padding (2.5rem) so the hero text begins at the
     same left edge as paragraphs/headings further down the page. */
  width: 100% !important;
  max-width: 1440px !important;
  margin: 0 auto !important;
  padding: 4rem 0 0 !important;
  display: block !important;
  min-height: 0 !important;
  flex: 1 1 auto !important;
}
html.v2 .hero.hero-real.hero-editorial .hero-text {
  /* Wider column so "Building bridges" / "of authentic" / "impact" each sit on
     their own single line at large viewports — even at 125% root font size */
  max-width: 1100px !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}
/* ═══ Bridge art — photo + abstract teal overlay ═══
   Big: reaches the far right edge of the page, and stretches up to ~65% of
   hero height. Vertical center sits around the h1 line. */
html.v2 .hero.hero-real.hero-editorial .hero-bridge-art {
  position: absolute;
  top: 2.5rem;
  right: 0;                   /* flush to the far right of the viewport */
  width: 72%;                 /* bigger — spans most of the hero */
  max-width: 1500px;
  min-width: 620px;
  height: 82%;                /* taller */
  pointer-events: none;
}
html.v2 .hero.hero-real.hero-editorial .hero-bridge-art img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: right center;   /* anchor visual to the right */
  display: block;
}
/* Real photo — visible immediately on page load, slightly darker for presence */
html.v2 .hero.hero-real.hero-editorial .hero-bridge-art .hbr-photo {
  opacity: 0.55;
  filter: grayscale(0.25) contrast(1.05) brightness(0.82);
  animation: hbrFloat 14s ease-in-out infinite;
}
/* Abstract teal overlay — "draws itself" on load via a left-to-right reveal.
   Starts fully clipped (inset 0 100% 0 0 = nothing visible), then the right
   inset shrinks to 0 so the image is revealed from left to right, like ink
   being drawn across the bridge. Runs once, keeps final state (forwards). */
html.v2 .hero.hero-real.hero-editorial .hero-bridge-art .hbr-abstract {
  opacity: 0.85;
  mix-blend-mode: multiply;
  clip-path: inset(0 100% 0 0);
  -webkit-clip-path: inset(0 100% 0 0);
  animation:
    hbrDraw 2.6s cubic-bezier(.55, .05, .25, 1) 0.35s forwards;
}
@keyframes hbrFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}
@keyframes hbrDraw {
  0%   { clip-path: inset(0 100% 0 0);  -webkit-clip-path: inset(0 100% 0 0); }
  100% { clip-path: inset(0 0 0 0);     -webkit-clip-path: inset(0 0 0 0); }
}
/* Mobile — stack text on top, hide the bridge art to keep hero readable */
@media (max-width: 900px) {
  html.v2 .hero.hero-real.hero-editorial .hero-inner-editorial {
    grid-template-columns: 1fr;
    padding: 3rem 1.5rem 0;
  }
  html.v2 .hero.hero-real.hero-editorial .hero-bridge-art {
    display: none;
  }
}
html.v2 .hero.hero-real.hero-editorial .hero-eyebrow-ed {
  display: inline-block;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #12303b !important;
  -webkit-text-fill-color: #12303b !important;
  background: rgba(255,255,255,0.65);
  border: 1px solid rgba(18,48,59,0.18);
  border-radius: 999px;
  padding: 0.6rem 1.25rem;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  margin-bottom: 2rem;
  box-shadow: 0 2px 14px rgba(18,48,59,0.06);
}
html.v2 .hero.hero-real.hero-editorial .hero-h1-ed {
  font-family: 'FS Sally', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(3rem, 6.5vw, 5.75rem);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: #437C90 !important;
  -webkit-text-fill-color: #437C90 !important;
  background: none !important;
  margin: 0 0 2rem;
  text-shadow: none;
}
html.v2 .hero.hero-real.hero-editorial .hero-h1-ed em {
  font-style: italic;
  color: #c9972f !important;
  -webkit-text-fill-color: #c9972f !important;
  background: none !important;
  font-weight: 400;
}
html.v2 .hero.hero-real.hero-editorial .hero-p-ed {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 1.125rem;
  line-height: 1.6;
  color: #12303b !important;
  -webkit-text-fill-color: #12303b !important;
  background: none !important;
  max-width: 620px;
  margin: 0 0 2.5rem;
  text-shadow: none;
  opacity: 0.85;
}
html.v2 .hero.hero-real.hero-editorial .hero-p-ed strong {
  color: #437C90 !important;
  -webkit-text-fill-color: #437C90 !important;
  font-weight: 700;
  opacity: 1;
}
html.v2 .hero.hero-real.hero-editorial .hero-ctas-ed {
  display: flex; gap: 1rem; flex-wrap: wrap;
}
html.v2 .hero.hero-real.hero-editorial .hero-ctas-ed .btn-primary {
  background: #c4a961 !important;
  color: #1e2a30 !important;
  box-shadow: 0 6px 20px rgba(0,0,0,0.18) !important;
  border: none !important;
  padding: 1rem 1.75rem !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  display: inline-flex; align-items: center; gap: 0.75rem;
  transition: all .25s ease;
}
html.v2 .hero.hero-real.hero-editorial .hero-ctas-ed .btn-primary:hover {
  background: #a88c44 !important;
  color: #fff !important;
  transform: translateY(-1px);
}
html.v2 .hero.hero-real.hero-editorial .hero-ctas-ed .btn-outline-light {
  background: rgba(255,255,255,0.85) !important;
  color: #2d5868 !important;
  border: 1px solid #2d5868 !important;
  backdrop-filter: blur(4px) !important;
  border: 1px solid rgba(67,124,144,0.5) !important;
  padding: 1rem 1.75rem !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  transition: all .25s ease;
}
html.v2 .hero.hero-real.hero-editorial .hero-ctas-ed .btn-outline-light:hover {
  background: #2d5868 !important;
  color: #fff !important;
  border-color: #2d5868 !important;
  border-color: #437C90 !important;
}
/* Hide legacy hero bg layers when editorial is active */
html.v2 .hero.hero-real.hero-editorial .hero-bg,
html.v2 .hero.hero-real.hero-editorial .ph-canvas,
html.v2 .hero.hero-real.hero-editorial .hero-scroll-indicator { display: none !important; }

/* Seamless transition from hero into metrics band */
html.v2 .hero.hero-real.hero-editorial + .home-metrics {
  margin-top: 0;
}

@media (max-width: 820px) {
  html.v2 .hero.hero-real.hero-editorial { padding: 6rem 1.25rem 4rem; min-height: auto; }
  html.v2 .hero.hero-real.hero-editorial .hero-inner-editorial { padding-top: 2rem; }
  html.v2 .hero.hero-real.hero-editorial .hero-h1-ed { font-size: 2.75rem; }
  html.v2 .hero.hero-real.hero-editorial .hero-grid-lines { transform: scale(1.2); transform-origin: bottom right; }
}

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  html.v2 *,
  html.v2 *::before,
  html.v2 *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .1ms !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   MODERN REFRESH — inspirado en Miura / Tresmares (2026)
   Mantiene la esencia y los colores de IB (teal #437C90, oro, neutros
   cálidos) Y la estética de esquina recta y minimalista de la marca
   (igual que las referencias). Moderniza por los ejes correctos: aire,
   escala tipográfica, neutros más limpios, movimiento al scroll y una
   tabla sin aspecto de "hoja de cálculo".
   Va al final para ganar en la cascada sobre las capas v2 / fx-ready.
   ═══════════════════════════════════════════════════════════════════ */

html.v2 {
  --ease-out: cubic-bezier(.22,1,.36,1);
  --shadow-sm: 0 6px 26px rgba(31,62,73,.07);
  --shadow-md: 0 18px 44px rgba(31,62,73,.10);
  --hairline: rgba(45,88,104,.09);
  /* neutros cálidos más nítidos y menos amarillos (superficies tipo Miura) */
  --cream: #f5f2ec;
  --bone: #fbf9f4;
}

/* Superficies más limpias: baja el ruido global que apagaba los blancos */
html.v2 body::before { opacity: .22; }

/* ── Tipografía: titulares más grandes y ceñidos, lead más aireado ── */
html.v2 .section-title {
  font-size: clamp(2.7rem, 4.8vw, 4.4rem) !important;
  letter-spacing: -0.025em;
  line-height: 1.05 !important;
}
html.v2 .section-lead {
  font-size: 1.18rem;
  line-height: 1.85;
  color: var(--ink);
  opacity: .8;
  max-width: 760px;
}
html.v2 .section-tag { letter-spacing: .34em; margin-bottom: 2rem; }

/* ── Aire: más respiración vertical y en las rejillas ── */
html.v2 .section { padding: clamp(5.5rem, 9vw, 10rem) 2.5rem; }
html.v2 .news-grid { gap: 2rem; }
html.v2 .discover-grid { gap: 2rem; }
html.v2 .values-flip { gap: 2rem; }

/* ── Micro-movimiento en enlaces con flecha ── */
html.v2 .link-arrow { transition: gap .3s var(--ease-out), color .2s; }

/* ── Tabla de soluciones: fuera aspecto "hoja de cálculo" ──
   Se quitan las líneas verticales internas, se suavizan las horizontales
   y se le da aire; se mantiene la esquina recta de la marca. */
html.v2 .solutions-table {
  border: 1px solid var(--hairline);
  box-shadow: var(--shadow-sm);
}
html.v2 table.solutions-table thead th {
  border-right-color: rgba(255,255,255,.06);
  padding-top: 1.05rem;
  padding-bottom: 1.05rem;
}
html.v2 table.solutions-table tbody td {
  border-right: none;
  border-bottom-color: rgba(45,88,104,.07);
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
html.v2 table.solutions-table tbody tr:hover { background: var(--cream); }
html.v2 table.solutions-table .st-amount { white-space: nowrap; }

/* ── Nav: más limpio, sin línea dura; sombra suave sólo al hacer scroll ── */
html.v2 nav#mainNav { border-bottom: 1px solid transparent; }
html.v2 nav#mainNav.scrolled {
  border-bottom-color: transparent;
  box-shadow: 0 8px 30px rgba(31,62,73,.08);
}
/* Evita que enlaces como "About us" partan a dos líneas */
html.v2 .nav-links > li > a { white-space: nowrap; }

/* ── Barra de stats (páginas de fondo): más aire ── */
html.v2 .stat-item { padding: 3.25rem 2rem; }

/* ── Foco accesible en el color de marca ── */
html.v2 a:focus-visible,
html.v2 button:focus-visible {
  outline: 2px solid var(--teal);
  outline-offset: 3px;
}

/* ═══════════════════════════════════════════════════════════════════
   IB REDESIGN 2026 — homogeneización + fotografía real
   Objetivo: un único lenguaje visual (nada de mezcla de efectos que
   "suena a IA"), fotografía real y calma editorial tipo Miura/Tresmares.
   ═══════════════════════════════════════════════════════════════════ */

/* 1) FUERA los efectos decorativos dispares (el principal "tell" de IA):
      ruido, cursor-glow, blobs, anillos, líneas, divisores, olas, etc. */
html.v2 body::before,
html.v2 .v2-cursor-glow,
html.v2 .v2-cursor-glow-hero,
html.v2 .ph-blob,
html.v2 .ph-ring,
html.v2 .ph-line,
html.v2 .ph-glow,
html.v2 .ph-grid,
html.v2 .ph-noise,
html.v2 .ph-canvas,
html.v2 .ph-svg-wave,
html.v2 .section::before,
html.v2 .hero-scroll-indicator,
html.v2 .ibist-bg-pattern { display: none !important; }

/* 2) HERO con fotografía real de Madrid (ciudad de IB) + degradado teal.
      Se reutiliza la maquinaria ::before (foto) + ::after (overlay) con
      especificidad html.v2.fx-ready para ganar a todas las capas previas. */
html.v2.fx-ready .hero.hero-real.hero-editorial {
  background: #12303b !important;
  min-height: 90vh !important;
  display: flex !important;
  align-items: center !important;
  padding: 8rem 0 5rem !important;
  overflow: hidden !important;
}
html.v2.fx-ready .hero.hero-real.hero-editorial::before {
  content: '' !important;
  display: block !important;
  position: absolute !important; inset: 0 !important;
  background: url('../img/bridge-hero.jpg') center 48% / cover no-repeat !important;
  opacity: 1 !important;
  filter: saturate(.92) contrast(1.03) !important;
  z-index: 0 !important;
}
html.v2.fx-ready .hero.hero-real.hero-editorial::after {
  content: '' !important;
  display: block !important;
  position: absolute !important; inset: 0 !important;
  width: auto !important; height: auto !important;
  background:
    linear-gradient(95deg, rgba(13,33,41,.9) 0%, rgba(13,33,41,.55) 45%, rgba(13,33,41,.3) 100%),
    linear-gradient(0deg, rgba(13,33,41,.5) 0%, rgba(13,33,41,0) 38%),
    rgba(31,62,73,.32) !important;
  z-index: 1 !important;
}
html.v2 .hero.hero-real.hero-editorial .hero-bg-editorial,
html.v2 .hero.hero-real.hero-editorial .hero-wave-ed,
html.v2 .hero.hero-real.hero-editorial .hero-bridge-art { display: none !important; }
html.v2 .hero.hero-real.hero-editorial .hero-inner-editorial { padding: 0 2.5rem !important; position: relative; z-index: 2; max-width: 1440px !important; margin: 0 auto !important; width: 100% !important; }
html.v2 .hero.hero-real.hero-editorial .hero-h1-ed {
  color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
  text-shadow: 0 2px 40px rgba(0,0,0,.35);
}
html.v2 .hero.hero-real.hero-editorial .hero-h1-ed em {
  color: #E8C672 !important; -webkit-text-fill-color: #E8C672 !important;
}
html.v2 .hero.hero-real.hero-editorial .hero-p-ed {
  color: rgba(255,255,255,.92) !important; -webkit-text-fill-color: rgba(255,255,255,.92) !important;
  opacity: 1 !important; text-shadow: 0 1px 16px rgba(0,0,0,.35); max-width: 560px;
}
html.v2 .hero.hero-real.hero-editorial .hero-eyebrow-ed {
  color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
  background: rgba(255,255,255,.14) !important;
  border: 1px solid rgba(255,255,255,.45) !important;
  box-shadow: none !important;
}
html.v2 .hero.hero-real.hero-editorial .hero-ctas-ed .btn-outline-light {
  background: transparent !important;
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,.6) !important;
}
html.v2 .hero.hero-real.hero-editorial .hero-ctas-ed .btn-outline-light:hover {
  background: #ffffff !important; color: var(--teal-deep) !important; border-color: #fff !important;
}

/* 3) UN ÚNICO estilo de tarjeta en toda la web (adiós a la mezcla) */
html.v2 .news-card,
html.v2 .value-card,
html.v2 .portfolio-card,
html.v2 .team-member.tm-v2,
html.v2 .explore-card,
html.v2 .info-card,
html.v2 .discover-card {
  background: #ffffff !important;
  border: 1px solid var(--hairline) !important;
  box-shadow: none !important;
  transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out), border-color .3s ease !important;
}
html.v2 .news-card:hover,
html.v2 .value-card:hover,
html.v2 .portfolio-card:hover,
html.v2 .team-member.tm-v2:hover,
html.v2 .explore-card:hover,
html.v2 .discover-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 20px 48px rgba(31,62,73,.12) !important;
  border-color: rgba(45,88,104,.22) !important;
}

/* 4) Value cards: de "flip 3D" (gimmick) a tarjeta estática limpia.
      Se muestra la cara con título + descripción; sin giro. */
html.v2 .values-flip .vflip { height: auto !important; min-height: 300px; }
html.v2 .values-flip .vflip-inner {
  position: static !important; transform: none !important; transform-style: flat !important;
  height: 100%;
}
html.v2 .values-flip .vflip:hover .vflip-inner,
html.v2 .values-flip .vflip:focus-within .vflip-inner { transform: none !important; }
html.v2 .values-flip .vflip-front { display: none !important; }
html.v2 .values-flip .vflip-back {
  position: static !important; transform: none !important; height: auto !important;
  -webkit-backface-visibility: visible !important; backface-visibility: visible !important;
  background: #ffffff !important; color: var(--ink) !important;
  border: 1px solid var(--hairline) !important;
  border-top: 3px solid var(--teal) !important;
  display: flex !important; flex-direction: column; justify-content: flex-start; gap: 1rem;
  padding: 2.75rem 2.25rem !important;
}
html.v2 .values-flip .vflip-back h4 {
  color: var(--teal-deep) !important;
  font-family: 'FS Sally','Fraunces',Georgia,serif !important;
  font-size: 1.6rem !important; font-weight: 500 !important; margin: 0 !important;
}
html.v2 .values-flip .vflip-back p {
  color: var(--ink) !important; opacity: .78; font-size: .98rem !important; line-height: 1.7 !important; margin: 0 !important;
}

/* 5) PAGE-HEADERS homogéneos: sin olas/formas decorativas; foto + overlay teal */
html.v2 .page-header .phd-wave,
html.v2 .page-header .ph-bridge-art,
html.v2 .page-header .phd-wave-1,
html.v2 .page-header .phd-wave-2,
html.v2 .page-header .phd-wave-3 { display: none !important; }

html.v2 #page-academia .page-header {
  background: linear-gradient(180deg, rgba(15,36,45,.2) 0%, rgba(15,36,45,.34) 55%, rgba(15,36,45,.66) 100%), url('../img/academia-1.webp') center 32% / cover no-repeat !important;
}
html.v2 #page-impact .page-header {
  background: linear-gradient(180deg, rgba(15,36,45,.2) 0%, rgba(15,36,45,.34) 55%, rgba(15,36,45,.66) 100%), url('../img/impact-seedling.jpg') center 42% / cover no-repeat !important;
}
html.v2 #page-fund-ibsaf .page-header {
  background: linear-gradient(180deg, rgba(15,36,45,.2) 0%, rgba(15,36,45,.34) 55%, rgba(15,36,45,.66) 100%), url('../img/ib-saf-bakery.jpg') center 55% / cover no-repeat !important;
}
html.v2 #page-team .page-header {
  background: linear-gradient(180deg, rgba(15,36,45,.2) 0%, rgba(15,36,45,.34) 55%, rgba(15,36,45,.66) 100%), url('../img/team-ib.jpeg') center 30% / cover no-repeat !important;
}
html.v2 #page-solutions .page-header {
  background: linear-gradient(180deg, rgba(15,36,45,.22) 0%, rgba(15,36,45,.36) 55%, rgba(15,36,45,.68) 100%), url('../img/solutions-solar.jpg') center 55% / cover no-repeat !important;
}
html.v2 #page-fund-ibdie .page-header {
  background: linear-gradient(180deg, rgba(15,36,45,.2) 0%, rgba(15,36,45,.34) 55%, rgba(15,36,45,.66) 100%), url('../img/social-care.jpg') center 30% / cover no-repeat !important;
}
html.v2 #page-fund-ibid .page-header {
  background: linear-gradient(180deg, rgba(15,36,45,.2) 0%, rgba(15,36,45,.34) 55%, rgba(15,36,45,.66) 100%), url('../img/developing-farmer.jpg') center 25% / cover no-repeat !important;
}
html.v2 #page-other-strategies .page-header {
  background: linear-gradient(180deg, rgba(15,36,45,.24) 0%, rgba(15,36,45,.38) 55%, rgba(15,36,45,.7) 100%), url('../img/hero-madrid.jpg') center 42% / cover no-repeat !important;
}
html.v2 #page-contact .page-header {
  background: linear-gradient(180deg, rgba(15,36,45,.22) 0%, rgba(15,36,45,.36) 55%, rgba(15,36,45,.68) 100%), url('../img/bridge-hero.jpg') center 48% / cover no-repeat !important;
}
html.v2 #page-portfolio .page-header {
  background: linear-gradient(180deg, rgba(15,36,45,.22) 0%, rgba(15,36,45,.36) 55%, rgba(15,36,45,.68) 100%), url('../img/portfolio-header.jpg') center 45% / cover no-repeat !important;
}
html.v2 #page-news .page-header {
  background: linear-gradient(180deg, rgba(15,36,45,.2) 0%, rgba(15,36,45,.34) 55%, rgba(15,36,45,.66) 100%), url('../img/ecosystem-partners.jpg') center 28% / cover no-repeat !important;
}
/* Legibilidad del texto sobre foto en cabeceras (overlay más claro -> sombra más fuerte) */
html.v2 .page-header h1,
html.v2 .page-header .page-header-desc,
html.v2 .page-header .breadcrumb { text-shadow: 0 2px 24px rgba(0,0,0,.6), 0 1px 3px rgba(0,0,0,.4); }

/* 6) Home: tarjetas "Discover" como tarjetas-foto (Team / Academia) */
html.v2 .discover-card[data-page="team"],
html.v2 .discover-card[data-page="academia"] {
  position: relative !important; overflow: hidden !important;
  border: none !important; min-height: 360px;
  display: flex !important; align-items: flex-end !important;
  color: #ffffff !important;
}
html.v2 .discover-card[data-page="team"] {
  background: linear-gradient(180deg, rgba(15,36,45,.12) 0%, rgba(15,36,45,.86) 100%), url('../img/team-ib.jpeg') center 30% / cover no-repeat !important;
}
html.v2 .discover-card[data-page="academia"] {
  background: linear-gradient(180deg, rgba(15,36,45,.12) 0%, rgba(15,36,45,.86) 100%), url('../img/academia-1.webp') center 30% / cover no-repeat !important;
}
html.v2 .discover-card[data-page="team"]:hover,
html.v2 .discover-card[data-page="academia"]:hover { border: none !important; }
html.v2 .discover-card[data-page="team"] .dc-main h3,
html.v2 .discover-card[data-page="academia"] .dc-main h3,
html.v2 .discover-card[data-page="team"] .dc-main p,
html.v2 .discover-card[data-page="academia"] .dc-main p,
html.v2 .discover-card[data-page="team"] .dc-cta,
html.v2 .discover-card[data-page="academia"] .dc-cta { color: #ffffff !important; }

/* 7) IBIST: radar triangular limpio (réplica de impactbridge.com) en lugar
      de la pirámide 3D, tanto en home como en Impacto */
html.v2 .ibist-pyramid .pyramid-wrap,
html.v2 .impact-ibist-pyramid { display: none !important; }
html.v2 .ibist-radar-wrap { display: flex; justify-content: center; margin: 3.5rem 0 2rem; }
html.v2 .ibist-radar-card {
  background: #ffffff; width: 100%; max-width: 560px;
  padding: 2.75rem 2.25rem 1.75rem; border: 1px solid var(--hairline);
}
html.v2 .ibist-radar { display: block; width: 100%; height: auto; }
html.v2 .ibist-radar .ibr-num {
  font-family: 'FS Sally','Fraunces',Georgia,serif; font-size: 27px; font-weight: 500; fill: #2d5868;
}
html.v2 .ibist-radar .ibr-lbl {
  font-family: 'Inter', sans-serif; font-size: 12.5px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; fill: #5b6b72;
}
/* Impacto: pentágonos antiguos fuera; radar triángulo + dimensiones */
html.v2 #page-impact .ibist-radar-grid { display: none !important; }
html.v2 .ibist-impact-viz {
  display: grid; grid-template-columns: 1fr 1fr; gap: 3.5rem;
  align-items: center; margin-top: 3rem;
}
html.v2 .ibist-impact-viz .ibist-radar-wrap { margin: 0; }
html.v2 .ibist-impact-viz .ibist-radar-card { max-width: 100%; }
html.v2 .ibist-dims { display: flex; flex-direction: column; gap: 1.25rem; }
html.v2 .ibist-dim {
  background: #fff; border: 1px solid var(--hairline);
  border-left: 3px solid var(--teal); padding: 1.5rem 1.75rem;
}
html.v2 .ibist-dim h3 {
  font-family: 'FS Sally','Fraunces',Georgia,serif; font-size: 1.4rem;
  font-weight: 500; color: var(--teal-deep); margin: 0 0 .4rem;
}
html.v2 .ibist-dim p { font-size: .95rem; line-height: 1.6; color: var(--ink); opacity: .78; margin: 0; }
@media (max-width: 820px){ html.v2 .ibist-impact-viz { grid-template-columns: 1fr; gap: 2rem; } }

/* 8) Team: experiencia como overlay al hover (sin descuadrar la fila).
      La tarjeta base muestra foto+nombre+cargo (uniforme); al pasar el ratón
      aparece un panel teal por encima con la experiencia. */
html.v2 .team-member.tm-v2 {
  position: relative !important;
  overflow: hidden !important;
  min-height: 300px;
  align-self: stretch !important;
}
html.v2 .tm-reveal {
  position: absolute; inset: 0;
  background: var(--teal-deep, #1f3e49);
  color: #fff;
  padding: 1.4rem 1.3rem;
  display: flex; flex-direction: column; justify-content: flex-start;
  text-align: left;
  opacity: 0; visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
  overflow-y: auto;
  z-index: 3;
}
html.v2 .team-member.tm-v2:hover .tm-reveal,
html.v2 .team-member.tm-v2:focus-within .tm-reveal { opacity: 1; visibility: visible; }
/* Cabecera del overlay: nombre + puesto arriba del todo */
html.v2 .tm-reveal .tm-reveal-head {
  margin-bottom: .6rem; padding-bottom: .55rem;
  border-bottom: 1px solid rgba(255,255,255,.18);
}
html.v2 .tm-reveal .tm-reveal-name {
  font-family: 'FS Sally', Georgia, serif; font-size: 1.05rem; line-height: 1.2; color: #fff;
}
html.v2 .tm-reveal .tm-reveal-role {
  font-size: .74rem; color: var(--accent-warm, #E8C672); margin-top: .2rem; letter-spacing: .01em;
}
html.v2 .tm-reveal .tm-bullets {
  max-height: none !important; opacity: 1 !important; overflow: visible !important;
  color: rgba(255,255,255,.92) !important; margin: 0 0 .35rem !important; font-size: .82rem;
}
html.v2 .tm-reveal .tm-bullets li::before { color: var(--accent-warm, #E8C672) !important; }
html.v2 .tm-reveal .tm-former-label {
  color: #fff !important; margin: .55rem 0 .3rem !important; opacity: 1 !important; max-height: none !important;
}

/* 9) Portfolio (opción B): foto temática por sector como fondo de cada tarjeta.
      Reutiliza el diseño a sangre completa existente (imagen ::before + degradado
      + texto blanco), solo cambia la imagen por la del sector de cada empresa. */
html.v2 .pf-cover .portfolio-card::before {
  background-image: var(--pf-img, url('../img/greenhouse.jpg')) !important;
  opacity: .52 !important;
}
html.v2 .pf-cover .portfolio-card::after {
  background: linear-gradient(180deg, rgba(15,36,45,.12) 0%, rgba(15,36,45,.5) 55%, rgba(15,36,45,.9) 100%) !important;
}
/* Frente uniforme: foto + logo + nombre. Sin tags de impacto. */
html.v2 .pf-cover .portfolio-themes { display: none !important; }
/* Descripción "detrás": overlay teal que aparece al pasar el ratón */
html.v2 .pf-cover .pf-reveal {
  position: absolute; inset: 0; z-index: 5;
  background: rgba(13,33,41,.95);
  display: flex; flex-direction: column; justify-content: center;
  padding: 2rem 2.1rem;
  opacity: 0; visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
}
html.v2 .pf-cover .portfolio-card:hover .pf-reveal { opacity: 1; visibility: visible; }
html.v2 .pf-cover .pf-reveal .portfolio-desc {
  color: rgba(255,255,255,.92) !important; font-size: .98rem !important;
  line-height: 1.6 !important; margin: 0 !important;
}
/* rejilla de participadas en páginas de fondo */
html.v2 .pf-cover.portfolio-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 2.5rem; }
@media (max-width: 900px){ html.v2 .pf-cover.portfolio-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ html.v2 .pf-cover.portfolio-grid { grid-template-columns: 1fr; } }

/* 10) IBIST en el home (About us): sin tarjeta blanca ni %, directo sobre la
       banda teal, triángulos en dorado y etiquetas en blanco. Más visual. */
html.v2.fx-ready .ibist-story.ibist-pyramid .ibist-radar-wrap .ibist-radar-card {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  max-width: 660px !important;
  animation: none !important;
  transition: none !important;
}
html.v2.fx-ready .ibist-story.ibist-pyramid .ibist-radar-card::before { display: none !important; }

/* 11) Ajustes finales */
/* a) Logos de partners/ecosistema homogéneos en teal (fuera colores dispares) */
html.v2 .partner-logo-box,
html.v2 .partner-logo-box *,
html.v2 .partner-logo-box strong,
html.v2 .partner-logo-box small { color: var(--teal-deep) !important; }

/* b) Value cards del home: todas del mismo tamaño */
html.v2 .values-flip { align-items: stretch !important; }
html.v2 .values-flip .vflip { height: auto !important; }
html.v2 .values-flip .vflip-inner { height: 100% !important; }
html.v2 .values-flip .vflip-back { height: 100% !important; box-sizing: border-box; }

/* c) Tarjetas portada de portfolio (en TODAS las hojas): texto legible + logos alineados */
html.v2 .pf-cover .portfolio-card::after {
  background: linear-gradient(180deg, rgba(15,36,45,.1) 0%, rgba(15,36,45,.55) 48%, rgba(15,36,45,.96) 100%) !important;
}
html.v2 .pf-cover .portfolio-name { text-shadow: 0 2px 14px rgba(0,0,0,.7), 0 1px 3px rgba(0,0,0,.5) !important; }
/* Tag de estrategia + año: chip oscuro (un pelín más) para que siempre se lea */
html.v2 .pf-cover .portfolio-fund-tag {
  display: inline-block !important;
  align-self: flex-start !important;
  background: rgba(13,33,41,.58) !important;
  color: #f2dda2 !important;
  padding: .22rem .6rem !important;
  border-radius: 3px !important;
  text-shadow: none !important;
  text-transform: none !important;
  letter-spacing: .02em !important;
  font-size: .66rem !important;
}
/* Logo arriba a la izquierda, EXACTAMENTE el mismo tamaño en todas las tarjetas */
html.v2 .pf-cover .portfolio-card .portfolio-logo {
  position: absolute !important;
  top: 1.4rem !important; left: 1.5rem !important;
  width: 58px !important; height: 58px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  padding: .4rem !important; box-sizing: border-box !important;
  margin: 0 !important; z-index: 3 !important;
}
html.v2 .pf-cover .portfolio-card .portfolio-logo-link {
  width: 100% !important; height: 100% !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
}
html.v2 .pf-cover .portfolio-card .portfolio-logo img {
  max-width: 100% !important; max-height: 100% !important;
  width: auto !important; height: auto !important; object-fit: contain !important;
}
html.v2 .pf-cover .portfolio-card .portfolio-logo-fallback {
  font-size: 1.1rem !important; font-weight: 700 !important; line-height: 1 !important;
}
html.v2 .ibist-pyramid .ibist-radar .ibr-num { display: none !important; }
html.v2 .ibist-pyramid .ibist-radar .ibr-lbl {
  fill: #ffffff !important; font-size: 15px !important; letter-spacing: .14em !important;
}
html.v2 .ibist-pyramid .ibist-radar polygon[fill="none"],
html.v2 .ibist-pyramid .ibist-radar line { stroke: rgba(255,255,255,.3) !important; }
html.v2 .ibist-pyramid .ibist-radar polygon:nth-of-type(4) { fill: #E8C672 !important; fill-opacity: .32 !important; }
html.v2 .ibist-pyramid .ibist-radar polygon:nth-of-type(5) { fill: #E8C672 !important; fill-opacity: .6 !important; }
html.v2 .ibist-pyramid .ibist-radar polygon:nth-of-type(6) { fill: #f2dda2 !important; fill-opacity: .95 !important; }
html.v2 .ibist-pyramid .ibist-radar circle { fill: #E8C672 !important; }


/* ── Estrategias como tarjetas visuales (sustituyen a las tablas tipo PPT) ── */
html.v2 .strat-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; margin:2rem 0 1rem; }
@media(max-width:800px){ html.v2 .strat-cards{ grid-template-columns:1fr; } }
html.v2 .strat-cards.one { grid-template-columns:1fr; max-width:820px; }
html.v2 .strat-card { position:relative; background:var(--white); border:1px solid var(--border); border-top:3px solid var(--teal); padding:1.7rem 1.7rem 1.5rem; transition:transform .25s ease, box-shadow .25s ease; }
html.v2 .strat-card[data-clickable]{ cursor:pointer; }
html.v2 .strat-card:hover{ transform:translateY(-4px); box-shadow:0 18px 44px rgba(45,88,104,.14); border-top-color:var(--gold-dark); }
html.v2 .strat-card-eyebrow{ font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--teal); font-weight:700; margin-bottom:.55rem; }
html.v2 .strat-card-title{ font-family:'FS Sally',Georgia,serif; font-size:1.3rem; color:var(--teal-dark); margin:0 0 1.2rem; line-height:1.2; padding-right:5.5rem; }
html.v2 .strat-card-status{ position:absolute; top:1.7rem; right:1.7rem; }
html.v2 .strat-specs{ display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.4rem; }
html.v2 .strat-spec{ display:flex; flex-direction:column; gap:.2rem; }
html.v2 .strat-spec .k{ font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
html.v2 .strat-spec .v{ font-size:.92rem; color:var(--teal-dark); font-weight:600; line-height:1.35; }
html.v2 .strat-card-cta{ margin-top:1.3rem; font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--teal); display:inline-flex; align-items:center; gap:.45rem; }
html.v2 .strat-card:hover .strat-card-cta{ color:var(--gold-dark); }


/* ── Press releases (News) ── */
html.v2 .press-list{ display:flex; flex-direction:column; border-top:1px solid var(--border); margin-top:.5rem; }
html.v2 .press-item{ display:flex; align-items:center; gap:1.5rem; padding:1.35rem .2rem; border-bottom:1px solid var(--border); text-decoration:none; transition:padding .22s ease, background .22s ease; }
html.v2 .press-item:hover{ padding-left:.8rem; background:var(--light-bg); }
html.v2 .press-date{ flex:0 0 92px; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
html.v2 .press-body{ flex:1; }
html.v2 .press-tag{ display:inline-block; font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; color:var(--teal); font-weight:700; margin-bottom:.3rem; }
html.v2 .press-body h3{ font-family:'FS Sally',Georgia,serif; font-size:1.05rem; color:var(--teal-dark); font-weight:500; line-height:1.3; margin:0; }
html.v2 .press-arrow{ flex:0 0 auto; color:var(--teal); font-size:.8rem; font-weight:600; letter-spacing:.06em; white-space:nowrap; }
html.v2 .press-item:hover .press-arrow{ color:var(--gold-dark); }
@media(max-width:640px){ html.v2 .press-item{ flex-wrap:wrap; gap:.35rem; } html.v2 .press-date{ flex-basis:100%; } html.v2 .press-arrow{ flex-basis:100%; } }


/* ── Estrategia (sub-tab de cada fondo): fila por fondo en vez de tarjeta ── */
html.v2 .strat-cards.strat-rows{ display:flex; flex-direction:column; gap:.85rem; grid-template-columns:none; max-width:none; margin:1.5rem 0 1rem; }
html.v2 .strat-rows .strat-card{ border:1px solid var(--border); border-left:3px solid var(--teal); padding:1.2rem 3.4rem 1.2rem 1.5rem; display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem 1.6rem; }
html.v2 .strat-rows .strat-card:hover{ transform:none; box-shadow:0 8px 22px rgba(45,88,104,.08); border-left-color:var(--gold-dark); border-top-color:var(--border); }
html.v2 .strat-rows .strat-card-eyebrow{ order:1; flex:0 0 100%; margin:0 0 .5rem; }
html.v2 .strat-rows .strat-card-title{ order:2; flex:0 0 240px; margin:0; padding:0; font-size:1.1rem; }
html.v2 .strat-rows .strat-specs{ order:3; flex:1 1 320px; display:flex; flex-wrap:wrap; gap:.5rem 1.7rem; }
html.v2 .strat-rows .strat-card-status{ order:4; position:absolute; top:1.2rem; right:1.5rem; }
html.v2 .strat-rows .strat-card-cta{ display:none; }
@media(max-width:640px){ html.v2 .strat-rows .strat-card-title{ flex-basis:100%; margin-bottom:.6rem; } }


/* ── Objetivos de impacto como tarjetas con foto (una por objetivo) ── */
html.v2 .obj-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; margin-top:1.25rem; }
@media(max-width:900px){ html.v2 .obj-cards{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:640px){ html.v2 .obj-cards{ grid-template-columns:1fr 1fr; } }
html.v2 .obj-card{ position:relative; min-height:140px; display:flex; align-items:flex-end; padding:1rem 1.1rem; overflow:hidden; border:1px solid var(--border); }
html.v2 .obj-card::before{ content:""; position:absolute; inset:0; background-position:center; background-size:cover; background-repeat:no-repeat; background-image:var(--obj-img); transition:transform .5s ease; }
html.v2 .obj-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,36,45,.12) 0%, rgba(15,36,45,.5) 52%, rgba(15,36,45,.9) 100%); }
html.v2 .obj-card:hover::before{ transform:scale(1.06); }
html.v2 .obj-card .obj-name{ position:relative; z-index:2; color:#fff; font-family:'FS Sally',Georgia,serif; font-size:1.08rem; line-height:1.25; text-shadow:0 2px 14px rgba(0,0,0,.6); }


/* ── Impact: homogeneizar colores (fuera rojos/azules de marca sueltos) ── */
html.v2 #page-impact .toolkit-tile-logo, html.v2 #page-impact .toolkit-tile-logo *,
html.v2 #page-impact .partner-logo-box, html.v2 #page-impact .partner-logo-box *,
html.v2 #page-impact .chair-inst-logo, html.v2 #page-impact .chair-inst-logo * { color: var(--teal-deep) !important; }


/* ── Objetivos de impacto como circulos con foto (misma anchura de fila) ── */
html.v2 .obj-circles{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:1.6rem; max-width:780px; margin:2rem auto .5rem; }
html.v2 .obj-circle{ text-align:center; min-width:0; }
html.v2 .obj-circle .oc-photo{ width:100%; max-width:170px; aspect-ratio:1/1; border-radius:50%; margin:0 auto .9rem; background-size:cover; background-position:center; box-shadow:0 12px 30px rgba(45,88,104,.2); position:relative; }
html.v2 .obj-circle .oc-photo::after{ content:""; position:absolute; inset:0; border-radius:50%; box-shadow:inset 0 0 0 3px rgba(255,255,255,.9), 0 0 0 1px var(--border); }
html.v2 .obj-circle .oc-name{ font-family:'FS Sally',Georgia,serif; font-size:1.05rem; color:var(--teal-dark); line-height:1.3; }
@media(max-width:640px){ html.v2 .obj-circles{ grid-auto-flow:row; grid-template-columns:1fr 1fr; grid-auto-columns:auto; } }
/* ── Sub-tabs de estrategia: todas las tablas con columnas de igual ancho ── */
html.v2 table.solutions-table{ table-layout:fixed; }
html.v2 table.solutions-table thead th:nth-child(1), html.v2 table.solutions-table tbody td:nth-child(1){ width:14%; }
html.v2 table.solutions-table thead th:nth-child(2), html.v2 table.solutions-table tbody td:nth-child(2){ width:17%; }
html.v2 table.solutions-table thead th:nth-child(3), html.v2 table.solutions-table tbody td:nth-child(3){ width:11%; }
html.v2 table.solutions-table thead th:nth-child(4), html.v2 table.solutions-table tbody td:nth-child(4){ width:9%; }
html.v2 table.solutions-table thead th:nth-child(5), html.v2 table.solutions-table tbody td:nth-child(5){ width:8%; }
html.v2 table.solutions-table thead th:nth-child(6), html.v2 table.solutions-table tbody td:nth-child(6){ width:10%; }
html.v2 table.solutions-table thead th:nth-child(7), html.v2 table.solutions-table tbody td:nth-child(7){ width:14%; }
html.v2 table.solutions-table thead th:nth-child(8), html.v2 table.solutions-table tbody td:nth-child(8){ width:7%; }
html.v2 table.solutions-table thead th:nth-child(9), html.v2 table.solutions-table tbody td:nth-child(9){ width:10%; }


/* ── Objetivos: circulos mas grandes, ocupando todo el largo ── */
html.v2 .obj-circles{ max-width:none !important; gap:2rem; }
html.v2 .obj-circle .oc-photo{ max-width:none !important; }
/* ── LinkedIn solo como icono arriba-derecha de cada tarjeta de persona ── */
html.v2 .team-member.tm-v2 .team-linkedin{
  position:absolute; top:.85rem; right:.85rem; z-index:7; margin:0;
  width:28px; height:28px; border-radius:50%; background:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  color:#0A66C2; box-shadow:0 2px 8px rgba(0,0,0,.18);
}
html.v2 .team-member.tm-v2 .team-linkedin svg{ width:15px; height:15px; }


/* ── Overlay de experiencia: crece para que SIEMPRE se vea el Former ── */
html.v2 .tm-reveal{ bottom:auto !important; height:auto !important; min-height:100% !important; overflow:visible !important; box-shadow:0 20px 50px rgba(15,36,45,.28) !important; }
html.v2 .team-member.tm-v2:hover, html.v2 .team-member.tm-v2:focus-within{ overflow:visible !important; z-index:20 !important; }


/* ── Overlay de experiencia: tarjetas del MISMO tamano, con scroll interno ── */
html.v2 .tm-reveal{ top:0!important; right:0!important; bottom:0!important; left:0!important; height:auto!important; min-height:0!important; overflow-y:auto!important; overflow-x:hidden!important; box-shadow:none!important; }
html.v2 .team-member.tm-v2{ min-height:320px!important; }
html.v2 .team-member.tm-v2:hover, html.v2 .team-member.tm-v2:focus-within{ overflow:hidden!important; z-index:5!important; }
html.v2 .tm-reveal::-webkit-scrollbar{ width:6px; }
html.v2 .tm-reveal::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.4); border-radius:3px; }


/* ── Tarjetas de persona: TODAS el mismo tamano (scroll interno si hace falta) ── */
html.v2 .team-member.tm-v2{ height:360px!important; min-height:0!important; }
html.v2 .team-grid .team-member.tm-v2{ align-self:start!important; }
/* Equipo dentro de cada estrategia: identico a la pagina Team (sin bullets, ficha modal, mismo tamano) */
html.v2 .strategy-team-grid{ gap:1.5rem!important; }
html.v2 .strategy-team-grid .team-member.tm-v2 .tm-reveal{ display:none!important; }
html.v2 .strategy-team-grid .team-member.tm-v2{ cursor:pointer!important; }


/* ── Case studies en 2 secciones (impacto + academic case) ── */
html.v2 .cs2-grid{ grid-template-columns:1fr !important; gap:1.5rem !important; }
html.v2 .case-study-card.cs2{ text-align:left; }
html.v2 .cs2 .cs2-name{ display:flex; align-items:baseline; gap:1rem; flex-wrap:wrap; margin-bottom:.4rem; }
html.v2 .cs2 .cs2-name h3{ margin:0; }
html.v2 .cs2 .cs2-intro{ font-size:.9rem; color:var(--muted); line-height:1.55; margin:0 0 1.1rem; }
html.v2 .cs2 .cs2-sections{ display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
@media(max-width:720px){ html.v2 .cs2 .cs2-sections{ grid-template-columns:1fr; } }
html.v2 .cs2 .cs2-sec{ background:var(--light-bg); border-top:3px solid var(--teal); padding:1.1rem 1.2rem; }
html.v2 .cs2 .cs2-sec.cs2-academic{ border-top-color:var(--gold-dark); }
html.v2 .cs2 .cs2-sec-title{ display:flex; justify-content:space-between; align-items:center; gap:.5rem; font-family:'FS Sally',Georgia,serif; font-size:1rem; color:var(--teal-dark); margin-bottom:.7rem; }
html.v2 .cs2 .cs2-partner{ font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-dark); font-weight:700; white-space:nowrap; }
html.v2 .cs2 .cs2-sec ul{ list-style:none; padding:0; margin:0; font-size:.84rem; }
html.v2 .cs2 .cs2-sec li{ padding:.28rem 0 .28rem 1rem; position:relative; line-height:1.45; color:var(--teal-dark); }
html.v2 .cs2 .cs2-sec li::before{ content:'•'; position:absolute; left:0; color:var(--teal); font-weight:700; }
html.v2 .cs2 .cs2-sec p{ font-size:.84rem; line-height:1.55; margin:0; color:var(--teal-dark); }


/* ── Overlay compacto para que el Former quepa sin cortarse ── */
html.v2 .team-member.tm-v2{ height:320px!important; }
html.v2 .tm-reveal{ padding:1rem 1.05rem!important; }
html.v2 .tm-reveal .tm-reveal-head{ margin-bottom:.4rem!important; padding-bottom:.35rem!important; }
html.v2 .tm-reveal .tm-reveal-name{ font-size:.92rem!important; }
html.v2 .tm-reveal .tm-reveal-role{ font-size:.67rem!important; }
html.v2 .tm-reveal .tm-bullets{ font-size:.72rem!important; line-height:1.3!important; margin:0 0 .2rem!important; }
html.v2 .tm-reveal .tm-bullets li{ margin-bottom:.1rem!important; padding-left:.8rem!important; }
html.v2 .tm-reveal .tm-former-label{ margin:.35rem 0 .2rem!important; font-size:.72rem!important; }


/* ── FIX DEFINITIVO Former: overlay crece al hover (todo visible, sin hueco) ── */
html.v2 .team-member.tm-v2{ overflow:hidden!important; }
html.v2 .tm-reveal{ top:0!important; left:0!important; right:0!important; bottom:auto!important; height:auto!important; min-height:100%!important; overflow:visible!important; box-shadow:0 22px 50px rgba(15,36,45,.3)!important; }
html.v2 .team-member.tm-v2:hover, html.v2 .team-member.tm-v2:focus-within{ overflow:visible!important; z-index:30!important; }


/* ── Tarjetas de persona: MISMO tamano en todas las tabs, scroll interno (no crecen) ── */
html.v2 .team-member.tm-v2{ height:320px!important; overflow:hidden!important; }
html.v2 .team-member.tm-v2:hover, html.v2 .team-member.tm-v2:focus-within{ overflow:hidden!important; z-index:5!important; }
html.v2 .tm-reveal{ top:0!important; right:0!important; bottom:0!important; left:0!important; height:auto!important; min-height:0!important; overflow-y:auto!important; overflow-x:hidden!important; box-shadow:none!important; }
html.v2 .tm-reveal::-webkit-scrollbar{ width:6px; }
html.v2 .tm-reveal::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.45); border-radius:3px; }
/* ── Objetivos (SAF/FESE): al pasar el raton, bullets de en que consiste ── */
html.v2 .obj-circle .oc-photo{ position:relative; }
html.v2 .obj-circle .oc-reveal{ position:absolute; inset:0; border-radius:50%; background:rgba(13,33,41,.93); color:#fff; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:.15rem; opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease; padding:1.4rem; text-align:center; }
html.v2 .obj-circle:hover .oc-reveal, html.v2 .obj-circle:focus-within .oc-reveal{ opacity:1; visibility:visible; }
html.v2 .obj-circle .oc-reveal ul{ list-style:none; margin:0; padding:0; }
html.v2 .obj-circle .oc-reveal li{ font-size:.72rem; line-height:1.25; padding:.14rem 0; color:#fff; }


/* ═══ AUTORIDAD FINAL: tarjetas de persona idénticas en TODAS las tabs + overlay sin corte ═══ */
html.v2 .team-member.tm-v2{ height:320px!important; overflow:hidden!important; padding:1.5rem 1.25rem!important; box-sizing:border-box!important; }
html.v2 .team-member.tm-v2:hover, html.v2 .team-member.tm-v2:focus-within{ overflow:hidden!important; z-index:5!important; }
html.v2 .team-member.tm-v2 .team-photo{ width:120px!important; height:120px!important; margin:0 auto .8rem!important; }
html.v2 .team-member.tm-v2 .team-photo img{ width:100%!important; height:100%!important; object-fit:cover!important; }
html.v2 .team-member.tm-v2 .team-name{ font-size:1.18rem!important; }
html.v2 .team-member.tm-v2 .team-role{ font-size:.9rem!important; }
html.v2 .tm-reveal{ top:0!important;right:0!important;bottom:0!important;left:0!important; height:auto!important; min-height:0!important; overflow-y:auto!important; overflow-x:hidden!important; padding:.85rem .95rem 1rem!important; box-shadow:none!important; }
html.v2 .tm-reveal .tm-reveal-head{ margin-bottom:.3rem!important; padding-bottom:.28rem!important; }
html.v2 .tm-reveal .tm-reveal-name{ font-size:.88rem!important; }
html.v2 .tm-reveal .tm-reveal-role{ font-size:.63rem!important; }
html.v2 .tm-reveal .tm-bullets{ font-size:.67rem!important; line-height:1.24!important; margin:0 0 .12rem!important; }
html.v2 .tm-reveal .tm-bullets li{ margin-bottom:.06rem!important; padding-left:.72rem!important; }
html.v2 .tm-reveal .tm-former-label{ margin:.28rem 0 .12rem!important; font-size:.67rem!important; }


/* Foto de persona: NUNCA se encoge (mismo circulo 120 en todas las tabs, incl. clones flex) */
html.v2 .team-member.tm-v2 .team-photo{ flex:0 0 120px!important; width:120px!important; height:120px!important; min-height:120px!important; max-height:120px!important; aspect-ratio:1/1!important; align-self:center!important; }


/* Rejilla comite/estrategia = copia de Team: 4 por fila, mismo ancho */
html.v2 .committee-team-grid{ grid-template-columns:repeat(4,1fr)!important; gap:2rem!important; margin-left:0!important; margin-right:0!important; }
@media(max-width:768px){ html.v2 .committee-team-grid{ grid-template-columns:repeat(2,1fr)!important; margin-left:0!important; margin-right:0!important; } }





/* ═══ Nueva pagina de Impacto ═══ */
html.v2 .imp-def{ border:none!important; margin:2rem auto 0; max-width:920px; text-align:center; padding:0; }
html.v2 .imp-def p{ font-family:'FS Sally',Georgia,serif; font-size:1.75rem; line-height:1.45; color:var(--teal-dark); margin:0; }
html.v2 .imp-def em{ color:var(--teal); font-style:italic; }
html.v2 .imp-def cite{ display:block; margin-top:1.3rem; font-style:normal; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
html.v2 .imp-figs{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.5rem; }
@media(max-width:820px){ html.v2 .imp-figs{ grid-template-columns:1fr; } }
html.v2 .imp-fig-card{ background:#fff; border:1px solid var(--border); border-top:3px solid var(--teal); padding:1.7rem 1.5rem; }
html.v2 .imp-fig-strat{ font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--teal); font-weight:700; margin-bottom:1.1rem; }
html.v2 .imp-fig{ padding:.75rem 0; border-top:1px solid var(--border); }
html.v2 .imp-fig:first-of-type{ border-top:none; padding-top:0; }
html.v2 .imp-fig-num{ font-family:'FS Sally',Georgia,serif; font-size:1.85rem; color:var(--teal-dark); line-height:1.05; }
html.v2 .imp-fig-lbl{ font-size:.82rem; color:var(--muted); margin-top:.3rem; line-height:1.4; }
html.v2 .imp-wheel-wrap{ text-align:center; margin:2.5rem 0 .5rem; }
html.v2 .imp-wheel{ width:min(440px,92%); height:auto; }
html.v2 .imp-wheel .wheel-lbl{ fill:#fff; font-family:'FS Sally',Georgia,serif; font-size:16px; }
html.v2 .imp-wheel .wheel-center{ fill:var(--teal-dark); font-family:'FS Sally',Georgia,serif; font-size:16px; }
html.v2 .imp-phases{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; margin-top:1.5rem; }
@media(max-width:820px){ html.v2 .imp-phases{ grid-template-columns:1fr 1fr; } }
html.v2 .imp-phase{ background:#fff; border:1px solid var(--border); border-top:3px solid var(--teal); padding:1.2rem 1.2rem; }
html.v2 .imp-phase h4{ font-family:'FS Sally',Georgia,serif; color:var(--teal-dark); font-size:1.02rem; margin:0 0 .55rem; }
html.v2 .imp-phase ul{ list-style:none; margin:0; padding:0; }
html.v2 .imp-phase li{ font-size:.8rem; color:var(--muted); padding:.22rem 0 .22rem .9rem; position:relative; line-height:1.4; }
html.v2 .imp-phase li::before{ content:'\2022'; position:absolute; left:0; color:var(--teal); font-weight:700; }
html.v2 .imp-carried{ text-align:center; max-width:820px; margin:2.25rem auto 0; font-family:'FS Sally',Georgia,serif; font-size:1.3rem; color:var(--teal-dark); line-height:1.45; padding-top:1.75rem; border-top:1px solid var(--border); }
html.v2 .sp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2rem; }
@media(max-width:820px){ html.v2 .sp-grid{ grid-template-columns:1fr; } }
html.v2 .sp-card{ background:#fff; border:1px solid var(--border); border-left:3px solid var(--teal); padding:1.6rem 1.5rem; }
html.v2 .sp-card h3{ font-family:'FS Sally',Georgia,serif; color:var(--teal-dark); font-size:1.12rem; margin:0 0 .55rem; }
html.v2 .sp-card p{ font-size:.88rem; color:var(--muted); line-height:1.6; margin:0; }
html.v2 .acad-cta .acad-cta-inner{ display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; background:var(--teal-deep,#1f3e49); padding:2.75rem; }
html.v2 .acad-cta .acad-cta-inner > div{ flex:1 1 360px; }
html.v2 .acad-cta .acad-cta-inner .section-tag{ color:var(--accent-warm,#E8C672)!important; }
html.v2 .acad-cta .acad-cta-inner .section-tag::before{ background:var(--accent-warm,#E8C672)!important; }
html.v2 .acad-cta .acad-cta-inner .section-title, html.v2 .acad-cta .acad-cta-inner .section-lead{ color:#fff!important; }
html.v2 .acad-cta .acad-cta-inner .section-title em{ color:var(--accent-warm,#E8C672)!important; }


/* Rueda: etiquetas dentro */
html.v2 .imp-wheel{ width:min(660px,98%)!important; }
html.v2 .imp-wheel .act-lbl{ fill:var(--teal-dark); font-family:'Inter',sans-serif; font-size:10.5px; }
html.v2 .imp-wheel .ph-lbl{ fill:#fff; font-family:'FS Sally',Georgia,serif; font-size:14px; }
html.v2 .imp-wheel .wheel-center{ fill:var(--teal-dark); font-family:'FS Sally',Georgia,serif; font-size:14px; }
/* IBIST en Impacto: sin recuadro blanco */
html.v2 #page-impact .ibist-radar-card{ background:transparent!important; background-color:transparent!important; border:none!important; box-shadow:none!important; padding:0!important; animation:none!important; transition:none!important; }
html.v2 #page-impact .ibist-radar-card::before{ display:none!important; }
/* Academia CTA: fondo claro (no oscuro) */
html.v2 .acad-cta .acad-cta-inner{ background:var(--light-bg,#faf7f1)!important; border:1px solid var(--border); }
html.v2 .acad-cta .acad-cta-inner .section-tag{ color:var(--teal)!important; }
html.v2 .acad-cta .acad-cta-inner .section-tag::before{ background:var(--teal)!important; }
html.v2 .acad-cta .acad-cta-inner .section-title{ color:var(--teal-dark)!important; }
html.v2 .acad-cta .acad-cta-inner .section-title em{ color:var(--teal)!important; }
/* Social procurement: 2 verticales + asistencia tecnica */
html.v2 .sp-verticals{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2rem; }
@media(max-width:820px){ html.v2 .sp-verticals{ grid-template-columns:1fr; } }
html.v2 .sp-vert{ background:#fff; border:1px solid var(--border); border-top:3px solid var(--teal); padding:1.5rem 1.5rem; }
html.v2 .sp-vert h3{ font-family:'FS Sally',Georgia,serif; color:var(--teal-dark); font-size:1.1rem; margin:0 0 .8rem; }
html.v2 .sp-vert ul{ list-style:none; margin:0; padding:0; }
html.v2 .sp-vert li{ font-size:.85rem; color:var(--muted); padding:.35rem 0 .35rem 1rem; position:relative; line-height:1.5; }
html.v2 .sp-vert li::before{ content:'\2022'; position:absolute; left:0; color:var(--teal); font-weight:700; }
html.v2 .sp-ta{ background:var(--light-bg,#faf7f1); border-left:3px solid var(--gold-dark,#a88c44); padding:1.4rem 1.5rem; margin-top:1.5rem; }
html.v2 .sp-ta-tag{ font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dark,#a88c44); font-weight:700; margin-bottom:.5rem; }
html.v2 .sp-ta p{ font-size:.88rem; color:var(--teal-dark); line-height:1.6; margin:0; }


/* Rueda mas grande */
html.v2 .imp-wheel{ width:min(1240px,100%)!important; }
html.v2 .imp-wheel-wrap{ margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
html.v2 .imp-wheel-wrap{ margin:2.5rem 0 1rem; }
/* Logos de certificaciones centrados */
html.v2 #page-impact .partner-logos-grid{ display:flex!important; flex-wrap:wrap; justify-content:center; gap:1.5rem; }
html.v2 #page-impact .partner-logo-box{ flex:0 0 auto; width:170px; }


/* Rueda v2 */
html.v2 .imp-wheel{ width:min(1400px,100%)!important; }
html.v2 .imp-wheel .act-lbl{ fill:var(--teal-dark); font-family:'Inter',sans-serif; font-size:13px; font-weight:400; }
html.v2 .imp-wheel .ph-lbl{ fill:var(--teal-dark); font-family:'FS Sally',Georgia,serif; font-size:17px; }
/* Quitar breadcrumbs en todas las hojas */
html.v2 .breadcrumb{ display:none !important; }


/* Sin fotos en las cabeceras de seccion (solo el hero del home) */
html.v2 .page .page-header{ background:var(--cream)!important; }
html.v2 .page .page-header::before, html.v2 .page .page-header::after{ display:none!important; background:none!important; content:none!important; }
html.v2 .page .page-header h1, html.v2 .page .page-header .page-header-desc{ color:var(--teal-dark)!important; text-shadow:none!important; }
html.v2 .page .page-header h1 em{ color:var(--teal)!important; }
html.v2 .fund-hero-banner, html.v2 .fund-hero-banner .fund-hero-inner h1, html.v2 .fund-hero-banner .fund-hero-inner p{ color:var(--teal-dark)!important; }
html.v2 .fund-hero-banner{ background:var(--cream)!important; }
html.v2 .fund-hero-banner .fund-hero-inner h1 em{ color:var(--teal)!important; }


html.v2 #page-team .page-header, html.v2 #page-academia .page-header, html.v2 #page-solutions .page-header, html.v2 #page-fund-ibdie .page-header, html.v2 #page-fund-ibsaf .page-header, html.v2 #page-fund-ibid .page-header, html.v2 #page-other-strategies .page-header, html.v2 #page-impact .page-header, html.v2 #page-portfolio .page-header, html.v2 #page-news .page-header, html.v2 #page-contact .page-header{ background:var(--cream)!important; }
html.v2 #page-team .page-header::before, html.v2 #page-team .page-header::after{ display:none!important; background:none!important; }
html.v2 #page-academia .page-header::before, html.v2 #page-academia .page-header::after{ display:none!important; background:none!important; }
html.v2 #page-solutions .page-header::before, html.v2 #page-solutions .page-header::after{ display:none!important; background:none!important; }
html.v2 #page-fund-ibdie .page-header::before, html.v2 #page-fund-ibdie .page-header::after{ display:none!important; background:none!important; }
html.v2 #page-fund-ibsaf .page-header::before, html.v2 #page-fund-ibsaf .page-header::after{ display:none!important; background:none!important; }
html.v2 #page-fund-ibid .page-header::before, html.v2 #page-fund-ibid .page-header::after{ display:none!important; background:none!important; }
html.v2 #page-other-strategies .page-header::before, html.v2 #page-other-strategies .page-header::after{ display:none!important; background:none!important; }
html.v2 #page-impact .page-header::before, html.v2 #page-impact .page-header::after{ display:none!important; background:none!important; }
html.v2 #page-portfolio .page-header::before, html.v2 #page-portfolio .page-header::after{ display:none!important; background:none!important; }
html.v2 #page-news .page-header::before, html.v2 #page-news .page-header::after{ display:none!important; background:none!important; }
html.v2 #page-contact .page-header::before, html.v2 #page-contact .page-header::after{ display:none!important; background:none!important; }


/* Investment strategy: lista -> rejilla de fichas visuales */
html.v2 .info-card .info-list{ display:grid!important; grid-template-columns:repeat(2,1fr); gap:1rem; list-style:none; padding:0; margin:1.25rem 0 0; }
@media(max-width:640px){ html.v2 .info-card .info-list{ grid-template-columns:1fr; } }
html.v2 .info-card .info-list li{ background:var(--light-bg,#faf7f1); border:1px solid var(--border); border-left:3px solid var(--teal); padding:.95rem 1.15rem; display:block; font-size:.9rem; color:var(--teal-dark); }
html.v2 .info-card .info-list li strong{ display:block; font-size:.6rem; letter-spacing:.13em; text-transform:uppercase; color:var(--teal); font-weight:700; margin-bottom:.35rem; }


html.v2 .os-metrics{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin:1rem 0 0; }
@media(max-width:720px){ html.v2 .os-metrics{ grid-template-columns:1fr 1fr; } }
html.v2 .os-metrics .fund-metric{ background:var(--light-bg,#faf7f1); border-top:3px solid var(--teal); padding:1rem 1.1rem; text-align:left; }
html.v2 .os-metrics .fund-metric-value{ font-family:'FS Sally',Georgia,serif; font-size:1.4rem; color:var(--teal-dark); line-height:1.05; }
html.v2 .os-metrics .fund-metric-label{ font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:.3rem; }


/* Equipo: sin CV al hover (solo en la pagina Team), ficha modal */
html.v2 #page-team .team-member.tm-v2{ cursor:pointer; }
html.v2 #page-team .team-member.tm-v2 .tm-reveal{ display:none!important; }
.team-modal{ position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; padding:2rem; background:rgba(15,36,45,.6); }
.team-modal.open{ display:flex; }
.team-modal-card{ background:#fff; max-width:600px; width:100%; max-height:88vh; overflow-y:auto; display:grid; grid-template-columns:1fr; box-shadow:0 30px 80px rgba(15,36,45,.4); }
.team-modal-card .tm-modal-photo{ background:var(--cream,#f4efe6); width:100%; height:460px; }
.team-modal-card .tm-modal-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 20%; display:block; }
.team-modal-card .tm-modal-initials{ width:100%; height:460px; display:flex; align-items:center; justify-content:center; font-family:'FS Sally',Georgia,serif; font-size:3.5rem; color:var(--teal); background:linear-gradient(135deg,#ebe4d4,#d4cabc); }
.team-modal-card .tm-modal-body{ padding:2.2rem 2.3rem; }
.team-modal-card .tm-modal-body h3{ font-family:'FS Sally',Georgia,serif; font-size:1.55rem; color:var(--teal-dark); margin:0 0 .35rem; }
.team-modal-card .tm-modal-role{ font-size:.8rem; letter-spacing:.05em; color:var(--teal); margin-bottom:1.3rem; }
.team-modal-card .tm-modal-body p{ font-size:.95rem; line-height:1.7; color:var(--muted); margin:0; }
.tm-modal-close{ position:absolute; top:1.3rem; right:1.6rem; background:none; border:none; font-size:2rem; color:#fff; cursor:pointer; line-height:1; z-index:2; }


/* Hero un poco mas luminoso */
html.v2.fx-ready .hero.hero-real.hero-editorial::before{ filter:brightness(1.16) saturate(.98) contrast(1.02)!important; }
html.v2.fx-ready .hero.hero-real.hero-editorial::after, html.v2 .hero.hero-real.hero-editorial::after{ background:linear-gradient(180deg, rgba(15,36,45,.14) 0%, rgba(15,36,45,.24) 55%, rgba(15,36,45,.52) 100%)!important; }


/* Paginas de detalle de participada (Agri) */
html.v2 .co-back{ display:inline-block; margin-bottom:1rem; font-size:.8rem; letter-spacing:.06em; color:var(--teal); cursor:pointer; }
html.v2 .co-back:hover{ color:var(--teal-dark); }
html.v2 .co-tags{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-top:1.2rem; }
html.v2 .co-tags span{ display:inline-flex; align-items:center; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--teal); font-weight:700; background:rgba(67,124,144,.1); padding:.35rem .7rem; border-radius:999px; }
html.v2 .co-grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:1.5rem; margin-top:1.5rem; }
@media(max-width:820px){ html.v2 .co-grid{ grid-template-columns:1fr; } }
html.v2 .co-grid .info-card p{ font-size:.92rem; line-height:1.65; color:var(--muted); }
html.v2 .co-list{ list-style:none; margin:1rem 0 0; padding:0; }
html.v2 .co-list li{ font-size:.86rem; color:var(--muted); padding:.3rem 0 .3rem 1rem; position:relative; line-height:1.5; }
html.v2 .co-list li::before{ content:'\2022'; position:absolute; left:0; color:var(--teal); font-weight:700; }
/* Tarjeta con 2 logos (Airos + Esgir) */
html.v2 .pf-cover .portfolio-card .portfolio-logo:has(a + a){ width:auto!important; max-width:120px!important; gap:.35rem; }


/* Cabeceras: color azul (sin foto) con texto blanco */
html.v2 #page-team .page-header, html.v2 #page-academia .page-header, html.v2 #page-solutions .page-header, html.v2 #page-fund-ibdie .page-header, html.v2 #page-fund-ibsaf .page-header, html.v2 #page-fund-ibid .page-header, html.v2 #page-other-strategies .page-header, html.v2 #page-impact .page-header, html.v2 #page-portfolio .page-header, html.v2 #page-news .page-header, html.v2 #page-contact .page-header, html.v2 #page-co-ikos .page-header, html.v2 #page-co-airos .page-header, html.v2 .page .page-header{ background:linear-gradient(135deg,#3a6576 0%,#1f3e49 100%)!important; }
html.v2 .page .page-header h1, html.v2 .page .page-header .page-header-desc{ color:#fff!important; }
html.v2 .page .page-header h1 em{ color:var(--gold,#E8C672)!important; }
html.v2 .fund-hero-banner{ background:linear-gradient(135deg,#3a6576 0%,#1f3e49 100%)!important; }
html.v2 .fund-hero-banner .fund-hero-inner h1, html.v2 .fund-hero-banner .fund-hero-inner p{ color:#fff!important; }
html.v2 .fund-hero-banner .fund-hero-inner h1 em{ color:var(--gold,#E8C672)!important; }
html.v2 .co-back{ color:rgba(255,255,255,.85)!important; }
html.v2 .co-back:hover{ color:#fff!important; }
html.v2 .co-tags span{ color:#fff!important; background:rgba(255,255,255,.16)!important; }
html.v2 .co-tags .co-tag-btn{ display:inline-flex; align-items:center; gap:.4rem; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--teal-dark)!important; background:#fff!important; padding:.4rem .8rem; border-radius:999px; cursor:pointer; text-decoration:none; box-shadow:0 2px 10px rgba(0,0,0,.18); transition:transform .2s ease, box-shadow .2s ease; }
html.v2 .co-tags .co-tag-btn::after{ content:'\2192'; font-size:.8rem; }
html.v2 .co-tags .co-tag-btn:hover{ transform:translateY(-1px); box-shadow:0 4px 16px rgba(0,0,0,.28); }
/* Footer: columnas de enlaces uniformes (Impact centrado) */
html.v2 footer .footer-inner{ grid-template-columns:1.7fr 1fr 1fr 1fr!important; }


/* Metricas de estrategia en horizontal (4 en una fila) */
html.v2 .fund-header{ display:block!important; }
html.v2 .fund-header .fund-metrics{ grid-template-columns:repeat(4,1fr)!important; margin-top:1.5rem!important; }
@media(max-width:720px){ html.v2 .fund-header .fund-metrics{ grid-template-columns:1fr 1fr!important; } }


html.v2 .co-logo-strip{ display:flex; gap:1rem; align-items:center; margin-bottom:1.6rem; flex-wrap:wrap; }
html.v2 .co-logo{ display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid var(--border); border-radius:12px; padding:.85rem 1.15rem; min-width:88px; min-height:64px; box-shadow:0 2px 10px rgba(0,0,0,.05); font-family:'FS Sally',Georgia,serif; color:var(--teal-dark); }
html.v2 .co-logo img{ height:42px; width:auto; object-fit:contain; display:block; }


html.v2 #page-contact .contact-grid{ margin-top:0!important; }


html.v2 .co-logo.co-logo-dark{ background:linear-gradient(135deg,#3a6576 0%,#1f3e49 100%); border-color:transparent; padding:.8rem 1.2rem; }
html.v2 .co-logo.co-logo-dark img{ height:40px; }


/* Cabeceras de participadas con foto de fondo (misma que su tarjeta) */
html.v2 #page-co-ikos .page-header{ background:linear-gradient(135deg,rgba(31,62,73,.82) 0%,rgba(31,62,73,.55) 100%),url('../img/greenhouse.jpg') center/cover no-repeat!important; }
html.v2 #page-co-airos .page-header{ background:linear-gradient(135deg,rgba(31,62,73,.82) 0%,rgba(31,62,73,.55) 100%),url('../img/airos.jpg') center/cover no-repeat!important; }

