/* Author Profiles: listing + author page */

.ap-page {
	--ap-red: #e5141b;
	--ap-ink: #151515;
	--ap-text: #3b3b3b;
	--ap-link: #2f6feb;
	--ap-card: #f4f7fd;
	--ap-line: #e3e9f6;
	--ap-soft: #f7f9fe;
	color: var(--ap-ink);
	line-height: 1.5;
}
.ap-page *, .ap-page *::before, .ap-page *::after { box-sizing: border-box; }
.ap-page h1, .ap-page h2, .ap-page h3, .ap-page p, .ap-page ul, .ap-page figure { margin: 0; padding: 0; }
.ap-page h1, .ap-page h2, .ap-page h3 { font-family: inherit; letter-spacing: normal; text-transform: none; color: var(--ap-ink); }
.ap-page a { color: inherit; text-decoration: none; box-shadow: none; }
.ap-page img { max-width: 100%; height: auto; }
.ap-wrap { max-width: 1140px; margin: 0 auto; padding: 0 20px; }
.ap-wrap--narrow { max-width: 920px; }

/* Hero ------------------------------------------------------------------ */
.ap-hero {
	position: relative;
	background-color: #f7f8fe;
	background-image:
		radial-gradient(ellipse 45% 70% at 92% 40%, rgba(196, 206, 255, .45), transparent 70%),
		radial-gradient(ellipse 35% 60% at 6% 10%, rgba(230, 234, 255, .7), transparent 70%),
		linear-gradient(180deg, #fff 0%, #f3f5fe 100%);
	background-size: cover;
	background-position: center;
}
.ap-hero--center { padding: 88px 0 96px; text-align: center; }
.ap-hero__title { color: var(--ap-red) !important; font-size: 4rem !important; font-weight: 500 !important; line-height: 1.2 !important; }
.ap-hero__sub { margin-top: 12px; font-size: 15px; color: var(--ap-text); }

/* Photos ---------------------------------------------------------------- */
.ap-photo { position: relative; display: block; flex: none; overflow: hidden; background: #eef0f5; }
.ap-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ap-photo--square { width: 132px; height: 132px; border-radius: 8px; }
.ap-photo--square::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 30px;
	height: 30px;
	background: var(--ap-red);
	clip-path: polygon(0 0, 100% 100%, 0 100%);
}
.ap-photo--round { width: 96px; height: 96px; border-radius: 50%; background: linear-gradient(135deg, #e6ecff 0%, #fde3e6 100%); }

/* Author meta ----------------------------------------------------------- */
.ap-am__name { font-size: 18px !important; font-weight: 500 !important; line-height: 1.3 !important; }
.ap-am__name a:hover { color: var(--ap-red); }
.ap-am__role { margin-top: 6px !important; font-size: 12.5px; color: var(--ap-text); }
.ap-am__joined { margin-top: 4px !important; font-size: 12.5px; font-weight: 600; }
.ap-am__li { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 12.5px; color: var(--ap-link) !important; }
.ap-am__li:hover { text-decoration: underline; }

/* Listing --------------------------------------------------------------- */
.ap-al { padding: 56px 0 72px; }
.ap-al__row {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 24px 28px;
	align-items: stretch;
	margin-bottom: 24px;
}
.ap-al__row.is-rev { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.ap-al__row.is-rev .ap-al__author { order: 2; }
.ap-al__row.is-solo { grid-template-columns: minmax(0, 1fr); max-width: 640px; }
.ap-al__head { display: flex; align-items: center; gap: 18px; }
.ap-al__bio { margin-top: 18px !important; font-size: 13px; line-height: 1.75; color: var(--ap-text); }
.ap-more { color: var(--ap-red) !important; font-weight: 600; white-space: nowrap; }
.ap-more:hover { text-decoration: underline; }
.ap-empty { text-align: center; color: var(--ap-text); }

/* Blog card ------------------------------------------------------------- */
.ap-pc {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 184px;
	overflow: hidden;
	background: var(--ap-card);
	border: 1px solid var(--ap-line);
	border-radius: 10px;
	transition: box-shadow .2s ease, transform .2s ease;
}
.ap-pc:hover { box-shadow: 0 12px 30px -14px rgba(30, 50, 110, .3); transform: translateY(-2px); }
.ap-pc__body { position: relative; z-index: 1; display: flex; flex: 1; flex-direction: column; padding: 26px 28px 22px; }
.ap-pc__title { font-size: 18px !important; font-weight: 500 !important; line-height: 1.45 !important; }
.ap-pc__title a:hover { color: var(--ap-red); }
.ap-pc__cat { align-self: flex-start; margin-top: 6px; font-size: 12.5px; font-weight: 500; text-decoration: underline !important; text-underline-offset: 3px; }
.ap-pc__foot { margin-top: auto; padding-top: 40px; }
.ap-pc__authors { font-size: 12.5px; font-weight: 500; }
.ap-pc__authors a { text-decoration: underline !important; text-underline-offset: 3px; }
.ap-pc__authors a:hover { color: var(--ap-red); }
.ap-sep { margin: 0 6px 0 4px; }
.ap-pc__meta { margin-top: 8px !important; font-size: 13px; color: var(--ap-text); }
.ap-dot { margin: 0 6px; font-weight: 700; }
.ap-pc__more { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-size: 12.5px; font-weight: 500; color: var(--ap-red) !important; }
.ap-pc__more svg { transition: transform .2s ease; }
.ap-pc__more:hover svg { transform: translateX(3px); }

.ap-pc--feature .ap-pc__foot { padding-top: 24px; }
.ap-pc--half .ap-pc__foot { padding-top: 28px; }
.ap-pc--compact .ap-pc__body { padding: 22px 22px 20px; }
.ap-pc--compact .ap-pc__title { font-size: 16px !important; }
.ap-pc--compact .ap-pc__foot { padding-top: 32px; }

/* Profile --------------------------------------------------------------- */
.ap-hero--profile { padding: 72px 0 88px; border-bottom: 2px dotted rgba(47, 111, 235, .45); }
.ap-pf__head { display: flex; align-items: center; gap: 22px; }
.ap-pf__head .ap-am__name { font-size: 20px !important; }
.ap-pf__bio { margin-top: 24px; font-size: 14px; line-height: 1.85; color: var(--ap-text); text-align: justify; }
.ap-pf__bio p + p { margin-top: 16px; }
.ap-pf__bio a { color: var(--ap-link); text-decoration: underline; }

.ap-pf__extra { padding: 64px 0; }
.ap-pf__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 48px 80px; }
.ap-pf__h { margin-bottom: 18px !important; font-size: 20px !important; font-weight: 500 !important; }
.ap-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.ap-chips li { margin: 0; padding: 7px 12px; background: #f1f1f1; border-radius: 4px; font-size: 12.5px; line-height: 1.4; color: #222; }
.ap-certs { display: flex; flex-wrap: wrap; gap: 24px; }
.ap-cert { width: 220px; text-align: center; }
.ap-cert__img {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 124px;
	padding: 12px;
	border: 1px solid var(--ap-line);
	border-radius: 8px;
	background: radial-gradient(circle at 50% 45%, #fff 0, #eef2fb 75%);
}
.ap-cert__img img { max-width: 100%; max-height: 100%; width: auto; object-fit: contain; }
.ap-cert figcaption { margin-top: 12px; font-size: 14px; font-weight: 500; line-height: 1.5; }
.ap-cert a:hover figcaption { color: var(--ap-red); }

.ap-pf__blogs { padding: 64px 0 80px; background: var(--ap-soft); }
.ap-pf__blogs-title { margin-bottom: 28px !important; text-align: center; font-size: clamp(22px, 2.4vw, 28px) !important; font-weight: 500 !important; }
.ap-blogs { display: flex; flex-direction: column; gap: 16px; }
.ap-grid { display: grid; gap: 16px; }
.ap-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ap-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ap-loadmore {
	display: block;
	margin: 32px auto 0;
	padding: 12px 30px;
	border: 1px solid var(--ap-red);
	border-radius: 6px;
	background: #fff;
	color: var(--ap-red);
	font: inherit;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: background .2s ease, color .2s ease;
}
.ap-loadmore:hover, .ap-loadmore:focus-visible { background: var(--ap-red); color: #fff; }
.ap-loadmore.is-loading { opacity: .6; cursor: progress; }

/* Author boxes on posts ([ap_post_author_boxes]) ------------------------ */
.ap-boxes { display: grid; gap: 40px; }
.ap-boxes__heading { font-size: 20px !important; font-weight: 500 !important; }
.ap-box { display: flex; gap: 32px; align-items: flex-start; }
.ap-box__photo.ap-photo--square { width: 180px; height: 186px; border-radius: 10px; background: #f1f2f6; }
.ap-box__photo.ap-photo--square::after { width: 24px; height: 24px; }
.ap-box__body { flex: 1; min-width: 0; padding-top: 6px; }
.ap-box__name { font-size: 15px; font-weight: 600; line-height: 1.4; color: var(--ap-ink); }
.ap-box__name a:hover { color: var(--ap-red); }
.ap-box__role { margin-top: 4px !important; font-size: 15px; color: var(--ap-ink); }
.ap-box__bio { margin-top: 14px; font-size: 14px; line-height: 1.6; color: #222; }
.ap-box__bio p { margin: 0; }
.ap-box__bio p + p { margin-top: 10px; }
.ap-box__li { display: inline-flex; margin-top: 18px; color: #2a7bd4 !important; }
.ap-box__li:hover { color: #0a66c2 !important; }
@media (max-width: 640px) {
	.ap-box { flex-direction: column; gap: 18px; }
	.ap-box__photo.ap-photo--square { width: 140px; height: 145px; }
}

/* Newsletter band ------------------------------------------------------- */
.ap-newsletter {
	width: 100%;
	padding: 56px 0;
	text-align: center;
	background:
		radial-gradient(ellipse 40% 90% at 100% 50%, rgba(229, 20, 27, .08), transparent 70%),
		radial-gradient(ellipse 40% 90% at 0% 50%, rgba(47, 111, 235, .08), transparent 70%),
		#f3f6fe;
	border-top: 1px solid var(--ap-line);
}
.ap-newsletter__title { font-size: clamp(22px, 2.6vw, 30px) !important; font-weight: 500 !important; line-height: 1.3 !important; }
.ap-newsletter__form { max-width: 640px; margin: 24px auto 0; text-align: left; }

.ap-mc { position: relative; max-width: 560px; margin: 24px auto 0; }
.ap-mc__row { display: flex; gap: 8px; padding: 6px; background: #fff; border: 1px solid var(--ap-line); border-radius: 8px; box-shadow: 0 8px 24px -16px rgba(30, 50, 110, .35); }
.ap-mc__input {
	flex: 1;
	min-width: 0;
	height: 46px;
	margin: 0 !important;
	padding: 0 14px !important;
	border: 0 !important;
	border-radius: 6px;
	background: transparent !important;
	box-shadow: none !important;
	font: inherit;
	font-size: 14px;
	color: var(--ap-ink);
}
.ap-mc__input:focus { outline: 2px solid rgba(47, 111, 235, .35); outline-offset: 0; }
.ap-mc__btn {
	flex: none;
	height: 46px;
	margin: 0;
	padding: 0 26px;
	border: 0;
	border-radius: 6px;
	background: var(--ap-red);
	color: #fff;
	font: inherit;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: background .2s ease;
}
.ap-mc__btn:hover, .ap-mc__btn:focus-visible { background: #c10f15; }
.ap-mc__btn:disabled { opacity: .6; cursor: progress; }
.ap-mc__msg { margin-top: 12px !important; font-size: 13.5px; }
.ap-mc__msg.is-ok { color: #11803a; }
.ap-mc__msg.is-error { color: var(--ap-red); }

/* Responsive ------------------------------------------------------------ */
@media (max-width: 960px) {
	.ap-al__row, .ap-al__row.is-rev { grid-template-columns: minmax(0, 1fr); margin-bottom: 44px; }
	.ap-al__row.is-rev .ap-al__author { order: 0; }
	.ap-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ap-pf__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
	.ap-wrap { padding: 0 16px; }
	.ap-hero--center { padding: 60px 0 64px; }
	.ap-hero__title { font-size: 2.5rem !important; }
	.ap-hero--profile { padding: 48px 0 56px; }
	.ap-photo--square { width: 104px; height: 104px; }
	.ap-pf__head { flex-direction: column; align-items: flex-start; }
	.ap-pf__bio { text-align: left; }
	.ap-grid--2, .ap-grid--3 { grid-template-columns: minmax(0, 1fr); }
	.ap-pc__body { padding: 22px 20px; }
	.ap-cert { width: 100%; max-width: 260px; }
	.ap-mc__row { flex-direction: column; }
	.ap-mc__btn { width: 100%; }
}
