/* G-Laboパートナーインフルエンサー v2（template-parts/partners.php / inc/partners.php）.
   Inside the G-Labo content (front page G-Labo section + /community/ body).
   ≥768px: equal-height cards in a row. ≤767px: horizontal swipe with snap + peek (no page overflow). */

.p-gpartners { margin-top: 56px; padding-top: 48px; border-top: 1px solid var(--c-border); }
.c-entry .p-gpartners { margin-top: 3.2em; }
.p-gpartners p { margin: 0; }

/* ---------- Intro ---------- */
.p-gpartners__intro { max-width: 720px; }
.p-gpartners .p-gpartners__eyebrow {
	display: inline-flex; align-items: center; gap: 10px; margin-bottom: 10px;
	font-family: var(--f-en); font-size: 12.5px; font-weight: 600; letter-spacing: .24em; color: var(--c-main-deep);
}
.p-gpartners .p-gpartners__eyebrow::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--c-main), var(--c-accent)); }
/* title: reset .c-entry h3 styles on /community/ */
.p-gpartners .p-gpartners__title {
	margin: 0; padding: 0; border: 0;
	font-size: clamp(20px, 2vw, 24px); line-height: 1.5; letter-spacing: .06em; color: var(--c-heading);
	word-break: keep-all; overflow-wrap: anywhere;
}
.p-gpartners .p-gpartners__lead { margin-top: 10px; font-size: 15px; line-height: 1.9; color: var(--c-text); }

/* ---------- Cards ---------- */
.p-gpartners .p-gpartners__list {
	list-style: none; margin: 32px 0 0; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; align-items: stretch;
}
.c-entry .p-gpartners__list > li { margin: 0; }

.p-gpartner {
	position: relative; /* containing block for .screen-reader-text (else it escapes the mobile scroller) */
	display: flex; flex-direction: column; min-width: 0; overflow: hidden;
	border-radius: var(--radius);
	background: #fff;
	box-shadow: 0 0 0 1px rgba(0, 90, 128, .07), 0 2px 4px rgba(0, 40, 60, .04), 0 12px 32px rgba(0, 40, 60, .07);
	transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.p-gpartner::before { /* soft brand wash behind the avatar */
	content: ""; position: absolute; inset: 0 0 auto; height: 112px; pointer-events: none;
	background:
		radial-gradient(120px 80px at 50% 0, rgba(255, 241, 0, .16), transparent 70%),
		linear-gradient(180deg, var(--c-tint) 0%, rgba(234, 248, 254, 0) 100%);
}
.p-gpartner:hover, .p-gpartner:focus-within {
	transform: translateY(-6px);
	box-shadow: 0 0 0 1px rgba(0, 174, 239, .22), 0 4px 8px rgba(0, 40, 60, .05), 0 24px 48px rgba(0, 90, 128, .16);
}

.p-gpartner__head { position: relative; display: flex; flex-direction: column; align-items: center; padding: 32px 24px 22px; text-align: center; }

/* Avatar: gradient ring + small arch (the 善 logo's doorway) + yellow dot */
.p-gpartner__avatar {
	--ring: conic-gradient(from 210deg, var(--c-main), var(--c-main-deep), #38c3f3, var(--c-accent) 78%, var(--c-main));
	position: relative; display: block; width: 104px; height: 104px; padding: 4px; border-radius: 50%;
	background: var(--ring);
	box-shadow: 0 10px 24px rgba(0, 90, 128, .18);
}
.p-gpartner--c2 .p-gpartner__avatar { --ring: conic-gradient(from 120deg, var(--c-main-deep), var(--c-main), var(--c-accent) 60%, var(--c-main-deep)); }
.p-gpartner--c3 .p-gpartner__avatar { --ring: conic-gradient(from 300deg, var(--c-main), var(--c-accent) 35%, var(--c-main-deep) 70%, var(--c-main)); }
.p-gpartner__avatar-in { display: block; width: 100%; height: 100%; padding: 3px; border-radius: 50%; background: #fff; }
.p-gpartner__avatar img, .p-gpartner__monogram { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.p-gpartner__monogram {
	display: grid; place-items: center;
	background: linear-gradient(135deg, var(--c-main), var(--c-main-deep));
	color: #fff; font-family: var(--f-en); font-size: 34px; font-weight: 600; line-height: 1;
}
.p-gpartner__avatar::after { /* arch */
	content: ""; position: absolute; left: 50%; bottom: -6px; width: 30px; height: 15px; transform: translateX(-50%);
	border: 3px solid var(--c-main); border-bottom: 0; border-radius: 15px 15px 0 0; background: #fff;
}
.p-gpartner__avatar::before { /* dot */
	content: ""; position: absolute; right: 6px; top: 8px; z-index: 1; width: 12px; height: 12px; border-radius: 50%;
	background: var(--c-accent); box-shadow: 0 0 0 3px #fff;
}

.p-gpartner .p-gpartner__badge {
	margin-top: 18px; padding: 3px 12px; border-radius: 999px; background: var(--c-tint);
	font-family: var(--f-en); font-size: 11px; font-weight: 600; letter-spacing: .16em; color: var(--c-main-deep);
}
.p-gpartner .p-gpartner__name { margin-top: 10px; font-size: 21px; font-weight: 700; line-height: 1.4; letter-spacing: .08em; color: var(--c-heading); }
.p-gpartner .p-gpartner__role { margin-top: 8px; max-width: 26em; font-size: 13.5px; line-height: 1.8; color: var(--c-text); }

/* Social row */
.p-gpartner .p-gpartner__social { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 16px; }
.c-entry .p-gpartner__sns, .p-gpartner__sns {
	display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 6px 14px 6px 10px;
	border: 1px solid var(--c-border); border-radius: 999px; background: #fff;
	color: var(--c-heading); font-family: var(--f-en); font-size: 12.5px; font-weight: 600; line-height: 1.2; letter-spacing: .02em; text-decoration: none;
	transition: background-color var(--t-btn) ease, border-color var(--t-btn) ease, color var(--t-btn) ease;
}
.p-gpartner__sns .p-gpartner__icon { width: 16px; height: 16px; flex: none; }
.p-gpartner__sns--x .p-gpartner__icon { color: #111; }
.p-gpartner__sns--note .p-gpartner__icon { color: var(--c-heading); }
.p-gpartner__sns:hover, .p-gpartner__sns:focus-visible { border-color: var(--c-heading); background: var(--c-heading); color: #fff; }
.p-gpartner__sns:hover .p-gpartner__icon, .p-gpartner__sns:focus-visible .p-gpartner__icon { color: #fff; }
.p-gpartner__sns--note:hover .p-gpartner__icon path, .p-gpartner__sns--note:focus-visible .p-gpartner__icon path { stroke: var(--c-heading); }

/* おすすめ記事 */
.p-gpartner__arts { margin-top: auto; padding: 16px 16px 18px; border-top: 1px solid #edf2f5; background: #fbfdfe; }
.p-gpartner .p-gpartner__arts-label { padding: 0 8px 8px; font-size: 12px; font-weight: 700; letter-spacing: .12em; color: var(--c-muted); }
.p-gpartners .p-gpartner__arts-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.c-entry .p-gpartner__arts-list li { margin: 0; }
.c-entry .p-gpartner__art, .p-gpartner__art {
	display: grid; grid-template-columns: 22px minmax(0, 1fr) 14px; align-items: start; gap: 10px;
	padding: 10px 8px; border-radius: 10px;
	color: var(--c-heading); text-decoration: none;
	transition: background-color var(--t-btn) ease;
}
.p-gpartner__art-icon { display: block; width: 22px; height: 22px; color: var(--c-heading); }
.p-gpartner__art-icon .p-gpartner__icon { display: block; width: 100%; height: 100%; }
.p-gpartner__art-title {
	font-size: 13px; font-weight: 500; line-height: 1.65;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.p-gpartner__art-go { padding-top: 3px; color: var(--c-muted); opacity: 0; transform: translateX(-4px); transition: opacity var(--t-btn) ease, transform var(--t-btn) ease; }
.p-gpartner__art-go .c-icon { display: block; width: 14px; height: 14px; }
.p-gpartner__art:hover, .p-gpartner__art:focus-visible { background: var(--c-sub); color: var(--c-heading); }
.p-gpartner__art:hover .p-gpartner__art-go, .p-gpartner__art:focus-visible .p-gpartner__art-go { opacity: 1; transform: none; color: var(--c-main-deep); }

/* ---------- Mobile: swipe with snap + peek ---------- */
@media (max-width: 767px) {
	.p-gpartners { margin-top: 40px; padding-top: 32px; }
	.p-gpartners .p-gpartners__lead { font-size: 14px; }
	.p-gpartners .p-gpartners__list {
		display: flex; gap: 14px; margin-top: 22px;
		margin-inline: calc(var(--gutter) * -1); padding: 6px var(--gutter) 18px;
		overflow-x: auto; overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter);
		scrollbar-width: none;
	}
	.p-gpartners__list::-webkit-scrollbar { display: none; }
	.p-gpartner { flex: 0 0 82%; max-width: 320px; scroll-snap-align: start; }
	.p-gpartner:hover, .p-gpartner:focus-within { transform: none; }
	.p-gpartner__head { padding: 26px 18px 18px; }
	.p-gpartner__avatar { width: 92px; height: 92px; }
	.p-gpartner__art-go { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.p-gpartner, .p-gpartner__sns, .p-gpartner__art, .p-gpartner__art-go { transition: none; }
	.p-gpartner:hover, .p-gpartner:focus-within { transform: none; }
}
