/*
 * Inamorai Core Style System
 */

@font-face {
	font-family: 'Poppins';
	src: url('../fonts/poppins-regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Poppins';
	src: url('../fonts/poppins-medium.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Poppins';
	src: url('../fonts/poppins-semibold.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Poppins';
	src: url('../fonts/poppins-bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Newsreader';
	src: url('../fonts/newsreader-regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Newsreader';
	src: url('../fonts/newsreader-semibold.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Newsreader';
	src: url('../fonts/newsreader-italic.woff2') format('woff2');
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

:root {
	--coral: #FF7A9A;
	--magenta: #B5179E;
	--violet: #7B2CBF;
	--plum: #2A1A2E;
	--background: #FBF6F8;
	--card-bg: #FFFFFF;
	--border: #efe2ea;
	--text-main: #2A1A2E;
	--text-muted: #8a6f80;
	
	--green: #1f9d6b;
	--green-bg: #e6f7f0;
	--red: #d6456b;
	--red-bg: #fcf0f2;
	
	--gradient: linear-gradient(120deg, var(--coral), var(--magenta) 55%, var(--violet));
	--shadow: 0 8px 30px rgba(42, 26, 46, 0.04);
	--shadow-hover: 0 12px 40px rgba(42, 26, 46, 0.08);
	--transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
	--radius: 20px;
	--font-sans: 'Poppins', sans-serif;
	--font-serif: 'Poppins', sans-serif;
	--container-width: 1200px;
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html, body {
	overflow-x: hidden;
}

body {
	font-family: var(--font-sans);
	color: var(--text-main);
	background: var(--background);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

/* Age Gate zero-CLS container */
#inamorai-age-gate {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(42, 26, 46, 0.96);
	backdrop-filter: blur(12px);
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s ease;
}

body.age-gate-active {
	overflow: hidden;
}

body.age-gate-active #inamorai-age-gate {
	opacity: 1;
	pointer-events: auto;
}

.age-gate-card {
	background: #fff;
	max-width: 500px;
	width: 90%;
	padding: 40px;
	border-radius: 24px;
	text-align: center;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
	transform: scale(0.95);
	transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

body.age-gate-active .age-gate-card {
	transform: scale(1);
}

.age-gate-logo {
	width: 140px;
	height: auto;
	margin-bottom: 24px;
}

.age-gate-card h2 {
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 12px;
	color: var(--plum);
}

.age-gate-card p {
	font-size: 15px;
	color: var(--text-muted);
	margin-bottom: 30px;
}

.age-gate-buttons {
	display: flex;
	gap: 15px;
	justify-content: center;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 28px;
	font-size: 15px;
	font-weight: 600;
	border-radius: 999px;
	text-decoration: none;
	cursor: pointer;
	transition: var(--transition);
	border: none;
}

.btn-primary {
	background: var(--gradient);
	color: #fff;
}

.btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(181, 23, 158, 0.3);
}

.btn-secondary {
	background: #f1e6ee;
	color: var(--plum);
}

.btn-secondary:hover {
	background: #efe2ea;
}

/* Cookie consent banner styling */
#inamorai-consent-banner {
	position: fixed;
	bottom: 24px;
	left: 24px;
	right: 24px;
	max-width: 600px;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: 20px 24px;
	box-shadow: 0 10px 40px rgba(42, 26, 46, 0.1);
	z-index: 99999;
	display: flex;
	flex-direction: column;
	gap: 15px;
	opacity: 0;
	transform: translateY(20px);
	pointer-events: none;
	transition: opacity 0.4s ease, transform 0.4s ease;
}

#inamorai-consent-banner.show {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.consent-text {
	font-size: 13px;
	color: var(--text-muted);
}

.consent-buttons {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
}

.btn-sm {
	padding: 8px 18px;
	font-size: 12px;
}

/* Global Layout Grid */
.container {
	max-width: var(--container-width);
	margin: 0 auto;
	padding: 0 24px;
}

/* Header Navbar Styles */
.site-header {
	background: #fff;
	border-bottom: 1px solid var(--border);
	position: sticky;
	top: 0;
	z-index: 9999;
	padding: 16px 0;
}

.header-wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.logo-link svg {
	height: 38px;
	width: auto;
}

.nav-menu {
	display: flex;
	gap: 28px;
	list-style: none;
}

.nav-menu a {
	text-decoration: none;
	color: var(--text-main);
	font-size: 14px;
	font-weight: 500;
	transition: var(--transition);
}

.nav-menu a:hover {
	color: var(--magenta);
}

.mobile-menu-toggle {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	font-size: 24px;
}

/* FTC Disclosure Header */
.ftc-disclosure-top {
	background: #fbfbfb;
	border-bottom: 1px solid var(--border);
	padding: 8px 0;
	font-size: 11px;
	color: var(--text-muted);
	text-align: center;
}

/* Review Single Scorecard Section */
.scorecard-hero {
	background: #fff;
	border-radius: var(--radius);
	border: 1px solid var(--border);
	padding: 30px;
	margin: 30px 0;
	display: grid;
	grid-template-columns: 1fr 280px;
	gap: 30px;
}

.scorecard-info {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.scorecard-badge {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	background: var(--gradient);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 5px 12px;
	border-radius: 999px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

.scorecard-title-row {
	display: flex;
	align-items: center;
	gap: 15px;
}

.scorecard-logo {
	width: 64px;
	height: 64px;
	border-radius: 14px;
	object-fit: cover;
	border: 1px solid var(--border);
}

.scorecard-title-row h1 {
	font-size: 28px;
	color: var(--plum);
	font-weight: 700;
}

.verdict-line {
	font-size: 16px;
	color: var(--text-muted);
	font-style: italic;
	font-family: var(--font-serif);
}

.spec-icons-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.spec-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #f6f7f7;
	border: 1px solid var(--border);
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 500;
}

.scorecard-action {
	background: #fbf4f8;
	border: 1px dashed var(--magenta);
	border-radius: 16px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 15px;
}

.overall-circle {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: var(--gradient);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: #fff;
	position: relative;
}

.overall-number {
	font-size: 32px;
	font-weight: 700;
	line-height: 1;
}

.overall-label {
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Modality Grid Icons */
.modalities-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 12px;
	margin-top: 15px;
}

.modality-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 12px;
	font-size: 12px;
	font-weight: 500;
}

.modality-item.active {
	border-color: var(--green);
	background: var(--green-bg);
	color: #0d5c3a;
}

.modality-item.inactive {
	border-color: var(--border);
	opacity: 0.6;
	text-decoration: line-through;
}

/* Layout for Single Companion Template */
.companion-layout {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 40px;
	margin-top: 30px;
	align-items: start;
}

/* Sticky TOC Sidebar Navigation */
.toc-sidebar {
	position: sticky;
	top: 100px;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 16px;
	padding: 20px;
}

.toc-sidebar h3 {
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--text-muted);
	margin-bottom: 15px;
	font-weight: 700;
}

.toc-list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.toc-list a {
	text-decoration: none;
	font-size: 13px;
	color: var(--text-main);
	font-weight: 500;
	transition: var(--transition);
	display: block;
}

.toc-list a:hover,
.toc-list li.active a {
	color: var(--magenta);
	padding-left: 4px;
}

/* Editorial Body Typography */
.editorial-content {
	background: #fff;
	border-radius: var(--radius);
	border: 1px solid var(--border);
	padding: 40px;
	box-shadow: var(--shadow);
}

.editorial-content h2 {
	font-size: 22px;
	margin-top: 35px;
	margin-bottom: 15px;
	color: var(--plum);
	font-weight: 700;
	border-bottom: 2px solid var(--background);
	padding-bottom: 8px;
}

.editorial-content h2:first-of-type {
	margin-top: 0;
}

.editorial-content p {
	font-family: var(--font-serif);
	font-size: 17px;
	line-height: 1.7;
	color: var(--plum);
	margin-bottom: 24px;
}

/* Score Breakdown Grid */
.score-breakdown-card {
	background: #fdfafc;
	border: 1px solid var(--border);
	border-radius: 16px;
	padding: 24px;
	margin: 30px 0;
}

.score-breakdown-card h3 {
	font-size: 16px;
	font-weight: 700;
	color: var(--plum);
	margin-bottom: 18px;
}

.scores-bars-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 15px 30px;
}

.score-row {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.score-label-row {
	display: flex;
	justify-content: space-between;
	font-size: 13px;
	font-weight: 600;
}

.score-progress-bar-bg {
	height: 8px;
	background: #efe2ea;
	border-radius: 99px;
	overflow: hidden;
}

.score-progress-bar-fill {
	height: 100%;
	background: var(--gradient);
	border-radius: 99px;
	width: 0;
	transition: width 1s cubic-bezier(0.1, 0.8, 0.2, 1);
}

/* Pros and Cons Panels */
.pros-cons-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin: 30px 0;
}

.pros-panel {
	background: var(--green-bg);
	border: 1px solid #c2ebda;
	border-radius: 16px;
	padding: 24px;
}

.pros-panel h4 {
	color: #0d5c3a;
	font-size: 15px;
	font-weight: 700;
	margin-bottom: 12px;
}

.cons-panel {
	background: var(--red-bg);
	border: 1px solid #f6d1d8;
	border-radius: 16px;
	padding: 24px;
}

.cons-panel h4 {
	color: #7b1d34;
	font-size: 15px;
	font-weight: 700;
	margin-bottom: 12px;
}

.pros-panel ul, .cons-panel ul {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.pros-panel li::before {
	content: "✓";
	color: var(--green);
	font-weight: bold;
	margin-right: 8px;
}

.cons-panel li::before {
	content: "✕";
	color: var(--red);
	font-weight: bold;
	margin-right: 8px;
}

.pros-panel li, .cons-panel li {
	font-size: 13.5px;
	font-weight: 500;
	color: var(--plum);
}

/* Pricing Section Toggle */
.pricing-section-wrap {
	margin: 30px 0;
}

.pricing-toggle-wrap {
	display: flex;
	justify-content: center;
	margin-bottom: 20px;
}

.pricing-toggle-container {
	background: #f1e6ee;
	border-radius: 99px;
	padding: 4px;
	display: inline-flex;
}

.pricing-toggle-btn {
	padding: 8px 20px;
	font-size: 13px;
	font-weight: 600;
	border-radius: 99px;
	cursor: pointer;
	transition: var(--transition);
}

.pricing-toggle-btn.active {
	background: var(--plum);
	color: #fff;
}

.plans-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
}

.plan-card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 18px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	transition: var(--transition);
}

.plan-card:hover {
	transform: translateY(-4px);
	border-color: var(--magenta);
	box-shadow: var(--shadow-hover);
}

.plan-card h4 {
	font-size: 16px;
	color: var(--plum);
	font-weight: 700;
	margin-bottom: 10px;
}

.plan-price-wrap {
	margin-bottom: 18px;
}

.plan-price-amount {
	font-size: 28px;
	font-weight: 700;
	color: var(--plum);
}

.plan-price-period {
	font-size: 12px;
	color: var(--text-muted);
}

.plan-features-list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 24px;
	font-size: 13px;
}

.plan-features-list li::before {
	content: "•";
	color: var(--magenta);
	font-weight: bold;
	margin-right: 6px;
}

.plan-card .btn {
	margin-top: auto;
}

/* FAQ Accordion Styling */
.faq-accordion {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 25px 0;
}

.faq-item {
	border: 1px solid var(--border);
	border-radius: 12px;
	overflow: hidden;
	background: #fdfafc;
}

.faq-question {
	padding: 16px 20px;
	font-size: 14px;
	font-weight: 600;
	color: var(--plum);
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #fff;
}

.faq-question::after {
	content: "+";
	font-size: 18px;
	color: var(--text-muted);
}

.faq-item.active .faq-question::after {
	content: "-";
}

.faq-answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s cubic-bezier(0, 1, 0, 1);
	padding: 0 20px;
	font-family: var(--font-serif);
	font-size: 15px;
	color: var(--plum);
}

.faq-item.active .faq-answer {
	max-height: 1000px;
	padding: 16px 20px;
}

/* Author Trust Byline Badge */
.trust-byline-card {
	background: #fbf6f8;
	border: 1px solid var(--border);
	border-radius: 16px;
	padding: 20px 24px;
	margin-top: 40px;
	display: flex;
	align-items: center;
	gap: 20px;
}

.author-avatar {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	object-fit: cover;
}

.trust-byline-meta h5 {
	font-size: 14px;
	font-weight: 700;
	color: var(--plum);
}

.trust-byline-meta p {
	font-size: 11px;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-top: 3px;
}

/* Helpfulness Feedback Poll */
.helpfulness-poll-container {
	border-top: 1px solid var(--border);
	margin-top: 30px;
	padding-top: 20px;
	text-align: center;
}

.helpfulness-poll-container p {
	font-size: 13px;
	font-weight: 600;
	color: var(--plum);
	margin-bottom: 12px;
}

.feedback-buttons {
	display: flex;
	gap: 10px;
	justify-content: center;
}

.feedback-btn {
	padding: 6px 16px;
	font-size: 12px;
	border: 1px solid var(--border);
	background: #fff;
	border-radius: 99px;
	cursor: pointer;
	transition: var(--transition);
}

.feedback-btn:hover {
	border-color: var(--magenta);
	color: var(--magenta);
}

/* Category Directory Grid and Filter Panel */
.directory-layout {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 30px;
	margin-top: 30px;
}

.filter-sidebar {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 18px;
	padding: 24px;
}

.filter-widget {
	margin-bottom: 24px;
	border-bottom: 1px solid var(--background);
	padding-bottom: 18px;
}

.filter-widget:last-of-type {
	margin-bottom: 0;
	border-bottom: none;
	padding-bottom: 0;
}

.filter-widget h4 {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--text-muted);
	margin-bottom: 12px;
}

.filter-options {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.filter-options label {
	font-size: 13.5px;
	font-weight: 500;
	color: var(--plum);
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 10px;
}

.filter-options input[type="checkbox"] {
	accent-color: var(--magenta);
	width: 16px;
	height: 16px;
}

/* Directory Cards List */
.directory-cards-container {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.directory-row-card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 24px;
	display: grid;
	grid-template-columns: 80px 1fr 140px 180px;
	align-items: center;
	gap: 24px;
	transition: var(--transition);
}

.directory-row-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-hover);
	border-color: var(--border);
}

.card-logo-wrap img {
	width: 80px;
	height: 80px;
	border-radius: 16px;
	object-fit: cover;
	border: 1px solid var(--border);
}

.card-content-wrap h3 {
	font-size: 18px;
	font-weight: 700;
	color: var(--plum);
	margin-bottom: 6px;
}

.card-verdict {
	font-size: 13px;
	color: var(--text-muted);
}

.card-score-box {
	display: flex;
	flex-direction: column;
	align-items: center;
	border-left: 1px solid var(--border);
	border-right: 1px solid var(--border);
	padding: 0 10px;
}

.card-score-box .score-number {
	font-size: 26px;
	font-weight: 700;
	color: var(--magenta);
}

.card-score-box .score-label {
	font-size: 9px;
	font-weight: 600;
	color: var(--text-muted);
	text-transform: uppercase;
}

.card-actions-wrap {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.card-actions-wrap .btn {
	width: 100%;
	font-size: 13px;
	padding: 10px 15px;
}

/* Comparison Head-to-Head Spec Table template */
.compare-hero-cards {
	display: grid;
	grid-template-columns: 1fr 80px 1fr;
	align-items: center;
	gap: 20px;
	margin: 40px 0;
}

.vs-badge {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: var(--plum);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 18px;
	justify-self: center;
}

.compare-app-card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: 30px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 15px;
}

.compare-app-card img {
	width: 80px;
	height: 80px;
	border-radius: 16px;
}

.compare-spec-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid var(--border);
	margin: 30px 0;
}

.compare-spec-table th, .compare-spec-table td {
	padding: 16px 20px;
	text-align: center;
	border-bottom: 1px solid var(--border);
}

.compare-spec-table th {
	font-weight: 700;
	color: var(--plum);
	background: #fdfafc;
}

.compare-spec-table tr td:first-child {
	text-align: left;
	font-weight: 600;
	color: var(--text-main);
	width: 25%;
}

.check-icon {
	color: var(--green);
	font-weight: bold;
}

.cross-icon {
	color: var(--red);
	font-weight: bold;
}

/* Winner Banner Overlay style */
.winner-banner {
	background: var(--green-bg);
	border: 2px solid var(--green);
	color: #0d5c3a;
	padding: 15px 20px;
	border-radius: 14px;
	font-weight: 700;
	margin-bottom: 24px;
	text-align: center;
}

/* Footer & Compliance Links */
.site-footer {
	background: var(--plum);
	color: #fff;
	padding: 60px 0 30px;
	margin-top: 60px;
}

.footer-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 40px;
	margin-bottom: 40px;
}

.footer-widget h3 {
	font-size: 16px;
	margin-bottom: 20px;
	font-weight: 700;
}

.footer-widget p {
	color: #b69cab;
	font-size: 13px;
	line-height: 1.6;
}

.footer-links {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.footer-links a {
	color: #b69cab;
	text-decoration: none;
	font-size: 13.5px;
	transition: var(--transition);
}

.footer-links a:hover {
	color: #fff;
}

.footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 24px;
	text-align: center;
}

.footer-bottom p {
	color: #8a6f80;
	font-size: 11px;
}

/* Mobile Responsive Adjustments */
@media (max-width: 991px) {
	.scorecard-hero {
		grid-template-columns: 1fr;
	}
	.companion-layout {
		grid-template-columns: 1fr;
	}
	.toc-sidebar {
		display: none; /* Hide TOC on mobile */
	}
	.directory-layout {
		grid-template-columns: 1fr;
	}
	.directory-row-card {
		grid-template-columns: 80px 1fr 120px;
		gap: 15px;
	}
	.directory-row-card .card-actions-wrap {
		grid-column: span 2;
	}
}

/* ==========================================================================
   CPT Single Companion Revamped Styles
   ========================================================================== */

.review-breadcrumbs {
	background: #fff;
	border-bottom: 1px solid var(--border);
	padding: 12px 0;
	font-size: 13px;
	color: var(--text-muted);
}
.review-breadcrumbs a {
	color: var(--text-muted);
	text-decoration: none;
	transition: var(--transition);
}
.review-breadcrumbs a:hover {
	color: var(--magenta);
}

.companion-review-main {
	padding: 40px 0;
}

/* Review Hero Panel */
.review-hero-panel {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 28px;
	padding: 40px;
	margin-bottom: 40px;
	box-shadow: var(--shadow);
	display: grid;
	grid-template-columns: 1.8fr 1fr;
	gap: 40px;
	align-items: center;
	position: relative;
	overflow: hidden;
}
.review-hero-panel::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 300px;
	height: 300px;
	background: radial-gradient(circle, rgba(181, 23, 158, 0.03) 0%, transparent 70%);
	pointer-events: none;
}

.choice-ribbon {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	background: linear-gradient(135deg, #ffd700, #ffa500);
	color: var(--plum);
	font-size: 11px;
	font-weight: 700;
	padding: 6px 14px;
	border-radius: 99px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	box-shadow: 0 4px 12px rgba(255, 215, 0, 0.2);
	margin-bottom: -5px;
}

.hero-left-col {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding-top: 20px;
}
.hero-header-row {
	display: flex;
	align-items: center;
	gap: 20px;
}
.app-logo-frame {
	width: 80px;
	height: 80px;
	border-radius: 20px;
	overflow: hidden;
	border: 1px solid var(--border);
	flex-shrink: 0;
	box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
.app-logo {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.app-logo-placeholder {
	width: 100%;
	height: 100%;
	background: #fdf2f5;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 32px;
}
.app-title-block h1 {
	font-size: 36px;
	color: var(--plum);
	font-weight: 700;
	line-height: 1.2;
}
.best-for-badge {
	display: inline-block;
	background: #fdf2f5;
	color: var(--magenta);
	font-size: 12px;
	font-weight: 600;
	padding: 4px 12px;
	border-radius: 99px;
	margin-top: 6px;
}

.hero-verdict-quote {
	font-family: var(--font-serif);
	font-size: 20px;
	color: var(--text-muted);
	line-height: 1.5;
	font-style: italic;
	border-left: 3px solid var(--coral);
	padding-left: 16px;
}

.hero-quick-specs-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 15px;
	border-top: 1px solid var(--border);
	padding-top: 20px;
}
.spec-cell {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.spec-label {
	font-size: 11px;
	color: var(--text-muted);
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: 0.05em;
}
.spec-value {
	font-size: 14px;
	font-weight: 600;
	color: var(--plum);
}

.hero-right-col {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: #faf5f8;
	border: 1px dashed var(--border);
	border-radius: 24px;
	padding: 30px;
	text-align: center;
}

/* Score Circle Panel SVG */
.score-circle-panel {
	position: relative;
	width: 140px;
	height: 140px;
	margin-bottom: 24px;
}
.score-ring {
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}
.score-ring-bg {
	fill: none;
	stroke: #efe2ea;
	stroke-width: 8;
}
.score-ring-fill {
	fill: none;
	stroke: url(#scoreGrad);
	stroke-width: 8;
	stroke-linecap: round;
	transition: stroke-dashoffset 1s ease;
}
/* Re-use SVG Gradients globally in theme by inserting once in header or dynamically here */
.score-ring-fill {
	stroke: var(--magenta); /* Fallback */
	stroke: url(#heartGrad); /* Matches standard gradient */
}
.score-inner-text {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.score-big-number {
	font-size: 32px;
	font-weight: 800;
	color: var(--plum);
	line-height: 1;
}
.score-label {
	font-size: 8px;
	font-weight: 700;
	color: var(--text-muted);
	letter-spacing: 0.05em;
	margin-top: 4px;
}

.btn-hero-cta {
	width: 100%;
	max-width: 280px;
	padding: 16px 24px;
	font-size: 16px;
	box-shadow: 0 8px 24px rgba(181, 23, 158, 0.2);
}
.hero-eeat-tiny-row {
	display: flex;
	gap: 20px;
	font-size: 12px;
	color: var(--text-muted);
	margin-top: 15px;
}

/* Editorial Content Layout */
.editorial-content-revamped {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 28px;
	padding: 40px;
	box-shadow: var(--shadow);
}
.editorial-section {
	padding: 40px 0;
	border-bottom: 1px solid var(--border);
}
.editorial-section:first-of-type {
	padding-top: 0;
}
.editorial-section:last-of-type {
	padding-bottom: 0;
	border-bottom: none;
}
.editorial-section h2 {
	font-size: 26px;
	color: var(--plum);
	font-weight: 700;
	margin-bottom: 20px;
	letter-spacing: -0.01em;
}
.text-serif p {
	font-family: var(--font-serif);
	font-size: 18px;
	line-height: 1.75;
	color: var(--plum);
	margin-bottom: 24px;
}
.experience-wysiwyg {
	background: #fafafa;
	border-left: 4px solid var(--violet);
	border-radius: 8px;
	padding: 24px;
	margin: 30px 0;
}

/* Simulated Chat Box Device Mockup */
.chat-console-box {
	background: #1e1320;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 20px 40px rgba(0,0,0,0.15);
	margin: 30px 0;
	border: 1px solid rgba(255,255,255,0.05);
}
.chat-console-header {
	background: #140b16;
	border-bottom: 1px solid rgba(255,255,255,0.05);
	padding: 16px 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 15px;
}
.bot-status-left {
	display: flex;
	align-items: center;
	gap: 12px;
}
.status-indicator {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #1f9d6b;
	box-shadow: 0 0 10px #1f9d6b;
}
.bot-status-left strong {
	color: #fff;
	font-size: 14px;
	display: block;
}
.status-lbl {
	color: #a395a0;
	font-size: 11px;
}
.chat-tabs {
	display: flex;
	background: rgba(255,255,255,0.04);
	border-radius: 99px;
	padding: 3px;
}
.chat-tab-btn {
	background: none;
	border: none;
	color: #a395a0;
	font-size: 12px;
	font-weight: 600;
	padding: 6px 16px;
	border-radius: 99px;
	cursor: pointer;
	transition: var(--transition);
}
.chat-tab-btn:hover {
	color: #fff;
}
.chat-tab-btn.active {
	background: var(--gradient);
	color: #fff;
}

.chat-console-viewport {
	padding: 30px;
	min-height: 250px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}
.chat-pane {
	display: none;
	flex-direction: column;
	gap: 20px;
}
.chat-pane.active {
	display: flex;
}
.chat-bubble {
	display: flex;
	max-width: 80%;
	border-radius: 18px;
	padding: 14px 18px;
	font-size: 14px;
	line-height: 1.5;
}
.chat-bubble.user {
	align-self: flex-end;
	background: #442a4a;
	color: #fceffe;
	border-bottom-right-radius: 4px;
}
.chat-bubble.assistant {
	align-self: flex-start;
	background: #281b2a;
	color: #f7eaf8;
	border-bottom-left-radius: 4px;
	border: 1px solid rgba(255,255,255,0.03);
}

/* Metric Ratings Dashboard */
.rating-dashboard-card {
	background: #fdfafc;
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: 30px;
	margin: 25px 0;
}
.dashboard-scores-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 40px;
}
.dashboard-score-row {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.score-title-info {
	display: flex;
	justify-content: space-between;
	font-size: 14px;
	font-weight: 600;
}
.score-name {
	color: var(--plum);
}
.score-points {
	color: var(--magenta);
}
.score-progress-track {
	height: 8px;
	background: #efe2ea;
	border-radius: 99px;
	overflow: hidden;
}
.score-progress-filled {
	height: 100%;
	background: var(--gradient);
	border-radius: 99px;
	transition: width 1s cubic-bezier(0.1, 0.8, 0.2, 1);
}

/* Specifications Table */
.specs-box-table-wrap {
	margin: 25px 0;
	border: 1px solid var(--border);
	border-radius: 20px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.specs-editorial-table {
	width: 100%;
	border-collapse: collapse;
}
.specs-editorial-table th, .specs-editorial-table td {
	padding: 16px 24px;
	border-bottom: 1px solid var(--border);
	text-align: left;
	font-size: 14px;
}
.specs-editorial-table tr:last-of-type th, .specs-editorial-table tr:last-of-type td {
	border-bottom: none;
}
.specs-editorial-table th {
	background: #faf6f8;
	color: var(--plum);
	font-weight: 700;
	width: 220px;
}
.specs-editorial-table td {
	color: var(--text-main);
	line-height: 1.5;
}
.spec-modalities-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.cap-pill {
	font-size: 12px;
	font-weight: 600;
	padding: 4px 12px;
	border-radius: 99px;
	border: 1px solid var(--border);
}
.cap-pill.checked {
	background: var(--green-bg);
	border-color: #c2ebda;
	color: #0d5c3a;
}
.cap-pill.crossed {
	background: var(--red-bg);
	border-color: #f6d1d8;
	color: #7b1d34;
	opacity: 0.6;
	text-decoration: line-through;
}

/* Feature Cards Deck */
.highlight-features-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 20px;
}
.highlight-feat-card {
	border: 1px solid var(--border);
	border-radius: 16px;
	padding: 24px;
	transition: var(--transition);
}
.highlight-feat-card:hover {
	border-color: var(--magenta);
	transform: translateY(-2px);
}
.feat-card-header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}
.feat-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--magenta);
}
.feat-icon svg {
	width: 20px;
	height: 20px;
	display: block;
}
.feat-card-header h4 {
	font-size: 16px;
	font-weight: 700;
	color: var(--plum);
}
.highlight-feat-card p {
	font-size: 13px;
	color: var(--text-muted);
	line-height: 1.5;
}

/* Editorial Pros and Cons Grid */
.editorial-pros-cons-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
	margin: 25px 0;
}
.pro-column, .con-column {
	border-radius: 20px;
	padding: 30px;
}
.pro-column {
	background: var(--green-bg);
	border: 1px solid #c2ebda;
}
.pro-column h4 {
	color: #0d5c3a;
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 15px;
}
.con-column {
	background: var(--red-bg);
	border: 1px solid #f6d1d8;
}
.con-column h4 {
	color: #7b1d34;
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 15px;
}
.pro-column ul, .con-column ul {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.pro-column li::before {
	content: "✓";
	color: var(--green);
	font-weight: 800;
	margin-right: 10px;
}
.con-column li::before {
	content: "✕";
	color: var(--red);
	font-weight: 800;
	margin-right: 10px;
}
.pro-column li, .con-column li {
	font-size: 14px;
	font-weight: 500;
	color: var(--plum);
	line-height: 1.4;
}

/* Pricing Switch & Cards Deck */
.pricing-deck-wrap {
	margin: 35px 0;
}
.pricing-toggle-switch {
	display: flex;
	background: #efe2ea;
	padding: 4px;
	border-radius: 99px;
	width: fit-content;
	margin: 0 auto 30px;
}
.switch-btn {
	background: none;
	border: none;
	font-size: 13px;
	font-weight: 600;
	color: var(--text-muted);
	padding: 8px 24px;
	border-radius: 99px;
	cursor: pointer;
	transition: var(--transition);
}
.switch-btn.active {
	background: var(--plum);
	color: #fff;
}
.pricing-cards-wrapper {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
}
.pricing-card-item {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: 30px;
	display: flex;
	flex-direction: column;
	transition: var(--transition);
}
.pricing-card-item:hover {
	border-color: var(--magenta);
	transform: translateY(-4px);
	box-shadow: var(--shadow-hover);
}
.pricing-card-item h4 {
	font-size: 18px;
	font-weight: 700;
	color: var(--plum);
	margin-bottom: 12px;
}
.price-value-box {
	margin-bottom: 20px;
}
.cost-val-monthly, .cost-val-annual {
	display: inline-flex;
	align-items: baseline;
	gap: 2px;
}
.currency-symbol {
	font-size: 20px;
	font-weight: 700;
	color: var(--plum);
}
.amount {
	font-size: 36px;
	font-weight: 800;
	color: var(--plum);
	line-height: 1;
}
.period {
	font-size: 13px;
	color: var(--text-muted);
}
.price-features-list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 13.5px;
	color: var(--plum);
	margin-bottom: 30px;
}
.price-features-list li::before {
	content: "•";
	color: var(--magenta);
	font-weight: bold;
	margin-right: 8px;
}
.pricing-card-cta {
	margin-top: auto;
	padding: 12px;
	font-size: 14px;
	text-align: center;
	border-radius: 8px;
	background: var(--plum);
	color: #fff;
}
.pricing-card-cta:hover {
	background: var(--magenta);
}

/* Alternatives Table Styling */
.alternatives-table-wrap {
	margin: 25px 0;
	border: 1px solid var(--border);
	border-radius: 20px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.alternatives-spec-table {
	width: 100%;
	border-collapse: collapse;
}
.alternatives-spec-table th, .alternatives-spec-table td {
	padding: 16px 24px;
	text-align: left;
	font-size: 14px;
	border-bottom: 1px solid var(--border);
}
.alternatives-spec-table tr:last-of-type td {
	border-bottom: none;
}
.alternatives-spec-table th {
	background: #faf6f8;
	color: var(--plum);
	font-weight: 700;
}
.alternatives-spec-table td {
	color: var(--text-main);
}
.current-post-row {
	background: #fff5f8;
}
.row-tag {
	font-size: 11px;
	background: var(--gradient);
	color: #fff;
	padding: 2px 8px;
	border-radius: 99px;
	font-weight: 600;
}
.col-highlight {
	color: var(--magenta);
}
.row-current-lbl {
	font-size: 12px;
	font-weight: 600;
	color: var(--text-muted);
}
.btn-table-cta {
	font-size: 13px;
	font-weight: 700;
	color: var(--magenta);
	text-decoration: none;
}
.btn-table-cta:hover {
	text-decoration: underline;
}

/* FAQ Accordion Revamped */
.faq-accordion-item {
	border: 1px solid var(--border);
	border-radius: 12px;
	overflow: hidden;
	margin-bottom: 12px;
	background: #faf6f8;
}
.faq-accordion-question {
	padding: 18px 24px;
	font-size: 15px;
	font-weight: 600;
	color: var(--plum);
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #fff;
	transition: var(--transition);
}
.faq-accordion-question::after {
	content: '+';
	font-size: 20px;
	font-weight: 700;
	color: var(--text-muted);
}
.faq-accordion-item.active .faq-accordion-question::after {
	content: '−';
}
.faq-accordion-answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.35s cubic-bezier(0, 1, 0, 1);
	padding: 0 24px;
}
.faq-accordion-item.active .faq-accordion-answer {
	max-height: 800px;
	padding: 20px 24px;
}
.faq-accordion-answer p {
	font-family: var(--font-serif);
	font-size: 16px;
	line-height: 1.6;
	color: var(--plum);
}

/* Verdict Section & EEAT Card */
.verdict-section-block {
	background: #faf6f8;
	border: 1px solid var(--border);
	border-radius: 24px;
	padding: 40px;
	margin-top: 40px;
}
.verdict-wysiwyg-content p {
	font-family: var(--font-serif);
	font-size: 18px;
	line-height: 1.75;
	color: var(--plum);
}

.eeat-byline-card-revamp {
	display: flex;
	gap: 30px;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: 30px;
	margin-top: 30px;
	align-items: center;
}
.byline-avatar-wrap {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0;
	border: 2px solid var(--border);
}
.byline-avatar {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.byline-desc-wrap h5 {
	font-size: 11px;
	text-transform: uppercase;
	color: var(--text-muted);
	font-weight: 700;
	letter-spacing: 0.05em;
}
.byline-desc-wrap h4 {
	font-size: 18px;
	font-weight: 700;
	margin: 4px 0 10px;
}
.byline-desc-wrap h4 a {
	color: var(--plum);
	text-decoration: none;
}
.byline-desc-wrap p {
	font-size: 13px;
	color: var(--text-muted);
	line-height: 1.5;
	margin-bottom: 12px;
}
.eeat-badge {
	font-size: 11px;
	font-weight: 700;
	color: #0d5c3a;
	background: var(--green-bg);
	padding: 4px 10px;
	border-radius: 99px;
}

.helpfulness-console-widget {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 16px;
	padding: 24px;
	text-align: center;
	margin-top: 30px;
}
.helpfulness-console-widget p {
	font-weight: 600;
	font-size: 14px;
	color: var(--plum);
	margin-bottom: 12px;
}
.feedback-poll-actions {
	display: flex;
	gap: 12px;
	justify-content: center;
}
.poll-btn-action {
	background: #fff;
	border: 1px solid var(--border);
	padding: 8px 20px;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--plum);
	cursor: pointer;
	transition: var(--transition);
}
.poll-btn-action:hover {
	border-color: var(--magenta);
	background: #fdf2f5;
}

/* Responsive Overrides */
@media (max-width: 991px) {
	.review-hero-panel {
		grid-template-columns: 1fr;
		gap: 30px;
		padding: 30px;
	}
	.dashboard-scores-grid, .highlight-features-grid, .editorial-pros-cons-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.eeat-byline-card-revamp {
		flex-direction: column;
		text-align: center;
		padding: 24px;
	}
}
@media (max-width: 767px) {
	.app-logo-frame {
		width: 64px;
		height: 64px;
	}
	.app-title-block h1 {
		font-size: 28px;
	}
	.hero-quick-specs-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}
	.chat-console-header {
		flex-direction: column;
		align-items: flex-start;
	}
	.chat-tabs {
		width: 100%;
		justify-content: space-around;
	}
	.chat-bubble {
		max-width: 90%;
	}
}


@media (max-width: 767px) {
	.header-wrap {
		position: relative;
	}
	.nav-menu {
		display: none; /* JS will handle mobile toggle */
		flex-direction: column;
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		background: #fff;
		border-bottom: 1px solid var(--border);
		padding: 20px;
		gap: 15px;
	}
	.nav-menu.show {
		display: flex;
	}
	.mobile-menu-toggle {
		display: block;
	}
	.footer-grid {
		grid-template-columns: 1fr;
	}
	.pros-cons-grid {
		grid-template-columns: 1fr;
	}
	.scores-bars-grid {
		grid-template-columns: 1fr;
	}
	.compare-hero-cards {
		grid-template-columns: 1fr;
	}
	.vs-badge {
		margin: 10px 0;
	}
	.directory-row-card {
		grid-template-columns: 64px 1fr;
	}
	.directory-row-card .card-score-box {
		grid-column: span 2;
		border: none;
		border-top: 1px solid var(--border);
		border-bottom: 1px solid var(--border);
		padding: 10px 0;
		flex-direction: row;
		justify-content: space-between;
	}
	.directory-row-card .card-actions-wrap {
		grid-column: span 2;
	}
}

/* ==========================================================================
   SEO & UX Interactions Styles
   ========================================================================== */

/* Typing Simulation Indicator */
.chat-typing-indicator-pane {
	padding: 15px 0;
}
.typing-indicator {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 6px 12px;
	height: 24px;
}
.typing-indicator span {
	width: 6px;
	height: 6px;
	background-color: var(--text-muted);
	border-radius: 50%;
	display: inline-block;
	animation: typing-bubble 1.4s infinite ease-in-out both;
}
.typing-indicator span:nth-child(1) {
	animation-delay: -0.32s;
}
.typing-indicator span:nth-child(2) {
	animation-delay: -0.16s;
}
@keyframes typing-bubble {
	0%, 80%, 100% { 
		transform: scale(0);
		opacity: 0.3;
	}
	40% { 
		transform: scale(1);
		opacity: 1;
	}
}

/* Mobile Table of Contents Bar */
.mobile-toc-bar {
	display: none; /* Desktop hidden */
}

/* Floating Bottom CTA Bar */
.floating-mobile-cta-bar {
	display: none; /* Desktop hidden */
}

@media (max-width: 991px) {
	/* Sticky Mobile Section Menu */
	.mobile-toc-bar {
		display: block;
		position: sticky;
		top: 60px; /* Offset site header height */
		z-index: 990;
		background: rgba(251, 246, 248, 0.96);
		backdrop-filter: blur(10px);
		border-bottom: 1px solid var(--border);
		padding: 8px 15px;
		margin: 0 0 24px 0;
		width: 100%;
		box-sizing: border-box;
	}
	.mobile-toc-scroll-wrap {
		display: flex;
		overflow-x: auto;
		scroll-behavior: smooth;
		-webkit-overflow-scrolling: touch;
		padding: 0;
		gap: 8px;
	}
	.mobile-toc-scroll-wrap::-webkit-scrollbar {
		display: none;
	}
	.mobile-toc-item {
		flex: 0 0 auto;
		font-size: 13px;
		font-weight: 600;
		color: var(--text-muted);
		text-decoration: none;
		padding: 6px 16px;
		border-radius: 99px;
		background: #fff;
		border: 1px solid var(--border);
		transition: var(--transition);
	}
	.mobile-toc-item.active {
		color: #fff;
		background: var(--gradient);
		border-color: transparent;
	}
	
	/* Hide desktop sidebar */
	.toc-sidebar {
		display: none;
	}
}

@media (max-width: 767px) {
	/* Floating mobile bottom CTA bar */
	.floating-mobile-cta-bar {
		display: block;
		position: fixed;
		bottom: 0;
		left: 0;
		width: 100%;
		z-index: 9999;
		background: #fff;
		border-top: 1px solid var(--border);
		box-shadow: 0 -8px 25px rgba(42, 26, 46, 0.08);
		transform: translateY(100%);
		transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
		padding: 12px 20px;
		padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
	}
	.floating-mobile-cta-bar.show {
		transform: translateY(0);
	}
	.floating-cta-container {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 15px;
		max-width: 600px;
		margin: 0 auto;
	}
	.floating-app-info {
		display: flex;
		align-items: center;
		gap: 10px;
	}
	.floating-logo-frame {
		width: 44px;
		height: 44px;
		border-radius: 12px;
		background: #fbf6f8;
		border: 1px solid var(--border);
		display: flex;
		align-items: center;
		justify-content: center;
		overflow: hidden;
	}
	.floating-logo-frame img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	.floating-logo-emoji {
		font-size: 20px;
	}
	.floating-text-block {
		display: flex;
		flex-direction: column;
		gap: 2px;
	}
	.floating-app-title {
		font-size: 15px;
		font-weight: 700;
		color: var(--plum);
		line-height: 1.2;
	}
	.floating-app-meta {
		font-size: 11px;
		color: var(--text-muted);
	}
	.floating-cta-btn {
		font-size: 13px !important;
		padding: 8px 20px !important;
		min-width: 110px;
		height: 38px;
		line-height: 1.2;
	}

	/* Adjust container margins when CTA is active */
	body {
		padding-bottom: 70px;
	}
}

/* Mobile Layout Optimizations & Overrides */
@media (max-width: 991px) {
	.editorial-content-revamped {
		padding: 30px;
		min-width: 0; /* Prevents grid cell expansion beyond viewport */
	}
}
@media (max-width: 767px) {
	.editorial-content-revamped {
		padding: 20px;
	}
	/* Stacks specs table rows vertically for mobile */
	.specs-editorial-table tr {
		display: block;
		border-bottom: 1px solid var(--border);
	}
	.specs-editorial-table tr:last-of-type {
		border-bottom: none;
	}
	.specs-editorial-table th, .specs-editorial-table td {
		display: block;
		width: 100% !important;
		padding: 12px 16px;
		border-bottom: none;
	}
	.specs-editorial-table th {
		background: #faf6f8;
		padding-bottom: 4px;
	}
	.specs-editorial-table td {
		padding-top: 4px;
	}
	/* Stacks dialogue tabs vertically */
	.chat-tabs {
		flex-direction: column;
		width: 100%;
		border-radius: 16px;
		gap: 6px;
		background: none;
		padding: 0;
	}
	.chat-tab-btn {
		width: 100%;
		background: rgba(255, 255, 255, 0.04);
		border-radius: 8px;
		text-align: center;
		padding: 10px;
	}
	.chat-tab-btn.active {
		background: var(--gradient);
	}
}
/* Enables scrollable comparison tables instead of stretching layout */
.alternatives-table-wrap {
	overflow-x: auto;
}

/* ==========================================================================
   Redesigned Homepage Styles (Classy & Editorial)
   ========================================================================== */

/* Hero Section */
.home-hero {
	background: #110912;
	background: radial-gradient(circle at center bottom, #230d29 0%, #110912 100%);
	color: #fff;
	padding: 100px 0 80px;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.home-hero::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.08) 50%, transparent 100%);
}
.hero-container {
	max-width: 800px;
}
.hero-title {
	font-family: var(--font-sans);
	font-size: 52px;
	font-weight: 800;
	letter-spacing: -0.03em;
	margin-bottom: 20px;
	line-height: 1.15;
	background: linear-gradient(135deg, #fff 40%, #efe2ea 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
.hero-subtitle {
	font-family: var(--font-serif);
	font-size: 20px;
	color: var(--text-muted);
	margin-bottom: 45px;
	line-height: 1.55;
	opacity: 0.95;
}

/* Category Quick Pills */
.category-pills-wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}
.category-pill {
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 99px;
	padding: 12px 24px;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	backdrop-filter: blur(8px);
}
.category-pill:hover {
	background: rgba(255, 255, 255, 0.08);
	border-color: var(--magenta);
	transform: translateY(-2px);
	box-shadow: 0 4px 15px rgba(181, 23, 158, 0.15);
}
.pill-emoji {
	font-size: 16px;
}

/* Leaderboard Directory Section */
.leaderboard-section {
	background: var(--background);
}
.section-header-centered {
	text-align: center;
	max-width: 680px;
	margin: 0 auto 60px;
}
.section-tagline {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.15em;
	color: var(--magenta);
	text-transform: uppercase;
	margin-bottom: 12px;
}
.section-header-centered h2 {
	font-size: 36px;
	color: var(--plum);
	font-weight: 800;
	margin-bottom: 16px;
	letter-spacing: -0.02em;
}
.section-header-centered p {
	font-size: 16px;
	color: var(--text-muted);
	line-height: 1.6;
}

/* Leaderboard Cards Grid */
.leaderboard-grid {
	display: flex;
	flex-direction: column;
	gap: 28px;
}
.leaderboard-card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 24px;
	padding: 30px 40px;
	display: grid;
	grid-template-columns: 1.2fr 1.5fr 1fr 1.2fr;
	gap: 30px;
	align-items: center;
	position: relative;
	transition: all 0.3s ease;
	box-shadow: var(--shadow);
}
.leaderboard-card:hover {
	border-color: var(--magenta);
	transform: translateY(-3px);
	box-shadow: var(--shadow-hover);
}

/* Editor's Choice Ribbon styling inside cards */
.leaderboard-card.editors-choice {
	border: 1px solid rgba(255, 215, 0, 0.4);
	box-shadow: 0 8px 30px rgba(255, 215, 0, 0.05);
}
.leaderboard-card.editors-choice:hover {
	border-color: rgba(255, 215, 0, 0.8);
	box-shadow: 0 12px 35px rgba(255, 215, 0, 0.08);
}
.leaderboard-choice-ribbon {
	position: absolute;
	top: -12px;
	left: 40px;
	background: linear-gradient(135deg, #ffd700, #ffa500);
	color: var(--plum);
	font-size: 10px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 99px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	box-shadow: 0 4px 10px rgba(255, 215, 0, 0.2);
}

/* Columns */
.card-brand-col {
	display: flex;
	align-items: center;
	gap: 20px;
}
.card-rank {
	font-size: 28px;
	font-weight: 900;
	color: var(--text-muted);
	opacity: 0.4;
	min-width: 40px;
}
.card-logo-frame {
	width: 64px;
	height: 64px;
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid var(--border);
	flex-shrink: 0;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}
.card-logo {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.card-logo-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fdf2f5;
	font-size: 28px;
}
.card-meta-text h3 {
	font-size: 19px;
	font-weight: 700;
	margin-bottom: 4px;
}
.card-meta-text h3 a {
	color: var(--plum);
	text-decoration: none;
}
.card-meta-text h3 a:hover {
	color: var(--magenta);
}
.card-developer {
	font-size: 12px;
	color: var(--text-muted);
	display: block;
}

.card-details-col {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.card-badges-row {
	display: flex;
	gap: 8px;
}
.badge-pill {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 4px 10px;
	border-radius: 99px;
}
.badge-nsfw {
	background: var(--red-bg);
	color: var(--red);
}
.badge-access {
	background: #e9f2fe;
	color: #2b6cb0;
}
.card-verdict-quote {
	font-family: var(--font-serif);
	font-size: 15px;
	color: var(--plum);
	line-height: 1.5;
	margin: 0;
	opacity: 0.95;
}

.card-features-col {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.feature-indicator {
	font-size: 12.5px;
	font-weight: 550;
	color: var(--text-main);
	display: flex;
	align-items: center;
	gap: 8px;
}
.feature-indicator.inactive {
	opacity: 0.45;
	text-decoration: line-through;
}
.feat-bullet {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--border);
	display: inline-block;
}
.feature-indicator.active .feat-bullet {
	background: var(--green);
	box-shadow: 0 0 6px var(--green);
}

.card-action-col {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 24px;
}
.card-score-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
}
.card-score-circle {
	width: 68px;
	height: 68px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}
.card-score-circle svg {
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}
.card-score-circle .score-bg {
	fill: none;
	stroke: #efe2ea;
	stroke-width: 6;
}
.card-score-circle .score-fill {
	fill: none;
	stroke: url(#heartGrad);
	stroke-width: 6;
	stroke-linecap: round;
}
.card-score-circle .score-num {
	position: absolute;
	font-size: 20px;
	font-weight: 800;
	color: var(--plum);
}
.score-lbl {
	font-size: 9px;
	font-weight: 700;
	color: var(--text-muted);
	letter-spacing: 0.08em;
}

.card-buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 130px;
}
.card-cta-btn {
	padding: 12px 18px;
	font-size: 13px;
	font-weight: 600;
	border-radius: 10px;
	text-align: center;
}
.card-review-link {
	font-size: 12px;
	font-weight: 600;
	color: var(--text-muted);
	text-decoration: none;
	text-align: center;
	transition: var(--transition);
}
.card-review-link:hover {
	color: var(--magenta);
}

/* Split Section Layout */
.split-section {
	background: #fff;
}
.split-container {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
}
.split-tagline {
	display: inline-block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--magenta);
	text-transform: uppercase;
	margin-bottom: 8px;
}
.section-header-small h2 {
	font-size: 26px;
	color: var(--plum);
	font-weight: 800;
	margin-bottom: 12px;
	letter-spacing: -0.01em;
}
.section-header-small p {
	font-size: 14.5px;
	color: var(--text-muted);
	line-height: 1.5;
}

.compare-card {
	background: var(--background);
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: 26px;
	margin-bottom: 24px;
	transition: var(--transition);
}
.compare-card:hover {
	border-color: var(--magenta);
	box-shadow: var(--shadow);
}
.compare-card h3 a {
	color: var(--plum);
	text-decoration: none;
	font-size: 19px;
	font-weight: 700;
}
.winner-strip {
	display: inline-flex;
	align-items: center;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 99px;
	padding: 4px 14px;
	font-size: 12px;
	margin: 12px 0;
	gap: 4px;
}
.compare-verdict {
	font-family: var(--font-serif);
	font-size: 14.5px;
	color: var(--text-muted);
	margin-bottom: 14px;
	line-height: 1.5;
}

.guide-row-item {
	display: flex;
	gap: 20px;
	padding: 24px 0;
	border-bottom: 1px solid var(--border);
}
.guide-row-item:last-of-type {
	border-bottom: none;
}
.guide-date-badge {
	width: 52px;
	height: 62px;
	background: var(--background);
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	border: 1px solid var(--border);
}
.guide-day {
	font-size: 22px;
	font-weight: 800;
	color: var(--plum);
	line-height: 1;
}
.guide-month {
	font-size: 10px;
	text-transform: uppercase;
	color: var(--text-muted);
	font-weight: 700;
	letter-spacing: 0.04em;
	margin-top: 2px;
}
.guide-info h3 a {
	color: var(--plum);
	text-decoration: none;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
	transition: var(--transition);
}
.guide-info h3 a:hover {
	color: var(--magenta);
}
.guide-info p {
	font-family: var(--font-serif);
	font-size: 14px;
	color: var(--text-muted);
	margin-top: 8px;
	line-height: 1.5;
}
.guide-meta-footer {
	font-size: 11px;
	color: var(--text-muted);
	margin-top: 10px;
}

/* Trust Section */
.trust-section {
	background: var(--background);
}
.trust-container {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 60px;
	align-items: center;
}
.trust-tagline {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.15em;
	color: var(--magenta);
	text-transform: uppercase;
	margin-bottom: 12px;
}
.trust-left h2 {
	font-size: 34px;
	color: var(--plum);
	font-weight: 800;
	margin-bottom: 18px;
	letter-spacing: -0.02em;
}
.trust-intro {
	font-family: var(--font-serif);
	font-size: 16.5px;
	color: var(--text-muted);
	margin-bottom: 45px;
	line-height: 1.6;
}
.trust-badges-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 30px;
}
.trust-badge-item h4 {
	font-size: 15px;
	font-weight: 700;
	color: var(--plum);
	margin: 12px 0 6px;
}
.trust-badge-item p {
	font-size: 13px;
	color: var(--text-muted);
	line-height: 1.55;
}
.trust-badge-icon {
	font-size: 26px;
}
.eeat-box {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 24px;
	padding: 35px;
	box-shadow: var(--shadow);
}
.eeat-box h4 {
	font-size: 17px;
	font-weight: 700;
	color: var(--plum);
	margin-bottom: 18px;
}
.eeat-box ul {
	list-style: none;
	margin-bottom: 28px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 0;
}
.eeat-box li {
	font-size: 14px;
	color: var(--plum);
	font-weight: 550;
	display: flex;
	align-items: center;
	gap: 10px;
}
.eeat-box li::before {
	content: "🛡️";
	font-size: 14px;
}

/* Responsive Overrides for Redesigned Sections */
@media (max-width: 991px) {
	.leaderboard-card {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 30px 24px;
		text-align: center;
	}
	.leaderboard-choice-ribbon {
		left: 50%;
		transform: translateX(-50%);
	}
	.card-brand-col {
		flex-direction: column;
		gap: 12px;
	}
	.card-rank {
		display: none;
	}
	.card-details-col {
		align-items: center;
	}
	.card-badges-row {
		justify-content: center;
	}
	.card-features-col {
		flex-direction: row;
		justify-content: center;
		flex-wrap: wrap;
		gap: 16px;
	}
	.card-action-col {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 20px;
	}
	.card-buttons {
		width: 100%;
		max-width: 280px;
	}
	.split-container, .trust-container {
		grid-template-columns: 1fr;
		gap: 50px;
	}
}
@media (max-width: 768px) {
	.hero-title {
		font-size: 38px;
	}
	.hero-subtitle {
		font-size: 17px;
		margin-bottom: 30px;
	}
	.home-hero {
		padding: 70px 0 50px;
	}
	.category-pills-wrap {
		padding: 0 10px;
		gap: 10px;
	}
	.category-pill {
		padding: 10px 18px;
		font-size: 13px;
	}
}

/* ==========================================================================
   Key Takeaways, Closing CTA, & Related Reviews Row
   ========================================================================== */

.key-takeaways-block {
	background: #fcf8fa;
	border: 1px solid var(--border);
	border-left: 4px solid var(--magenta);
	border-radius: 16px;
	padding: 24px 28px;
	margin-bottom: 35px;
}
.key-takeaways-block h3 {
	margin-top: 0;
	margin-bottom: 15px;
	font-size: 18px;
	font-weight: 700;
	color: var(--plum);
}
.key-takeaways-block ul {
	margin: 0;
	padding-left: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.key-takeaways-block li {
	font-family: var(--font-serif);
	font-size: 16px;
	line-height: 1.6;
	color: var(--plum);
}

.closing-cta-card-block {
	background: linear-gradient(135deg, #fdfafc 0%, #fff7fb 100%);
	border: 1px solid var(--border);
	border-radius: 24px;
	padding: 30px;
	margin: 40px 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 30px;
}
.closing-cta-card-block h4 {
	font-size: 20px;
	font-weight: 700;
	color: var(--plum);
	margin-top: 0;
	margin-bottom: 10px;
}
.closing-cta-card-block p {
	margin: 0;
	font-size: 14px;
	color: var(--text-muted);
	line-height: 1.5;
}
.cta-card-right {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}
.closing-cta-btn {
	padding: 14px 28px;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	border-radius: 99px;
}
.cta-safety-label {
	font-size: 11px;
	color: var(--green);
	font-weight: 600;
}

.related-reviews-row {
	margin-top: 60px;
	border-top: 1px solid var(--border);
	padding-top: 40px;
}
.related-reviews-row h3 {
	font-size: 22px;
	font-weight: 700;
	color: var(--plum);
	margin-top: 0;
	margin-bottom: 25px;
}
.related-cards-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 25px;
}
.related-companion-card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 15px;
	transition: var(--transition);
}
.related-companion-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow);
}
.rel-card-header {
	display: flex;
	align-items: center;
	gap: 15px;
}
.rel-logo-frame {
	width: 50px;
	height: 50px;
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid var(--border);
	flex-shrink: 0;
}
.rel-logo-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.rel-logo-placeholder {
	width: 100%;
	height: 100%;
	background: #fdf2f5;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
}
.rel-title-block h4 {
	font-size: 16px;
	font-weight: 700;
	color: var(--plum);
	margin: 0 0 4px;
}
.rel-title-block h4 a {
	color: var(--plum);
	text-decoration: none;
}
.rel-title-block h4 a:hover {
	color: var(--magenta);
}
.rel-score-lbl {
	font-size: 11px;
	color: var(--text-muted);
}
.rel-best-for {
	display: inline-block;
	align-self: flex-start;
	background: #fdf2f5;
	color: var(--magenta);
	font-size: 11px;
	font-weight: 600;
	padding: 3px 10px;
	border-radius: 99px;
}
.rel-excerpt {
	font-size: 13.5px;
	color: var(--text-muted);
	line-height: 1.5;
	margin: 0;
}
.rel-card-actions {
	display: flex;
	gap: 12px;
	margin-top: auto;
}
.rel-card-actions .btn {
	flex: 1;
	font-size: 12px;
	padding: 8px 12px;
	text-align: center;
	text-decoration: none;
}
.btn-small {
	padding: 8px 12px;
	font-size: 12px;
}

@media (max-width: 768px) {
	.closing-cta-card-block {
		flex-direction: column;
		text-align: center;
		padding: 24px;
	}
	.related-cards-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}
