/* ==========================================================================
   Services Page Styles
   ==========================================================================

   1. Services Intro
   2. Service Detail Cards
   3. How We Work (Process)
   4. FAQ
   5. Responsive

   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Services Intro
   -------------------------------------------------------------------------- */

.services-intro { background: var(--color-bg); }

.services-intro__grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: clamp(var(--space-12), 6vw, var(--space-20));
	align-items: center;
}

.services-intro__lead {
	font-size: var(--text-xl);
	color: var(--color-text-muted);
	line-height: var(--leading-relaxed);
	margin: var(--space-5) 0 var(--space-4);
}

.services-intro__body {
	font-size: var(--text-base);
	color: var(--color-text-muted);
	line-height: var(--leading-relaxed);
	margin-bottom: var(--space-8);
}

.services-intro__visual {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	padding: var(--space-8);
	position: relative;
	overflow: hidden;
}

.services-intro__visual::before {
	content: '';
	position: absolute;
	top: -30%;
	right: -20%;
	width: 300px;
	height: 300px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(212, 175, 55, 0.08) 0%, transparent 70%);
	pointer-events: none;
}

.services-intro__guarantee-list {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.services-intro__guarantee {
	display: flex;
	align-items: flex-start;
	gap: var(--space-4);
}

.services-intro__guarantee-icon {
	width: 40px;
	height: 40px;
	background: var(--color-gold-dim);
	border: 1px solid rgba(212, 175, 55, 0.2);
	border-radius: var(--radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-gold);
	flex-shrink: 0;
}

.services-intro__guarantee-title {
	font-size: var(--text-base);
	font-weight: var(--fw-semibold);
	margin-bottom: var(--space-1);
}

.services-intro__guarantee-text {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: var(--leading-relaxed);
}

/* --------------------------------------------------------------------------
   2. Service Detail Cards
   -------------------------------------------------------------------------- */

.services-detail { background: var(--color-surface); }

.services-detail-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-6);
}

.service-detail-card {
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	overflow: hidden;
	transition: border-color var(--transition-base), transform var(--transition-base);
	display: flex;
	flex-direction: column;
}

.service-detail-card:hover {
	border-color: rgba(212, 175, 55, 0.3);
	transform: translateY(-3px);
}

.service-detail-card__header {
	display: flex;
	align-items: flex-start;
	gap: var(--space-4);
	padding: var(--space-6) var(--space-6) 0;
}

.service-detail-card__icon {
	width: 52px;
	height: 52px;
	background: var(--color-gold-dim);
	border: 1px solid rgba(212, 175, 55, 0.2);
	border-radius: var(--radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-gold);
	flex-shrink: 0;
	transition: all var(--transition-base);
}

.service-detail-card:hover .service-detail-card__icon {
	background: var(--color-gold);
	color: var(--color-bg);
}

.service-detail-card__title {
	font-size: var(--text-xl);
	font-weight: var(--fw-bold);
	margin-top: var(--space-2);
}

.service-detail-card__body {
	padding: var(--space-4) var(--space-6) var(--space-6);
	flex: 1;
	display: flex;
	flex-direction: column;
}

.service-detail-card__desc {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: var(--leading-relaxed);
	margin-bottom: var(--space-5);
}

.service-detail-card__divider {
	height: 1px;
	background: var(--color-border);
	margin-bottom: var(--space-4);
}

.service-detail-card__includes-label {
	font-size: var(--text-xs);
	font-weight: var(--fw-semibold);
	letter-spacing: var(--tracking-widest);
	text-transform: uppercase;
	color: var(--color-gold);
	margin-bottom: var(--space-3);
}

.service-detail-card__includes {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	flex: 1;
}

.service-detail-card__include {
	display: flex;
	align-items: flex-start;
	gap: var(--space-2);
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: var(--leading-snug);
}

.service-detail-card__include::before {
	content: '';
	flex-shrink: 0;
	width: 5px;
	height: 5px;
	background: var(--color-gold);
	border-radius: 50%;
	margin-top: 0.42em;
}

/* --------------------------------------------------------------------------
   3. How We Work (Process)
   -------------------------------------------------------------------------- */

.services-process {
	background: var(--color-bg);
	position: relative;
	overflow: hidden;
}

.services-process::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 50% 60% at 0% 50%, rgba(37, 99, 235, 0.04) 0%, transparent 60%),
		radial-gradient(ellipse 40% 50% at 100% 50%, rgba(212, 175, 55, 0.04) 0%, transparent 60%);
	pointer-events: none;
}

.process-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	position: relative;
}

/* Connector line between steps */
.process-steps::before {
	content: '';
	position: absolute;
	top: 36px;
	left: calc(12.5% + 20px);
	right: calc(12.5% + 20px);
	height: 1px;
	background: linear-gradient(90deg, var(--color-gold), rgba(212, 175, 55, 0.3), var(--color-gold));
}

.process-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 0 var(--space-4);
	position: relative;
}

.process-step__number {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: var(--color-surface);
	border: 2px solid var(--color-gold);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-weight: var(--fw-black);
	color: var(--color-gold);
	margin-bottom: var(--space-6);
	position: relative;
	z-index: 1;
	transition: background var(--transition-base), color var(--transition-base);
}

.process-step:hover .process-step__number {
	background: var(--color-gold);
	color: var(--color-bg);
}

.process-step__title {
	font-size: var(--text-lg);
	font-weight: var(--fw-semibold);
	margin-bottom: var(--space-3);
}

.process-step__text {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: var(--leading-relaxed);
	max-width: 22ch;
	margin-inline: auto;
}

/* --------------------------------------------------------------------------
   4. FAQ
   -------------------------------------------------------------------------- */

.services-faq { background: var(--color-surface); }

.faq-list {
	max-width: 800px;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.faq-item {
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	transition: border-color var(--transition-base);
}

.faq-item.is-open {
	border-color: rgba(212, 175, 55, 0.25);
}

.faq-item__question {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding: var(--space-5) var(--space-6);
	text-align: left;
	cursor: pointer;
	background: none;
	border: none;
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: var(--fw-semibold);
	transition: color var(--transition-fast);
}

.faq-item__question:hover { color: var(--color-gold); }
.faq-item.is-open .faq-item__question { color: var(--color-gold); }

.faq-item__icon {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	color: var(--color-gold);
	transition: transform var(--transition-base);
}

.faq-item.is-open .faq-item__icon { transform: rotate(45deg); }

.faq-item__answer {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows var(--transition-base);
}

.faq-item.is-open .faq-item__answer { grid-template-rows: 1fr; }

.faq-item__answer-inner {
	overflow: hidden;
	padding: 0 var(--space-6);
}

.faq-item.is-open .faq-item__answer-inner {
	padding: 0 var(--space-6) var(--space-5);
}

.faq-item__answer-inner p {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: var(--leading-relaxed);
}

/* --------------------------------------------------------------------------
   5. Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1023px) {
	.services-intro__grid { grid-template-columns: 1fr; }
	.services-detail-grid { grid-template-columns: 1fr; }
	.process-steps {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--space-8);
	}
	.process-steps::before { display: none; }
}

@media (max-width: 767px) {
	.process-steps { grid-template-columns: 1fr; gap: var(--space-6); }
}
