/* =============================================================================
   Archive pages — category, tag, author, date, taxonomy, post-type
============================================================================= */
.yd-archive {
	--yd-a-radius: 18px;
	--yd-a-ease: cubic-bezier( 0.22, 1, 0.36, 1 );
	background: #fff;
}

.yd-archive__hero {
	padding: clamp( 40px, 5vw, 76px ) 0 clamp( 26px, 3vw, 42px );
	background: #ffedec;
}

.yd-archive__eyebrow {
	display: inline-block;
	color: var( --yd-primary );
	font-family: var( --yd-font );
	font-weight: 700;
	font-size: 12px;
	line-height: 1;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.yd-archive__title {
	margin: 16px 0 0;
	font-size: clamp( 28px, 4.4vw, 52px );
	line-height: 1.14;
	overflow-wrap: break-word;
}
.yd-archive__description {
	margin-top: 14px;
	max-width: 62ch;
	color: var( --yd-body );
	font-size: clamp( 15px, 1.2vw, 17px );
	line-height: 1.65;
}
.yd-archive__description p:last-child {
	margin-bottom: 0;
}
.yd-archive__count {
	margin: 12px 0 0;
	color: var( --yd-body );
	font-size: 14px;
	line-height: 1.5;
}

/* --- Category chips --- */
.yd-archive__chips {
	margin-top: clamp( 20px, 2.4vw, 30px );
}
.yd-archive__chips ul {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 9px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.yd-archive__chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border: 1px solid var( --yd-line );
	border-radius: 999px;
	background: #fff;
	color: var( --yd-heading );
	font-family: var( --yd-font );
	font-weight: 600;
	font-size: 13.5px;
	line-height: 1;
	text-decoration: none;
	transition: border-color 0.3s var( --yd-a-ease ), background 0.3s var( --yd-a-ease ),
		color 0.3s var( --yd-a-ease );
}
.yd-archive__chip-count {
	padding: 3px 7px;
	border-radius: 999px;
	background: rgba( 20, 20, 43, 0.07 );
	color: var( --yd-body );
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	transition: background 0.3s var( --yd-a-ease ), color 0.3s var( --yd-a-ease );
}
@media ( hover: hover ) and ( pointer: fine ) {
	.yd-archive__chip:hover {
		border-color: var( --yd-primary );
		color: var( --yd-primary );
	}
}
.yd-archive__chip--active {
	border-color: var( --yd-primary );
	background: var( --yd-primary );
	color: #fff;
}
.yd-archive__chip--active .yd-archive__chip-count {
	background: rgba( 255, 255, 255, 0.22 );
	color: #fff;
}
.yd-archive__chip:focus-visible {
	outline: 3px solid var( --yd-primary );
	outline-offset: 2px;
}

.yd-archive__body {
	padding: clamp( 34px, 4.2vw, 64px ) 0 clamp( 56px, 6vw, 96px );
}

.yd-archive__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 290px, 1fr ) );
	gap: clamp( 18px, 2vw, 30px );
}
.yd-archive__card {
	display: flex;
}
.yd-archive__card-link {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	width: 100%;
	border: 1px solid var( --yd-line );
	border-radius: var( --yd-a-radius );
	background: #fff;
	text-decoration: none;
	transition: transform 0.35s var( --yd-a-ease ), box-shadow 0.35s var( --yd-a-ease ),
		border-color 0.35s var( --yd-a-ease );
}
.yd-archive__card-media {
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: #f2f2f5;
}
.yd-archive__card-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.55s var( --yd-a-ease );
}
.yd-archive__card-body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: 10px;
	padding: clamp( 18px, 1.8vw, 26px );
}
.yd-archive__card-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
	color: var( --yd-body );
	font-size: 12.5px;
	line-height: 1.3;
}
/* Client name, shown on case study cards in place of a reading time. The
   icon inherits currentColor from the label, so it tracks any later change to
   the meta row's colour on its own. */
.yd-archive__card-company {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-width: 0;
	color: var( --yd-heading );
	font-weight: 600;
}

.yd-archive__card-company-icon {
	flex: none;
	width: 14px;
	height: 14px;
	color: var( --yd-primary );
}

.yd-archive__card-cat {
	color: var( --yd-primary );
	font-family: var( --yd-font );
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.yd-archive__card-dot {
	opacity: 0.5;
}
.yd-archive__card-title {
	margin: 0;
	color: var( --yd-heading );
	font-size: clamp( 17px, 1.4vw, 20px );
	line-height: 1.34;
	transition: color 0.3s var( --yd-a-ease );
}
.yd-archive__card-excerpt {
	color: var( --yd-body );
	font-size: 14.5px;
	line-height: 1.6;
}
.yd-archive__card-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;      /* pins the CTA to the bottom whatever the excerpt length */
	padding-top: 6px;
	color: var( --yd-primary );
	font-family: var( --yd-font );
	font-weight: 700;
	font-size: 14px;
}
.yd-archive__card-more svg {
	width: 17px;
	height: 17px;
	transition: transform 0.3s var( --yd-a-ease );
}
@media ( hover: hover ) and ( pointer: fine ) {
	.yd-archive__card-link:hover {
		transform: translateY( -5px );
		border-color: transparent;
		box-shadow: 0 24px 50px rgba( 0, 0, 0, 0.12 );
	}
	.yd-archive__card-link:hover .yd-archive__card-image {
		transform: scale( 1.06 );
	}
	.yd-archive__card-link:hover .yd-archive__card-title {
		color: var( --yd-primary );
	}
	.yd-archive__card-link:hover .yd-archive__card-more svg {
		transform: translateX( 4px );
	}
}
.yd-archive__card-link:focus-visible {
	outline: 3px solid var( --yd-primary );
	outline-offset: 3px;
}

.yd-archive__pagination {
	margin-top: clamp( 30px, 3.4vw, 48px );
}
.yd-archive__pagination .nav-links {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}
.yd-archive__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	border: 1px solid var( --yd-line );
	border-radius: 999px;
	color: var( --yd-heading );
	font-family: var( --yd-font );
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	transition: border-color 0.3s var( --yd-a-ease ), background 0.3s var( --yd-a-ease ),
		color 0.3s var( --yd-a-ease );
}
.yd-archive__pagination .page-numbers:hover {
	border-color: var( --yd-primary );
	color: var( --yd-primary );
}
.yd-archive__pagination .page-numbers.current {
	border-color: var( --yd-primary );
	background: var( --yd-primary );
	color: #fff;
}
.yd-archive__pagination .page-numbers.dots {
	border-color: transparent;
	pointer-events: none;
}
.yd-archive__pagination .page-numbers:focus-visible {
	outline: 3px solid var( --yd-primary );
	outline-offset: 2px;
}

.yd-archive__empty {
	max-width: 560px;
	margin: 0 auto;
	padding: clamp( 30px, 3.4vw, 48px );
	border: 1px solid var( --yd-line );
	border-radius: var( --yd-a-radius );
	background: #fcfcfd;
	text-align: center;
}
.yd-archive__empty-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: rgba( 255, 57, 81, 0.1 );
	color: var( --yd-primary );
}
.yd-archive__empty-icon svg {
	width: 26px;
	height: 26px;
}
.yd-archive__empty-title {
	margin: 18px 0 0;
	font-size: clamp( 20px, 2vw, 26px );
	line-height: 1.25;
}
.yd-archive__empty-text {
	margin: 10px auto 0;
	max-width: 42ch;
	color: var( --yd-body );
	font-size: 15px;
	line-height: 1.6;
}
.yd-archive__empty-btn {
	margin-top: 22px;
	border-color: var( --yd-primary );
	background: var( --yd-primary );
	color: #fff;
	font-size: 14px;
	text-decoration: none;
}
.yd-archive__empty-btn:hover {
	border-color: var( --yd-primary-dark, #e42d44 );
	background: var( --yd-primary-dark, #e42d44 );
}
.yd-archive__empty-btn:focus-visible {
	outline: 3px solid var( --yd-heading );
	outline-offset: 3px;
}

@media ( max-width: 700px ) {
	.yd-archive__grid {
		grid-template-columns: minmax( 0, 1fr );
	}
	.yd-archive__chip {
		padding: 8px 13px;
		font-size: 13px;
	}
	.yd-archive__pagination .page-numbers {
		min-width: 38px;
		height: 38px;
		padding: 0 11px;
		font-size: 13px;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	.yd-archive__card-link,
	.yd-archive__card-image,
	.yd-archive__card-title,
	.yd-archive__card-more svg,
	.yd-archive__chip,
	.yd-archive__chip-count,
	.yd-archive__pagination .page-numbers {
		transition: none;
	}
	.yd-archive__card-link:hover {
		transform: none;
	}
}
