/* ==========================================================================
   HOJA DE ESTILOS DEDICADA A SERVICIOS CONTABLES (services.css)
   Aplica para: servicios_contables.php (Personas Morales)
                servicios_contables_pf.php (Personas Físicas)
   Estructura HTML: components/servicios-contables.php
   Todos los colores y sombras provienen del :root de layout.css
   ========================================================================== */

/* Medidas compartidas de la vista */
#services-main {
	--services-width: 100%; /* Tarjetas y banner usan todo el ancho del .container (igual que header y footer) */
	--services-tab-width: 195px; /* Ancho de cada opción del selector PF / PM */
}

/* ==========================================================================
   SECCIÓN 1: HERO
   ========================================================================== */

.services-hero {
	position: relative;
	min-height: 380px;
	overflow: hidden;
}

.services-hero-bg {
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(ellipse at center, rgba(var(--bg-site-light-rgb), 0.85) 0%, rgba(var(--bg-site-light-rgb), 0.6) 55%, rgba(var(--bg-site-light-rgb), 0.35) 100%),
		url("../img/servicios/contables/pmorales/hero.png");
	background-size: cover;
	background-position: center;
}

.services-hero .container {
	min-height: 380px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.services-hero-content {
	position: relative;
	z-index: 2;
	padding: 40px 0;
	text-align: center;
}

.services-overline {
	display: inline-block;
	margin-bottom: 12px;
	color: var(--color-primary);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.services-hero h1 {
	margin: 0 0 18px;
	color: var(--text-primary);
	font-size: var(--fs-h1);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.services-hero h1 span {
	color: var(--color-primary);
}

.services-hero p {
	max-width: 680px;
	margin: 0 auto;
	color: var(--text-secondary);
	font-size: var(--fs-lg);
	line-height: 1.65;
}

/* ==========================================================================
   SECCIÓN 2: SELECTOR PERSONAS FÍSICAS / MORALES
   ========================================================================== */

.services-tabs {
	position: relative;
	display: flex;
	width: max-content;
	margin: 26px auto 0;
	padding: 5px;
	border-radius: 50px;
	background: var(--bg-site-light);
	box-shadow: var(--shadow-card);
	overflow: hidden;
}

.service-tab {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: var(--services-tab-width);
	padding: 9px 20px;
	border-radius: 50px;
	color: var(--text-secondary);
	font-size: var(--fs-sm);
	font-weight: 500;
	text-decoration: none;
	transition: color 0.35s ease;
}

.service-tab i {
	color: var(--color-primary);
	font-size: 1rem;
	transition: color 0.35s ease;
}

.service-tab:hover {
	color: var(--color-primary);
}

.service-tab.active,
.service-tab.active i {
	color: var(--text-light);
}

/* Píldora deslizante detrás de la opción activa */
.services-tabs::before {
	content: "";
	position: absolute;
	z-index: 1;
	top: 5px;
	left: 5px;
	width: var(--services-tab-width);
	height: calc(100% - 10px);
	border-radius: 50px;
	background: var(--color-primary);
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.services-tabs[data-active="pm"]::before {
	transform: translateX(var(--services-tab-width));
}

/* ==========================================================================
   SECCIÓN 3: REJILLA DE TARJETAS DE SERVICIO
   ========================================================================== */

.services-cards-section {
	padding: 80px 0 40px;
	background: linear-gradient(180deg, var(--bg-lavender-soft) 0%, var(--bg-site-light) 60%);
}

.services-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
	max-width: var(--services-width);
	margin: 0 auto;
}

.service-card {
	display: flex;
	flex-direction: column;
	padding: 28px 30px 30px;
	border: 1px solid var(--border-light-subtle);
	border-radius: 14px;
	background: var(--bg-site-light);
	box-shadow: var(--shadow-card);
	transition:
		transform 0.3s ease,
		box-shadow 0.3s ease;
}

.service-card:hover {
	box-shadow: var(--shadow-card-hover);
}

/* Encabezado: ícono + título + etiqueta */
.service-card-title {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.service-icon {
	width: 56px;
	height: 56px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	background: rgba(var(--color-primary-rgb), 0.08);
	color: var(--color-primary);
	font-size: 1.5rem;
}

.service-card h2 {
	margin: 4px 0 8px;
	color: var(--text-primary);
	font-size: var(--fs-h3);
	font-weight: 700;
}

.service-tag {
	display: inline-block;
	padding: 3px 12px;
	border-radius: 50px;
	background: rgba(var(--color-primary-rgb), 0.08);
	color: var(--color-primary);
	font-size: var(--fs-xs);
	font-weight: 500;
}

/* Cuerpo: descripción a la izquierda, lista a la derecha */
.service-card-body {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin: 24px 0 30px;
}

.service-card-body p {
	margin: 0;
	color: var(--text-secondary);
	font-size: var(--fs-base);
	line-height: 1.7;
}

.service-card-body ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.service-card-body li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 12px;
	color: var(--text-primary);
	font-size: var(--fs-sm);
	line-height: 1.45;
}

.service-card-body li:last-child {
	margin-bottom: 0;
}

/* Palomita morada rellena */
.service-card-body li::before {
	content: "✓";
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 2px;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--text-light);
	font-size: 0.65rem;
	font-weight: 700;
}

/* Botón tipo píldora con contorno */
.service-button {
	align-self: flex-start;
	margin-top: auto;
	padding: 9px 24px;
	border: 1.5px solid var(--color-primary);
	border-radius: 50px;
	background: var(--bg-site-light);
	color: var(--color-primary);
	font-size: var(--fs-sm);
	font-weight: 600;
	text-decoration: none;
	transition:
		background-color 0.3s ease,
		color 0.3s ease;
}

.service-button span {
	margin-left: 4px;
	font-size: 0.8rem;
}

.service-button:hover {
	background: var(--color-primary);
	color: var(--text-light);
}

/* ==========================================================================
   SECCIÓN 4: BANNER DE AYUDA ("¿No encuentra el trámite...?")
   Mismo ancho máximo y centrado que .services-grid para quedar alineado.
   ========================================================================== */

.services-help {
	padding: 50px 0 90px;
}

.help-box {
	max-width: var(--services-width);
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 22px;
	padding: 32px 34px;
	border: 1px solid var(--border-light-subtle);
	border-radius: 20px;
	background: var(--bg-lavender);
	box-shadow: var(--shadow-card);
}

.help-icon {
	width: 62px;
	height: 62px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--bg-site-light);
	box-shadow: var(--shadow-card);
	color: var(--color-primary);
	font-size: 1.6rem;
}

.help-box h3 {
	margin: 0;
	color: var(--text-primary);
	font-size: var(--fs-h3);
	font-weight: 700;
	letter-spacing: -0.01em;
}

.help-box p {
	margin: 2px 0 0;
	color: var(--text-secondary);
	font-size: var(--fs-base);
}

.help-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
	margin-left: auto;
	padding: 14px 34px;
	border-radius: 50px;
	background: var(--color-primary);
	color: var(--text-light);
	font-size: var(--fs-base);
	font-weight: 600;
	text-decoration: none;
	box-shadow: var(--shadow-primary-glow);
	transition:
		background-color 0.3s ease,
		transform 0.3s ease;
}

.help-button:hover {
	background: var(--color-primary-dark);
	color: var(--text-light);
	transform: translateY(-2px);
}

/* ==========================================================================
   SECCIÓN 5: RESPONSIVE
   ========================================================================== */

/* Tablets: una tarjeta por fila */
@media (max-width: 900px) {
	.services-grid {
		grid-template-columns: 1fr;
	}

	.help-box {
		flex-direction: column;
		text-align: center;
	}

	.help-button {
		margin: 6px auto 0;
	}
}

/* Teléfonos */
@media (max-width: 600px) {

	#services-main {
		--services-tab-width: 160px;
	}

	.service-tab {
		padding: 9px 12px;
		font-size: var(--fs-xs);
	}

	.services-cards-section {
		padding-top: 50px;
	}

	.service-card {
		padding: 22px 20px 24px;
	}

	.service-card-body {
		grid-template-columns: 1fr;
		gap: 16px;
		margin: 18px 0 24px;
	}

	.help-box {
		padding: 28px 22px;
	}

	.help-button {
		padding: 13px 26px;
		font-size: var(--fs-sm);
	}
}

/* ==========================================================================
   SECCIÓN 7: SERVICIOS DIGITALES (servicios_digitales.php - próximamente)
   ========================================================================== */

/* Fondo lavanda con destellos morados que se desvanece hacia abajo */
.digitales-page {
	min-height: 70vh;
	padding: 40px 0 120px;
	background:
		radial-gradient(ellipse 45% 40% at 85% 25%, rgba(var(--color-primary-rgb), 0.16), transparent 70%),
		radial-gradient(ellipse 35% 30% at 15% 45%, rgba(var(--color-primary-rgb), 0.08), transparent 70%),
		linear-gradient(180deg, var(--bg-lavender) 0%, var(--bg-lavender-soft) 55%, var(--bg-section-soft) 100%);
}

/* Bloque central */
.digitales-soon {
	max-width: 640px;
	margin: 30px auto 0;
	text-align: center;
}

.digitales-soon-illustration {
	width: 100%;
	max-width: 300px;
	height: auto;
	margin-bottom: 28px;
	animation: digitalesFlotar 4s ease-in-out infinite;
}

@keyframes digitalesFlotar {
	0%, 100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-10px);
	}
}

.digitales-soon-title {
	margin: 0 0 18px;
	color: var(--text-primary);
	font-size: var(--fs-h1);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.02em;
}

/* "Digitales" con degradado azul → morado */
.digitales-soon-accent {
	display: block;
	background: linear-gradient(90deg, var(--color-primary-accent) 0%, var(--color-primary) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	padding-bottom: 0.08em;
}

.digitales-soon-lead {
	margin: 0 0 8px;
	color: var(--text-primary);
	font-size: var(--fs-h3);
	font-weight: 700;
}

.digitales-soon-text {
	margin: 0;
	color: var(--text-secondary);
	font-size: var(--fs-lg);
	line-height: var(--lh-body);
}

@media (max-width: 767.98px) {
	.digitales-page {
		padding: 24px 0 80px;
	}

	.digitales-soon {
		margin-top: 16px;
	}

	.digitales-soon-illustration {
		max-width: 230px;
	}

	.digitales-soon-text {
		font-size: var(--fs-base);
	}
}

@media (prefers-reduced-motion: reduce) {
	.digitales-soon-illustration {
		animation: none;
	}
}
