/* Team page. Builds on platform.css (hero/section system). Prefix: tm-. */

.tm-i { flex:none; width:40px; height:40px; display:grid; place-items:center; border-radius:8px; background:var(--mint); color:var(--em); }
.tm-i svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- hero ---------- */
.fti-team .fp-hero-grid { padding-block:clamp(28px,3vw,44px) clamp(40px,4vw,60px); }
.fti-team .fp-hero h1 { font-size:clamp(2.75rem,5vw,4.5rem); }
.fti-team .fp-hero-visual { width:100%; max-width:520px; margin-inline:auto; }
.tm-hub .fu-body, .tm-hub svg { display:block; width:100%; height:auto; }
.tm-hub { overflow:hidden; }
@media (prefers-reduced-motion:no-preference) {
	.tm-paths path { animation:tm-dash 2.4s linear infinite; }
	@keyframes tm-dash { to { stroke-dashoffset:-24; } }
}

/* ---------- introduction ---------- */
.tm-intro { padding-block:clamp(48px,6vw,80px); }
.tm-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); align-items:start; }
.tm-intro h2 { margin:0; font-size:clamp(2rem,3.4vw,2.875rem); line-height:1.1; letter-spacing:-.03em; }
.tm-lead { margin:0 0 24px; font-size:1.1875rem; line-height:1.6; color:var(--mute); max-width:60ch; }
.tm-principles-mini { list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.tm-principles-mini li { display:flex; align-items:center; gap:14px; font-weight:650; color:var(--ink); font-size:1.0625rem; }

/* ---------- team directory grid (scales to any number of members) ---------- */
.tm-team-sec { padding-block:clamp(40px,5vw,64px); }
.tm-team-head { max-width:720px; margin-bottom:clamp(18px,2.4vw,26px); }
.tm-team-head h2 { margin:0; font-size:clamp(2rem,3.4vw,2.875rem); line-height:1.1; letter-spacing:-.03em; color:var(--ink); }
.tm-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr; gap:20px; align-items:stretch; }
.tm-card { position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid #d3e3dc; border-radius:8px; overflow:hidden; box-shadow:0 1px 2px rgba(6,40,50,.05); transition:border-color .18s, box-shadow .18s, transform .18s; }
.tm-card:hover { border-color:#5fa793; box-shadow:0 10px 22px -14px rgba(6,40,50,.35); transform:translateY(-2px); }
.tm-card:focus-within { border-color:var(--em); box-shadow:0 10px 22px -14px rgba(6,40,50,.35); }
.tm-card-photo { position:relative; aspect-ratio:4/5; overflow:hidden; background:#eef3f1; }
.tm-portrait-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 12%; display:block; }
.tm-portrait-empty { position:absolute; inset:0; display:grid; place-items:center; color:#8fb3a7; }
.tm-portrait-empty svg { width:35%; height:35%; fill:none; stroke:currentColor; stroke-width:1.2; }
.tm-card-body { display:flex; flex-direction:column; flex:1; padding:16px 18px 14px; }
.tm-card h3 { margin:0 0 3px; font-size:1.375rem; font-weight:700; line-height:1.2; letter-spacing:-.01em; color:var(--ink); overflow-wrap:anywhere; }
.tm-role { margin:0; font-size:.9375rem; font-weight:500; line-height:1.35!important; color:#3f6a5f; overflow-wrap:anywhere; }
.tm-bio { margin:10px 0 0; font-size:.875rem; line-height:1.55!important; color:var(--mute); display:-webkit-box; -webkit-line-clamp:3; line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.tm-card-links { display:flex; flex-wrap:wrap; align-items:center; gap:2px 16px; margin-top:auto; padding-top:10px; }
.tm-link { display:inline-flex; align-items:center; gap:6px; min-height:40px; font-size:.9375rem; font-weight:650; color:#076650; text-decoration:none; position:relative; z-index:2; }
.tm-link:hover { text-decoration:underline; text-underline-offset:3px; }
.tm-link svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.tm-arr { display:inline-block; transition:transform .18s; }
.tm-card:hover .tm-arr, .tm-link--profile:focus-visible .tm-arr { transform:translateX(3px); }
.tm-link--profile::after { content:''; position:absolute; inset:-9999px; }
.tm-card:has(.tm-link--profile) { cursor:pointer; }
.tm-link:focus-visible, .tm-ex-grid a:focus-visible { outline:3px solid var(--em); outline-offset:3px; border-radius:6px; }
@media (min-width:600px) { .tm-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1000px) { .tm-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width:1280px) { .tm-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (prefers-reduced-motion:reduce) { .tm-card, .tm-arr { transition:none; } .tm-card:hover, .tm-card:hover .tm-arr, .tm-link--profile:focus-visible .tm-arr { transform:none; } }

/* ---------- how the work connects (dark) ---------- */
.tm-work { padding-block:clamp(48px,6vw,80px); }
.tm-work h2, .tm-work .fp-head h2 { color:#fff; }
.tm-inputs { list-style:none; margin:0 0 32px; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.tm-inputs li { padding:16px 18px; background:rgba(15,43,59,.85); border:1px solid #1d4254; border-radius:8px; color:#eaf4f2; font-weight:600; font-size:1.0625rem; }
.tm-flow { list-style:none; margin:0 0 20px; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; position:relative; }
.tm-flow li { position:relative; display:grid; justify-items:center; gap:10px; padding:0 8px; text-align:center; color:#eaf4f2; font-weight:650; font-size:1rem; }
.tm-flow li span { position:relative; z-index:1; width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:#0f2b3b; border:1px solid #2f7d70; color:#6fd6b4; font-weight:700; box-shadow:0 0 18px rgba(24,199,155,.2); }
.tm-flow li:not(:last-child)::after { content:''; position:absolute; top:20px; left:calc(50% + 24px); right:calc(-50% + 24px); border-top:2px dashed #2f7d70; }

/* ---------- principles ---------- */
.tm-principles-sec { padding-block:clamp(48px,6vw,80px); }
.tm-pr-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.tm-pr-grid li { padding:24px; background:var(--mint-l); border:1px solid var(--line); border-radius:10px; }
.tm-pr-grid h3 { margin:16px 0 8px; font-size:1.1875rem; line-height:1.25; }
.tm-pr-grid p { margin:0; color:var(--mute); font-size:.9375rem; line-height:1.55; }
.tm-pr-grid .tm-i { background:#fff; }

/* ---------- careers strip ---------- */
.tm-careers { padding-block:clamp(32px,4vw,48px); }
.tm-careers-in { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px 32px; }
.tm-careers h2 { margin:0 0 6px; font-size:clamp(1.5rem,2.4vw,2rem); }
.tm-careers p { margin:0; color:var(--mute); }

/* ---------- explore the company ---------- */
.tm-explore { padding-block:clamp(48px,6vw,80px); }
.tm-ex-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.tm-ex-grid a { height:100%; display:flex; align-items:flex-start; gap:16px; padding:20px; background:#fff; border:1px solid var(--line); border-radius:10px; text-decoration:none; color:var(--ink); transition:border-color .18s, box-shadow .18s, transform .18s; }
.tm-ex-grid a:hover { border-color:var(--em); box-shadow:0 12px 28px -18px rgba(6,40,50,.4); transform:translateY(-2px); }
.tm-ex-t { flex:1; display:grid; gap:4px; }
.tm-ex-t strong { font-size:1.125rem; }
.tm-ex-t span { color:var(--mute); font-size:.9375rem; line-height:1.5; }
.tm-arrow { flex:none; color:var(--em); font-size:1.25rem; transition:transform .18s; }
.tm-ex-grid a:hover .tm-arrow { transform:translateX(4px); }
@media (prefers-reduced-motion:reduce) { .tm-ex-grid a, .tm-arrow { transition:none; } .tm-ex-grid a:hover, .tm-ex-grid a:hover .tm-arrow { transform:none; } }

/* ---------- closing CTA ---------- */
.tm-cta { padding-block:clamp(48px,6vw,80px); }
.tm-cta-in { display:grid; grid-template-columns:1fr auto; align-items:center; gap:32px; }
.tm-cta h2 { margin:0 0 12px; font-size:clamp(2rem,3.6vw,3rem); line-height:1.1; letter-spacing:-.03em; }
.tm-cta p { margin:0 0 24px; font-size:1.1875rem; color:var(--mute); max-width:56ch; }
.tm-cta-actions { display:flex; flex-wrap:wrap; gap:12px; }
.tm-cta-net { width:260px; height:auto; }

@media (max-width:1000px) {
	.tm-ex-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.tm-pr-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:800px) {
	.tm-intro-grid, .tm-cta-in { grid-template-columns:1fr; }
	.tm-inputs { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.tm-flow { grid-template-columns:1fr; gap:14px; }
	.tm-flow li { grid-template-columns:40px 1fr; justify-items:start; text-align:left; align-items:center; padding:0; }
	.tm-flow li:not(:last-child)::after { display:none; }
	.tm-cta-net { display:none; }
}
@media (max-width:600px) {
	.tm-ex-grid, .tm-pr-grid, .tm-inputs { grid-template-columns:1fr; }
}
.fp-sec--mint .fp-eyebrow { color:#076650!important; }
.fti-team .fp-hero-visual .fu { max-width:none; width:100%; }
