body.cm-modern-contact {
	background: #fff;
	color: #426991;
	font-family: "Inter", "Segoe UI", sans-serif;
}

.cm-contact-page {
	overflow: hidden;
	background: #fff;
}

.cm-contact-page h1,
.cm-contact-page h2,
.cm-contact-page h3,
.cm-contact-page strong {
	color: #103d78;
}

.cm-ct-hero {
	position: relative;
	padding: 170px 0 115px;
	background:
		radial-gradient(circle at 70% 4%, rgba(69, 173, 235, .25), transparent 28%),
		radial-gradient(circle at 2% 88%, rgba(255, 142, 48, .13), transparent 25%),
		linear-gradient(121deg, #f2f9ff 0%, #fff 56%, #e8f5fd 100%);
}

.cm-ct-hero::after {
	position: absolute;
	right: -6vw;
	bottom: -13vw;
	width: min(36vw, 530px);
	aspect-ratio: 1;
	border: 1px solid rgba(25, 118, 185, .11);
	border-radius: 50%;
	content: "";
}

.cm-ct-hero-grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(440px, 1.05fr);
	align-items: center;
	gap: clamp(45px, 7vw, 100px);
}

.cm-ct-hero-copy {
	max-width: 590px;
}

.cm-ct-hero h1 {
	margin: 0 0 23px;
	font-size: clamp(3rem, 5.1vw, 5.08rem);
	letter-spacing: -.062em;
	line-height: .98;
}

.cm-ct-hero h1 em {
	color: #0870b8;
	font-style: normal;
}

.cm-ct-hero-copy > p:not(.cm-eyebrow) {
	max-width: 545px;
	margin: 0;
	font-size: 1.04rem;
	line-height: 1.75;
}

.cm-ct-hero-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 22px;
	margin-top: 33px;
}

.cm-ct-call-link {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	color: #0d5895;
	font-weight: 760;
	text-decoration: none;
}

.cm-ct-call-link > .cm-icon {
	width: 39px;
	height: 39px;
	padding: 10px;
	border-radius: 50%;
	background: #dff1fb;
}

.cm-ct-call-link span {
	display: grid;
	gap: 2px;
	font-size: .86rem;
	line-height: 1.25;
}

.cm-ct-call-link small {
	color: #7391ad;
	font-size: .65rem;
	font-weight: 700;
	letter-spacing: .02em;
}

.cm-ct-hero-assurance {
	display: flex;
	align-items: center;
	gap: 11px;
	margin-top: 42px;
	color: #315d91;
}

.cm-ct-hero-assurance > .cm-icon {
	width: 39px;
	height: 39px;
	padding: 9px;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 12px 27px rgba(17, 63, 117, .09);
	color: #f07927;
}

.cm-ct-hero-assurance span {
	display: grid;
	gap: 3px;
}

.cm-ct-hero-assurance strong {
	font-size: .79rem;
}

.cm-ct-hero-assurance small {
	font-size: .71rem;
	font-weight: 570;
}

.cm-ct-hero-visual {
	position: relative;
	min-height: 485px;
	border-radius: 31px;
	isolation: isolate;
	box-shadow: 0 28px 72px rgba(8, 53, 104, .19);
	overflow: visible;
}

.cm-ct-hero-visual::before {
	position: absolute;
	inset: 22px -17px -17px 22px;
	z-index: -1;
	border-radius: 31px;
	background: #ec792b;
	content: "";
}

.cm-ct-hero-visual::after {
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	background: linear-gradient(180deg, rgba(7, 42, 83, .04), rgba(7, 42, 83, .44));
	pointer-events: none;
	content: "";
}

.cm-ct-hero-visual .cm-visual-slide {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	object-fit: cover;
	opacity: 0;
	transform: scale(1.035);
	transition: opacity 900ms ease, transform 1.25s ease;
}

.cm-ct-hero-visual .cm-visual-slide.is-active {
	opacity: 1;
	transform: scale(1);
}

.cm-ct-hero-location {
	position: absolute;
	bottom: 24px;
	left: -25px;
	z-index: 2;
	display: grid;
	gap: 5px;
	min-width: 215px;
	padding: 18px 20px;
	border: 1px solid rgba(255, 255, 255, .66);
	border-radius: 16px;
	background: rgba(255, 255, 255, .93);
	box-shadow: 0 17px 34px rgba(7, 39, 79, .18);
	color: #285787;
}

.cm-ct-hero-location span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: #e97628;
	font-size: .66rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.cm-ct-hero-location .cm-icon {
	width: 14px;
	height: 14px;
}

.cm-ct-hero-location strong {
	font-size: .91rem;
}

.cm-ct-hero-location small {
	color: #6685a7;
	font-size: .69rem;
}

.cm-ct-routes {
	position: relative;
	z-index: 3;
	margin-top: -43px;
	padding-bottom: 112px;
	background: linear-gradient(180deg, transparent 0, #fff 25%);
}

.cm-ct-routes-head {
	max-width: 620px;
	margin: 0 auto 39px;
	text-align: center;
}

.cm-ct-routes-head .cm-eyebrow {
	margin-bottom: 11px;
}

.cm-ct-routes h2,
.cm-ct-contact-form h2,
.cm-ct-location h2,
.cm-ct-faq h2,
.cm-ct-cta h2 {
	margin: 0;
	font-size: clamp(2.25rem, 3.9vw, 3.75rem);
	letter-spacing: -.052em;
	line-height: 1.05;
}

.cm-ct-routes-head > p:last-child {
	margin: 15px auto 0;
	font-size: .92rem;
	line-height: 1.65;
}

.cm-ct-routes-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.cm-ct-route {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 18px;
	min-height: 196px;
	padding: 27px 25px;
	border: 1px solid #d7e8f5;
	border-radius: 21px;
	background: #fff;
	box-shadow: 0 15px 36px rgba(13, 61, 119, .09);
	color: #47709a;
	text-decoration: none;
	transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
	overflow: hidden;
}

.cm-ct-route::after {
	position: absolute;
	right: -44px;
	top: -46px;
	width: 128px;
	aspect-ratio: 1;
	border: 1px solid currentColor;
	border-radius: 50%;
	opacity: .14;
	content: "";
	transition: transform 300ms ease;
}

.cm-ct-route:hover,
.cm-ct-route:focus-visible {
	border-color: currentColor;
	box-shadow: 0 22px 43px rgba(13, 61, 119, .16);
	transform: translateY(-6px);
}

.cm-ct-route:hover::after,
.cm-ct-route:focus-visible::after {
	transform: scale(1.23);
}

.cm-ct-route > span:last-child {
	position: relative;
	z-index: 1;
	display: grid;
	align-content: start;
	gap: 7px;
}

.cm-ct-route small {
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.cm-ct-route strong {
	font-size: 1.18rem;
	letter-spacing: -.035em;
	line-height: 1.1;
}

.cm-ct-route-description {
	display: block;
	margin-top: 3px;
	color: #5479a1;
	font-size: .77rem;
	font-weight: 500;
	line-height: 1.55;
}

.cm-ct-route em {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 5px;
	font-size: .76rem;
	font-style: normal;
	font-weight: 700;
	line-height: 1.5;
}

.cm-ct-route em .cm-icon {
	width: 15px;
	height: 15px;
	transition: transform .2s ease;
}

.cm-ct-route:hover em .cm-icon,
.cm-ct-route:focus-visible em .cm-icon {
	transform: translateX(4px);
}

.cm-ct-route-icon {
	display: grid;
	width: 45px;
	height: 45px;
	place-items: center;
	border-radius: 13px;
}

.cm-ct-route-icon .cm-icon {
	width: 23px;
	height: 23px;
}

.cm-ct-route--patient { color: #076fb7; }
.cm-ct-route--patient .cm-ct-route-icon { background: #e4f4fe; }
.cm-ct-route--company { color: #123e78; }
.cm-ct-route--company .cm-ct-route-icon { background: #e9eff9; }
.cm-ct-route--results { color: #e57024; }
.cm-ct-route--results .cm-ct-route-icon { background: #fff0e5; }

.cm-ct-contact-form {
	padding: 112px 0;
	background:
		radial-gradient(circle at 9% 8%, rgba(10, 115, 188, .1), transparent 24%),
		#f5faff;
}

.cm-ct-contact-grid {
	display: grid;
	grid-template-columns: minmax(0, .81fr) minmax(490px, 1.19fr);
	align-items: center;
	gap: clamp(55px, 8vw, 120px);
}

.cm-ct-contact-copy {
	max-width: 455px;
}

.cm-ct-contact-copy > p:not(.cm-eyebrow),
.cm-ct-location-copy > p:not(.cm-eyebrow),
.cm-ct-faq-grid > div > p:not(.cm-eyebrow) {
	margin: 20px 0 0;
	font-size: .94rem;
	line-height: 1.75;
}

.cm-ct-contact-steps {
	display: grid;
	gap: 17px;
	margin: 32px 0 29px;
	padding: 0;
	list-style: none;
}

.cm-ct-contact-steps li {
	display: grid;
	grid-template-columns: 36px 1fr;
	gap: 13px;
	align-items: center;
}

.cm-ct-contact-steps li > span {
	display: grid;
	width: 36px;
	height: 36px;
	place-items: center;
	border-radius: 11px;
	background: #fff;
	box-shadow: 0 8px 19px rgba(17, 63, 117, .09);
	color: #e97628;
	font-size: .7rem;
	font-weight: 840;
}

.cm-ct-contact-steps div {
	display: grid;
	gap: 3px;
}

.cm-ct-contact-steps strong { font-size: .85rem; }
.cm-ct-contact-steps small { color: #6d8baa; font-size: .71rem; line-height: 1.4; }

.cm-ct-inline-contact {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #0870b8;
	font-size: .78rem;
	font-weight: 760;
	text-decoration: none;
}

.cm-ct-inline-contact .cm-icon { width: 17px; height: 17px; }

.cm-ct-form-card {
	padding: 31px;
	border: 1px solid rgba(173, 209, 234, .72);
	border-radius: 24px;
	background: rgba(255, 255, 255, .95);
	box-shadow: 0 22px 55px rgba(16, 61, 119, .13);
}

.cm-ct-form-notice {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 20px;
	padding: 13px 14px;
	border: 1px solid;
	border-radius: 12px;
	font-size: .76rem;
	font-weight: 600;
	line-height: 1.55;
}

.cm-ct-form-notice .cm-icon { width: 18px; height: 18px; }
.cm-ct-form-notice.is-success { border-color: #addbbf; background: #effaf3; color: #27724a; }
.cm-ct-form-notice.is-error { border-color: #efc5ac; background: #fff6ef; color: #9b4f28; }

.cm-ct-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.cm-ct-form-heading {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 25px;
}

.cm-ct-form-heading > span {
	display: grid;
	width: 41px;
	height: 41px;
	place-items: center;
	border-radius: 12px;
	background: #e8f4fc;
	color: #0670b9;
}

.cm-ct-form-heading .cm-icon { width: 21px; height: 21px; }
.cm-ct-form-heading div { display: grid; gap: 3px; }
.cm-ct-form-heading strong { font-size: .93rem; }
.cm-ct-form-heading small { color: #7692ad; font-size: .68rem; }

.cm-ct-fields {
	display: grid;
	gap: 14px;
	margin-bottom: 16px;
}

.cm-ct-fields--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.cm-ct-form label {
	display: grid;
	gap: 7px;
	color: #245284;
	font-size: .72rem;
	font-weight: 760;
}

.cm-ct-form label small {
	margin-left: 3px;
	color: #8aa1b8;
	font-size: .62rem;
	font-weight: 650;
}

.cm-ct-form label.is-required::after {
	margin-top: -4px;
	color: #e57024;
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .01em;
	content: "Este campo es obligatorio para consultas de empresa.";
}

.cm-ct-form input,
.cm-ct-form select,
.cm-ct-form textarea {
	width: 100%;
	min-height: 47px;
	padding: 12px 14px;
	border: 1px solid #d8e7f3;
	border-radius: 11px;
	outline: none;
	background: #f7fbff;
	box-shadow: none;
	color: #153f73;
	font: inherit;
	font-size: .82rem;
	font-weight: 570;
	transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.cm-ct-form select {
	appearance: auto;
	cursor: pointer;
}

.cm-ct-form textarea {
	min-height: 112px;
	resize: vertical;
}

.cm-ct-form input::placeholder,
.cm-ct-form textarea::placeholder { color: #98abc0; }

.cm-ct-form input:focus,
.cm-ct-form select:focus,
.cm-ct-form textarea:focus {
	border-color: #4198cf;
	background: #fff;
	box-shadow: 0 0 0 4px rgba(54, 144, 202, .13);
}

.cm-ct-form-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-top: 23px;
}

.cm-ct-form-footer p {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	max-width: 280px;
	margin: 0;
	color: #6b88a7;
	font-size: .65rem;
	line-height: 1.5;
}

.cm-ct-form-footer p .cm-icon { width: 15px; height: 15px; color: #1676b7; }
.cm-ct-form-footer .cm-button { min-width: 168px; border: 0; cursor: pointer; }

.cm-ct-location {
	padding: 118px 0;
	background: #fff;
}

.cm-ct-location-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(330px, .9fr);
	align-items: center;
	gap: clamp(54px, 8vw, 118px);
}

.cm-ct-map-card {
	position: relative;
	min-height: 425px;
	border-radius: 25px;
	box-shadow: 0 22px 53px rgba(15, 61, 112, .15);
	overflow: hidden;
}

.cm-ct-map-card iframe {
	display: block;
	width: 100%;
	height: 425px;
	border: 0;
	filter: saturate(.79) contrast(.96);
}

.cm-ct-map-link {
	position: absolute;
	bottom: 19px;
	left: 19px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 12px 14px;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 10px 22px rgba(7, 43, 86, .17);
	color: #075f9f;
	font-size: .76rem;
	font-weight: 780;
	text-decoration: none;
}

.cm-ct-map-link .cm-icon { width: 16px; height: 16px; }
.cm-ct-map-link .cm-icon:last-child { transition: transform .18s ease; }
.cm-ct-map-link:hover .cm-icon:last-child { transform: translateX(3px); }

.cm-ct-location-copy { max-width: 415px; }

.cm-ct-location-list {
	display: grid;
	gap: 19px;
	margin-top: 31px;
}

.cm-ct-location-list > div {
	display: grid;
	grid-template-columns: 40px 1fr;
	gap: 13px;
	align-items: start;
}

.cm-ct-location-list > div > span {
	display: grid;
	width: 40px;
	height: 40px;
	place-items: center;
	border-radius: 12px;
	background: #e8f4fc;
	color: #0d73b8;
}

.cm-ct-location-list .cm-icon { width: 21px; height: 21px; }
.cm-ct-location-list p { display: grid; gap: 4px; margin: 0; }
.cm-ct-location-list strong { font-size: .79rem; }
.cm-ct-location-list a,
.cm-ct-location-list b { color: #587a9e; font-size: .77rem; font-weight: 590; line-height: 1.48; text-decoration: none; }
.cm-ct-location-list a:hover { color: #0870b8; }

.cm-ct-faq {
	padding: 108px 0;
	background: #eff8fe;
}

.cm-ct-faq-grid {
	display: grid;
	grid-template-columns: minmax(0, .76fr) minmax(470px, 1.24fr);
	gap: clamp(60px, 10vw, 155px);
	align-items: start;
}

.cm-ct-faq-grid > div:first-child { max-width: 420px; }
.cm-ct-faq-list { display: grid; gap: 11px; }

.cm-ct-faq details {
	border: 1px solid #d5e7f3;
	border-radius: 15px;
	background: rgba(255, 255, 255, .9);
	transition: box-shadow .2s ease, border-color .2s ease;
}

.cm-ct-faq details[open] {
	border-color: #b8d8ea;
	box-shadow: 0 13px 28px rgba(14, 63, 115, .08);
}

.cm-ct-faq summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 22px;
	cursor: pointer;
	color: #17487e;
	font-size: .9rem;
	font-weight: 760;
	list-style: none;
}

.cm-ct-faq summary::-webkit-details-marker { display: none; }
.cm-ct-faq summary .cm-icon { width: 18px; height: 18px; color: #e97628; transition: transform .2s ease; }
.cm-ct-faq details[open] summary .cm-icon { transform: rotate(90deg); }

.cm-ct-faq details p {
	max-width: 610px;
	margin: 1px 22px 32px;
	color: #55789e;
	font-size: .78rem;
	line-height: 1.68;
}

body.cm-modern-contact .cm-ct-faq details > p:last-child { margin-bottom: 32px; }

.cm-ct-faq details[open] summary { padding-bottom: 17px; }

/* Exact counterpart of the orientation section used in Nosotros. */
body.cm-modern-contact .cm-ab-cta {
	padding: 105px 0;
	background: #f4f9fd;
}

body.cm-modern-contact .cm-ab-cta-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 55px;
}

body.cm-modern-contact .cm-ab-cta h2 {
	margin: 0;
	color: #123a74;
	font-size: clamp(2.25rem, 3.75vw, 3.7rem);
	letter-spacing: -.048em;
	line-height: 1.06;
}

body.cm-modern-contact .cm-ab-cta-inner > div:last-child { max-width: 345px; }
body.cm-modern-contact .cm-ab-cta-inner > div:last-child > p { margin: 0 0 21px; font-size: .92rem; line-height: 1.7; }

/* Entry motion is activated only by contact-premium.js. */
.cm-ct-reveal {
	opacity: 0;
	transform: translateY(25px);
	transition: opacity 640ms cubic-bezier(.22, .65, .26, 1), transform 640ms cubic-bezier(.22, .65, .26, 1);
	transition-delay: var(--cm-contact-delay, 0ms);
}

.cm-ct-reveal--left { transform: translateX(-28px); }
.cm-ct-reveal--right { transform: translateX(28px); }
.cm-ct-reveal.is-visible { opacity: 1; transform: translate3d(0, 0, 0); }

@media (max-width: 1030px) {
	.cm-ct-hero-grid { grid-template-columns: 1fr 1fr; gap: 48px; }
	.cm-ct-hero-visual { min-height: 440px; }
	.cm-ct-contact-grid { grid-template-columns: .85fr 1.15fr; gap: 54px; }
	.cm-ct-faq-grid { gap: 70px; }
}

@media (max-width: 800px) {
	.cm-ct-hero { padding: 146px 0 94px; }
	.cm-ct-hero-grid,
	.cm-ct-contact-grid,
	.cm-ct-location-grid,
	.cm-ct-faq-grid { grid-template-columns: 1fr; }
	.cm-ct-hero-grid { gap: 52px; }
	.cm-ct-hero-copy { max-width: 625px; }
	.cm-ct-hero-visual { max-width: 650px; min-height: 420px; margin: 0 auto; }
	.cm-ct-routes { margin-top: -28px; }
	.cm-ct-routes-grid { grid-template-columns: 1fr; max-width: 620px; margin: auto; }
	.cm-ct-route { min-height: 160px; }
	.cm-ct-contact-grid { gap: 44px; }
	.cm-ct-contact-copy { max-width: 600px; }
	.cm-ct-form-card { max-width: 680px; }
	.cm-ct-location-grid { gap: 46px; }
	.cm-ct-map-card { max-width: 680px; }
	.cm-ct-location-copy { max-width: 600px; }
	.cm-ct-faq-grid { gap: 36px; }
	.cm-ct-faq-grid > div:first-child { max-width: 600px; }
}

@media (max-width: 640px) {
	.cm-ct-hero { padding: 125px 0 74px; }
	.cm-ct-hero h1 { font-size: clamp(2.65rem, 13.5vw, 3.65rem); }
	.cm-ct-hero-copy > p:not(.cm-eyebrow) { font-size: .92rem; }
	.cm-ct-hero-actions { align-items: flex-start; flex-direction: column; gap: 19px; margin-top: 27px; }
	.cm-ct-hero-assurance { margin-top: 31px; }
	.cm-ct-hero-visual { min-height: 302px; }
	.cm-ct-hero-visual::before { inset: 13px -7px -9px 13px; }
	.cm-ct-hero-location { bottom: -13px; left: 10px; min-width: 196px; padding: 14px 16px; }
	.cm-ct-routes { margin-top: 0; padding: 74px 0; }
	.cm-ct-routes-head { margin-bottom: 29px; text-align: left; }
	.cm-ct-route { min-height: 0; padding: 23px 20px; }
	.cm-ct-contact-form,
	.cm-ct-location,
	.cm-ct-faq { padding: 76px 0; }
	body.cm-modern-contact .cm-ab-cta { padding: 79px 0; }
	.cm-ct-contact-steps { gap: 14px; margin: 27px 0 24px; }
	.cm-ct-form-card { padding: 22px 17px; border-radius: 19px; }
	.cm-ct-fields--two { grid-template-columns: 1fr; }
	.cm-ct-form-footer { align-items: stretch; flex-direction: column; gap: 16px; }
	.cm-ct-form-footer p { max-width: none; }
	.cm-ct-form-footer .cm-button { width: 100%; }
	.cm-ct-map-card,
	.cm-ct-map-card iframe { min-height: 320px; height: 320px; }
	.cm-ct-map-link { bottom: 13px; left: 13px; }
	.cm-ct-faq summary { padding: 17px; font-size: .8rem; }
	.cm-ct-faq details p { margin: 1px 17px 26px; font-size: .74rem; }
	body.cm-modern-contact .cm-ct-faq details > p:last-child { margin-bottom: 26px; }
	body.cm-modern-contact .cm-ab-cta-inner { align-items: flex-start; flex-direction: column; gap: 25px; }
}

@media (prefers-reduced-motion: reduce) {
	.cm-ct-reveal,
	.cm-ct-hero-visual .cm-visual-slide,
	.cm-ct-route,
	.cm-ct-route::after { transition: none !important; }
	.cm-ct-reveal { opacity: 1; transform: none; }
}

/* Acento editorial compartido en los títulos de hero internos. */
.cm-ct-hero h1 em { color: #eb7624; }
