/* ============================================================
   GEICO REHABILITACIONES — CSS REDISEÑO MODERNO
   ============================================================ */

/* --- VARIABLES --- */
:root {
	--brand-primary:   #0A2540;
	--brand-secondary: #1A56A0;
	--brand-accent:    #E07B2A;
	--brand-accent-light: #F5A05A;
	--text-dark:  #1A202C;
	--text-mid:   #4A5568;
	--text-light: #718096;
	--bg-light:   #F7F8FA;
	--bg-lighter: #FAFBFC;
	--white:  #FFFFFF;
	--border: #E2E8F0;

	--shadow-sm:  0 1px 4px rgba(10,37,64,.07);
	--shadow-md:  0 4px 20px rgba(10,37,64,.10);
	--shadow-lg:  0 12px 40px rgba(10,37,64,.14);
	--shadow-xl:  0 24px 60px rgba(10,37,64,.18);

	--radius-sm: 6px;
	--radius-md: 12px;
	--radius-lg: 20px;

	--transition: all 0.25s cubic-bezier(.4,0,.2,1);
}

/* --- RESET --- */
*, *::before, *::after {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: 'Roboto', sans-serif;
	color: var(--text-dark);
	background: var(--white);
	line-height: 1.7;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5 {
	font-family: 'Montserrat', sans-serif;
	color: var(--brand-primary);
	line-height: 1.25;
	letter-spacing: -0.02em;
}

a {
	text-decoration: none;
	transition: var(--transition);
}

ul { list-style: none; }
img { max-width: 100%; height: auto; }

/* --- UTILIDADES --- */
.container {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 24px;
}

.text-center { text-align: center; }

.section-padding { padding: 5.5rem 0; }

.bg-light    { background: var(--bg-light); }
.bg-lighter  { background: var(--bg-lighter); }

.eyebrow {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--brand-accent);
	margin-bottom: .75rem;
}

/* --- BOTONES --- */
.btn-quote {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--brand-accent);
	color: #fff;
	padding: 13px 28px;
	border-radius: var(--radius-sm);
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	border: none;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(224,123,42,.35);
	transition: var(--transition);
}

.btn-quote:hover {
	background: #C96A1C;
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(224,123,42,.5);
}

.btn-outline {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	border: 2px solid currentColor;
	color: var(--white);
	padding: 11px 28px;
	border-radius: var(--radius-sm);
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: var(--transition);
}

.btn-outline:hover {
	background: var(--white);
	color: var(--brand-primary);
	border-color: var(--white);
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(255,255,255,.2);
}

/* --- TOP BAR --- */
.top-bar {
	background: var(--brand-primary);
	color: rgba(255,255,255,.75);
	padding: 9px 0;
	font-size: 0.82rem;
	border-bottom: 1px solid rgba(255,255,255,.08);
}

.top-bar-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.top-info span {
	margin-right: 22px;
}

.top-info i {
	margin-right: 7px;
	color: var(--brand-accent);
	font-size: .8rem;
}

.top-bar-content > div:last-child {
	font-weight: 600;
	color: rgba(255,255,255,.55);
	font-size: .78rem;
	letter-spacing: .04em;
}

/* --- HEADER / NAVBAR --- */
header {
	background: rgba(255,255,255,.97);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 1px 0 var(--border), var(--shadow-sm);
	position: sticky;
	top: 0;
	z-index: 1000;
}

.navbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0;
}

.logo {
	font-size: 1.45rem;
	font-weight: 800;
	color: var(--brand-primary);
	text-transform: uppercase;
	letter-spacing: -.03em;
	display: flex;
	align-items: center;
	gap: 10px;
}

.logo i {
	color: var(--brand-accent);
	font-size: 1.3rem;
}

.logo span { color: var(--brand-accent); }

.nav-menu {
	display: flex;
	gap: 6px;
	align-items: center;
}

.nav-link {
	font-weight: 600;
	color: var(--text-mid);
	text-transform: uppercase;
	font-size: 0.78rem;
	letter-spacing: .06em;
	padding: 7px 13px;
	border-radius: var(--radius-sm);
	transition: var(--transition);
}

.nav-link:hover,
.nav-link.active {
	color: var(--brand-primary);
	background: var(--bg-light);
}

/* --- HERO --- */
.hero {
	background:
		linear-gradient(135deg, rgba(10,37,64,.92) 0%, rgba(26,86,160,.80) 100%),
		url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?ixlib=rb-1.2.1&auto=format&fit=crop&w=1920&q=80');
	background-size: cover;
	background-position: center;
	color: white;
	padding: 7.5rem 0 8rem;
	text-align: center;
	position: relative;
	overflow: hidden;
}

/* Sutil ruido de textura sobre el hero */
.hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle at 20% 80%, rgba(224,123,42,.15) 0%, transparent 50%),
	                  radial-gradient(circle at 80% 20%, rgba(26,86,160,.20) 0%, transparent 50%);
	pointer-events: none;
}

.hero h1 {
	color: white;
	font-size: clamp(2.2rem, 4vw, 3.2rem);
	margin-bottom: 1.5rem;
	font-weight: 800;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.hero p {
	font-size: 1.1rem;
	max-width: 780px;
	margin: 0 auto 1.25rem;
	opacity: .88;
	font-weight: 300;
	line-height: 1.75;
}

/* Último párrafo del hero deja más espacio antes de los botones */
.hero p:last-of-type {
	margin-bottom: 0;
}

.hero-badges {
	display: flex;
	justify-content: center;
	gap: 14px;
	margin-top: 3rem;
	flex-wrap: wrap;
}

.badge {
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.25);
	backdrop-filter: blur(8px);
	padding: 8px 18px;
	border-radius: 50px;
	font-size: 0.8rem;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	letter-spacing: .02em;
}

.badge i { color: var(--brand-accent-light); }

/* --- INTRO TEXT --- */
.intro-text {
	max-width: 720px;
	margin: 0 auto 3.5rem;
	text-align: center;
}

.intro-text h1,
.intro-text h2 {
	font-size: clamp(1.6rem, 3.5vw, 2.3rem);
	margin-bottom: 1rem;
}

.intro-text .lead {
	font-size: 1.1rem;
	color: var(--text-mid);
	line-height: 1.75;
}

.intro-text p {
	font-size: 1.05rem;
	color: var(--text-mid);
}

/* --- ICON GRID / CARDS --- */
.icon-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.5rem;
	margin-bottom: 3rem;
}

.icon-box {
	text-align: center;
	padding: 2rem 1.75rem;
	border-radius: var(--radius-md);
	background: var(--white);
	border: 1px solid var(--border);
	transition: var(--transition);
	position: relative;
	overflow: hidden;
}

.icon-box::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--brand-secondary), var(--brand-accent));
	opacity: 0;
	transition: var(--transition);
}

.icon-box:hover {
	box-shadow: var(--shadow-lg);
	border-color: transparent;
	transform: translateY(-6px);
}

.icon-box:hover::before { opacity: 1; }

.icon-box i {
	font-size: 2.2rem;
	color: var(--brand-secondary);
	margin-bottom: 1.25rem;
	display: block;
}

.icon-box h3 {
	font-size: 1.05rem;
	margin-bottom: .75rem;
	font-weight: 700;
}

.icon-box h3 a {
	color: inherit;
}

.icon-box h3 a:hover {
	color: var(--brand-accent);
}

.icon-box p {
	font-size: .92rem;
	color: var(--text-light);
	line-height: 1.6;
}

/* --- PROCESS STEPS --- */
.process-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 3rem;
	position: relative;
}

.step {
	text-align: center;
	position: relative;
	z-index: 2;
}

.step-number {
	width: 54px;
	height: 54px;
	background: linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));
	color: white;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 1.1rem;
	margin: 0 auto 1.5rem;
	box-shadow: 0 6px 20px rgba(10,37,64,.3);
	font-family: 'Montserrat', sans-serif;
}

.step h4 {
	margin-bottom: 8px;
	font-size: 1rem;
}

.step p {
	font-size: .9rem;
	color: var(--text-light);
}

.process-steps::before {
	content: '';
	position: absolute;
	top: 27px;
	left: 16%;
	right: 16%;
	height: 2px;
	background: linear-gradient(90deg, var(--brand-secondary), var(--brand-accent));
	opacity: .25;
	z-index: 1;
}

/* --- STATS STRIP --- */
.stats-section {
	background: linear-gradient(135deg, var(--brand-primary) 0%, #0F3460 100%);
	color: white;
	padding: 4.5rem 0;
	position: relative;
	overflow: hidden;
}

.stats-section::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at top right, rgba(224,123,42,.15), transparent 60%);
	pointer-events: none;
}

.stats-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
	text-align: center;
}

.stat-number {
	font-size: 3rem;
	font-weight: 800;
	font-family: 'Montserrat', sans-serif;
	color: var(--brand-accent-light);
	display: block;
	margin-bottom: 6px;
	line-height: 1;
}

.stat-label {
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	opacity: .75;
	font-weight: 500;
}

/* --- TESTIMONIALS --- */
.testimonial-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
	gap: 1.75rem;
}

.testimonial-card {
	background: var(--white);
	padding: 2rem;
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-md);
	border: 1px solid var(--border);
	transition: var(--transition);
	position: relative;
}

.testimonial-card::before {
	content: '\201C';
	position: absolute;
	top: 1rem;
	right: 1.5rem;
	font-size: 5rem;
	line-height: 1;
	color: var(--brand-accent);
	opacity: .12;
	font-family: Georgia, serif;
}

.testimonial-card:hover {
	box-shadow: var(--shadow-lg);
	transform: translateY(-4px);
}

.testimonial-text {
	font-style: italic;
	color: var(--text-mid);
	margin-bottom: 1.5rem;
	line-height: 1.7;
	font-size: .97rem;
}

.client-info {
	display: flex;
	align-items: center;
	gap: 14px;
}

.client-avatar {
	width: 42px;
	height: 42px;
	background: linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255,255,255,.7);
	font-size: .9rem;
	flex-shrink: 0;
}

.client-details h5 {
	margin-bottom: 2px;
	font-size: .9rem;
	color: var(--brand-primary);
}

.client-details span {
	font-size: .78rem;
	color: var(--text-light);
}

/* --- CTA BAND --- */
.cta-band {
	background: linear-gradient(135deg, var(--brand-accent) 0%, #C96A1C 100%);
	color: white;
	padding: 4rem 0;
	text-align: center;
	position: relative;
	overflow: hidden;
}

.cta-band::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at center, rgba(255,255,255,.08), transparent 70%);
	pointer-events: none;
}

.cta-band h2 {
	color: white;
	margin-bottom: 1rem;
	font-size: clamp(1.4rem, 3vw, 2rem);
}

.cta-band .btn-outline,
.cta-band .btn-outline[style] {
	border-color: rgba(255,255,255,.8) !important;
	color: white !important;
	margin: 0 8px;
}

.cta-band .btn-outline:hover {
	background: white !important;
	color: var(--brand-accent) !important;
	border-color: white !important;
}

/* --- SERVICIOS FULL GRID --- */
.view-section {
	display: none;
	animation: fadeIn 0.4s ease;
}

.view-section.active { display: block; }

@keyframes fadeIn {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: translateY(0); }
}

.services-full-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	max-width: 860px;
	margin: 0 auto;
}

.service-row {
	display: flex;
	gap: 1.75rem;
	background: var(--white);
	padding: 1.75rem 2rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	align-items: flex-start;
	transition: var(--transition);
}

.service-row:hover {
	box-shadow: var(--shadow-md);
	border-color: transparent;
	transform: translateX(4px);
}

.service-row i {
	font-size: 1.8rem;
	color: var(--brand-secondary);
	min-width: 48px;
	margin-top: 3px;
}

/* --- FORMULARIO / LAYOUT --- */
.split-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	align-items: center;
}

.form-group { margin-bottom: 1rem; }

.form-control {
	width: 100%;
	padding: 12px 15px;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	font-family: inherit;
	font-size: .95rem;
	color: var(--text-dark);
	background: var(--white);
	transition: var(--transition);
}

.form-control:focus {
	outline: none;
	border-color: var(--brand-secondary);
	box-shadow: 0 0 0 3px rgba(26,86,160,.12);
}

/* --- FAQ --- */
.faq-list { max-width: 800px; margin: 0 auto; }

.faq-item {
	border-bottom: 1px solid var(--border);
}

.faq-question {
	width: 100%;
	background: none;
	border: none;
	padding: 1.2rem 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	cursor: pointer;
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	font-size: .97rem;
	color: var(--brand-primary);
	text-align: left;
	gap: 1rem;
	transition: var(--transition);
}

.faq-question:hover { color: var(--brand-secondary); }

.faq-question span:last-child {
	font-size: 1.3rem;
	color: var(--brand-accent);
	flex-shrink: 0;
	font-weight: 400;
}

.faq-answer {
	display: none;
	padding: 0 0 1.25rem;
	color: var(--text-mid);
	font-size: .95rem;
	line-height: 1.75;
}

.faq-item.active .faq-answer { display: block; }

/* --- FONDOS OSCUROS: forzar texto blanco en headings y párrafos --- */
.page-header-dark,
.stats-section,
.cta-band {
	color: white;
}

.page-header-dark h1,
.page-header-dark h2,
.page-header-dark h3,
.page-header-dark p,
.stats-section h1,
.stats-section h2,
.stats-section h3 {
	color: white;
}

/* btn-outline variante para fondos claros (borde y texto navy) */
.btn-outline-dark {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	border: 2px solid var(--brand-primary);
	color: var(--brand-primary);
	padding: 11px 28px;
	border-radius: var(--radius-sm);
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: var(--transition);
}

.btn-outline-dark:hover {
	background: var(--brand-primary);
	color: white;
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(10,37,64,.25);
}

/* Botón blanco con texto naranja — para usar junto a btn-quote en fondos claros */
.btn-white-accent {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: white;
	border: 2px solid var(--brand-accent);
	color: var(--brand-accent);
	padding: 11px 28px;
	border-radius: var(--radius-sm);
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: var(--transition);
	box-shadow: 0 4px 14px rgba(224,123,42,.2);
}

.btn-white-accent:hover {
	background: var(--brand-accent);
	color: white;
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(224,123,42,.4);
}

/* --- FOOTER --- */
footer {
	background: #0D1B2A;
	color: #8898AA;
	padding: 4.5rem 0 1.5rem;
	margin-top: auto;
}

.footer-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 2.5rem;
	margin-bottom: 3rem;
}

.footer-col h4 {
	color: rgba(255,255,255,.85);
	margin-bottom: 1.25rem;
	font-size: .9rem;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.footer-links li { margin-bottom: 9px; }

.footer-links a {
	color: #8898AA;
	font-size: .9rem;
	transition: var(--transition);
}

.footer-links a:hover { color: var(--brand-accent-light); }

footer .logo {
	font-size: 1.3rem;
}

/* --- RESPONSIVE --- */
@media (max-width: 900px) {
	.navbar {
		flex-wrap: wrap;
		gap: .75rem;
	}

	.nav-menu {
		flex-wrap: wrap;
		justify-content: center;
		gap: 4px;
	}

	.navbar .btn-quote {
		display: none;
	}

	.top-bar-content {
		flex-direction: column;
		text-align: center;
		gap: 8px;
	}

	.split-layout {
		grid-template-columns: 1fr;
	}

	.process-steps {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.process-steps::before { display: none; }

	.stats-grid {
		grid-template-columns: 1fr 1fr;
		gap: 2.5rem;
	}

	.service-row {
		flex-direction: column;
		gap: 1rem;
	}
}

@media (max-width: 600px) {
	.section-padding { padding: 3.5rem 0; }

	.stats-grid {
		grid-template-columns: 1fr 1fr;
		gap: 2rem;
	}

	.stat-number { font-size: 2.2rem; }

	.hero { padding: 5rem 0 5.5rem; }

	.hero-badges { gap: 10px; }
}
