/* Teams */


    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0
    }

    :root {
      --g: #1c3a28;
      --gs: #3e7a56;
      --gl: #d4e8d8;
      --gold: #b8923e;
      --w: #fff;
      --off: #f7faf7;
      --border: #e8ede9;
      --text: #1a2e20;
      --muted: #5a7a65;
      --fh: 'Playfair Display', serif;
      --fb: 'DM Sans', sans-serif;
    }


    /* fade-up */
    .reveal {
      opacity: 0;
      transform: translateY(22px);
      transition: opacity .65s ease, transform .65s ease
    }

    .reveal.visible {
      opacity: 1;
      transform: none
    }

    /* ─────────────────────────────────
   SECTION
───────────────────────────────── */
    .team-section {
      padding: 35px 0 35px;
      border-top: 1px solid var(--border);
    }

    .page-wrap {
      max-width: 1340px;
      margin: 0 auto;
      padding: 0 clamp(20px, 5vw, 56px);
    }

    /* ── Header ── */
    .team-heading {
      text-align: center;
      margin-bottom: 56px
    }

    .team-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 3.5px;
      text-transform: uppercase;
      color: var(--gs);
    }

    .team-eyebrow::before,
    .team-eyebrow::after {
      content: '';
      display: block;
      width: 22px;
      height: 1.5px;
      background: var(--gs)
    }

    .team-heading h2 {
      font-family: var(--fh);
      font-size: clamp(26px, 3.5vw, 40px);
      color: var(--g);
      margin: 14px 0 10px;
      line-height: 1.15;
    }

    .team-heading p {
      font-size: 14px;
      color: var(--muted);
      line-height: 1.8;
      font-weight: 300;
      max-width: 520px;
      margin: 0 auto;
    }

    /* ── Grid ── */
    .team-roster {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 1px;
      background: var(--border);
    }

    /* ── Each person block ── */
    .person {
      background: var(--w);
      padding: 26px 30px 10px 30px;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      gap: 0px;
      position: relative;
      overflow: hidden;
      transition: background .3s ease;
      cursor: default;
    }

    .person:hover {
      background: var(--off)
    }

    /* animated top bar */
    .person::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: var(--gs);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform .4s ease;
    }

    .person:hover::before {
      transform: scaleX(1)
    }

    /* ── Portrait ── */
    .person-portrait {
      width: 180px;
      height: 240px;
      border-radius: 10%;
      overflow: hidden;
      flex-shrink: 0;
      border: 4px solid var(--w);
      box-shadow: 0 0 0 2px var(--border);
      transition: box-shadow .35s ease, transform .35s ease;
    }

    .person:hover .person-portrait {
      box-shadow: 0 0 0 3px var(--gs);
      transform: translateY(-5px);
    }

    .person-portrait img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform 5s ease;
    }

    .person:hover .person-portrait img {
      transform: scale(1.1)
    }

    /* ── Name ── */
    .person-name {
      font-family: var(--fh);
      font-size: 20px;
      color:#000;
      line-height: 2.2;
      text-transform:uppercase;
    }

    /* ── Dot row ── */
    .person-divider {
      display: flex;
      gap: 5px;
      align-items: center;
      margin-top: -4px;
    }

    .person-divider span {
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: var(--gl)
    }

    .person-divider span:nth-child(2) {
      width: 7px;
      height: 7px;
      background: var(--gold)
    }

    .person:hover .person-divider span:nth-child(2) {
      background: var(--gs)
    }

    /* ── Role / title ── */
    .person-title {
      font-size: 13px;
      font-weight: 700;
      color: #363636;
      letter-spacing: .3px;
      line-height: 1.55;
      padding: 0 6px;
    }

    /* ── Social link ── */
    .person-links {
      display: flex;
      gap: 8px;
      opacity: 0;
      transform: translateY(5px);
      transition: opacity .3s ease, transform .3s ease;
    }

    .person:hover .person-links {
      opacity: 1;
      transform: none
    }

    .profile-link {
      width: 30px;
      height: 30px;
      border-radius: 50%;
      background: var(--g);
      display: flex;
      align-items: center;
      justify-content: center;
      text-decoration: none;
      transition: background .2s;
    }

    .profile-link:hover {
      background: var(--gs)
    }

    .profile-link svg {
      width: 13px;
      height: 13px;
      fill: #fff
    }

    /* ─────────────────────────────────
   RESPONSIVE
───────────────────────────────── */
    /* Tablet – 3 per row */
    @media(max-width:1000px) {
      .team-roster {
        grid-template-columns: repeat(3, 1fr)
      }
    }

    /* Large phone – 2 per row */
    @media(max-width:600px) {
      .team-roster {
        grid-template-columns: repeat(1, 1fr)
      }

      .person-portrait {
        width: 100px;
        height: 100px
      }

      .person {
        padding: 28px 14px 24px;
        gap: 11px
      }

      .person-name {
        font-size: 15px
      }
    }

    /* Small phone – 1 per row */
    @media(max-width:340px) {
      .team-roster {
        grid-template-columns: 1fr
      }

      .person-portrait {
        width: 120px;
        height: 120px
      }
    }
