/* ===================================
   AuthorKit Reviews — v1.0.0
   Styles for [authorkit_reviews] shortcode output.
   Loaded only on singular authorkit_book pages.
   =================================== */

/* ===================================
   Reviews Summary Header (Accordion toggle)
   =================================== */

.authorkit-reviews-summary {
	background: #fff;
	border: 1px solid #D5D9D9;
	border-radius: 8px;
	padding: 20px 24px;
	margin-bottom: 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease;
	user-select: none;
}

.authorkit-reviews-summary:hover {
	background: #F7F8F8;
	border-color: #C7C7C7;
}

.authorkit-reviews-summary:focus {
	outline: 2px solid #007185;
	outline-offset: 2px;
}

.authorkit-reviews-summary:focus:not(:focus-visible) {
	outline: none;
}

.authorkit-reviews-summary:focus-visible {
	outline: 2px solid #007185;
	outline-offset: 2px;
}

.authorkit-rating-group {
	display: flex;
	align-items: center;
	gap: 16px;
	flex: 1;
}

.authorkit-rating-number {
	font-size: 28px;
	font-weight: 400;
	color: #0F1111;
	line-height: 1;
}

.authorkit-rating-meta {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.authorkit-rating-count {
	font-size: 14px;
	color: #565959;
	font-weight: 400;
}

.authorkit-reviews-toggle {
	font-size: 24px;
	font-weight: 400;
	color: #565959;
	transition: transform 0.2s ease;
	display: inline-block;
	min-width: 24px;
	text-align: center;
	flex-shrink: 0;
	line-height: 1;
}

.authorkit-reviews-summary.is-collapsed .authorkit-reviews-toggle {
	transform: rotate(0deg);
}

.authorkit-reviews-summary:not(.is-collapsed) .authorkit-reviews-toggle {
	transform: rotate(90deg);
}

/* ===================================
   Star Rating Utility
   =================================== */

.authorkit-stars {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	font-size: 20px;
	letter-spacing: 2px;
	line-height: 1;
}

.authorkit-reviews-summary .authorkit-stars {
	font-size: 20px;
	letter-spacing: 2px;
}

.authorkit-review-header .authorkit-stars {
	font-size: 14px;
	letter-spacing: 1px;
}

.authorkit-star {
	display: inline-block;
	line-height: 1;
}

.authorkit-star--full {
	color: #FFA41C;
}

.authorkit-star--half {
	background: linear-gradient(90deg, #FFA41C 50%, #C7C7C7 50%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.authorkit-star--empty {
	color: #C7C7C7;
}

/* ===================================
   Reviews Accordion (collapsible list)
   =================================== */

.authorkit-reviews-accordion {
	display: flex;
	flex-direction: column;
	gap: 0;
	max-height: 9999px;
	overflow: hidden;
	transition: max-height 0.4s ease-out, opacity 0.3s ease-out;
	opacity: 1;
}

.authorkit-reviews-accordion.is-collapsed {
	max-height: 0;
	opacity: 0;
	transition: max-height 0.3s ease-in, opacity 0.2s ease-in;
}

/* ===================================
   Individual Review Card
   =================================== */

.authorkit-review-item {
	background: #fff;
	border-bottom: 1px solid #D5D9D9;
	padding: 16px 0;
}

.authorkit-review-item:first-child {
	padding-top: 0;
}

.authorkit-review-item:last-child {
	border-bottom: none;
}

/* Review Header row: avatar + content */
.authorkit-review-header {
	display: flex;
	gap: 16px;
	margin-bottom: 12px;
}

.authorkit-review-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #E3E6E6;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #232F3E;
	font-size: 16px;
	font-weight: 700;
	flex-shrink: 0;
	text-transform: uppercase;
	border: 1px solid #D5D9D9;
}

.authorkit-review-header-content {
	flex: 1;
	min-width: 0;
}

.authorkit-review-header-top {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 4px;
	flex-wrap: wrap;
}

.authorkit-reviewer-name {
	font-weight: 700;
	color: #0F1111;
	font-size: 14px;
}

.authorkit-review-title {
	font-size: 14px;
	font-weight: 700;
	color: #0F1111;
	margin: 0 0 6px 0;
	line-height: 1.4;
}

/* Review meta row: date, verified badge, source */
.authorkit-review-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: #565959;
}

.authorkit-review-meta > *:not(:last-child)::after {
	content: "•";
	margin-left: 8px;
	color: #C7C7C7;
}

.authorkit-review-date {
	color: #565959;
}

.authorkit-verified-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: #007185;
	font-weight: 500;
}

.authorkit-verified-badge::before {
	content: "✓";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 14px;
	height: 14px;
	background: #007185;
	color: #fff;
	border-radius: 50%;
	font-size: 10px;
	font-weight: 700;
}

.authorkit-review-source {
	display: inline-flex;
	align-items: center;
}

.authorkit-source-link {
	color: #007185;
	text-decoration: none;
	font-weight: 500;
	transition: color 0.15s ease, text-decoration 0.15s ease;
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.authorkit-source-link:hover {
	color: #C7511F;
	text-decoration: underline;
}

.authorkit-source-link::after {
	content: "↗";
	font-size: 0.85em;
	opacity: 0.7;
}

/* Review body — always visible */
.authorkit-review-content {
	padding-left: 56px; /* align with avatar */
}

.authorkit-review-text {
	line-height: 1.6;
	color: #0F1111;
	font-size: 14px;
}

.authorkit-review-text p {
	margin: 0 0 12px 0;
}

.authorkit-review-text p:last-child {
	margin-bottom: 0;
}

.authorkit-review-text h3 {
	font-size: 16px;
	font-weight: 700;
	margin: 16px 0 8px 0;
	color: #0F1111;
}

.authorkit-review-text ul,
.authorkit-review-text ol {
	margin: 12px 0;
	padding-left: 20px;
}

.authorkit-review-text li {
	margin-bottom: 6px;
}

.authorkit-review-text strong {
	font-weight: 700;
}

.authorkit-review-text em {
	font-style: italic;
}

/* ===================================
   No Reviews State
   =================================== */

.authorkit-no-reviews {
	text-align: center;
	padding: 40px 20px;
	background: #fff;
	border: 1px solid #D5D9D9;
	border-radius: 8px;
	color: #565959;
	font-size: 14px;
	margin-bottom: 24px;
}

.authorkit-no-reviews strong {
	color: #0F1111;
	font-weight: 700;
}

/* ===================================
   Review CTA Section
   =================================== */

.authorkit-review-cta {
	background: #fff;
	border: 1px solid #D5D9D9;
	border-radius: 8px;
	padding: 24px;
	margin-top: 24px;
}

.authorkit-review-cta-header {
	text-align: center;
	margin-bottom: 20px;
}

.authorkit-review-cta-title {
	font-size: 20px;
	font-weight: 700;
	color: #0F1111;
	margin: 0 0 8px 0;
}

.authorkit-review-cta-description {
	font-size: 14px;
	color: #565959;
	margin: 0;
	line-height: 1.5;
}

.authorkit-review-cta-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
}

.authorkit-review-cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 24px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: opacity 0.2s ease, transform 0.15s ease;
	border: 2px solid transparent;
	min-width: 180px;
	justify-content: center;
}

.authorkit-review-cta-btn:hover {
	opacity: 0.88;
	transform: translateY(-1px);
}

.authorkit-review-cta-btn:active {
	transform: translateY(0);
}

.authorkit-review-cta-btn:focus {
	outline: 2px solid #007185;
	outline-offset: 2px;
}

.authorkit-review-cta-btn:focus:not(:focus-visible) {
	outline: none;
}

.authorkit-review-cta-btn:focus-visible {
	outline: 2px solid #007185;
	outline-offset: 2px;
}

.authorkit-review-cta-btn .btn-icon {
	font-size: 18px;
	line-height: 1;
}

.authorkit-review-cta-btn .btn-text {
	line-height: 1;
}

/* Amazon */
.authorkit-cta-btn--amazon {
	background: #FF9900;
	color: #000;
	border-color: #FF9900;
}

/* Goodreads */
.authorkit-cta-btn--goodreads {
	background: #553B08;
	color: #fff;
	border-color: #553B08;
}

/* Google Form */
.authorkit-cta-btn--form {
	background: #0e7184;
	color: #fff;
	border-color: #0e7184;
}

/* ===================================
   Error / Notice
   =================================== */

.authorkit-reviews-error {
	padding: 20px;
	background: #FFF3CD;
	border-left: 4px solid #FFA41C;
	border-radius: 4px;
	margin: 20px 0;
}

.authorkit-reviews-error p {
	margin: 0;
	color: #0F1111;
	font-size: 14px;
}

/* ===================================
   Screen-reader utility
   =================================== */

.authorkit-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}

/* ===================================
   Responsive — tablet
   =================================== */

@media (max-width: 768px) {
	.authorkit-reviews-summary {
		padding: 16px;
	}

	.authorkit-rating-number {
		font-size: 26px;
	}

	.authorkit-reviews-summary .authorkit-stars {
		font-size: 18px;
	}

	.authorkit-review-header {
		gap: 12px;
	}

	.authorkit-review-avatar {
		width: 36px;
		height: 36px;
		font-size: 14px;
	}

	.authorkit-review-content {
		padding-left: 48px;
	}

	.authorkit-review-cta-buttons {
		flex-direction: column;
		align-items: stretch;
	}

	.authorkit-review-cta-btn {
		width: 100%;
	}
}

/* ===================================
   Responsive — mobile
   =================================== */

@media (max-width: 576px) {
	.authorkit-reviews-summary {
		padding: 14px;
	}

	.authorkit-rating-number {
		font-size: 24px;
	}

	.authorkit-rating-group {
		gap: 12px;
	}

	.authorkit-review-header {
		gap: 10px;
	}

	.authorkit-review-avatar {
		width: 32px;
		height: 32px;
		font-size: 12px;
	}

	.authorkit-review-content {
		padding-left: 0;
		margin-top: 12px;
	}

	.authorkit-review-title {
		font-size: 13px;
	}

	.authorkit-review-text {
		font-size: 13px;
	}

	.authorkit-review-cta {
		padding: 20px;
	}

	.authorkit-review-cta-title {
		font-size: 18px;
	}

	.authorkit-review-cta-description {
		font-size: 13px;
	}

	.authorkit-review-cta-btn {
		min-width: unset;
		font-size: 13px;
		padding: 10px 20px;
	}
}

/* ===================================
   Print
   =================================== */

@media print {
	.authorkit-review-item {
		page-break-inside: avoid;
		border: 1px solid #000;
	}

	.authorkit-source-link::after {
		content: " (" attr(href) ")";
		font-size: 0.8em;
	}

	.authorkit-review-cta {
		display: none;
	}
}
