/* ==========================================================================
   CONTPAQi Master Distribuidor — hoja de estilos del tema
   1.  Variables y utilidades base
   2.  Botones
   3.  Barra superior y encabezado
   4.  Hero
   5.  Formulario de demo
   6.  Estadísticas
   7.  Secciones y beneficios
   8.  Comparativa de soluciones
   9.  Casos de éxito
   10. Preguntas frecuentes
   11. Respaldo y confianza
   12. Llamado a la acción final
   13. Pie de página
   14. Responsive
   15. Accesibilidad y preferencias del usuario
   ========================================================================== */

/* 1. Variables y utilidades base
   -------------------------------------------------------------------------- */
:root {
	--cpq-navy: #0a2f5c;
	--cpq-blue: #1462a6;
	--cpq-blue-soft: #e8f1fa;
	--cpq-green: #0f8a5f;
	--cpq-green-soft: #e6f4ee;
	--cpq-accent: #f2681f;
	--cpq-accent-dark: #d4550f;
	--cpq-ink: #0f1f2e;
	--cpq-muted: #54677a;
	--cpq-border: #dfe6ee;
	--cpq-surface: #f4f7fb;
	--cpq-radius: 14px;
	--cpq-radius-lg: 20px;
	--cpq-shadow-sm: 0 1px 2px rgba(10, 47, 92, .06), 0 4px 12px rgba(10, 47, 92, .05);
	--cpq-shadow-md: 0 2px 6px rgba(10, 47, 92, .06), 0 18px 40px rgba(10, 47, 92, .09);
}

body {
	-webkit-font-smoothing: antialiased;
	text-wrap: pretty;
}

/* Fondo a todo lo ancho para bloques dentro del contenedor restringido. */
.cpq-bleed,
.cpq-topbar,
.cpq-section--soft,
.cpq-cta-final,
.cpq-footer {
	clip-path: inset(0 -100vmax);
}

.cpq-eyebrow {
	display: inline-block;
	margin: 0 0 .9rem;
	padding: .38rem .8rem;
	border-radius: 999px;
	background: var(--cpq-green-soft);
	color: #0b6a49;
	font-size: .8rem;
	font-weight: 650;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.cpq-eyebrow--light {
	background: rgba(255, 255, 255, .14);
	color: #d8ecff;
}

.cpq-seal {
	display: inline-block;
	margin: 0;
	padding: .5rem .9rem .5rem 2.1rem;
	position: relative;
	border: 1px solid rgba(15, 138, 95, .35);
	border-radius: 999px;
	background: var(--cpq-green-soft);
	color: #0b6a49;
	font-weight: 650;
	line-height: 1.3;
}

.cpq-seal::before {
	content: "✓";
	position: absolute;
	left: .8rem;
	top: 50%;
	transform: translateY(-50%);
	font-weight: 700;
}

.cpq-seal--lg {
	font-size: .95rem;
	padding: .6rem 1.1rem .6rem 2.4rem;
}

/* 2. Botones
   -------------------------------------------------------------------------- */
.cpq-btn .wp-block-button__link {
	border-radius: 10px;
	font-weight: 650;
	line-height: 1.2;
	transition: background-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.cpq-btn--accent .wp-block-button__link {
	background-color: var(--cpq-accent);
	color: #fff;
	box-shadow: 0 6px 18px rgba(242, 104, 31, .28);
}

.cpq-btn--accent .wp-block-button__link:hover,
.cpq-btn--accent .wp-block-button__link:focus {
	background-color: var(--cpq-accent-dark);
	transform: translateY(-1px);
}

.cpq-btn--outline .wp-block-button__link {
	background-color: transparent;
	color: var(--cpq-navy);
	border: 1px solid var(--cpq-border);
	box-shadow: none;
}

.cpq-btn--outline .wp-block-button__link:hover,
.cpq-btn--outline .wp-block-button__link:focus {
	border-color: var(--cpq-blue);
	background-color: var(--cpq-blue-soft);
	color: var(--cpq-navy);
}

.cpq-btn--dark .wp-block-button__link {
	background-color: var(--cpq-navy);
	color: #fff;
}

.cpq-btn--dark .wp-block-button__link:hover,
.cpq-btn--dark .wp-block-button__link:focus {
	background-color: var(--cpq-blue);
}

.cpq-btn--sm .wp-block-button__link {
	padding: .6rem 1.05rem;
	font-size: .85rem;
}

.cpq-btn--lg .wp-block-button__link {
	padding: 1.05rem 2.1rem;
	font-size: 1.05rem;
}

.cpq-btn--block {
	width: 100%;
}

.cpq-btn--block .wp-block-button__link {
	display: block;
	width: 100%;
	text-align: center;
}

/* 3. Barra superior y encabezado
   -------------------------------------------------------------------------- */
.cpq-topbar {
	background: var(--cpq-navy);
	color: #cfe1f3;
	padding-block: .5rem;
}

.cpq-topbar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem 1.5rem;
}

.cpq-topbar__phone {
	margin: 0;
	color: #cfe1f3;
}

.cpq-topbar__phone a {
	color: #fff;
	font-weight: 650;
}

.cpq-topbar__cta .wp-block-button__link {
	box-shadow: none;
}

.cpq-header {
	position: sticky;
	top: 0;
	z-index: 20;
	background: rgba(255, 255, 255, .94);
	backdrop-filter: saturate(160%) blur(8px);
	border-bottom: 1px solid var(--cpq-border);
	padding-block: .85rem;
}

.cpq-header__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
}

.cpq-brand__text > * {
	margin: 0;
}

.cpq-brand__text .wp-block-site-tagline {
	color: var(--cpq-muted);
	font-size: .78rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.cpq-nav {
	font-size: .93rem;
	font-weight: 550;
	gap: .35rem 1.4rem;
}

.cpq-nav a {
	color: var(--cpq-ink);
	padding-block: .25rem;
	border-bottom: 2px solid transparent;
}

.cpq-nav a:hover {
	color: var(--cpq-blue);
	border-bottom-color: var(--cpq-blue);
	text-decoration: none;
}

.cpq-header__cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
}

/* 4. Hero
   -------------------------------------------------------------------------- */
.cpq-hero {
	padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(3rem, 6vw, 5rem);
}

.cpq-hero__grid {
	gap: clamp(2rem, 4vw, 3.5rem);
}

.cpq-hero__title {
	margin: 0 0 1rem;
	max-width: 18ch;
}

.cpq-hero__sub {
	margin: 0 0 2rem;
	color: var(--cpq-muted);
	max-width: 54ch;
}

.cpq-trust {
	display: grid;
	gap: 1.1rem;
	margin-bottom: 2.25rem;
}

.cpq-trust__item {
	position: relative;
	padding-left: 2.35rem;
}

.cpq-trust__item::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: .1rem;
	width: 1.6rem;
	height: 1.6rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--cpq-green-soft);
	color: var(--cpq-green);
	font-size: .8rem;
	font-weight: 700;
}

.cpq-trust__title {
	margin: 0 0 .15rem;
	font-weight: 650;
	letter-spacing: -.01em;
}

.cpq-trust__text {
	margin: 0;
	color: var(--cpq-muted);
}

/* 5. Formulario de demo
   -------------------------------------------------------------------------- */
.cpq-form-card {
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border: 1px solid var(--cpq-border);
	border-top: 4px solid var(--cpq-accent);
	border-radius: var(--cpq-radius-lg);
	background: #fff;
	box-shadow: var(--cpq-shadow-md);
}

.cpq-form-card__title {
	margin: 0 0 .35rem;
}

.cpq-form-card__sub {
	margin: 0 0 1.4rem;
	color: var(--cpq-muted);
}

.cpq-form {
	display: grid;
	gap: .9rem;
}

.cpq-field {
	display: grid;
	gap: .35rem;
}

.cpq-field label {
	font-size: .82rem;
	font-weight: 650;
	color: var(--cpq-navy);
}

.cpq-field input,
.cpq-field select {
	width: 100%;
	padding: .72rem .85rem;
	border: 1px solid var(--cpq-border);
	border-radius: 10px;
	background: #fff;
	color: var(--cpq-ink);
	font: inherit;
	font-size: .95rem;
	transition: border-color .16s ease, box-shadow .16s ease;
}

.cpq-field input:focus,
.cpq-field select:focus {
	outline: none;
	border-color: var(--cpq-blue);
	box-shadow: 0 0 0 3px rgba(20, 98, 166, .16);
}

.cpq-form__submit {
	margin-top: .4rem;
	padding: .95rem 1.5rem;
	border: 0;
	border-radius: 10px;
	background: var(--cpq-accent);
	color: #fff;
	font: inherit;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(242, 104, 31, .28);
	transition: background-color .18s ease, transform .18s ease;
}

.cpq-form__submit:hover,
.cpq-form__submit:focus {
	background: var(--cpq-accent-dark);
	transform: translateY(-1px);
}

.cpq-form__note {
	margin: .25rem 0 0;
	text-align: center;
	color: var(--cpq-muted);
	font-size: .8rem;
}

/* 6. Estadísticas
   -------------------------------------------------------------------------- */
.cpq-stats {
	gap: 1rem;
	padding: 1.25rem 1.4rem;
	border: 1px solid var(--cpq-border);
	border-radius: var(--cpq-radius);
	background: var(--cpq-surface);
}

.cpq-stat > * {
	margin: 0;
}

.cpq-stat__value {
	color: var(--cpq-navy);
	font-size: 1.55rem;
	font-weight: 700;
	letter-spacing: -.02em;
	line-height: 1.15;
}

.cpq-stat__label {
	color: var(--cpq-muted);
	line-height: 1.35;
}

/* 7. Secciones y beneficios
   -------------------------------------------------------------------------- */
.cpq-section {
	padding-block: clamp(3rem, 6vw, 5.5rem);
}

.cpq-section--soft {
	background: var(--cpq-surface);
}

.cpq-section__head {
	max-width: 720px;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

.cpq-section__head h2 {
	margin: 0 0 .75rem;
}

.cpq-section__sub {
	margin: 0;
	color: var(--cpq-muted);
	font-size: 1.05rem;
}

.cpq-benefits {
	gap: 1.25rem;
}

.cpq-benefit {
	padding: 1.6rem 1.5rem;
	border: 1px solid var(--cpq-border);
	border-radius: var(--cpq-radius);
	background: #fff;
	box-shadow: var(--cpq-shadow-sm);
}

.cpq-benefit__title {
	margin: 0 0 .6rem;
	padding-top: 2.4rem;
	position: relative;
	letter-spacing: -.015em;
}

.cpq-benefit__title::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 2.6rem;
	height: .28rem;
	border-radius: 999px;
	background: var(--cpq-blue);
}

.cpq-benefit:nth-child(2) .cpq-benefit__title::before { background: var(--cpq-green); }
.cpq-benefit:nth-child(3) .cpq-benefit__title::before { background: var(--cpq-accent); }

.cpq-benefit__text {
	margin: 0;
	color: var(--cpq-muted);
}

.cpq-section__cta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: clamp(2rem, 4vw, 2.75rem);
	gap: .75rem;
}

/* 8. Comparativa de soluciones
   -------------------------------------------------------------------------- */
.cpq-compare {
	gap: 1.5rem;
	align-items: stretch;
}

.cpq-card__inner {
	height: 100%;
	display: flex;
	flex-direction: column;
	padding: clamp(1.5rem, 2.5vw, 2.15rem);
	border: 1px solid var(--cpq-border);
	border-radius: var(--cpq-radius-lg);
	background: #fff;
	box-shadow: var(--cpq-shadow-md);
}

.cpq-card--nube .cpq-card__inner { border-top: 4px solid var(--cpq-blue); }
.cpq-card--desk .cpq-card__inner { border-top: 4px solid var(--cpq-green); }

.cpq-card__tag {
	display: inline-block;
	align-self: flex-start;
	margin: 0 0 .9rem;
	padding: .35rem .75rem;
	border-radius: 999px;
	background: var(--cpq-blue-soft);
	color: var(--cpq-navy);
	font-size: .78rem;
	font-weight: 650;
	letter-spacing: .03em;
}

.cpq-card--desk .cpq-card__tag {
	background: var(--cpq-green-soft);
	color: #0b6a49;
}

.cpq-card__title {
	margin: 0 0 .5rem;
}

.cpq-card__desc {
	margin: 0 0 1.4rem;
	color: var(--cpq-muted);
}

.cpq-check-list {
	list-style: none;
	margin: 0 0 1.6rem;
	padding: 0;
	display: grid;
	gap: .7rem;
}

.cpq-check-list li {
	position: relative;
	padding-left: 1.9rem;
	line-height: 1.5;
}

.cpq-check-list li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: .05rem;
	width: 1.3rem;
	height: 1.3rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--cpq-green-soft);
	color: var(--cpq-green);
	font-size: .72rem;
	font-weight: 700;
}

.cpq-price {
	margin: auto 0 1.2rem;
	padding-top: 1.2rem;
	border-top: 1px solid var(--cpq-border);
	display: grid;
	gap: .15rem;
}

.cpq-price strong {
	color: var(--cpq-navy);
	font-size: 1.7rem;
	font-weight: 700;
	letter-spacing: -.02em;
}

.cpq-price__note {
	color: var(--cpq-muted);
	font-size: .82rem;
}

.cpq-consult {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	margin-top: 1.75rem;
	gap: 1.25rem;
	padding: 1.35rem 1.6rem;
	border: 1px dashed #c6d5e5;
	border-radius: var(--cpq-radius);
	background: var(--cpq-blue-soft);
}

.cpq-consult__text {
	margin: 0;
	max-width: 62ch;
	color: var(--cpq-navy);
}

/* 9. Casos de éxito
   -------------------------------------------------------------------------- */
.cpq-cases {
	gap: 1.25rem;
}

.cpq-case {
	display: flex;
	flex-direction: column;
	padding: 1.6rem 1.5rem;
	border: 1px solid var(--cpq-border);
	border-radius: var(--cpq-radius);
	background: #fff;
	box-shadow: var(--cpq-shadow-sm);
}

.cpq-case__stat {
	margin: 0 0 1rem;
	color: var(--cpq-green);
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: -.01em;
}

.cpq-case__quote {
	margin: 0 0 1.25rem;
	padding: 0;
	border: 0;
	flex: 1;
}

.cpq-case__quote p {
	margin: 0;
	color: var(--cpq-ink);
	font-size: 1rem;
	font-style: normal;
	line-height: 1.6;
}

.cpq-case__author {
	margin: 0;
	padding-top: 1rem;
	border-top: 1px solid var(--cpq-border);
	display: grid;
	gap: .1rem;
}

.cpq-case__author strong {
	color: var(--cpq-navy);
}

.cpq-case__author span {
	color: var(--cpq-muted);
}

/* 10. Preguntas frecuentes
   -------------------------------------------------------------------------- */
.cpq-faq {
	display: grid;
	gap: .75rem;
}

.cpq-faq__item {
	border: 1px solid var(--cpq-border);
	border-radius: var(--cpq-radius);
	background: #fff;
	box-shadow: var(--cpq-shadow-sm);
	overflow: hidden;
}

.cpq-faq__item summary {
	list-style: none;
	cursor: pointer;
	padding: 1.1rem 3rem 1.1rem 1.35rem;
	position: relative;
	color: var(--cpq-navy);
	font-weight: 650;
	font-size: 1.02rem;
}

.cpq-faq__item summary::-webkit-details-marker {
	display: none;
}

.cpq-faq__item summary::after {
	content: "+";
	position: absolute;
	right: 1.15rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1.6rem;
	height: 1.6rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--cpq-blue-soft);
	color: var(--cpq-blue);
	font-size: 1.05rem;
	font-weight: 700;
}

.cpq-faq__item[open] summary::after {
	content: "–";
}

.cpq-faq__item[open] summary {
	border-bottom: 1px solid var(--cpq-border);
}

.cpq-faq__item > :not(summary) {
	margin: 0;
	padding: 1.1rem 1.35rem;
	color: var(--cpq-muted);
}

/* 11. Respaldo y confianza
   -------------------------------------------------------------------------- */
.cpq-respaldo__head {
	max-width: 760px;
	margin-bottom: 2.5rem;
}

.cpq-respaldo__head h2 {
	margin: 1rem 0 .75rem;
}

.cpq-logos {
	gap: 1rem;
	flex-wrap: wrap;
}

.cpq-logo {
	min-width: 150px;
	display: grid;
	place-items: center;
	min-height: 88px;
	padding: 1rem;
	border: 1px dashed #c6d5e5;
	border-radius: var(--cpq-radius);
	background: #fff;
}

.cpq-logo p {
	margin: 0;
	color: var(--cpq-muted);
	font-weight: 650;
	letter-spacing: .02em;
	text-align: center;
}

.cpq-logos__note {
	margin-top: 1rem;
	color: var(--cpq-muted);
	font-family: var(--wp--preset--font-family--mono);
	font-size: .78rem;
}

/* 12. Llamado a la acción final
   -------------------------------------------------------------------------- */
.cpq-cta-final {
	padding-block: clamp(3.5rem, 7vw, 6rem);
	background: #0a2f5c;
	text-align: center;
}

.cpq-cta-final__title,
.cpq-cta-final h2 {
	color: #fff;
	margin: 0 0 .9rem;
}

.cpq-cta-final__sub {
	margin: 0 0 2rem;
	color: #c3d8ee;
}

.cpq-cta-final__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem 1.75rem;
}

.cpq-cta-final__phone {
	margin: 0;
	color: #c3d8ee;
	font-size: 1.05rem;
}

.cpq-cta-final__phone a {
	color: #fff;
	font-weight: 700;
	border-bottom: 1px solid rgba(255, 255, 255, .4);
}

.cpq-cta-final__phone a:hover {
	color: #fff;
	text-decoration: none;
	border-bottom-color: #fff;
}

/* 13. Pie de página
   -------------------------------------------------------------------------- */
.cpq-footer {
	padding-block: clamp(3rem, 5vw, 4.5rem) 2rem;
	background: #071f3c;
	color: #b7cbe0;
}

.cpq-footer__grid {
	gap: 2rem;
}

.cpq-footer .wp-block-site-title a {
	color: #fff;
}

.cpq-footer__brand p {
	color: #b7cbe0;
}

.cpq-footer__brand .cpq-seal {
	margin-top: 1rem;
	background: rgba(15, 138, 95, .18);
	border-color: rgba(15, 138, 95, .5);
	color: #8fe3c1;
}

.cpq-footer__title {
	margin: 0 0 .9rem;
	color: #fff;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.cpq-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .55rem;
	font-size: .92rem;
}

.cpq-footer__list a {
	color: #b7cbe0;
}

.cpq-footer__list a:hover {
	color: #fff;
}

.cpq-footer__rule {
	margin-block: 2.5rem 1.5rem;
	border: 0;
	border-top: 1px solid rgba(255, 255, 255, .12);
	background: none;
}

.cpq-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem 1.5rem;
}

.cpq-footer__legal p {
	margin: 0;
	color: #8fa6bd;
}

.cpq-footer__legal a {
	color: #b7cbe0;
}

.cpq-footer__legal a:hover {
	color: #fff;
}

/* 14. Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1080px) {
	.cpq-nav {
		order: 3;
		width: 100%;
		justify-content: flex-start;
	}
}

@media (max-width: 781px) {
	.cpq-topbar__inner {
		justify-content: center;
		text-align: center;
	}

	.cpq-header {
		position: static;
	}

	.cpq-header__inner {
		gap: .85rem;
	}

	.cpq-header__cta {
		width: 100%;
	}

	.cpq-header__cta .wp-block-button {
		flex: 1 1 46%;
	}

	.cpq-header__cta .wp-block-button__link {
		display: block;
		text-align: center;
	}

	.cpq-hero__title {
		max-width: none;
	}

	.cpq-stats {
		flex-wrap: wrap !important;
		gap: 1.25rem 1rem;
	}

	.cpq-stats .cpq-stat {
		flex-basis: calc(50% - .5rem) !important;
	}

	.cpq-logos .cpq-logo {
		flex-basis: calc(50% - .5rem) !important;
	}

	.cpq-consult {
		text-align: left;
	}

	.cpq-footer__legal {
		justify-content: flex-start;
	}
}

@media (max-width: 480px) {
	.cpq-stats {
		padding: 1.1rem;
	}

	.cpq-stat__value {
		font-size: 1.35rem;
	}

	.cpq-header__cta .wp-block-button {
		flex: 1 1 100%;
	}
}

/* 15. Accesibilidad y preferencias del usuario
   -------------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 3px solid var(--cpq-blue);
	outline-offset: 2px;
	border-radius: 6px;
}

@media (prefers-reduced-motion: reduce) {
	* {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
}
