/* =====================================================================
   NEW HOME, 7. WHO WE HELP (template-parts/nh/who.php)
   =====================================================================
   The owner's "Who we help" comp: heading at left with a dotted globe,
   connecting arcs and a "worldwide" card at right; six photo cards with an
   icon sitting on the photo's edge; a strip of four points underneath.
   Shares tokens with new-hero.css / new-home.css.
   ===================================================================== */

.nx-whos__head {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, .8fr);
	gap: 24px;
	align-items: start;
}
.nx-whos__copy .nw-sub { max-width: 38em; }

/* ---- globe ---- */
.nx-whos__globe {
	position: relative;
	margin: -3vw calc(2vw - var(--nh-pad)) 0 -8vw;
	aspect-ratio: 834 / 330;
	container-type: inline-size;
	pointer-events: none;
}
.nx-whos__globe > svg:first-child {
	position: absolute; left: 0; top: 0; width: 78%; height: auto; overflow: visible;
	-webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 55%, transparent 100%);
}
#nx-dots circle { fill: #EE9A9E; }
.nx-whos__land { opacity: .75; }
.nx-whos__lat { fill: none; stroke: rgba(239, 68, 68, .12); stroke-width: 1.2; }
.nx-whos__arc { fill: none; stroke: var(--nh-red); stroke-width: 1.6; opacity: .7; stroke-dasharray: 1; stroke-dashoffset: 1; }
.is-in .nx-whos__arc { animation: nh-draw 1.6s .6s var(--nh-ease) forwards; }
.is-in .nx-whos__arc--b { animation-delay: 1.4s; }
.nx-whos__pin { fill: var(--nh-red); transform-box: fill-box; transform-origin: center; animation: nw-pulse 2.6s ease-in-out infinite; }
.nx-whos__pin:nth-of-type(2) { animation-delay: .8s; }
.nx-whos__pin:nth-of-type(3) { animation-delay: 1.6s; }

.nx-whos__world {
	position: absolute; z-index: 1;
	left: 14.5%; top: 38%;
	display: flex; align-items: center; gap: 2cqw;
	padding: 2.2cqw 3cqw 2.2cqw 2.4cqw;
	border-radius: 2.4cqw;
	background: #fff;
	box-shadow: 0 26px 50px -30px rgba(60, 30, 30, .45), 0 0 0 1px rgba(18, 21, 24, .05);
	opacity: 0;
}
.is-in .nx-whos__world { animation: nh-pop .8s 1s var(--nh-ease) forwards, nh-float 7s 2s ease-in-out infinite; }
.nx-whos__flags { display: flex; }
.nx-whos__flags i {
	display: grid; place-items: center;
	width: 5.6cqw; aspect-ratio: 1;
	margin-left: -1.2cqw;
	border-radius: 50%;
	border: .4cqw solid #fff;
	background: var(--nh-grey-t);
	font-style: normal; font-size: 1.5cqw; font-weight: 700; color: #3A3F45;
}
.nx-whos__flags i:first-child { margin-left: 0; background: var(--nh-red-t); color: var(--nh-red); }
.nx-whos__flags i:nth-child(3) { background: var(--nh-red-t); color: var(--nh-red); }
.nx-whos__world b { display: block; font-family: var(--nh-head); font-size: 1.95cqw; font-weight: 600; color: var(--nh-ink); }
.nx-whos__world small { display: block; margin-top: .4cqw; font-size: 1.6cqw; line-height: 1.45; color: #61686E; }
.nx-whos__hand { left: 68%; top: 22%; font-size: 3cqw; transform: rotate(-12deg); transform-origin: left bottom; }
.nx-whos__hand span:nth-child(2) { padding-left: .4em; }
.nx-whos__hand span:nth-child(3) { padding-left: .6em; }
.nx-whos__scr { position: absolute; left: 80%; top: 58%; width: 8%; overflow: visible; }
.nx-whos__scribble { fill: none; stroke: #5E6166; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; }
.is-in .nx-whos__scribble { animation: nh-draw .9s 2s var(--nh-ease) forwards; }

/* ---- cards ---- */
.nx-whos__cards {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: clamp(12px, 1.1vw, 20px);
	margin: clamp(26px, 2vw, 36px) -1.6vw 0;
}
.nx-whoc {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 0 clamp(16px, 1.3vw, 26px) clamp(18px, 1.3vw, 24px);
	border-radius: clamp(16px, 1.1vw, 20px);
	background: linear-gradient(170deg, #FFFFFF 60%, var(--nx-wash) 100%);
	border: 1px solid rgba(18, 21, 24, .085);
	overflow: hidden;
	transition: opacity .8s var(--nh-ease) calc(var(--i, 0) * 80ms), transform .9s var(--nh-ease) calc(var(--i, 0) * 80ms), translate .4s var(--nh-ease), box-shadow .4s var(--nh-ease), border-color .4s;
}
.nx-whoc:hover { translate: 0 -6px; border-color: color-mix(in srgb, var(--nx-a) 26%, transparent); box-shadow: 0 30px 56px -36px rgba(60, 30, 30, .45); }
.nx-whoc:has(:focus-visible) { outline: 2px solid var(--nx-a); outline-offset: 3px; }
.nx-whoc__img { margin: 0 calc(-1 * clamp(16px, 1.3vw, 26px)); aspect-ratio: 263 / 158; overflow: hidden; }
.nx-whoc__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--nh-ease); }
.nx-whoc:hover .nx-whoc__img img { transform: scale(1.06); }
.nx-whoc > .nx-ic {
	position: relative; z-index: 1;
	width: clamp(54px, 4.4vw, 78px);
	margin-top: calc(-0.5 * clamp(54px, 4.4vw, 78px));
	border: 4px solid #fff;
	box-shadow: 0 10px 22px -14px rgba(18, 21, 24, .4);
}
.nx-whoc:hover > .nx-ic { background: var(--nx-a); color: #fff; }
.nx-whoc h3 { margin: clamp(10px, .8vw, 14px) 0 0; font-family: var(--nh-head); font-size: clamp(16.5px, 1.13vw, 20px); font-weight: 700; letter-spacing: -.02em; line-height: 1.2; color: var(--nh-ink); }
.nx-whoc p { margin: 8px 0 0; font-size: clamp(14px, .93vw, 16.5px); line-height: 1.42; color: var(--nh-body); }
.nx-whoc__go { margin-top: auto; padding-top: clamp(16px, 1.3vw, 24px); }
.nx-whoc__go::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.nx-whoc__go:focus-visible { outline: none; }
.nx-whoc:hover .nx-whoc__go svg { transform: translateX(5px); }

/* ---- strip ---- */
.nx-whos__strip {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: clamp(22px, 1.6vw, 30px) -1.2vw 0;
	padding: clamp(18px, 1.4vw, 26px) clamp(20px, 3vw, 56px);
	border-radius: clamp(18px, 1.3vw, 24px);
	background: #fff;
	border: 1px solid rgba(18, 21, 24, .08);
	box-shadow: 0 24px 50px -40px rgba(18, 21, 24, .3);
}
.nx-whos__strip li { display: flex; align-items: center; gap: clamp(14px, 1.2vw, 22px); padding-right: 14px; }
.nx-whos__strip li + li { padding-left: clamp(16px, 2.6vw, 48px); border-left: 1px solid rgba(18, 21, 24, .09); }
.nx-whos__strip .nx-ic { width: clamp(48px, 3.9vw, 70px); }
.nx-whos__strip b { display: block; font-family: var(--nh-head); font-size: clamp(19px, 1.7vw, 30px); font-weight: 800; letter-spacing: -.03em; color: var(--nh-ink); }
.nx-whos__strip small { display: block; margin-top: 3px; font-size: clamp(13.5px, .95vw, 17px); color: #5E656C; }

/* ---- responsive ---- */
@media (max-width: 1200px) {
	.nx-whos__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-inline: 0; }
	.nx-whoc__img { aspect-ratio: 16 / 8.5; }
}
@media (max-width: 1280px) {
	.nx-whos__strip { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; margin-inline: 0; }
	.nx-whos__strip li:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 1100px) {
	.nx-whos__head { grid-template-columns: minmax(0, 1fr); }
	.nx-whos__globe { margin: 12px 0 0; }
	.nx-whos__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
	.nx-whos__cards, .nx-whos__strip { grid-template-columns: minmax(0, 1fr); }
	.nx-whos__strip li + li { padding-left: 0; border-left: 0; }
	.nx-whos .nx-whos__hand, .nx-whos .nx-whos__scr { display: none; }
	.nx-whos__world { left: 4%; top: 30%; }
}
@media (prefers-reduced-motion: reduce) {
	.nx-whos__world { opacity: 1; }
	.nx-whos__arc, .nx-whos__scribble { stroke-dashoffset: 0; }
	.nx-whos__hand { clip-path: none; }
}
