/* JNF Team Page — one carousel row per team */
.jnftp{
	--blue:#09487E;--blue-deep:#063257;--blue-mid:#0a4f8c;--green:#60BB48;--green-dark:#4ea23a;--green-light:#8fd178;
	--ink:#143a5c;--muted:#5e7790;--wash:#eef4f9;--line:#dbe6f0;
	--pad:clamp(16px,4vw,32px);--card-w:264px;--gap:20px;
	font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);
	max-width:1240px;margin:0 auto;padding:clamp(32px,5vw,64px) var(--pad) clamp(40px,6vw,80px);
}
.jnftp *{box-sizing:border-box}
.jnftp :where(h2,h3,p,ul){margin:0}
.jnftp :where(ul){list-style:none;padding:0}
.jnftp .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.jnftp .jnftp__intro{font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.6;color:var(--muted);max-width:62ch;margin-bottom:clamp(28px,4vw,48px)}

/* ---- row: team title left, people right ---- */
.jnftp .jnftp__row{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(32px,4vw,56px);
	padding:clamp(36px,4.5vw,56px) 0;border-top:1px solid var(--line)}
.jnftp .jnftp__row:first-of-type{border-top:0;padding-top:0}

.jnftp .jnftp__head{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}
.jnftp .jnftp__head .jnftp__title{font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(1.25rem,1.7vw,1.5rem);line-height:1.2;
	color:var(--blue);letter-spacing:-.005em;text-transform:none;margin:0;padding:0;max-width:100%;overflow-wrap:break-word}
.jnftp .jnftp__desc{font-size:.95rem;line-height:1.55;color:var(--muted)}

.jnftp .jnftp__nav{display:flex;gap:12px;margin-top:auto;padding-top:16px}
.jnftp .jnftp__nav[hidden]{display:none}
.jnftp .jnftp__nav .jnftp__arrow,
.jnftp .jnftp__nav .jnftp__arrow:focus,
.jnftp .jnftp__nav .jnftp__arrow:active{font-size:0;line-height:0;width:56px;height:56px;min-width:0;border-radius:50%;border:0;padding:0;margin:0;
	cursor:pointer;display:grid;place-items:center;background:var(--green);color:#fff;text-decoration:none;
	box-shadow:0 12px 24px -12px rgba(78,162,58,.9);transition:background .2s,transform .2s,box-shadow .2s}
.jnftp .jnftp__nav .jnftp__arrow svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.jnftp .jnftp__nav .jnftp__arrow:hover:not(:disabled){background:var(--blue);color:#fff;transform:translateY(-2px);box-shadow:0 14px 26px -12px rgba(6,40,72,.7)}
.jnftp .jnftp__nav .jnftp__arrow:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.jnftp .jnftp__nav .jnftp__arrow:disabled,
.jnftp .jnftp__nav .jnftp__arrow:disabled:hover{background:#fff;color:#9db3c7;box-shadow:inset 0 0 0 2px var(--line);cursor:default;transform:none}

/* ---- carousel ---- */
.jnftp .jnftp__viewport{position:relative;min-width:0}
.jnftp .jnftp__viewport::after{content:"";position:absolute;top:0;right:0;bottom:6px;width:56px;pointer-events:none;
	background:linear-gradient(90deg,rgba(255,255,255,0),#fff);opacity:0;transition:opacity .25s}
.jnftp .jnftp__viewport.has-more::after{opacity:1}
.jnftp .jnftp__track{display:flex;gap:var(--gap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;
	scroll-behavior:smooth;scrollbar-width:none;padding-bottom:6px;outline:none}
.jnftp .jnftp__track::-webkit-scrollbar{display:none}
.jnftp .jnftp__track:focus-visible{outline:3px solid var(--green);outline-offset:4px;border-radius:20px}

/* ---- person card ---- */
.jnftp .jnftp__card{position:relative;flex:0 0 var(--card-w);aspect-ratio:3/4;border-radius:18px;overflow:hidden;
	scroll-snap-align:start;background:var(--wash);isolation:isolate;outline:none;
	box-shadow:0 18px 36px -26px rgba(6,40,72,.55)}
.jnftp .jnftp__photo{position:absolute;inset:0}
.jnftp .jnftp__card .jnftp__photo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;border-radius:0;box-shadow:none;object-fit:cover;object-position:50% 25%;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.jnftp .jnftp__initials{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(150deg,var(--blue-mid),var(--blue-deep));
	font-family:'Poppins',sans-serif;font-weight:800;font-size:3rem;color:rgba(255,255,255,.9)}

.jnftp .jnftp__meta{position:absolute;left:0;right:0;bottom:0;padding:56px 20px 18px;
	background:linear-gradient(180deg,rgba(6,50,87,0),rgba(6,50,87,.82) 55%,rgba(6,50,87,.94));
	transition:opacity .3s}
.jnftp .jnftp__name{text-transform:none;letter-spacing:0;margin:0;font-family:'Poppins',sans-serif;font-weight:700;font-size:1.08rem;line-height:1.25;color:#fff}
.jnftp .jnftp__role{font-size:.88rem;line-height:1.35;color:rgba(255,255,255,.82);margin-top:3px}

/* bio panel (hover / focus / tap) */
.jnftp .jnftp__bio{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;padding:24px 22px 22px;
	background:linear-gradient(160deg,var(--blue-mid),var(--blue) 50%,var(--blue-deep));color:#fff;
	opacity:0;visibility:hidden;transform:translateY(14px);
	transition:opacity .35s ease,transform .45s cubic-bezier(.2,.7,.2,1),visibility 0s linear .45s}
.jnftp .jnftp__bio .jnftp__name{font-size:1.2rem}
.jnftp .jnftp__bio .jnftp__role{color:var(--green-light);font-weight:500;margin-top:4px}
.jnftp .jnftp__biotext{font-size:.92rem;line-height:1.6;color:rgba(255,255,255,.9);margin-top:16px;overflow:auto}
.jnftp .jnftp__social{margin-top:auto;align-self:flex-start;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
	background:rgba(255,255,255,.14);color:#fff;transition:background .2s}
.jnftp .jnftp__social:hover{background:var(--green)}
.jnftp .jnftp__social svg{width:17px;height:17px;fill:currentColor}

.jnftp .jnftp__card.is-open .jnftp__bio,
.jnftp .jnftp__card.has-bio:focus-visible .jnftp__bio,
.jnftp .jnftp__card.has-bio:has(.jnftp__social:focus-visible) .jnftp__bio{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.jnftp .jnftp__card:focus-visible{outline:3px solid var(--green);outline-offset:3px}
@media (hover:hover){
	.jnftp .jnftp__card.has-bio:hover .jnftp__bio{opacity:1;visibility:visible;transform:none;transition-delay:0s}
	.jnftp .jnftp__card:hover .jnftp__photo img{transform:scale(1.05)}
}

/* ---- text cards (no photos, e.g. UK Team) ---- */
.jnftp .jnftp__card--text{aspect-ratio:auto;min-height:280px;display:flex;flex-direction:column;padding:26px 24px 24px;
	background:var(--wash);box-shadow:none;border:1px solid var(--line)}
.jnftp .jnftp__card--text .jnftp__name{color:var(--blue);font-size:1.1rem}
.jnftp .jnftp__card--text .jnftp__role{color:var(--blue);opacity:.7;font-weight:500;margin-top:4px}
.jnftp .jnftp__card--text .jnftp__biotext{color:var(--ink);margin-top:16px;overflow:visible}
.jnftp .jnftp__card--text .jnftp__social{margin-top:auto;background:var(--blue);color:#fff}
.jnftp .jnftp__card--text .jnftp__social:hover{background:var(--green)}

/* ---- text block team (no people, e.g. UK Team) ---- */
.jnftp .jnftp__copy{max-width:68ch;font-size:clamp(1rem,1.2vw,1.08rem);line-height:1.7;color:var(--ink)}
.jnftp .jnftp__copy p{margin:0 0 1em}
.jnftp .jnftp__copy p:last-child{margin-bottom:0}
.jnftp .jnftp__copy a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}

/* ---- names-only team (Honorary Patrons) ---- */
.jnftp .jnftp__names{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(24px,3vw,40px);border-top:2px solid var(--blue)}
.jnftp .jnftp__namecard{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:84px;padding:18px 0;border-bottom:1px solid var(--line)}
.jnftp .jnftp__fullname{font-family:'Poppins',sans-serif;font-weight:600;font-size:1rem;line-height:1.35;color:var(--blue);text-transform:none;letter-spacing:0}
.jnftp .jnftp__post{font-size:.8rem;font-weight:600;letter-spacing:.08em;color:var(--blue);opacity:.65}

/* ---- tablet / mobile: title above, carousel full width ---- */
@media (max-width:900px){
	.jnftp{--card-w:min(68vw,260px);--gap:14px}
	.jnftp .jnftp__row{grid-template-columns:minmax(0,1fr);gap:22px}
	.jnftp .jnftp__head{display:grid;grid-template-columns:1fr auto;align-items:end;column-gap:16px;row-gap:8px}
	.jnftp .jnftp__head .jnftp__title,.jnftp .jnftp__desc{grid-column:1}
	.jnftp .jnftp__nav{grid-column:2;grid-row:1 / span 3;align-self:end;margin:0;padding:0}
	.jnftp .jnftp__nav .jnftp__arrow{width:46px;height:46px}
	/* let the carousel run to the screen edges */
	.jnftp .jnftp__viewport{margin:0 calc(var(--pad) * -1)}
	.jnftp .jnftp__track{padding:0 var(--pad) 6px;scroll-padding:0 var(--pad)}
	.jnftp .jnftp__viewport::after{display:none}
	.jnftp .jnftp__names{grid-template-columns:minmax(0,1fr)}
	.jnftp .jnftp__namecard{min-height:0;padding:14px 0}
}

@media (prefers-reduced-motion:reduce){
	.jnftp *{transition:none !important}
	.jnftp .jnftp__track{scroll-behavior:auto}
}
