/* Code templates: single post, archives, search, 404 (replace Elementor Pro theme builder #235, #250, #288, #292).
   Prefixed with .wtb-code-layout so the Elementor kit's global h/a/button styles don't win. */
:root {
	--wtb-blue: #4f7cac;
	--wtb-line: #d5d1d1;
}

/* ---------- Single post ---------- */
.wtb-code-layout .wtb-single__grid {
	max-width: 1030px;
	margin: 10px auto 0;
	display: grid;
	grid-template-columns: minmax(0, 752fr) minmax(0, 265fr);
	gap: 10px;
}
/* The kit gives links their own font size; titles' links must follow the heading. */
.wtb-code-layout :is(.wtb-card__title, .wtb-recent__title, .wtb-result__title) a {
	font: inherit;
	letter-spacing: inherit;
}

.wtb-code-layout .wtb-single__main { padding: 0 25px 0 10px; min-width: 0; }
.wtb-code-layout .wtb-single__image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 4px;
}
.wtb-code-layout .wtb-single__title {
	font-family: Montserrat, sans-serif;
	font-size: 40px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--wtb-ink);
	text-transform: capitalize;
	margin: 9px 0 0;
}
.wtb-code-layout .wtb-single__info {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 35px;
	padding: 11px 0 0;
	line-height: 29px;
	border-top: 1px solid var(--wtb-blue);
	border-bottom: 1px solid var(--wtb-blue);
	font-family: Raleway, sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--wtb-ink);
}
.wtb-code-layout .wtb-single__info svg { width: 14px; height: 14px; fill: var(--wtb-ink); flex: none; }
.wtb-code-layout .wtb-single__content { margin-top: 34px; }
.wtb-code-layout .wtb-content :is(p, li) { font-size: 18px; line-height: 27px; }
.wtb-code-layout .wtb-content :is(h2, h3) { scroll-margin-top: 140px; }
.wtb-code-layout .wtb-content img { max-width: 100%; height: auto; }

.wtb-code-layout .wtb-post-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 64px;
	margin-top: 20px;
}
.wtb-code-layout .wtb-post-nav a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	text-transform: uppercase;
	color: var(--wtb-blue);
	text-decoration: none;
}
.wtb-code-layout .wtb-post-nav a:hover { color: var(--wtb-pink); }
.wtb-code-layout .wtb-post-nav svg { width: 12px; height: 24px; fill: currentColor; }

.wtb-code-layout .wtb-single__side {
	padding: 10px;
	box-shadow: 0 0 10px rgba(0, 0, 0, .31);
	min-width: 0;
}
.wtb-code-layout .wtb-side { padding: 10px; }
.wtb-code-layout .wtb-side__heading,
.wtb-code-layout .wtb-toc__title {
	font-family: Montserrat, sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .8px;
	text-transform: capitalize;
	color: var(--wtb-blue);
	margin: 0;
}
.wtb-code-layout .wtb-side__heading { margin-bottom: 9px; }
.wtb-code-layout .wtb-recent {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 22px;
}
.wtb-code-layout .wtb-recent__item { display: flex; gap: 10px; align-items: flex-start; min-height: 82px; }
.wtb-code-layout .wtb-recent__thumb { flex: 0 0 95px; display: block; aspect-ratio: 95 / 57; overflow: hidden; }
.wtb-code-layout .wtb-recent__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wtb-code-layout .wtb-recent__title {
	font-family: Raleway, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.2;
	margin: 0;
}
.wtb-code-layout .wtb-recent__title a { color: var(--wtb-ink); text-decoration: none; }
.wtb-code-layout .wtb-recent__title a:hover { color: var(--wtb-pink); }

.wtb-code-layout .wtb-toc {
	margin: 21px 10px 0;
	padding: 40px 10px 0;
	border: 1px solid var(--wtb-line);
	border-radius: 4px;
}
.wtb-code-layout .wtb-toc[hidden] { display: none; }
.wtb-code-layout .wtb-toc__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px solid var(--wtb-line);
}
.wtb-code-layout .wtb-toc .wtb-toc__toggle {
	display: flex;
	padding: 2px;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--wtb-blue);
	cursor: pointer;
}
.wtb-code-layout .wtb-toc .wtb-toc__toggle:hover,
.wtb-code-layout .wtb-toc .wtb-toc__toggle:focus { background: none; color: var(--wtb-pink); }
.wtb-code-layout .wtb-toc__toggle svg { width: 14px; height: 14px; fill: currentColor; transition: transform .2s; }
.wtb-code-layout .wtb-toc__toggle[aria-expanded="false"] svg { transform: rotate(180deg); }
.wtb-code-layout .wtb-toc__body { padding: 10px; }
.wtb-code-layout .wtb-toc__body[hidden] { display: none; }
.wtb-code-layout .wtb-toc ul { list-style: none; margin: 0; padding: 0; }
.wtb-code-layout .wtb-toc li { margin: 0 0 9px; }
.wtb-code-layout .wtb-toc ul ul { margin: 9px 0 0 1.6px; }
.wtb-code-layout .wtb-toc a {
	display: block;
	padding: 0;
	font-family: Raleway, sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 27px;
	letter-spacing: 1px;
	text-transform: capitalize;
	color: var(--wtb-ink);
	text-decoration: none;
}
.wtb-code-layout .wtb-toc a:hover { color: var(--wtb-pink); }

.wtb-code-layout .wtb-single__comments {
	max-width: 1300px;
	margin: 35px auto 60px;
	padding: 0 20px;
}
@media (min-width: 1341px) { .wtb-code-layout .wtb-single__comments { padding: 0; } }

@media (max-width: 1024px) {
	.wtb-code-layout .wtb-single__grid { grid-template-columns: minmax(0, 1fr); padding: 0 10px; }
	.wtb-code-layout .wtb-single__main { padding: 0; }
	.wtb-code-layout .wtb-single__comments { padding: 0 10px; }
	.wtb-code-layout .wtb-single__side,
	.wtb-code-layout .wtb-post-nav { display: none; }
}
@media (max-width: 767px) {
	.wtb-code-layout .wtb-single__title { font-size: 30px; }
}

/* ---------- Archive / blog ---------- */
.wtb-code-layout .wtb-hero {
	position: relative;
	min-height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px 20px 34px;
	background: var(--wtb-sand);
	text-align: center;
}
.wtb-code-layout .wtb-hero__title {
	position: relative;
	z-index: 1;
	font-family: Montserrat, sans-serif;
	font-size: 52px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: capitalize;
	color: var(--wtb-pink);
	margin: 0;
}
.wtb-code-layout .wtb-hero__shape {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 41px;
	overflow: hidden;
	line-height: 0;
	transform: rotate(180deg);
}
.wtb-code-layout .wtb-hero__shape svg {
	display: block;
	position: relative;
	left: 50%;
	width: calc(100% + 1.3px);
	height: 41px;
	transform: translateX(-50%);
}
.wtb-code-layout .wtb-hero__shape path { fill: #fff; }

.wtb-code-layout .wtb-archive__desc {
	max-width: 800px;
	margin: 45px auto 0;
	padding: 25px 0;
	border-top: 1px solid #b5b4b5;
	font-family: Raleway, sans-serif;
	font-size: 18px;
	line-height: 27px;
	color: var(--wtb-ink);
	text-align: center;
}
.wtb-code-layout .wtb-archive__desc p { margin: 0; }
@media (max-width: 840px) { .wtb-code-layout .wtb-archive__desc { margin-inline: 20px; } }

.wtb-code-layout .wtb-cards {
	max-width: 1300px;
	margin: 46px auto 0;
	padding: 0 20px;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 35px 30px;
}
@media (min-width: 1341px) { .wtb-code-layout .wtb-cards { padding: 0; } }
.wtb-code-layout .wtb-archive { padding-bottom: 60px; }

.wtb-code-layout .wtb-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	box-shadow: 0 0 10px rgba(0, 0, 0, .15);
	border-radius: 3px;
	overflow: hidden;
}
.wtb-code-layout .wtb-card__thumb { display: block; aspect-ratio: 303 / 218; overflow: hidden; }
.wtb-code-layout .wtb-card__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.wtb-code-layout .wtb-card:hover .wtb-card__thumb img { transform: scale(1.03); }
.wtb-code-layout .wtb-card__badge {
	position: absolute;
	top: 20px;
	right: 20px;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--wtb-blue);
	color: #fafafa;
	font-family: Montserrat, sans-serif;
	font-size: 10px;
	font-weight: 600;
	line-height: 1;
	text-transform: uppercase;
}
.wtb-code-layout .wtb-card__body { flex-grow: 1; padding: 35px 15px 0; }
.wtb-code-layout .wtb-card__title {
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: .8px;
	margin: 0 0 8px;
}
.wtb-code-layout .wtb-card__title a { color: var(--wtb-blue); text-decoration: none; }
.wtb-code-layout .wtb-card__title a:hover { color: var(--wtb-pink); }
.wtb-code-layout .wtb-card__excerpt p {
	font-family: Raleway, sans-serif;
	font-size: 16px;
	line-height: 24px;
	color: var(--wtb-ink);
	margin: 0 0 30px;
}
.wtb-code-layout .wtb-card__more {
	display: block;
	width: fit-content;
	margin-bottom: 20px;
	font-family: Montserrat, sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--wtb-blue);
	text-decoration: none;
}
.wtb-code-layout .wtb-card__more:hover { color: var(--wtb-pink); }
.wtb-code-layout .wtb-card__meta {
	padding: 10px 15px;
	border-top: 1px solid #eaeaea;
	font-family: Raleway, sans-serif;
	font-size: 12px;
	line-height: 1.3;
	color: #adadad;
}
.wtb-code-layout .wtb-card__meta span + span::before { content: "•"; margin: 0 5px; }

.wtb-code-layout .wtb-load-more { margin-top: 40px; text-align: center; }
.wtb-code-layout .wtb-load-more a {
	display: inline-block;
	padding: 12px 30px;
	border-radius: 4px;
	background: var(--wtb-blue);
	color: #fafafa;
	font-family: Raleway, sans-serif;
	font-size: 16px;
	text-decoration: none;
}
.wtb-code-layout .wtb-load-more.is-auto a {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.wtb-code-layout .wtb-load-more.is-loading::after {
	content: "";
	display: inline-block;
	width: 28px;
	height: 28px;
	border: 3px solid #e6e6e6;
	border-top-color: var(--wtb-blue);
	border-radius: 50%;
	animation: wtb-spin .8s linear infinite;
}
@keyframes wtb-spin { to { transform: rotate(360deg); } }

.wtb-code-layout .wtb-empty {
	max-width: 1300px;
	margin: 45px auto;
	padding: 0 20px;
	font-family: Raleway, sans-serif;
	font-size: 18px;
	text-align: center;
}

@media (max-width: 1024px) {
	.wtb-code-layout .wtb-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.wtb-code-layout .wtb-hero { min-height: 200px; margin-top: 25px; }
	.wtb-code-layout .wtb-hero__title { font-size: 28px; }
	.wtb-code-layout .wtb-archive__desc { margin: 60px 30px 0; }
	.wtb-code-layout .wtb-cards { grid-template-columns: minmax(0, 1fr); margin-top: 61px; padding: 0 10px; }
	.wtb-code-layout .wtb-card__thumb { aspect-ratio: 2 / 1; }
}

/* ---------- Search ---------- */
.wtb-code-layout .wtb-search-page {
	max-width: 1300px;
	margin: 0 auto;
	padding: 30px 20px 60px;
}
@media (min-width: 1341px) { .wtb-code-layout .wtb-search-page { padding-inline: 0; } }
.wtb-code-layout .wtb-search-page__title {
	font-family: Montserrat, sans-serif;
	font-size: 38px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: capitalize;
	color: var(--wtb-blue);
	margin: 0 0 24px;
}
.wtb-code-layout .wtb-results {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 35px 30px;
}
.wtb-code-layout .wtb-result { display: flex; gap: 20px; align-items: flex-start; }
.wtb-code-layout .wtb-result__thumb { flex: 0 0 50%; display: block; aspect-ratio: 318 / 171; overflow: hidden; }
.wtb-code-layout .wtb-result__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wtb-code-layout .wtb-result__body { min-width: 0; }
.wtb-code-layout .wtb-result__title {
	font-family: Raleway, sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2;
	margin: 0;
}
.wtb-code-layout .wtb-result__title a { color: var(--wtb-pink); text-decoration: none; }
.wtb-code-layout .wtb-result__title a:hover { color: var(--wtb-ink); }
.wtb-code-layout .wtb-result__meta {
	font-family: Raleway, sans-serif;
	font-size: 12px;
	line-height: 16px;
	color: #adadad;
	margin-bottom: 13px;
}
.wtb-code-layout .wtb-result__meta span + span::before { content: "///"; margin: 0 5px; }
.wtb-code-layout .wtb-result__excerpt p {
	font-family: Raleway, sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: #777;
	margin: 0 0 16px;
}
.wtb-code-layout .wtb-result__more {
	display: block;
	width: fit-content;
	font-family: Raleway, sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: var(--wtb-pink);
	text-decoration: none;
}
.wtb-code-layout .wtb-pagination {
	margin-top: 40px;
	text-align: center;
	font-family: Raleway, sans-serif;
	font-size: 16px;
}
.wtb-code-layout .wtb-pagination .page-numbers { display: inline-block; margin: 0 6px; color: var(--wtb-ink); text-decoration: none; }
.wtb-code-layout .wtb-pagination .current { color: var(--wtb-pink); font-weight: 700; }

@media (max-width: 1024px) {
	.wtb-code-layout .wtb-results { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
	.wtb-code-layout .wtb-search-page { padding-inline: 10px; }
	.wtb-code-layout .wtb-result { align-items: stretch; }
	.wtb-code-layout .wtb-result__thumb { flex: 0 0 41%; aspect-ratio: auto; }
}

/* ---------- 404 ---------- */
.wtb-code-layout .wtb-404 {
	min-height: 88vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 40px 20px;
	text-align: center;
	background: #f3f5f8 var(--wtb-404-bg) center / cover no-repeat;
}
.wtb-code-layout .wtb-404__code {
	font-family: Poppins, sans-serif;
	font-size: clamp(120px, 30vw, 200px);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wtb-pink);
	margin: 0;
}
.wtb-code-layout .wtb-404__text {
	font-family: Poppins, sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: var(--wtb-blue);
	margin: 0 0 40px;
}
.wtb-code-layout .wtb-404__button {
	display: inline-block;
	padding: 16px 55px;
	border-radius: 100px;
	background: var(--wtb-blue);
	color: #fafafa;
	font-family: Poppins, sans-serif;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
	transition: background .2s;
}
.wtb-code-layout .wtb-404__button:hover,
.wtb-code-layout .wtb-404__button:focus { background: var(--wtb-pink); color: #fff; }

@media (max-width: 767px) {
	.wtb-code-layout .wtb-404 { padding-inline: 18px; }
	.wtb-code-layout .wtb-404__code { font-size: 100px; line-height: 100px; }
	.wtb-code-layout .wtb-404__text { font-size: 14px; margin-bottom: 20px; }
	.wtb-code-layout .wtb-404__button { padding: 15px 48px; }
}
