/* Templates: single entries (practice area, article, lawyer), archives, search, 404. */

/* Entry: text beside the dark consultation card */

.entry__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	align-items: start;
	gap: 64px;
}

.entry__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
	color: var(--muted);
	font-size: 14px;
}

.entry__meta a {
	color: var(--pine);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: var(--lime);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

.entry__cover {
	min-height: 0;
	margin-bottom: 32px;
	aspect-ratio: 16 / 9;
}

/* Article blocks (Post : Blog): Text and Media in any order */

.article-block + .article-block {
	margin-top: 32px;
}

.article-block__image,
.article-block__video {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--radius-lg);
	background: var(--pine-ink);
}

.article-block__caption {
	margin-top: 10px;
	color: var(--muted);
	font-size: 14px;
}

.cta-card {
	position: sticky;
	top: calc(var(--header-height) + 24px);
	padding: 32px 28px;
	border-radius: var(--radius-lg);
	background: radial-gradient(500px 300px at 90% 0%, var(--pine-2), transparent 70%), var(--pine-ink);
	color: #fff;
}

.cta-card__title {
	font-size: 22px;
}

.cta-card__text {
	margin-top: 12px;
	color: var(--on-dark-muted);
	font-size: 15px;
}

.cta-card__actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	margin-top: 24px;
}

/* Previous / next article */

.post-navigation {
	margin-top: 48px;
	padding-top: 28px;
	border-top: 1px solid var(--line);
}

.post-navigation .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.post-navigation .nav-next {
	grid-column: 2;
	text-align: right;
}

.post-navigation a {
	display: grid;
	gap: 4px;
}

.post-navigation__label {
	color: var(--muted);
	font-size: 13px;
}

.post-navigation__title {
	color: var(--pine);
	font-family: var(--head);
	font-weight: 600;
}

.post-navigation a:hover .post-navigation__title {
	text-decoration: underline;
	text-decoration-color: var(--lime);
	text-underline-offset: 4px;
}

/* Lawyer profile */

.profile__grid {
	display: grid;
	grid-template-columns: 380px minmax(0, 1fr);
	align-items: start;
	gap: 64px;
}

.profile__aside {
	position: sticky;
	top: calc(var(--header-height) + 24px);
	display: grid;
	gap: 24px;
	justify-items: start;
}

.profile__photo {
	width: 100%;
	aspect-ratio: 4 / 5;
}

.profile__details {
	display: grid;
	gap: 14px;
	width: 100%;
	padding: 22px 24px;
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	font-size: 15px;
}

.profile__details dt {
	color: var(--muted);
	font-size: 13px;
}

.profile__details a:hover {
	color: var(--pine);
	text-decoration: underline;
	text-decoration-color: var(--lime);
}

.profile__areas {
	display: grid;
	gap: 4px;
	list-style: none;
}

/* Archives: the cards of the sections in a grid; an incomplete last row is centred */

.listing__grid {
	--columns: 3;
	--gap: 28px;
	display: grid;
	grid-template-columns: repeat(auto-fit, calc((100% - (var(--columns) - 1) * var(--gap)) / var(--columns)));
	justify-content: center;
	gap: 48px var(--gap);
}

.listing__grid--services {
	--columns: 4;
	--gap: 20px;
	row-gap: 20px;
}

.listing__grid--lawyers {
	--gap: 24px;
	row-gap: 24px;
}

.listing__empty {
	color: var(--muted);
	text-align: center;
}

.pagination {
	margin-top: 56px;
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}

.pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--line);
	border-radius: 22px;
	font-weight: 700;
}

.pagination .page-numbers .icon {
	width: 18px;
	height: 18px;
}

.pagination a.page-numbers:hover {
	border-color: var(--pine);
}

.pagination .current {
	border-color: var(--pine);
	background: var(--pine);
	color: #fff;
}

/* Search and 404 */

.search-results {
	display: grid;
	gap: 28px;
	margin-top: 40px;
}

.search-results__item {
	padding-bottom: 28px;
	border-bottom: 1px solid var(--line);
}

.search-results__type {
	color: var(--muted);
	font-size: 13px;
}

.search-results__title {
	margin: 4px 0 8px;
	font-size: 21px;
}

.search-results__title a:hover {
	text-decoration: underline;
	text-decoration-color: var(--lime);
	text-underline-offset: 4px;
}

.search-results p {
	color: var(--muted);
}

.not-found {
	display: grid;
	gap: 28px;
	justify-items: start;
}

.not-found .search-form {
	width: 100%;
}

@media (max-width: 1024px) {
	.entry__grid {
		grid-template-columns: minmax(0, 1fr) 300px;
		gap: 40px;
	}

	.profile__grid {
		grid-template-columns: 300px minmax(0, 1fr);
		gap: 40px;
	}

	.listing__grid,
	.listing__grid--services {
		--columns: 2;
	}
}

@media (max-width: 860px) {
	.entry__grid,
	.profile__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.cta-card,
	.profile__aside {
		position: static;
	}

	.profile__photo {
		max-width: 420px;
	}
}

@media (max-width: 560px) {
	.listing__grid,
	.listing__grid--services {
		--columns: 1;
	}

	.post-navigation .nav-links {
		grid-template-columns: 1fr;
	}

	.post-navigation .nav-next {
		grid-column: auto;
	}
}
