/* ================================================================
   FAQ Service Page Styles — Astra Child Theme Extension
   ================================================================ */

/* ----------------------------------------------------------------
   Hero Section
   ---------------------------------------------------------------- */
.faq-hero {
	background: linear-gradient(135deg, var(--med-primary, #5568d3) 0%, var(--med-secondary, #6a4190) 100%);
	color: var(--med-hero-text, #fff);
	padding: 4rem 0 3rem;
	margin-bottom: 2.5rem;
	position: relative;
	overflow: hidden;
}
.faq-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	opacity: .6;
	pointer-events: none;
}
.faq-hero .ast-container {
	position: relative;
	z-index: 1;
}
.faq-breadcrumb {
	font-size: 0.85rem;
	opacity: 0.85;
	margin-bottom: 1.5rem;
}
.faq-breadcrumb a {
	color: var(--med-hero-text, #fff);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.faq-breadcrumb a:hover {
	opacity: 0.8;
}
.faq-breadcrumb span[aria-hidden="true"] {
	margin: 0 0.4rem;
	opacity: 0.6;
}
.faq-hero__title {
	font-size: clamp(1.8rem, 5vw, 2.8rem);
	font-weight: 700;
	margin: 0 0 1rem;
	color: var(--med-hero-text, #fff);
	line-height: 1.2;
}
.faq-hero__subtitle {
	font-size: 1.1rem;
	opacity: 0.95;
	max-width: 680px;
	margin: 0;
	line-height: 1.5;
	color: var(--med-hero-text, #fff);
}

/* ----------------------------------------------------------------
   FAQ Accordion
   ---------------------------------------------------------------- */
.faq-section {
	padding: 1rem 0 2.5rem;
}
.faq-grid {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	max-width: 900px;
	margin: 0 auto;
}
.faq-item {
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	overflow: hidden;
	transition: box-shadow 0.25s ease, border-color 0.25s ease;
	box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.faq-item:hover {
	box-shadow: 0 8px 24px rgba(85,104,211,0.12);
	border-color: var(--med-primary, #5568d3);
}
.faq-item__question {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem 1.5rem;
	cursor: pointer;
	list-style: none;
	font-weight: 600;
	font-size: 1.05rem;
	color: #1a1a2e;
	line-height: 1.3;
}
.faq-item__question::-webkit-details-marker {
	display: none;
}
.faq-item__icon {
	font-size: 1.4rem;
	flex-shrink: 0;
	line-height: 1;
}
.faq-item__text {
	flex: 1;
}
.faq-item__arrow {
	width: 26px;
	height: 26px;
	border: 2px solid var(--med-primary, #5568d3);
	border-radius: 50%;
	position: relative;
	flex-shrink: 0;
	transition: transform 0.3s ease, border-color 0.3s ease;
}
.faq-item__arrow::before,
.faq-item__arrow::after {
	content: '';
	position: absolute;
	background: var(--med-primary, #5568d3);
	transition: all 0.3s ease;
}
.faq-item__arrow::before {
	width: 10px;
	height: 2px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.faq-item__arrow::after {
	width: 2px;
	height: 10px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.faq-item[open] .faq-item__arrow {
	transform: rotate(45deg);
	border-color: var(--med-accent, #c2185b);
}
.faq-item[open] .faq-item__arrow::before,
.faq-item[open] .faq-item__arrow::after {
	background: var(--med-accent, #c2185b);
}
.faq-item__answer {
	padding: 0 1.5rem 1.5rem 3.2rem;
	color: #475569;
	line-height: 1.65;
	font-size: 0.98rem;
	animation: faq-fade-in 0.35s ease;
}
.faq-item__answer p:first-child {
	margin-top: 0;
}
.faq-item__answer p:last-child {
	margin-bottom: 0;
}
.faq-item__answer ul,
.faq-item__answer ol {
	margin: 0.75rem 0;
	padding-left: 1.25rem;
}
.faq-item__answer li {
	margin-bottom: 0.4rem;
}
.faq-item__answer a {
	color: var(--med-primary, #5568d3);
	text-decoration: underline;
}
.faq-item__answer a:hover {
	color: var(--med-secondary, #6a4190);
}

@keyframes faq-fade-in {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* ----------------------------------------------------------------
   CTA Section
   ---------------------------------------------------------------- */
.faq-cta {
	padding: 1rem 0 2rem;
}
.faq-phone {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--med-primary, #5568d3);
	text-decoration: none;
}
.faq-phone:hover {
	color: var(--med-secondary, #6a4190);
}

/* ----------------------------------------------------------------
   Related Links
   ---------------------------------------------------------------- */
.faq-related {
	padding: 1rem 0 2.5rem;
}

/* ----------------------------------------------------------------
   Disclaimer
   ---------------------------------------------------------------- */
.faq-disclaimer {
	padding-bottom: 2.5rem;
}

/* ----------------------------------------------------------------
   Dark Mode
   ---------------------------------------------------------------- */
@media (prefers-color-scheme: dark) {
	.faq-item {
		background: var(--med-bg-light, #151525);
		border-color: var(--med-border, #3a3a5a);
	}
	.faq-item:hover {
		border-color: var(--med-primary, #7986cb);
		box-shadow: 0 8px 24px rgba(0,0,0,0.35);
	}
	.faq-item__question {
		color: var(--med-text, #ffffff);
	}
	.faq-item__answer {
		color: var(--med-text-muted, #d0d0e0);
	}
	.faq-item__arrow {
		border-color: var(--med-primary, #7986cb);
	}
	.faq-item__arrow::before,
	.faq-item__arrow::after {
		background: var(--med-primary, #7986cb);
	}
	.faq-item[open] .faq-item__arrow {
		border-color: var(--med-accent, #f06292);
	}
	.faq-item[open] .faq-item__arrow::before,
	.faq-item[open] .faq-item__arrow::after {
		background: var(--med-accent, #f06292);
	}
}

/* ----------------------------------------------------------------
   Mobile
   ---------------------------------------------------------------- */
@media (max-width: 768px) {
	.faq-hero {
		padding: 2.5rem 0 2rem;
	}
	.faq-hero__title {
		font-size: 1.6rem;
	}
	.faq-item__question {
		padding: 1rem;
		font-size: 0.98rem;
		gap: 0.75rem;
	}
	.faq-item__answer {
		padding: 0 1rem 1rem 2.6rem;
		font-size: 0.95rem;
	}
	.faq-item__icon {
		font-size: 1.2rem;
	}
}
