/* ==========================================================================
   Santa Fe Bloques
   Los colores, degradados, bordes y tipografías salen de variables que el tema
   define desde Personalizar → Diseño del tema. Aquí solo hay valores de respaldo.
   ========================================================================== */

:where(html) {
	--sf-primary: #13294d;
	--sf-secondary: #2f5597;
	--sf-accent: #4fae2a;
	--sf-highlight: #e31b23;
	--sf-ink: #0f1f38;
	--sf-muted: #5a6b85;
	--sf-surface: #f3f7fc;
	--sf-line: #e1e8f2;
	--sf-white: #ffffff;
	--sf-grad-start: #13294d;
	--sf-grad-end: #2f5597;
	--sf-grad-angle: 135deg;
	--sf-radius-sm: 10px;
	--sf-radius: 16px;
	--sf-radius-lg: 24px;
	--sf-btn-radius: 999px;
	--sf-font-heading: inherit;
	--sf-wide: var(--wp--style--global--wide-size, 1240px);
	--sf-gutter: clamp(1rem, 4vw, 2rem);
}

:where(html) {
	--sf-gradient: linear-gradient(var(--sf-grad-angle), var(--sf-grad-start), var(--sf-grad-end));
	--sf-gradient-accent: linear-gradient(135deg, var(--sf-accent), color-mix(in srgb, var(--sf-accent) 60%, #0a8f7a));
	--sf-glow: radial-gradient(60% 80% at 85% 10%, color-mix(in srgb, var(--sf-accent) 35%, transparent), transparent 70%),
		radial-gradient(50% 70% at 0% 100%, color-mix(in srgb, var(--sf-secondary) 70%, transparent), transparent 70%);
	--sf-shadow-sm: 0 1px 2px rgba(15, 31, 56, .05), 0 2px 8px -2px rgba(15, 31, 56, .08);
	--sf-shadow: 0 1px 2px rgba(15, 31, 56, .04), 0 12px 32px -14px rgba(15, 31, 56, .22);
	--sf-shadow-lg: 0 2px 4px rgba(15, 31, 56, .04), 0 30px 60px -24px rgba(15, 31, 56, .35);
	--sf-ring: 0 0 0 1px color-mix(in srgb, var(--sf-primary) 8%, transparent);
}

/* --------------------------------------------------------------------------
   Base compartida
   -------------------------------------------------------------------------- */

[class*="sf-"] { box-sizing: border-box; }
.sf-icon { width: 1.5rem; height: 1.5rem; flex: none; }
.sf-icon--sm { width: 1.05rem; height: 1.05rem; }

.sf-section { padding-block: clamp(3.5rem, 7vw, 6rem); }
.sf-section.alignfull { padding-inline: var(--sf-gutter); }
.sf-section.alignfull > * { max-width: var(--sf-wide); margin-inline: auto; }
.sf-section__head { max-width: 46rem; margin: 0 0 clamp(2rem, 4vw, 3rem); }
.sf-section__head--row {
	display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1.25rem 2rem;
	max-width: none;
}
.sf-section__head--row > div { max-width: 46rem; }
.sf-section__title {
	margin: 0 0 .75rem;
	font-family: var(--sf-font-heading);
	font-size: clamp(1.75rem, 1.2rem + 2vw, 2.6rem);
	line-height: 1.12;
	letter-spacing: -.02em;
	color: var(--sf-primary);
	text-wrap: balance;
}
.sf-section__intro { color: var(--sf-muted); font-size: 1.125rem; line-height: 1.6; }
.sf-section__intro p { margin: 0; }

.sf-grid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: 1fr; }
@media (min-width: 640px) {
	.sf-grid--2, .sf-grid--3, .sf-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.sf-grid--3 { grid-template-columns: repeat(3, 1fr); }
	.sf-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

.sf-notice {
	padding: 1rem 1.25rem; border: 1px dashed var(--sf-line); border-radius: var(--sf-radius-sm);
	background: var(--sf-surface); color: var(--sf-muted); font-size: .95rem;
}

.sf-pill {
	display: inline-flex; align-items: center; gap: .35rem;
	padding: .3rem .75rem; border-radius: 999px;
	background: color-mix(in srgb, var(--sf-secondary) 10%, transparent);
	color: var(--sf-secondary); font-size: .8125rem; font-weight: 600; text-decoration: none;
}

/* Botones */
.sf-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.sf-btn {
	--sf-btn-bg: var(--sf-primary);
	--sf-btn-fg: #fff;
	position: relative;
	display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
	min-height: 3rem; padding: .8rem 1.5rem;
	border: 1px solid transparent; border-radius: var(--sf-btn-radius);
	background: var(--sf-btn-bg); color: var(--sf-btn-fg);
	font-weight: 700; font-size: 1rem; line-height: 1.1; text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
	cursor: pointer;
}
.sf-btn:hover { transform: translateY(-1px); color: var(--sf-btn-fg); }
.sf-btn:focus-visible { outline: 3px solid color-mix(in srgb, var(--sf-secondary) 60%, transparent); outline-offset: 3px; }
.sf-btn__icon { width: 1.2rem; height: 1.2rem; }
.sf-btn--primary { --sf-btn-bg: var(--sf-gradient); background: var(--sf-gradient); box-shadow: 0 10px 24px -12px color-mix(in srgb, var(--sf-primary) 80%, transparent); }
.sf-btn--accent { background: var(--sf-gradient-accent); box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--sf-accent) 80%, transparent); }
.sf-btn--accent:hover { box-shadow: 0 14px 30px -10px color-mix(in srgb, var(--sf-accent) 90%, transparent); }
.sf-btn--white { --sf-btn-fg: var(--sf-primary); background: #fff; box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .35); }
.sf-btn--outline { --sf-btn-fg: var(--sf-primary); background: transparent; border-color: color-mix(in srgb, var(--sf-primary) 22%, transparent); }
.sf-btn--outline:hover { background: color-mix(in srgb, var(--sf-primary) 6%, transparent); }
.sf-btn--glass {
	background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .35);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.sf-btn--glass:hover { background: rgba(255, 255, 255, .2); }
.sf-btn--whatsapp { background: linear-gradient(135deg, #2bd46a, #1aa851); box-shadow: 0 10px 24px -10px rgba(26, 168, 81, .7); }
.sf-btn--whatsapp-outline { --sf-btn-fg: #148a42; background: transparent; border-color: #1aa851; }

/* Trazo ECG (firma de la marca) */
.sf-ecg { display: block; width: 100%; height: 100%; overflow: visible; }
.sf-ecg path { stroke-dasharray: 1; stroke-dashoffset: 0; }
.sf-ecg--draw path, .sf-ecg--draw .sf-ecg path { stroke-dashoffset: 1; }
.sf-ecg--draw.is-visible path, .sf-ecg--draw.is-visible .sf-ecg path { animation: sf-draw 2.4s cubic-bezier(.65, 0, .35, 1) forwards; }
@keyframes sf-draw { to { stroke-dashoffset: 0; } }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.sf-hero {
	position: relative; isolation: isolate; overflow: hidden;
	padding: clamp(3rem, 8vw, 6.5rem) var(--sf-gutter) clamp(3.5rem, 8vw, 7rem);
	color: #fff;
}
.sf-hero__bg { position: absolute; inset: 0; z-index: -1; background: var(--sf-glow), var(--sf-gradient); }
.sf-hero__bg::after {
	content: ""; position: absolute; inset: 0;
	background-image: linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px);
	background-size: 44px 44px;
	-webkit-mask-image: radial-gradient(80% 70% at 70% 30%, #000 20%, transparent 75%);
	mask-image: radial-gradient(80% 70% at 70% 30%, #000 20%, transparent 75%);
}
.sf-hero.sf-tone-dark .sf-hero__bg { background: radial-gradient(50% 60% at 85% 15%, color-mix(in srgb, var(--sf-accent) 22%, transparent), transparent 70%), var(--sf-ink); }
.sf-hero.sf-tone-light { color: var(--sf-ink); }
.sf-hero.sf-tone-light .sf-hero__bg {
	background: radial-gradient(55% 65% at 90% 10%, color-mix(in srgb, var(--sf-accent) 18%, transparent), transparent 70%),
		radial-gradient(50% 60% at 0% 100%, color-mix(in srgb, var(--sf-secondary) 14%, transparent), transparent 70%), var(--sf-surface);
}
.sf-hero.sf-tone-light .sf-hero__bg::after { background-image: linear-gradient(color-mix(in srgb, var(--sf-primary) 7%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--sf-primary) 7%, transparent) 1px, transparent 1px); }

.sf-hero__inner {
	display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: center;
	max-width: var(--sf-wide); margin-inline: auto;
}
@media (min-width: 960px) { .sf-hero__inner { grid-template-columns: 1.08fr .92fr; } }

.sf-hero__kicker {
	display: inline-flex; margin: 0 0 1.25rem; padding: .4rem .9rem; border-radius: 999px;
	background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .22);
	font-size: .875rem; font-weight: 600;
}
.sf-tone-light .sf-hero__kicker { background: #fff; border-color: var(--sf-line); color: var(--sf-secondary); }
.sf-hero__title {
	margin: 0; max-width: 18ch;
	font-family: var(--sf-font-heading);
	font-size: clamp(1.85rem, 1.1rem + 4.2vw, 4rem); line-height: 1.04; letter-spacing: -.03em; font-weight: 800; overflow-wrap: break-word; hyphens: manual;
	color: inherit; text-wrap: balance;
}
.sf-tone-light .sf-hero__title { color: var(--sf-primary); }
.sf-hero__ecg { width: min(100%, 26rem); height: 44px; margin: 1.25rem 0 1rem; color: var(--sf-accent); }
.sf-hero__ecg path { stroke-width: 3; filter: drop-shadow(0 0 8px color-mix(in srgb, var(--sf-accent) 60%, transparent)); }
.sf-hero__text { max-width: 36rem; font-size: clamp(1.05rem, 1rem + .3vw, 1.25rem); line-height: 1.6; opacity: .92; }
.sf-hero__text p { margin: 0 0 1.75rem; }
.sf-tone-light .sf-hero__text { color: var(--sf-muted); opacity: 1; }
.sf-hero__badges { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin: 2rem 0 0; padding: 0; list-style: none; font-size: .9375rem; opacity: .9; }
.sf-hero__badges li { display: inline-flex; align-items: center; gap: .45rem; }
.sf-hero__badges .sf-icon { color: var(--sf-accent); stroke-width: 2.6; }
.sf-tone-light .sf-hero__badges { color: var(--sf-ink); }

.sf-hero__media { position: relative; }
.sf-hero__photo { margin: 0; overflow: hidden; border-radius: var(--sf-img-radius, var(--sf-radius-lg)); box-shadow: var(--sf-shadow-lg); }
.sf-hero__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sf-hero__photo--main { aspect-ratio: 4 / 3.3; border: 1px solid rgba(255, 255, 255, .25); }
.sf-hero__media.has-two { padding-bottom: 3rem; }
.sf-hero__media.has-two .sf-hero__photo--main { width: 86%; margin-left: auto; }
.sf-hero__photo--second {
	position: absolute; left: 0; bottom: 0; width: 42%; aspect-ratio: 3 / 4;
	border: 5px solid rgba(255, 255, 255, .95);
}
.sf-hero__chip {
	position: absolute; top: 1.25rem; left: 0;
	display: inline-flex; align-items: center; gap: .55rem;
	padding: .6rem 1rem; border-radius: 999px;
	background: rgba(255, 255, 255, .92); color: var(--sf-primary);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	font-size: .875rem; font-weight: 700; box-shadow: var(--sf-shadow);
}
.sf-hero__chip-dot { width: .55rem; height: .55rem; border-radius: 50%; background: var(--sf-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--sf-accent) 25%, transparent); }
@media (max-width: 959px) {
	.sf-hero__media { max-width: 34rem; }
}

/* --------------------------------------------------------------------------
   Encabezado de página
   -------------------------------------------------------------------------- */

.sf-pagehead {
	position: relative; isolation: isolate; overflow: hidden;
	padding: clamp(3rem, 7vw, 5.5rem) var(--sf-gutter) clamp(3.25rem, 7vw, 5.5rem);
	color: #fff;
}
.sf-pagehead__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.sf-pagehead__bg { position: absolute; inset: 0; z-index: -1; background: var(--sf-glow), var(--sf-gradient); }
.sf-pagehead.has-image .sf-pagehead__bg { opacity: .88; }
.sf-pagehead.sf-tone-dark .sf-pagehead__bg { background: var(--sf-ink); }
.sf-pagehead.sf-tone-light { color: var(--sf-ink); }
.sf-pagehead.sf-tone-light .sf-pagehead__bg { background: radial-gradient(50% 80% at 90% 0%, color-mix(in srgb, var(--sf-accent) 14%, transparent), transparent 70%), var(--sf-surface); }
.sf-pagehead__inner { max-width: var(--sf-wide); margin-inline: auto; }
.sf-pagehead__title {
	margin: .75rem 0 0; max-width: 22ch;
	font-family: var(--sf-font-heading);
	font-size: clamp(2rem, 1.3rem + 2.8vw, 3.25rem); line-height: 1.08; letter-spacing: -.025em; color: inherit; text-wrap: balance;
}
.sf-tone-light .sf-pagehead__title { color: var(--sf-primary); }
.sf-pagehead__text { max-width: 40rem; margin-top: 1rem; font-size: 1.125rem; line-height: 1.6; opacity: .9; }
.sf-pagehead__text p { margin: 0; }
.sf-pagehead__ecg { position: absolute; right: -2rem; bottom: 1.25rem; width: min(40rem, 70%); height: 60px; color: rgba(255, 255, 255, .16); z-index: -1; }
.sf-tone-light .sf-pagehead__ecg { color: color-mix(in srgb, var(--sf-secondary) 18%, transparent); }
.sf-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; font-size: .875rem; opacity: .85; }
.sf-crumbs a { color: inherit; text-decoration: none; }
.sf-crumbs a:hover { text-decoration: underline; }
.sf-crumbs__sep { opacity: .5; }

@media (max-width: 640px) {
	.sf-pagehead { padding-bottom: 4.5rem; }
	.sf-pagehead__ecg { right: 0; left: 0; bottom: .75rem; width: 100%; height: 40px; }
}

/* --------------------------------------------------------------------------
   Características
   -------------------------------------------------------------------------- */

.sf-feature {
	position: relative; height: 100%;
	padding: 1.75rem 1.5rem;
	border-radius: var(--sf-radius);
	background: #fff; box-shadow: var(--sf-ring), var(--sf-shadow-sm);
	transition: transform .2s ease, box-shadow .2s ease;
}
.sf-feature:hover { transform: translateY(-3px); box-shadow: var(--sf-ring), var(--sf-shadow); }
.sf-feature__icon {
	display: inline-grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: 1.15rem;
	border-radius: 14px; background: var(--sf-gradient); color: #fff;
	box-shadow: 0 8px 18px -8px color-mix(in srgb, var(--sf-primary) 70%, transparent);
}
.sf-feature__title { margin: 0 0 .5rem; font-family: var(--sf-font-heading); font-size: 1.15rem; line-height: 1.3; color: var(--sf-primary); }
.sf-feature__text { margin: 0; color: var(--sf-muted); line-height: 1.6; }

.sf-features--gradient .sf-feature {
	border: 1px solid transparent;
	background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, color-mix(in srgb, var(--sf-secondary) 45%, transparent), color-mix(in srgb, var(--sf-accent) 55%, transparent)) border-box;
	box-shadow: var(--sf-shadow-sm);
}
.sf-features--lined .sf-feature { padding: 0 0 0 1.25rem; border-radius: 0; background: none; box-shadow: none; border-left: 2px solid var(--sf-line); }
.sf-features--lined .sf-feature:hover { transform: none; border-left-color: var(--sf-accent); }
.sf-features--lined .sf-feature__icon { width: auto; height: auto; background: none; box-shadow: none; color: var(--sf-secondary); }

/* --------------------------------------------------------------------------
   Pasos
   -------------------------------------------------------------------------- */

.sf-steps { border-radius: var(--sf-radius-lg); }
.sf-steps.alignfull { border-radius: 0; }
.sf-steps.sf-tone-light { background: var(--sf-surface); }
.sf-steps.sf-tone-gradient { background: var(--sf-glow), var(--sf-gradient); color: #fff; }
.sf-steps.sf-tone-gradient .sf-section__title, .sf-steps.sf-tone-gradient .sf-step__title { color: #fff; }
.sf-steps.sf-tone-gradient .sf-section__intro, .sf-steps.sf-tone-gradient .sf-step__text { color: rgba(255, 255, 255, .82); }
.sf-steps:not(.alignfull) { padding-inline: clamp(1.25rem, 4vw, 3rem); }
.sf-steps__list {
	position: relative; display: grid; gap: 1.5rem; margin: 0; padding: 0; list-style: none;
	counter-reset: none;
}
@media (min-width: 768px) {
	.sf-steps__list { grid-template-columns: repeat(min(var(--sf-steps), 4), 1fr); gap: 2rem; }
	.sf-steps__list::before {
		content: ""; position: absolute; top: 1.5rem; left: 1.5rem; right: calc((100% - (min(var(--sf-steps), 4) - 1) * 2rem) / min(var(--sf-steps), 4) - 1.5rem); height: 2px;
		background: linear-gradient(90deg, var(--sf-secondary), var(--sf-accent));
		opacity: .35;
	}
}
.sf-step { position: relative; }
.sf-step__num {
	position: relative; display: inline-grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: 1rem;
	border-radius: 50%; background: #fff; color: var(--sf-primary);
	font-family: var(--sf-font-heading); font-weight: 800; font-size: .95rem;
	box-shadow: 0 0 0 1px var(--sf-line), 0 0 0 6px var(--sf-surface);
}
.sf-tone-white .sf-step__num { box-shadow: 0 0 0 1px var(--sf-line), 0 0 0 6px #fff; }
.sf-tone-gradient .sf-step__num { box-shadow: 0 0 0 6px rgba(255, 255, 255, .12); }
.sf-step__title { margin: 0 0 .4rem; font-family: var(--sf-font-heading); font-size: 1.15rem; color: var(--sf-primary); }
.sf-step__text { margin: 0; color: var(--sf-muted); line-height: 1.6; }

/* --------------------------------------------------------------------------
   Servicios
   -------------------------------------------------------------------------- */

.sf-service {
	position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden;
	border-radius: var(--sf-radius); background: #fff;
	box-shadow: var(--sf-ring), var(--sf-shadow-sm);
	color: inherit; text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease;
}
a.sf-service:hover { transform: translateY(-4px); box-shadow: var(--sf-ring), var(--sf-shadow); }
a.sf-service:focus-visible { outline: 3px solid var(--sf-secondary); outline-offset: 3px; }
.sf-service::before {
	content: ""; position: absolute; inset: 0 0 auto; height: 3px;
	background: linear-gradient(90deg, var(--sf-secondary), var(--sf-accent));
	transform: scaleX(0); transform-origin: left; transition: transform .35s ease;
}
a.sf-service:hover::before { transform: scaleX(1); }
.sf-service__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--sf-surface); }
.sf-service__img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
a.sf-service:hover .sf-service__img { transform: scale(1.04); }
.sf-service__body { display: flex; flex: 1; flex-direction: column; gap: .6rem; padding: 1.6rem 1.5rem 1.5rem; }
.sf-service__icon {
	display: inline-grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: .35rem;
	border-radius: 14px;
	background: linear-gradient(135deg, color-mix(in srgb, var(--sf-secondary) 12%, #fff), color-mix(in srgb, var(--sf-accent) 14%, #fff));
	color: var(--sf-primary);
}
.sf-service.has-image .sf-service__icon { margin-top: -3.1rem; background: #fff; box-shadow: var(--sf-shadow-sm); }
.sf-service__title { margin: 0; font-family: var(--sf-font-heading); font-size: 1.2rem; font-weight: 700; line-height: 1.3; color: var(--sf-primary); }
.sf-service__text { color: var(--sf-muted); line-height: 1.6; }
.sf-service__more { display: inline-flex; align-items: center; gap: .4rem; margin-top: auto; padding-top: .5rem; color: var(--sf-secondary); font-weight: 700; font-size: .95rem; }
a.sf-service:hover .sf-service__more .sf-icon { transform: translateX(3px); }
.sf-service__more .sf-icon { transition: transform .2s ease; }
.sf-services--compact .sf-service__body { flex-direction: row; flex-wrap: wrap; align-items: flex-start; gap: .25rem 1rem; padding: 1.25rem; }
.sf-services--compact .sf-service__icon { margin: 0; }
.sf-services--compact .sf-service__title { flex: 1; align-self: center; }
.sf-services--compact .sf-service__text, .sf-services--compact .sf-service__more { flex-basis: 100%; }

@media (max-width: 639px) {
	.sf-services--cards .sf-service__body { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: .9rem; row-gap: .5rem; padding: 1.15rem 1.15rem 1.25rem; }
	.sf-services--cards .sf-service__icon { margin: 0; width: 2.6rem; height: 2.6rem; }
	.sf-services--cards .sf-service__text, .sf-services--cards .sf-service__more { grid-column: 1 / -1; }
	.sf-services--cards .sf-service__more { padding-top: 0; }
}

/* --------------------------------------------------------------------------
   CTA
   -------------------------------------------------------------------------- */

.sf-cta { padding-block: clamp(2rem, 5vw, 4rem); }
.sf-cta.alignfull { padding-inline: var(--sf-gutter); }
.sf-cta__card {
	position: relative; isolation: isolate; overflow: hidden;
	max-width: var(--sf-wide); margin-inline: auto;
	padding: clamp(2.25rem, 5vw, 4rem);
	border-radius: var(--sf-radius-lg);
	color: #fff; box-shadow: var(--sf-shadow-lg);
}
.sf-cta__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.sf-cta__bg { position: absolute; inset: 0; z-index: -1; background: var(--sf-glow), var(--sf-gradient); }
.sf-cta.has-image .sf-cta__bg { opacity: .9; }
.sf-cta.sf-tone-dark .sf-cta__bg { background: radial-gradient(50% 80% at 100% 0%, color-mix(in srgb, var(--sf-accent) 25%, transparent), transparent 70%), var(--sf-ink); }
.sf-cta.sf-tone-accent .sf-cta__bg { background: radial-gradient(60% 90% at 100% 0%, rgba(255, 255, 255, .22), transparent 70%), var(--sf-gradient-accent); }
.sf-cta.sf-tone-light .sf-cta__card { color: var(--sf-ink); box-shadow: var(--sf-ring), var(--sf-shadow); }
.sf-cta.sf-tone-light .sf-cta__bg { background: radial-gradient(50% 90% at 100% 0%, color-mix(in srgb, var(--sf-accent) 16%, transparent), transparent 70%), var(--sf-surface); }
.sf-cta__ecg { position: absolute; left: -5%; right: -5%; bottom: 10%; width: 110%; height: 90px; color: rgba(255, 255, 255, .1); z-index: -1; }
.sf-tone-light .sf-cta__ecg { color: color-mix(in srgb, var(--sf-secondary) 12%, transparent); }
.sf-cta__content { display: grid; gap: 1.75rem; align-items: center; }
@media (min-width: 860px) { .sf-cta__content { grid-template-columns: 1fr auto; gap: 3rem; } }
.sf-cta__title { margin: 0; font-family: var(--sf-font-heading); font-size: clamp(1.75rem, 1.2rem + 2vw, 2.6rem); line-height: 1.1; letter-spacing: -.02em; color: inherit; text-wrap: balance; }
.sf-tone-light .sf-cta__title { color: var(--sf-primary); }
.sf-cta__text { max-width: 38rem; margin-top: .85rem; font-size: 1.1rem; line-height: 1.6; opacity: .9; }
.sf-cta__text p { margin: 0; }

/* --------------------------------------------------------------------------
   Contacto y datos de empresa
   -------------------------------------------------------------------------- */

.sf-contact.is-card {
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border-radius: var(--sf-radius-lg); background: #fff;
	box-shadow: var(--sf-ring), var(--sf-shadow);
}
.sf-contact__title { margin: 0 0 .5rem; font-family: var(--sf-font-heading); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); color: var(--sf-primary); letter-spacing: -.015em; }
.sf-contact__intro { margin-bottom: 1.75rem; color: var(--sf-muted); }
.sf-contact__intro p { margin: 0; }

.sf-company__title { margin: 0 0 1.25rem; font-family: var(--sf-font-heading); font-size: 1.35rem; color: var(--sf-primary); }
.sf-company__list { display: grid; gap: .9rem; margin: 0; padding: 0; list-style: none; }
.sf-company__item { display: flex; align-items: flex-start; gap: .9rem; min-width: 0; }
.sf-company__icon {
	display: inline-grid; place-items: center; flex: none; width: 2.6rem; height: 2.6rem; border-radius: 12px;
	background: color-mix(in srgb, var(--sf-secondary) 10%, transparent); color: var(--sf-secondary);
}
.sf-company__icon .sf-icon { width: 1.25rem; height: 1.25rem; }
.sf-company__text { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.sf-company__label { font-size: .8125rem; color: var(--sf-muted); }
.sf-company__value { font-weight: 600; color: var(--sf-ink); overflow-wrap: anywhere; }
.sf-company__value a { color: inherit; text-decoration: none; }
.sf-company__value a:hover { color: var(--sf-secondary); text-decoration: underline; }
.sf-company--cards .sf-company__list { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; }
.sf-company--cards .sf-company__item { padding: 1.15rem; border-radius: var(--sf-radius); background: #fff; box-shadow: var(--sf-ring), var(--sf-shadow-sm); }
.sf-company--dark .sf-company__title, .sf-company--dark .sf-company__value { color: #fff; }
.sf-company--dark .sf-company__label { color: rgba(255, 255, 255, .65); }
.sf-company--dark .sf-company__icon { background: rgba(255, 255, 255, .1); color: var(--sf-accent); }
.sf-company--dark.sf-company--cards .sf-company__item { background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }

/* Redes */
.sf-social { display: flex; flex-wrap: wrap; gap: .5rem; margin-inline: 0; margin-bottom: 0; padding: 0; list-style: none; }
.sf-social.is-center { justify-content: center; }
.sf-social.is-right { justify-content: flex-end; }
.sf-social__link {
	display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 12px;
	background: var(--sf-gradient); color: #fff; transition: transform .18s ease, opacity .18s ease;
}
.sf-social__link:hover { transform: translateY(-2px); color: #fff; }
.sf-social__link .sf-icon { width: 1.2rem; height: 1.2rem; }
.sf-social--outline .sf-social__link { background: transparent; color: currentColor; box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent); }
.sf-social--outline .sf-social__link:hover { color: var(--sf-accent); }

/* WhatsApp */
.sf-wa-block { display: flex; }
.sf-wa-block.is-center { justify-content: center; }
.sf-wa-block.is-right { justify-content: flex-end; }
.sf-wa-block.is-lg .sf-btn { min-height: 3.5rem; padding-inline: 2rem; font-size: 1.1rem; }

/* Divisor ECG */
.sf-divider { height: var(--sf-divider-h, 56px); margin-block: 1rem; color: var(--sf-accent); }
.sf-divider.is-primary { color: var(--sf-primary); }
.sf-divider.is-secondary { color: var(--sf-secondary); }
.sf-divider.is-highlight { color: var(--sf-highlight); }
.sf-divider.is-white { color: #fff; }

/* Mapa */
.sf-map { overflow: hidden; border-radius: var(--sf-img-radius, var(--sf-radius-lg)); box-shadow: var(--sf-ring), var(--sf-shadow); line-height: 0; }
.sf-map iframe { display: block; width: 100%; border: 0; filter: saturate(.85); }

/* --------------------------------------------------------------------------
   Preguntas frecuentes
   -------------------------------------------------------------------------- */

.sf-faq__list { display: grid; gap: .75rem; }
.sf-faq__item {
	border-radius: var(--sf-radius); background: #fff;
	box-shadow: var(--sf-ring), var(--sf-shadow-sm);
	transition: box-shadow .2s ease;
}
.sf-faq__item[open] { box-shadow: 0 0 0 1px color-mix(in srgb, var(--sf-secondary) 30%, transparent), var(--sf-shadow); }
.sf-faq__q {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: 1.15rem 1.35rem; cursor: pointer; list-style: none;
	font-family: var(--sf-font-heading); font-weight: 700; font-size: 1.075rem; color: var(--sf-primary);
}
.sf-faq__q::-webkit-details-marker { display: none; }
.sf-faq__q:focus-visible { outline: 3px solid var(--sf-secondary); outline-offset: 2px; border-radius: var(--sf-radius); }
.sf-faq__toggle { position: relative; flex: none; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--sf-surface); }
.sf-faq__toggle::before, .sf-faq__toggle::after {
	content: ""; position: absolute; top: 50%; left: 50%; width: .7rem; height: 2px; margin: -1px 0 0 -.35rem;
	background: var(--sf-secondary); border-radius: 2px; transition: transform .2s ease;
}
.sf-faq__toggle::after { transform: rotate(90deg); }
.sf-faq__item[open] .sf-faq__toggle { background: var(--sf-gradient); }
.sf-faq__item[open] .sf-faq__toggle::before, .sf-faq__item[open] .sf-faq__toggle::after { background: #fff; }
.sf-faq__item[open] .sf-faq__toggle::after { transform: rotate(0); }
.sf-faq__a { padding: 0 1.35rem 1.25rem; color: var(--sf-muted); line-height: 1.65; }
.sf-faq__a p { margin: 0 0 .75rem; }
.sf-faq__a p:last-child { margin: 0; }

/* --------------------------------------------------------------------------
   Cifras
   -------------------------------------------------------------------------- */

.sf-stats { padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: var(--sf-radius-lg); }
.sf-stats.sf-tone-light { background: var(--sf-surface); }
.sf-stats.sf-tone-white { background: #fff; box-shadow: var(--sf-ring), var(--sf-shadow-sm); }
.sf-stats.sf-tone-gradient { background: var(--sf-glow), var(--sf-gradient); color: #fff; }
.sf-stats__list { display: grid; gap: 1.5rem; margin: 0; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .sf-stats__list { grid-template-columns: repeat(min(var(--sf-cols), 4), 1fr); } }
.sf-stat { display: flex; flex-direction: column-reverse; gap: .25rem; text-align: center; }
.sf-stat__value {
	margin: 0; font-family: var(--sf-font-heading); font-weight: 800;
	font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem); line-height: 1; letter-spacing: -.03em;
	background: var(--sf-gradient); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.sf-tone-gradient .sf-stat__value { background: none; color: #fff; }
.sf-stat__label { color: var(--sf-muted); font-size: .95rem; }
.sf-tone-gradient .sf-stat__label { color: rgba(255, 255, 255, .8); }

/* Lista con íconos */
.sf-iconlist__title { margin: 0 0 1rem; font-family: var(--sf-font-heading); color: var(--sf-primary); }
.sf-iconlist__list { display: grid; gap: .85rem 2rem; margin: 0; padding: 0; list-style: none; }
.sf-iconlist.is-2-cols .sf-iconlist__list { grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.sf-iconlist__list li { display: flex; align-items: flex-start; gap: .75rem; line-height: 1.55; }
.sf-iconlist__icon {
	display: inline-grid; place-items: center; flex: none; width: 1.6rem; height: 1.6rem; margin-top: .05rem;
	border-radius: 50%; background: var(--sf-gradient-accent); color: #fff;
}
.sf-iconlist__icon .sf-icon { width: .95rem; height: .95rem; stroke-width: 2.6; }

/* Testimonios */
.sf-quote { position: relative; margin: 0; padding: 2rem 1.75rem 1.75rem; border-radius: var(--sf-radius); background: #fff; box-shadow: var(--sf-ring), var(--sf-shadow-sm); }
.sf-quote__mark { width: 2rem; height: 1.5rem; color: color-mix(in srgb, var(--sf-accent) 70%, transparent); }
.sf-quote__text { margin: 1rem 0 1.25rem; padding: 0; border: 0; font-size: 1.05rem; line-height: 1.65; color: var(--sf-ink); }
.sf-quote__text p { margin: 0; }
.sf-quote__author { display: flex; flex-direction: column; font-size: .95rem; }
.sf-quote__author strong { color: var(--sf-primary); }
.sf-quote__author span { color: var(--sf-muted); }

/* --------------------------------------------------------------------------
   Publicaciones
   -------------------------------------------------------------------------- */

.sf-postcard {
	display: flex; flex-direction: column; height: 100%; overflow: hidden;
	border-radius: var(--sf-radius); background: #fff;
	box-shadow: var(--sf-ring), var(--sf-shadow-sm);
	transition: transform .2s ease, box-shadow .2s ease;
}
.sf-postcard:hover { transform: translateY(-3px); box-shadow: var(--sf-ring), var(--sf-shadow); }
.sf-postcard__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--sf-gradient); }
.sf-postcard__img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.sf-postcard:hover .sf-postcard__img { transform: scale(1.04); }
.sf-postcard__placeholder { display: grid; place-items: center; width: 100%; height: 100%; padding: 0 12%; color: rgba(255, 255, 255, .5); background: var(--sf-glow); }
.sf-postcard__placeholder .sf-ecg { height: 56px; }
.sf-postcard__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: .65rem; padding: 1.35rem 1.4rem 1.5rem; }
.sf-postcard__title { margin: 0; font-family: var(--sf-font-heading); font-size: 1.2rem; line-height: 1.3; }
.sf-postcard__title a { color: var(--sf-primary); text-decoration: none; }
.sf-postcard__title a:hover { color: var(--sf-secondary); }
.sf-postcard__title a::after { content: ""; position: absolute; inset: 0; }
.sf-postcard { position: relative; }
.sf-postcard .sf-pill { position: relative; z-index: 1; }
.sf-postcard__excerpt { margin: 0; color: var(--sf-muted); line-height: 1.6; }
.sf-postcard__date { margin-top: auto; color: var(--sf-muted); font-size: .875rem; }

/* --------------------------------------------------------------------------
   Galería
   -------------------------------------------------------------------------- */

.sf-gallery__grid { display: grid; gap: var(--sf-gallery-gap, clamp(.5rem, 1.2vw, .9rem)); margin: 0; padding: 0; list-style: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) { .sf-gallery__grid { grid-template-columns: repeat(var(--sf-gcols, 3), minmax(0, 1fr)); } }
.sf-gallery__item { min-width: 0; }
.sf-gallery__figure { position: relative; height: 100%; margin: 0; overflow: hidden; border-radius: var(--sf-gallery-radius, var(--sf-img-radius, var(--sf-radius))); background: var(--sf-surface); }
.sf-gallery__link { display: block; height: 100%; color: inherit; }
.sf-gallery__img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.sf-gallery__link:hover .sf-gallery__img { transform: scale(1.05); }
.sf-gallery__link:focus-visible { outline: 3px solid var(--sf-secondary); outline-offset: -3px; }
.sf-gallery__zoom {
	position: absolute; top: .75rem; right: .75rem; display: grid; place-items: center; width: 2.4rem; height: 2.4rem;
	border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--sf-primary);
	opacity: 0; transform: scale(.85); transition: opacity .2s ease, transform .2s ease; box-shadow: var(--sf-shadow-sm);
}
.sf-gallery__link:hover .sf-gallery__zoom, .sf-gallery__link:focus-visible .sf-gallery__zoom { opacity: 1; transform: none; }
@media (hover: none) { .sf-gallery__zoom { opacity: 1; transform: none; width: 2rem; height: 2rem; top: .5rem; right: .5rem; } }
@media (max-width: 767px) { .sf-gallery__item:not(:first-child) .sf-gallery__zoom { display: none; } .sf-gallery__item:not(:first-child) .sf-gallery__caption { display: none; } }
.sf-gallery__caption {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 2.25rem .9rem .75rem;
	background: linear-gradient(transparent, rgba(7, 18, 38, .78)); color: #fff; font-size: .85rem; font-weight: 600; line-height: 1.35;
	pointer-events: none;
}
/* Mosaico: una foto grande y las demás al costado (hasta 4) o en cuadrícula de 4 (5 o más) */
.sf-gallery--mosaic .sf-gallery__item:first-child { grid-column: 1 / -1; }
.sf-gallery--mosaic.is-stack .sf-gallery__grid { grid-template-columns: repeat(max(1, calc(var(--sf-gcount) - 1)), minmax(0, 1fr)); }
@media (min-width: 768px) {
	.sf-gallery--mosaic.is-stack .sf-gallery__grid { grid-template-columns: 2fr 1fr; grid-template-rows: repeat(max(1, calc(var(--sf-gcount) - 1)), minmax(0, 1fr)); }
	.sf-gallery--mosaic.is-stack .sf-gallery__item:first-child { grid-column: 1; grid-row: 1 / -1; }
	.sf-gallery--mosaic.is-stack .sf-gallery__item:first-child .sf-gallery__img { aspect-ratio: 4 / 3; }
	.sf-gallery--mosaic.is-stack .sf-gallery__item:not(:first-child) .sf-gallery__img { aspect-ratio: auto; position: absolute; inset: 0; }
	.sf-gallery--mosaic.is-stack .sf-gallery__item:not(:first-child) .sf-gallery__figure { position: relative; min-height: 0; }
	.sf-gallery--mosaic.is-grid .sf-gallery__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.sf-gallery--mosaic.is-grid .sf-gallery__item:first-child { grid-column: span 2; grid-row: span 2; }
	.sf-gallery--mosaic.is-grid .sf-gallery__item:first-child .sf-gallery__img { aspect-ratio: auto; }
}
.sf-gallery--mosaic.is-stack .sf-gallery__item:only-child { grid-column: 1 / -1; grid-row: auto; }
/* Columnas tipo masonry */
.sf-gallery--masonry .sf-gallery__grid { display: block; columns: 2; column-gap: var(--sf-gallery-gap, .75rem); }
@media (min-width: 768px) { .sf-gallery--masonry .sf-gallery__grid { columns: var(--sf-gcols, 3); } }
.sf-gallery--masonry .sf-gallery__item { break-inside: avoid; margin-bottom: var(--sf-gallery-gap, .75rem); }
.sf-gallery--masonry .sf-gallery__img { aspect-ratio: auto; height: auto; }

/* Visor de fotos */
.sf-lightbox {
	position: fixed; inset: 0; z-index: 200; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: .75rem;
	width: 100vw; height: 100vh; height: 100dvh; box-sizing: border-box;
	padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
	background: rgba(5, 12, 26, .97); color: #fff; opacity: 0; transition: opacity .25s ease;
}
.sf-lightbox.is-open { opacity: 1; }
.sf-lightbox__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .9rem; color: rgba(255, 255, 255, .75); }
.sf-lightbox__stage { position: relative; min-height: 0; min-width: 0; }
.sf-lightbox__img {
	position: absolute; inset: 0; margin: auto; display: block;
	max-width: calc(100% - 7.5rem); max-height: 100%; width: auto; height: auto;
	object-fit: contain; border-radius: min(var(--sf-img-radius, 8px), 16px); box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .7);
}
@media (max-width: 640px) { .sf-lightbox__img { max-width: 100%; } }
.sf-lightbox__caption { margin: 0 auto; max-width: 46rem; text-align: center; font-size: .95rem; color: rgba(255, 255, 255, .85); }
.sf-lightbox__caption:empty { display: none; }
.sf-lightbox button {
	display: inline-grid; place-items: center; width: 2.9rem; height: 2.9rem; border: 0; border-radius: 50%;
	background: rgba(255, 255, 255, .12); color: #fff; cursor: pointer; transition: background-color .2s ease;
}
.sf-lightbox button:hover { background: rgba(255, 255, 255, .22); }
.sf-lightbox button:focus-visible { outline: 3px solid var(--sf-accent); outline-offset: 2px; }
.sf-lightbox__nav { position: absolute; top: 50%; z-index: 1; transform: translateY(-50%); }
@media (max-width: 640px) { .sf-lightbox__nav { top: auto; bottom: .5rem; transform: none; background: rgba(5, 12, 26, .6) !important; } }
.sf-lightbox__prev { left: 0; }
.sf-lightbox__next { right: 0; }
html.sf-lightbox-open { overflow: hidden; }

/* --------------------------------------------------------------------------
   Catálogo de equipos y repuestos
   -------------------------------------------------------------------------- */

.sf-products__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; margin-bottom: 1.75rem; }
.sf-products__filters { display: flex; flex-wrap: wrap; gap: .5rem; }
@media (max-width: 639px) {
	.sf-products__bar { flex-direction: column; align-items: stretch; }
	.sf-products__filters { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--sf-gutter)); padding: .15rem var(--sf-gutter) .35rem; scrollbar-width: none; scroll-snap-type: x proximity; }
	.sf-products__filters::-webkit-scrollbar { display: none; }
	.sf-products .sf-chip { flex: none; scroll-snap-align: start; white-space: nowrap; }
	.sf-products .sf-products__search { flex: none; width: 100%; max-width: none; }
	.sf-products .sf-products__filters { flex: none; align-self: stretch; min-width: 0; max-width: none; padding-left: var(--sf-gutter); padding-right: var(--sf-gutter); scroll-padding-inline: var(--sf-gutter); }
	.sf-products .sf-products__bar { align-items: stretch; flex-wrap: nowrap; }
}
.sf-products .sf-chip {
	display: inline-flex; align-items: center; gap: .45rem; padding: .55rem 1rem; border: 0; border-radius: 999px;
	background: #fff; box-shadow: inset 0 0 0 1px var(--sf-line); color: var(--sf-ink); font: inherit; font-size: .9rem; font-weight: 600; cursor: pointer;
	transition: background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.sf-products .sf-chip span { display: inline-grid; place-items: center; min-width: 1.4rem; height: 1.4rem; padding: 0 .35rem; border-radius: 999px; background: var(--sf-surface); color: var(--sf-muted); font-size: .75rem; }
.sf-products .sf-chip:hover { box-shadow: inset 0 0 0 1px var(--sf-secondary); color: var(--sf-secondary); }
.sf-products .sf-chip.is-active { background: var(--sf-gradient); color: #fff; box-shadow: none; }
.sf-products .sf-chip.is-active span { background: rgba(255, 255, 255, .2); color: #fff; }
.sf-products__search { position: relative; display: flex; align-items: center; flex: 1 1 16rem; max-width: 22rem; color: var(--sf-muted); }
.sf-products__search svg { position: absolute; left: .95rem; pointer-events: none; }
.sf-products__search input {
	box-sizing: border-box; width: 100%; padding: .7rem 1rem .7rem 2.6rem; border: 0; border-radius: 999px; background: #fff;
	box-shadow: inset 0 0 0 1px var(--sf-line); color: var(--sf-ink); font: inherit; font-size: .95rem;
}
.sf-products__search input:focus { outline: none; box-shadow: inset 0 0 0 2px var(--sf-secondary); }
.sf-products__grid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: 1fr; }
@media (min-width: 600px) { .sf-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sf-products__grid { grid-template-columns: repeat(var(--sf-pcols, 3), minmax(0, 1fr)); } }
.sf-product {
	display: flex; flex-direction: column; min-width: 0; overflow: hidden; border-radius: var(--sf-radius); background: #fff;
	box-shadow: var(--sf-ring), var(--sf-shadow-sm); transition: transform .2s ease, box-shadow .2s ease;
}
.sf-product:hover { transform: translateY(-3px); box-shadow: var(--sf-ring), var(--sf-shadow); }
.sf-product[hidden] { display: none; }
.sf-product__media {
	position: relative; aspect-ratio: 4 / 3; overflow: hidden;
	background: radial-gradient(70% 70% at 50% 40%, #fff, var(--sf-surface));
}
.sf-product__img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.sf-product:hover .sf-product__img { transform: scale(1.04); }
.sf-product__placeholder {
	display: grid; place-items: center; width: 100%; height: 100%;
	background:
		linear-gradient(color-mix(in srgb, var(--sf-secondary) 6%, transparent) 1px, transparent 1px) 0 0 / 100% 20px,
		linear-gradient(90deg, color-mix(in srgb, var(--sf-secondary) 6%, transparent) 1px, transparent 1px) 0 0 / 20px 100%;
}
.sf-product__placeholder .sf-icon {
	box-sizing: content-box; width: 2.4rem; height: 2.4rem; padding: 1.4rem; border-radius: 50%; stroke-width: 1.6;
	background: #fff; color: var(--sf-secondary);
	box-shadow: 0 0 0 10px color-mix(in srgb, var(--sf-accent) 10%, transparent), 0 14px 30px -14px rgba(15, 31, 56, .35);
}
.sf-product:hover .sf-product__placeholder .sf-icon { animation: sf-heartbeat 1.1s ease-in-out infinite; }
.sf-product__cat, .sf-product__badge {
	position: absolute; top: .75rem; padding: .3rem .7rem; border-radius: 999px; font-size: .75rem; font-weight: 700; line-height: 1.2;
}
.sf-product__cat { left: .75rem; background: rgba(255, 255, 255, .94); color: var(--sf-primary); box-shadow: var(--sf-shadow-sm); }
.sf-product__cat--equipo::before, .sf-product__cat--repuesto::before, .sf-product__cat--accesorio::before {
	content: ""; display: inline-block; width: .45rem; height: .45rem; margin-right: .4rem; border-radius: 50%; vertical-align: .05em; background: var(--sf-accent);
}
.sf-product__cat--repuesto::before { background: var(--sf-secondary); }
.sf-product__cat--accesorio::before { background: #d48a00; }
.sf-product__badge { right: .75rem; background: var(--sf-gradient-accent); color: #fff; }
.sf-product__body { display: flex; flex: 1; flex-direction: column; gap: .5rem; padding: 1.2rem 1.25rem 1.3rem; }
.sf-product__brand { margin: 0; color: var(--sf-secondary); font-size: .8rem; font-weight: 700; letter-spacing: .02em; }
.sf-product__name { margin: 0; font-family: var(--sf-font-heading); font-size: 1.15rem; line-height: 1.3; color: var(--sf-primary); overflow-wrap: break-word; }
.sf-product__text { margin: 0; color: var(--sf-muted); font-size: .95rem; line-height: 1.55; }
.sf-product__features { display: grid; gap: .3rem; margin: .25rem 0 0; padding: 0; list-style: none; font-size: .875rem; color: var(--sf-ink); }
.sf-product__features li { display: flex; gap: .45rem; align-items: flex-start; }
.sf-product__features .sf-icon { width: 1rem; height: 1rem; margin-top: .2rem; color: var(--sf-accent); stroke-width: 2.6; }
.sf-product__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-top: auto; padding-top: .9rem; }
.sf-product__actions .sf-btn { min-height: 2.75rem; padding: .6rem 1.2rem; font-size: .95rem; }
.sf-product__form { color: var(--sf-secondary); font-weight: 700; font-size: .9rem; text-decoration: underline; text-underline-offset: 3px; }
.sf-products__empty { margin: 1.5rem 0 0; padding: 1.25rem; border-radius: var(--sf-radius); background: var(--sf-surface); color: var(--sf-muted); text-align: center; }

/* --------------------------------------------------------------------------
   Animaciones biomédicas
   -------------------------------------------------------------------------- */

/* Ondas tipo monitor: línea tenue + trazo brillante que la recorre sin parar */
.sf-ecg--loop .sf-wave__base { opacity: .22; stroke-width: 2; }
.sf-ecg--loop .sf-wave__trace {
	stroke-width: 3;
	stroke-dasharray: .3 .7;
	stroke-dashoffset: .3;
	filter: drop-shadow(0 0 6px currentColor);
	animation: sf-trace var(--sf-wave-dur, 3.2s) linear infinite;
}
.sf-hero__ecg.sf-ecg--loop .sf-wave__base { opacity: .3; stroke-width: 2.5; }
.sf-hero__ecg.sf-ecg--loop .sf-wave__trace { stroke-width: 3.5; --sf-wave-dur: 2.6s; }
.sf-pagehead__ecg.sf-ecg--loop .sf-wave__base, .sf-cta__ecg.sf-ecg--loop .sf-wave__base { opacity: .55; }
.sf-pagehead__ecg.sf-ecg--loop .sf-wave__trace, .sf-cta__ecg.sf-ecg--loop .sf-wave__trace { stroke: color-mix(in srgb, var(--sf-accent) 80%, #fff); opacity: .85; --sf-wave-dur: 4.5s; }
.sf-divider .sf-ecg--loop .sf-wave__trace { --sf-wave-dur: 3s; }
@keyframes sf-trace {
	from { stroke-dashoffset: .3; }
	to { stroke-dashoffset: -.7; }
}

/* Latido */
@keyframes sf-heartbeat {
	0%, 60%, 100% { transform: scale(1); }
	12% { transform: scale(1.22); }
	24% { transform: scale(1); }
	36% { transform: scale(1.14); }
}
@keyframes sf-ring {
	0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--sf-ring-c, var(--sf-accent)) 55%, transparent); }
	100% { box-shadow: 0 0 0 14px color-mix(in srgb, var(--sf-ring-c, var(--sf-accent)) 0%, transparent); }
}

/* Íconos de tarjetas */
.sf-iconfx-hover .sf-feature:hover .sf-feature__icon .sf-icon,
.sf-iconfx-hover a.sf-service:hover .sf-service__icon .sf-icon { animation: sf-heartbeat 1.1s ease-in-out infinite; }
.sf-iconfx-beat .sf-feature__icon .sf-icon,
.sf-iconfx-beat .sf-service__icon .sf-icon { animation: sf-heartbeat 1.6s ease-in-out infinite; }
.sf-iconfx-ring .sf-feature__icon,
.sf-iconfx-ring .sf-service__icon { animation: sf-ring 2.2s ease-out infinite; }
.sf-iconfx-ring .sf-grid > :nth-child(2n) .sf-feature__icon,
.sf-iconfx-ring .sf-grid > :nth-child(2n) .sf-service__icon { animation-delay: .6s; }
.sf-iconfx-ring .sf-grid > :nth-child(3n) .sf-feature__icon,
.sf-iconfx-ring .sf-grid > :nth-child(3n) .sf-service__icon { animation-delay: 1.2s; }

/* Hero: ondas de pulso que se expanden desde las fotos */
.sf-hero__rings { position: absolute; z-index: -1; top: 50%; right: 18%; width: 0; height: 0; pointer-events: none; }
.sf-hero__rings span {
	position: absolute; left: 50%; top: 50%; width: 46rem; height: 46rem; margin: -23rem 0 0 -23rem;
	border-radius: 50%; border: 1px solid color-mix(in srgb, var(--sf-accent) 45%, transparent);
	opacity: 0; transform: scale(.25);
	animation: sf-rings 7.5s cubic-bezier(.2, .6, .3, 1) infinite;
}
.sf-hero__rings span:nth-child(2) { animation-delay: 2.5s; }
.sf-hero__rings span:nth-child(3) { animation-delay: 5s; }
.sf-tone-light .sf-hero__rings span { border-color: color-mix(in srgb, var(--sf-secondary) 35%, transparent); }
@keyframes sf-rings {
	0% { opacity: 0; transform: scale(.2); }
	15% { opacity: .9; }
	100% { opacity: 0; transform: scale(1); }
}
@media (max-width: 959px) { .sf-hero__rings { top: auto; bottom: 22%; right: 50%; } .sf-hero__rings span { width: 30rem; height: 30rem; margin: -15rem 0 0 -15rem; } }
.sf-hero--fx-none .sf-hero__bg::after { display: none; }

/* Hero: tarjeta de signos vitales sobre las fotos */
.sf-hero__vitals {
	position: absolute; right: -.5rem; bottom: .5rem; z-index: 2;
	display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .15rem .6rem;
	width: 15.5rem; padding: .75rem .9rem .6rem;
	border-radius: var(--sf-radius); border: 1px solid rgba(255, 255, 255, .14);
	background: rgba(7, 18, 38, .78); color: #fff;
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	box-shadow: var(--sf-shadow-lg);
	font-size: .85rem; font-weight: 700;
}
.sf-hero__vitals-heart { display: inline-grid; place-items: center; color: var(--sf-highlight); animation: sf-heartbeat 1.1s ease-in-out infinite; }
.sf-hero__vitals-wave { grid-column: 1 / -1; height: 30px; color: var(--sf-accent); --sf-wave-dur: 2s; }
.sf-hero__media:not(.has-two) .sf-hero__vitals { bottom: -1.25rem; }
@media (max-width: 559px) { .sf-hero__vitals { right: 0; width: 13rem; } }

/* Hero: entrada al cargar la página (un solo momento orquestado) */
.sf-hero--intro .sf-hero__copy > *, .sf-hero--intro .sf-hero__media {
	animation: sf-rise .9s cubic-bezier(.2, .7, .2, 1) both;
}
.sf-hero--intro .sf-hero__copy > :nth-child(2) { animation-delay: .08s; }
.sf-hero--intro .sf-hero__copy > :nth-child(3) { animation-delay: .16s; }
.sf-hero--intro .sf-hero__copy > :nth-child(4) { animation-delay: .24s; }
.sf-hero--intro .sf-hero__copy > :nth-child(5) { animation-delay: .32s; }
.sf-hero--intro .sf-hero__media { animation-delay: .2s; animation-duration: 1.1s; }
@keyframes sf-rise {
	from { opacity: 0; transform: translateY(22px); }
	to { opacity: 1; transform: none; }
}
.sf-editor-preview .sf-hero--intro .sf-hero__copy > *, .sf-editor-preview .sf-hero--intro .sf-hero__media { animation: none; }

/* --------------------------------------------------------------------------
   Monitor de signos vitales
   -------------------------------------------------------------------------- */

.sf-monitor { position: relative; margin: 0; perspective: 1400px; }
.sf-monitor__screen {
	position: relative; overflow: hidden;
	padding: 1rem 1.1rem 1.15rem;
	border-radius: var(--sf-radius-lg);
	background:
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px) 0 0 / 100% 22px,
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px) 0 0 / 22px 100%,
		radial-gradient(120% 90% at 20% 0%, #10264a 0%, #071226 60%, #050d1c 100%);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08), 0 0 0 8px rgba(255, 255, 255, .06), 0 40px 80px -30px rgba(5, 13, 28, .7);
	color: #fff;
	transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.sf-monitor__screen::after { /* reflejo del vidrio */
	content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
	background: linear-gradient(115deg, rgba(255, 255, 255, .07) 0%, transparent 35%);
}
.sf-monitor.is-tilted .sf-monitor__screen { transform: rotateY(-10deg) rotateX(4deg); }
.sf-monitor.is-tilted:hover .sf-monitor__screen { transform: none; }
.sf-monitor__bar { display: flex; align-items: center; gap: .6rem; margin-bottom: .75rem; font-size: .8rem; letter-spacing: .02em; color: rgba(255, 255, 255, .7); }
.sf-monitor__dots { display: inline-flex; gap: 5px; }
.sf-monitor__dots i { width: 7px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, .25); }
.sf-monitor__dots i:first-child { background: var(--sf-accent); box-shadow: 0 0 8px var(--sf-accent); animation: sf-blink 2s steps(1) infinite; }
@keyframes sf-blink { 50% { opacity: .25; } }
.sf-monitor__title { font-weight: 700; }
.sf-monitor__heart { margin-left: auto; display: inline-grid; place-items: center; color: var(--sf-highlight); animation: sf-heartbeat 1.1s ease-in-out infinite; filter: drop-shadow(0 0 6px color-mix(in srgb, var(--sf-highlight) 70%, transparent)); }
.sf-monitor__rows { display: grid; gap: .6rem; }
.sf-monitor__row { display: grid; grid-template-columns: 1fr 6.5rem; gap: .75rem; align-items: center; --sf-c: var(--sf-accent); color: var(--sf-c); }
.sf-monitor__row.is-secondary { --sf-c: #49b6ff; }
.sf-monitor__row.is-highlight { --sf-c: #ffcf4a; }
.sf-monitor__row.is-white { --sf-c: #ffffff; }
.sf-monitor__row + .sf-monitor__row { padding-top: .6rem; border-top: 1px solid rgba(255, 255, 255, .06); }
.sf-monitor__wave { height: 64px; min-width: 0; }
.sf-monitor__wave .sf-ecg { height: 100%; }
.sf-monitor .sf-wave--ecg { --sf-wave-dur: 3.6s; }
.sf-monitor .sf-wave--pleth { --sf-wave-dur: 3.6s; }
.sf-monitor .sf-wave--resp { --sf-wave-dur: 6s; }
.sf-monitor.is-slow .sf-wave__trace { animation-duration: calc(var(--sf-wave-dur) * 1.5); }
.sf-monitor.is-fast .sf-wave__trace { animation-duration: calc(var(--sf-wave-dur) * .65); }
.sf-monitor__row:nth-child(2) .sf-wave__trace { animation-delay: -.6s; }
.sf-monitor__row:nth-child(3) .sf-wave__trace { animation-delay: -1.4s; }
.sf-monitor__value { display: grid; grid-template-columns: auto auto; justify-content: end; align-items: baseline; column-gap: .3rem; text-align: right; }
.sf-monitor__label { grid-column: 1 / -1; font-size: .75rem; font-weight: 700; opacity: .85; }
.sf-monitor__num { font-family: var(--sf-font-heading); font-size: 2.1rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; text-shadow: 0 0 14px color-mix(in srgb, var(--sf-c) 55%, transparent); }
.sf-monitor__unit { font-size: .75rem; font-weight: 600; opacity: .75; }
.sf-monitor__caption { margin-top: .9rem; color: var(--sf-muted); font-size: .9rem; text-align: center; }
.sf-monitor--light .sf-monitor__screen {
	background:
		linear-gradient(color-mix(in srgb, var(--sf-primary) 6%, transparent) 1px, transparent 1px) 0 0 / 100% 22px,
		linear-gradient(90deg, color-mix(in srgb, var(--sf-primary) 6%, transparent) 1px, transparent 1px) 0 0 / 22px 100%,
		#fff;
	color: var(--sf-ink);
	box-shadow: var(--sf-ring), 0 0 0 8px var(--sf-surface), var(--sf-shadow-lg);
}
.sf-monitor--light .sf-monitor__bar { color: var(--sf-muted); }
.sf-monitor--light .sf-monitor__row + .sf-monitor__row { border-top-color: var(--sf-line); }
.sf-monitor--light .sf-monitor__row.is-secondary { --sf-c: var(--sf-secondary); }
.sf-monitor--light .sf-monitor__row.is-highlight { --sf-c: #d48a00; }
.sf-monitor--light .sf-monitor__row.is-white { --sf-c: var(--sf-primary); }
@media (max-width: 480px) { .sf-monitor__row { grid-template-columns: 1fr 5.25rem; } .sf-monitor__num { font-size: 1.7rem; } }

/* --------------------------------------------------------------------------
   Movimiento reducido
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.sf-ecg--draw path, .sf-ecg--draw .sf-ecg path { stroke-dashoffset: 0; animation: none !important; }
	.sf-ecg--loop .sf-wave__trace { animation: none !important; stroke-dasharray: none; stroke-dashoffset: 0; }
	.sf-hero__rings, .sf-hero--intro .sf-hero__copy > *, .sf-hero--intro .sf-hero__media,
	.sf-monitor__heart, .sf-hero__vitals-heart, .sf-monitor__dots i, [class*="sf-iconfx"] .sf-icon, [class*="sf-iconfx"] .sf-feature__icon, [class*="sf-iconfx"] .sf-service__icon { animation: none !important; }
	.sf-feature, .sf-service, .sf-postcard, .sf-btn, .sf-service__img, .sf-postcard__img { transition: none; }
}

/* Celulares pequeños */
.sf-hero__inner > * { min-width: 0; }
@media (max-width: 400px) {
	.sf-hero__ecg { width: 100%; }
	.sf-section__title, .sf-cta__title, .sf-pagehead__title { overflow-wrap: break-word; }
	.sf-company__icon { width: 2.3rem; height: 2.3rem; }
	.sf-company__item { gap: .7rem; }
}

/* Preguntas frecuentes con texto grande */
.sf-faq__list > * { min-width: 0; }
.sf-faq__q > span:first-child { flex: 1 1 auto; min-width: 0; overflow-wrap: break-word; }
.sf-faq__a { overflow-wrap: break-word; }
@media (max-width: 400px) { .sf-faq__q { padding: 1rem 1rem; } .sf-faq__a { padding: 0 1rem 1.1rem; } }

/* Nada puede ser más ancho que su columna, aunque el celular use letra grande */
.sf-cta__content > *, .sf-grid > *, .sf-products__grid > *, .sf-steps__list > *, .sf-stats__list > * { min-width: 0; }
.sf-feature, .sf-service, .sf-product, .sf-postcard, .sf-quote, .sf-step { overflow-wrap: break-word; }
@media (max-width: 400px) {
	.sf-section__title, .sf-cta__title, .sf-pagehead__title, .sf-hero__title,
	.sf-feature__title, .sf-service__title, .sf-product__name, .sf-postcard__title, .sf-step__title { hyphens: auto; -webkit-hyphens: auto; }
	.sf-feature { padding: 1.4rem 1.15rem; }
	.sf-actions .sf-btn { white-space: normal; }
}
