/* WS48 Team Page blocks.
   Every rule is prefixed with .ws48tp (each section block carries that class)
   so theme and editor typography can't override the design. */

.ws48tp {
	--ws-cream: #f3efe8;
	--ws-card: #ebe5db;
	--ws-ink: #1a1a1a;
	--ws-dark: #1e1e1e;
	--ws-copper: #b5603e;
	--ws-copper-dark: #974c2f;
	--ws-text: #3b3936;
	--ws-muted: #6b665f;
	--ws-gutter: clamp(20px, 5vw, 56px);
	--ws-max: 1240px;

	background: var(--ws-cream);
	color: var(--ws-text);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
.ws48tp.ws48tp--font { font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }

/* Sections sit flush against each other. */
.ws48tp.ws48tp,
.ws48tp + .ws48tp { margin-top: 0 !important; margin-bottom: 0 !important; }

.ws48tp *, .ws48tp *::before, .ws48tp *::after { box-sizing: border-box; }
.ws48tp :where(h1, h2, h3, p) { margin: 0; padding: 0; }

.ws48tp .ws48tp-wrap { max-width: var(--ws-max); margin: 0 auto; padding: 0 var(--ws-gutter); }

/* ---------- Shared type ---------- */
.ws48tp .ws48tp-eyebrow {
	display: flex; align-items: center; gap: 12px;
	margin: 0 0 18px;
	font-family: inherit; font-size: 0.72rem; font-weight: 700; line-height: 1.4;
	letter-spacing: 0.18em; text-transform: uppercase;
	color: var(--ws-muted);
}
.ws48tp .ws48tp-eyebrow::after { content: ""; flex: none; width: 40px; height: 1px; background: var(--ws-copper); }
.ws48tp .ws48tp-eyebrow--lead::after { display: none; }
.ws48tp .ws48tp-eyebrow--lead::before { content: ""; flex: none; width: 44px; height: 1px; background: var(--ws-copper); }

.ws48tp .ws48tp-h2 {
	margin: 0;
	font-family: inherit; font-size: clamp(1.9rem, 3.4vw, 2.6rem);
	font-weight: 800; line-height: 1.08; letter-spacing: -0.02em; text-transform: none;
	color: var(--ws-ink);
}
.ws48tp .ws48tp-intro { margin: 14px 0 0; max-width: 46em; font-size: 1rem; line-height: 1.6; color: var(--ws-text); }
.ws48tp .ws48tp-dot { color: var(--ws-copper); }
.ws48tp a:not(.ws48tp-btn) { color: var(--ws-copper); }

/* ---------- Buttons ---------- */
.ws48tp .ws48tp-btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 15px 24px;
	font-family: inherit; font-size: 0.76rem; font-weight: 700; line-height: 1;
	letter-spacing: 0.14em; text-transform: uppercase;
	text-decoration: none;
	border: 1.5px solid transparent; border-radius: 0; box-shadow: none;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.ws48tp .ws48tp-btn--primary { background: var(--ws-copper); color: #fff; }
.ws48tp .ws48tp-btn--primary:hover { background: var(--ws-copper-dark); color: #fff; }
.ws48tp .ws48tp-btn--outline { border-color: var(--ws-ink); color: var(--ws-ink); background: transparent; }
.ws48tp .ws48tp-btn--outline:hover { background: var(--ws-ink); color: #fff; }
.ws48tp .ws48tp-btn:focus-visible { outline: 2px solid var(--ws-copper); outline-offset: 3px; }
.ws48tp .ws48tp-arrow { width: 14px; height: 14px; flex: none; }

/* ---------- Images ---------- */
.ws48tp .ws48tp-img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; margin: 0; }
.ws48tp .ws48tp-ph {
	width: 100%; height: 100%;
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, #d9d1c5, #c9bfb1);
	color: rgba(26, 26, 26, .35); font-size: 2rem; font-weight: 800; letter-spacing: .04em;
}

/* ---------- Hero ---------- */
.ws48tp.ws48tp-hero {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	min-height: clamp(440px, 46vw, 640px);
	padding: 0;
}
.ws48tp .ws48tp-hero__copy {
	align-self: center;
	padding: clamp(48px, 6vw, 88px) clamp(32px, 4vw, 56px) clamp(48px, 6vw, 88px) max(var(--ws-gutter), calc((100vw - var(--ws-max)) / 2 + var(--ws-gutter)));
}
.ws48tp .ws48tp-hero__title {
	margin: 0;
	font-family: inherit; font-size: clamp(2.6rem, 5.2vw, 4.4rem);
	font-weight: 800; line-height: 0.98; letter-spacing: -0.03em; text-transform: none;
	color: var(--ws-ink);
}
.ws48tp .ws48tp-lead { margin: 24px 0 30px; max-width: 30em; font-size: 1.05rem; line-height: 1.65; }
.ws48tp .ws48tp-hero__media { position: relative; min-height: 320px; }
.ws48tp .ws48tp-hero__media > * { position: absolute; inset: 0; }

/* ---------- Team ---------- */
.ws48tp.ws48tp-team { padding: clamp(56px, 7vw, 96px) 0; }
.ws48tp .ws48tp-grid {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px; margin: 40px 0 0;
}
.ws48tp .ws48tp-card { display: flex; flex-direction: column; margin: 0; background: var(--ws-card); }
.ws48tp .ws48tp-card__media { aspect-ratio: 3 / 2; overflow: hidden; position: relative; }
.ws48tp .ws48tp-card__media .ws48tp-img { object-position: center 25%; }
.ws48tp .ws48tp-card__body { padding: 14px 14px 18px; }
.ws48tp .ws48tp-card__name {
	margin: 0; font-family: inherit; font-size: 1rem; font-weight: 700; line-height: 1.3;
	letter-spacing: 0; text-transform: none; color: var(--ws-ink);
}
.ws48tp .ws48tp-card__role {
	margin: 4px 0 0;
	font-size: 0.68rem; font-weight: 500; line-height: 1.5;
	letter-spacing: 0.12em; text-transform: uppercase; color: var(--ws-muted);
}

/* ---------- Values ---------- */
.ws48tp.ws48tp-values { background: var(--ws-dark); color: #fff; padding: clamp(48px, 6vw, 72px) 0; }
.ws48tp .ws48tp-values__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 48px; align-items: center; }
.ws48tp.ws48tp-values .ws48tp-eyebrow { color: #fff; }
.ws48tp .ws48tp-values__title {
	margin: 0;
	font-family: inherit; font-size: clamp(1.6rem, 2.4vw, 2.1rem);
	font-weight: 800; line-height: 1.15; letter-spacing: -0.015em; text-transform: none; color: #fff;
}
.ws48tp .ws48tp-values__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ws48tp .ws48tp-value { margin: 0; padding: 4px 22px; border-left: 1px solid rgba(255, 255, 255, .18); }
.ws48tp .ws48tp-value:first-child { border-left: 0; padding-left: 0; }
.ws48tp .ws48tp-icon { width: 36px; height: 36px; color: var(--ws-copper); display: block; }
.ws48tp .ws48tp-value__title {
	margin: 14px 0 8px; font-family: inherit; font-size: 1rem; font-weight: 700; line-height: 1.3;
	letter-spacing: 0; text-transform: none; color: #fff;
}
.ws48tp .ws48tp-value__text { margin: 0; font-size: 0.85rem; line-height: 1.55; color: rgba(255, 255, 255, .72); }

/* ---------- CTA ---------- */
.ws48tp.ws48tp-cta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: clamp(380px, 32vw, 480px); padding: 0; }
.ws48tp .ws48tp-cta__media { position: relative; min-height: 280px; }
.ws48tp .ws48tp-cta__media > * { position: absolute; inset: 0; }
.ws48tp .ws48tp-cta__copy { align-self: center; max-width: 640px; padding: clamp(48px, 5vw, 72px) var(--ws-gutter) clamp(48px, 5vw, 72px) clamp(32px, 4vw, 48px); }
.ws48tp .ws48tp-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.ws48tp .ws48tp-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ws48tp .ws48tp-values__inner { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 860px) {
	.ws48tp.ws48tp-hero, .ws48tp.ws48tp-cta { grid-template-columns: 1fr; min-height: 0; }
	.ws48tp .ws48tp-hero__copy { padding: 56px var(--ws-gutter) 40px; }
	.ws48tp .ws48tp-hero__media { aspect-ratio: 4 / 3; min-height: 0; }
	.ws48tp .ws48tp-cta__media { aspect-ratio: 16 / 10; min-height: 0; }
	.ws48tp .ws48tp-cta__copy { padding: 48px var(--ws-gutter) 56px; }
	.ws48tp .ws48tp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ws48tp .ws48tp-values__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 32px; }
	.ws48tp .ws48tp-value:nth-child(odd) { border-left: 0; padding-left: 0; }
}
@media (max-width: 520px) {
	.ws48tp .ws48tp-grid { gap: 10px; }
	.ws48tp .ws48tp-card__body { padding: 12px 12px 14px; }
	.ws48tp .ws48tp-card__name { font-size: 0.92rem; }
	.ws48tp .ws48tp-values__list { grid-template-columns: 1fr; }
	.ws48tp .ws48tp-value { border-left: 0; padding: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.ws48tp .ws48tp-btn { transition: none; }
}
