/* Sitio web — secciones. La piel (tema, cabecera, pie) está en site-kit.css.
   Todas las rejillas usan minmax(0, 1fr): con `1fr` a secas una columna con un
   input o una imagen no encoge y empuja el resto fuera de la pantalla.
   Al tocarlo hay que subir su `?v=` en site.html. */

/* ── Sección: contenedor, espaciado y fondos ─────────────────────────────── */
.st-sec { position: relative; background: var(--st-bg); color: var(--st-text); background-size: cover; background-position: center; isolation: isolate; }
.st-pad-s { padding: calc(clamp(36px, 5vw, 56px) * var(--st-space)) 0; }
.st-pad-m { padding: calc(clamp(56px, 8vw, 104px) * var(--st-space)) 0; }
.st-pad-l { padding: calc(clamp(80px, 11vw, 150px) * var(--st-space)) 0; }
.st-sec-soft { background: var(--st-surface); }
.st-sec-accent { background: var(--st-primary); color: var(--st-primary-ink); }
.st-sec-dark { background: var(--st-dark); color: #f3f4f6; }
.st-sec-image { color: #fff; background-color: #0f172a; }
.st-sec-image::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(5,8,20,calc(var(--st-ov, .45) * .8)), rgba(5,8,20,var(--st-ov, .45)));
}
.st-on-color .st-eyebrow { color: inherit; opacity: .85; }
.st-on-color .st-sub, .st-on-color .st-lead { color: inherit; opacity: .88; }
.st-on-color a:not(.st-btn) { color: inherit; }

.st-head { max-width: 760px; margin: 0 auto clamp(28px, 4vw, 48px); }
.st-head h2 { margin-bottom: .35em; }
.st-al-center { text-align: center; }
.st-al-center.st-head, .st-head.st-al-center { margin-left: auto; margin-right: auto; }
.st-al-left { text-align: left; }
.st-head.st-al-left { margin-left: 0; }
.st-eyebrow {
  display: inline-block; font: 700 .78rem/1 var(--st-font-body); letter-spacing: .14em; text-transform: uppercase;
  color: var(--st-primary); margin-bottom: 14px;
}
.st-sub, .st-lead { color: var(--st-muted); font-size: 1.12rem; }
.st-sub p:last-child, .st-lead p:last-child { margin-bottom: 0; }
.st-btns { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.st-al-center .st-btns, .st-btns.st-al-center { justify-content: center; }
.st-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.st-more { text-align: center; margin-top: 32px; }

@media (max-width: 760px) { .st-hide-mobile { display: none !important; } }
@media (min-width: 761px) { .st-hide-desktop { display: none !important; } }

/* ── Aparición al hacer scroll ───────────────────────────────────────────── */
html.st-anim-ready .st-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
html.st-anim-ready .st-reveal.st-in { opacity: 1; transform: none; }
html.st-anim-ready.st-anim-lively .st-reveal [style*="--i"] { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); transition-delay: calc(var(--i, 0) * 80ms + 120ms); }
html.st-anim-ready.st-anim-lively .st-reveal.st-in [style*="--i"] { opacity: 1; transform: none; }

/* ── Portada ─────────────────────────────────────────────────────────────── */
.st-hero-title { font-size: clamp(2.3rem, 5vw + .5rem, 4.4rem); margin-bottom: .3em; }
.st-hero-sub { font-size: clamp(1.08rem, .6vw + .95rem, 1.32rem); color: var(--st-muted); max-width: 640px; }
.st-on-color .st-hero-sub { color: inherit; opacity: .9; }
.st-al-center .st-hero-sub { margin-left: auto; margin-right: auto; }
.st-hero-text { margin-top: 10px; color: var(--st-muted); }
.st-hero-in { max-width: 920px; }
.st-hero-in.st-al-center { margin: 0 auto; }
.st-hero-shot { margin-top: clamp(32px, 5vw, 56px); border-radius: calc(var(--st-radius) * 1.4); overflow: hidden; box-shadow: var(--st-shadow); }
.st-hero-shot img { width: 100%; max-height: 560px; object-fit: cover; }
.st-h-tall { min-height: 72vh; display: flex; flex-direction: column; justify-content: center; }
.st-h-screen { min-height: calc(100svh - var(--st-header-h)); display: flex; flex-direction: column; justify-content: center; }
.st-hero-full .st-hero-in { padding-top: clamp(40px, 8vw, 110px); padding-bottom: clamp(40px, 8vw, 110px); max-width: var(--st-width); }
.st-hero-full .st-hero-in > * { max-width: 760px; }
.st-hero-full .st-hero-in.st-al-center > * { margin-left: auto; margin-right: auto; }
.st-hero-full { padding: 0 !important; }
.st-hero-nobg { background: radial-gradient(1200px 600px at 10% 0%, color-mix(in srgb, var(--st-primary) 70%, #000), var(--st-dark)) !important; }
#st-main.st-under-header > .st-sec:first-child .st-hero-in,
#st-main.st-under-header > .st-sec:first-child .st-slide-in { padding-top: calc(var(--st-header-h) + clamp(40px, 8vw, 110px)); }
.st-hero-split {
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: center;
}
.st-hero-media { position: relative; }
.st-hero-media img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: calc(var(--st-radius) * 1.6); box-shadow: var(--st-shadow); position: relative; z-index: 1; }
/* Portada «texto e imagen» sin imagen: una composición con los colores del
   tema, para que la mitad derecha no quede vacía. */
.st-hero-art {
  position: relative; aspect-ratio: 4 / 3.4; border-radius: calc(var(--st-radius) * 1.6); overflow: hidden;
  background: linear-gradient(135deg, var(--st-primary), color-mix(in srgb, var(--st-accent) 80%, #000));
  box-shadow: var(--st-shadow); display: flex; align-items: center; justify-content: center;
}
.st-hero-art::before, .st-hero-art::after { content: ''; position: absolute; border-radius: 50%; background: rgba(255,255,255,.14); }
.st-hero-art::before { width: 70%; aspect-ratio: 1; right: -18%; top: -22%; }
.st-hero-art::after { width: 46%; aspect-ratio: 1; left: -12%; bottom: -16%; background: rgba(255,255,255,.1); }
.st-hero-art span { position: relative; font: 700 clamp(4rem, 9vw, 8rem)/1 var(--st-font-head); color: rgba(255,255,255,.92); letter-spacing: -.04em; }
.st-hero-art img { position: relative; max-width: 58%; max-height: 40%; object-fit: contain; filter: brightness(0) invert(1); opacity: .95; }
.st-deco {
  position: absolute; inset: 8% -6% -6% 8%; border-radius: calc(var(--st-radius) * 1.6);
  background: linear-gradient(135deg, color-mix(in srgb, var(--st-primary) 35%, transparent), color-mix(in srgb, var(--st-accent) 30%, transparent));
  z-index: 0;
}

/* Carrusel de portada */
.st-hero-slides { padding: 0 !important; }
.st-slides { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; background: var(--st-dark); }
.st-slides.st-h-normal { min-height: 520px; }
.st-slide {
  grid-area: 1 / 1; position: relative; display: flex; align-items: center;
  background-size: cover; background-position: center; color: #fff;
  opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s;
}
.st-slide::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,8,20,calc(var(--st-ov, .45) + .15)), rgba(5,8,20,calc(var(--st-ov, .45) * .5))); }
.st-slide.active { opacity: 1; visibility: visible; }
.st-slide-in { position: relative; padding-top: clamp(48px, 9vw, 120px); padding-bottom: clamp(64px, 9vw, 130px); }
.st-slide-in > * { max-width: 720px; }
.st-slide-in.st-al-center > * { margin-left: auto; margin-right: auto; }
.st-slide .st-hero-sub { color: #fff; opacity: .9; }
.st-slide .st-btn { background: #fff; border-color: #fff; color: #111827 !important; }
.st-slide-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,255,255,.4);
  background: rgba(0,0,0,.25); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.st-slide-arrow.prev { left: 18px; }
.st-slide-arrow.next { right: 18px; }
.st-dots { position: absolute; bottom: 22px; left: 0; right: 0; display: flex; gap: 8px; justify-content: center; z-index: 2; }
.st-dots button { width: 9px; height: 9px; border-radius: 99px; border: 0; background: rgba(255,255,255,.5); cursor: pointer; padding: 0; transition: width .25s, background .25s; }
.st-dots button.active { width: 26px; background: #fff; }
.st-dots-dark { position: static; margin-top: 22px; }
.st-dots-dark button { background: var(--st-line); }
.st-dots-dark button.active { background: var(--st-primary); }

/* ── Texto e imagen ──────────────────────────────────────────────────────── */
.st-ti { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.st-ti-left .st-ti-img { order: -1; }
.st-ti-noimg { grid-template-columns: minmax(0, 1fr); max-width: 820px; }
.st-ti-img img { width: 100%; border-radius: calc(var(--st-radius) * 1.4); box-shadow: var(--st-shadow); aspect-ratio: 5 / 4; object-fit: cover; }
.st-ti-text > p { color: var(--st-muted); }
.st-on-color .st-ti-text > p { color: inherit; opacity: .9; }
.st-ti-overlap { grid-template-columns: minmax(0, 1fr); position: relative; }
.st-ti-overlap .st-ti-img { order: 1; }
.st-ti-overlap .st-ti-text { order: 2; }
.st-ti-overlap .st-ti-img img { aspect-ratio: 16 / 7; }
.st-ti-overlap .st-ti-text {
  background: var(--st-bg); color: var(--st-text); border-radius: var(--st-radius); box-shadow: var(--st-shadow);
  padding: clamp(24px, 4vw, 48px); max-width: 640px; margin: -120px auto 0 clamp(16px, 6vw, 72px); position: relative;
}
.st-ti-overlap .st-ti-text > p { color: var(--st-muted); }

/* ── Texto con formato ───────────────────────────────────────────────────── */
.st-rich { font-size: 1.08rem; }
.st-rich.st-narrow, .st-narrow-wrap { max-width: 760px; margin-left: auto; margin-right: auto; }
.st-rich h3 { margin-top: 1.6em; font-size: 1.5rem; }
.st-rich h4 { margin-top: 1.3em; font-size: 1.18rem; }
.st-rich ul, .st-rich ol { padding-left: 1.3em; margin: 0 0 1em; }
.st-rich li { margin: .35em 0; }
.st-rich a { color: var(--st-primary); }

/* ── Tarjetas ────────────────────────────────────────────────────────────── */
/* Filas que se centran solas: con 2 tarjetas en 3 columnas no queda un hueco
   a la derecha. El ancho de cada una sale de `--cols`. */
.st-cards { --gap: clamp(16px, 2.4vw, 28px); display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gap); }
.st-cards > .st-card { flex: 0 1 calc((100% - (var(--cols, 3) - 1) * var(--gap)) / var(--cols, 3)); min-width: 0; }
.st-cols-2 { --cols: 2; } .st-cols-3 { --cols: 3; } .st-cols-4 { --cols: 4; } .st-cols-5 { --cols: 5; }
.st-card { display: flex; flex-direction: column; gap: 14px; text-align: left; }
.st-card h3 { margin: 0 0 .35em; }
.st-card p { color: var(--st-muted); margin-bottom: .6em; font-size: .99rem; }
.st-on-color .st-card p { color: inherit; opacity: .85; }
.st-cards-grid .st-card, .st-cards-image .st-card, .st-cards-numbered .st-card {
  background: var(--st-card); border: 1px solid var(--st-line); border-radius: var(--st-radius);
  padding: clamp(22px, 2.6vw, 32px); transition: transform .25s ease, box-shadow .25s ease, border-color .25s;
}
.st-sec-soft .st-cards-grid .st-card, .st-sec-soft .st-cards-image .st-card, .st-sec-soft .st-cards-numbered .st-card { background: var(--st-bg); }
.st-on-color .st-card { background: rgba(255,255,255,.08) !important; border-color: rgba(255,255,255,.16) !important; color: inherit; }
.st-cards-grid .st-card:hover, .st-cards-image .st-card:hover, .st-cards-numbered .st-card:hover { transform: translateY(-4px); box-shadow: var(--st-shadow); }
.st-cards-image .st-card { padding: 0; overflow: hidden; }
.st-cards-image .st-card-body { padding: 0 clamp(20px, 2.4vw, 28px) clamp(20px, 2.4vw, 28px); }
.st-card-img { margin: calc(-1 * clamp(22px, 2.6vw, 32px)) calc(-1 * clamp(22px, 2.6vw, 32px)) 4px; overflow: hidden; }
.st-cards-image .st-card-img { margin: 0; }
.st-card-img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .5s ease; }
.st-card:hover .st-card-img img { transform: scale(1.04); }
.st-card-ico {
  width: 54px; height: 54px; border-radius: calc(var(--st-radius-sm) + 4px); display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--st-primary) 12%, transparent); color: var(--st-primary);
}
.st-on-color .st-card-ico { background: rgba(255,255,255,.14); color: inherit; }
.st-cards-list .st-card { flex-direction: row; align-items: flex-start; gap: 18px; }
.st-cards-list .st-card-ico { flex-shrink: 0; }
.st-card-num { font: 800 2.4rem/1 var(--st-font-head); color: var(--st-primary); opacity: .9; }
.st-on-color .st-card-num { color: inherit; }
.st-card-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--st-primary) !important; text-decoration: none; margin-top: auto; }
.st-card-link:hover { gap: 10px; }
.st-on-color .st-card-link { color: inherit !important; }
.st-card-body { display: flex; flex-direction: column; flex: 1; }

/* ── Pasos ───────────────────────────────────────────────────────────────── */
.st-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 28px; counter-reset: s; }
.st-steps-horizontal { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); position: relative; }
.st-steps li { display: flex; flex-direction: column; gap: 14px; position: relative; text-align: left; }
.st-steps h3 { margin-bottom: .3em; }
.st-steps p { color: var(--st-muted); font-size: .98rem; }
.st-on-color .st-steps p { color: inherit; opacity: .85; }
.st-step-n {
  width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: var(--st-primary); color: var(--st-primary-ink); font: 700 1.1rem/1 var(--st-font-head);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--st-primary) 16%, transparent); position: relative; z-index: 1;
}
.st-on-color .st-step-n { background: #fff; color: #111827; box-shadow: 0 0 0 6px rgba(255,255,255,.18); }
.st-steps-horizontal li:not(:last-child)::after {
  content: ''; position: absolute; top: 24px; left: 60px; right: -14px; height: 2px;
  background: repeating-linear-gradient(90deg, var(--st-line) 0 8px, transparent 8px 14px);
}
.st-steps-vertical { max-width: 760px; margin: 0 auto; }
.st-steps-vertical li { flex-direction: row; gap: 22px; }
.st-steps-vertical .st-step-n { flex-shrink: 0; }
.st-steps-vertical li:not(:last-child)::after { content: ''; position: absolute; left: 23px; top: 56px; bottom: -28px; width: 2px; background: var(--st-line); }

/* ── Cifras ──────────────────────────────────────────────────────────────── */
.st-stats { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
.st-stat { text-align: center; }
.st-stat-val { font: 800 clamp(2.4rem, 4vw + .6rem, 3.6rem)/1.05 var(--st-font-head); color: var(--st-primary); letter-spacing: -.02em; }
.st-on-color .st-stat-val { color: inherit; }
.st-stat-label { margin-top: 8px; color: var(--st-muted); font-weight: 500; }
.st-on-color .st-stat-label { color: inherit; opacity: .85; }
.st-stats-boxed .st-stat { background: var(--st-card); border: 1px solid var(--st-line); border-radius: var(--st-radius); padding: 30px 18px; }
.st-sec-soft .st-stats-boxed .st-stat { background: var(--st-bg); }
.st-on-color .st-stats-boxed .st-stat { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.16); }

/* ── Galería ─────────────────────────────────────────────────────────────── */
.st-gallery { display: grid; gap: 12px; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }
.st-gal-item { margin: 0; }
.st-gal-btn { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: var(--st-radius-sm); overflow: hidden; }
.st-gal-btn img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .5s ease, filter .3s; }
.st-gal-btn:hover img { transform: scale(1.05); }
.st-gal-item figcaption { font-size: .88rem; color: var(--st-muted); margin-top: 8px; }
.st-gal-masonry { display: block; columns: var(--cols, 3) 220px; column-gap: 12px; }
.st-gal-masonry .st-gal-item { break-inside: avoid; margin-bottom: 12px; }
.st-gal-masonry .st-gal-btn img { aspect-ratio: auto; }
.st-gallery:not(.st-gal-grid):not(.st-gal-masonry) { display: block; }
.st-gal-row .st-gal-item { flex: 0 0 clamp(240px, 32%, 380px); }
.st-gal-row .st-gal-btn img { aspect-ratio: 4 / 3; }
.st-lb { position: fixed; inset: 0; z-index: 200; background: rgba(5,8,20,.92); display: flex; align-items: center; justify-content: center; padding: 56px 16px; }
.st-lb figure { margin: 0; max-width: min(1200px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.st-lb img { max-width: 100%; max-height: calc(100vh - 140px); object-fit: contain; border-radius: 8px; }
.st-lb figcaption { color: #e5e7eb; font-size: .95rem; text-align: center; }
.st-lb-close, .st-lb-nav { position: absolute; border: 0; background: rgba(255,255,255,.1); color: #fff; width: 50px; height: 50px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.st-lb-close { top: 16px; right: 16px; }
.st-lb-nav.prev { left: 16px; top: 50%; transform: translateY(-50%); }
.st-lb-nav.next { right: 16px; top: 50%; transform: translateY(-50%); }

/* ── Filas desplazables con flechas ──────────────────────────────────────── */
.st-row-wrap { position: relative; }
.st-row { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px 2px 18px; }
.st-row::-webkit-scrollbar { display: none; }
.st-row > * { scroll-snap-align: start; }
.st-row-arrow {
  position: absolute; top: 40%; z-index: 2; width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid var(--st-line); background: var(--st-bg); color: var(--st-text); box-shadow: var(--st-shadow);
  display: flex; align-items: center; justify-content: center; cursor: pointer; transition: opacity .2s;
}
.st-row-arrow.prev { left: -14px; }
.st-row-arrow.next { right: -14px; }
.st-row-wrap.at-start .st-row-arrow.prev, .st-row-wrap.at-end .st-row-arrow.next { opacity: 0; pointer-events: none; }
.st-row-wrap.st-row-fits .st-row-arrow { display: none; }
@media (hover: none) { .st-row-arrow { display: none; } }

/* ── Vídeo ───────────────────────────────────────────────────────────────── */
.st-video-wrap { max-width: 960px; margin: 0 auto; }
.st-video-wide { max-width: none; }
.st-video {
  position: relative; aspect-ratio: 16 / 9; border-radius: calc(var(--st-radius) * 1.3); overflow: hidden; box-shadow: var(--st-shadow);
  background: radial-gradient(800px 400px at 30% 20%, color-mix(in srgb, var(--st-primary) 55%, #000), #0b1020);
}
.st-video img { width: 100%; height: 100%; object-fit: cover; }
.st-video iframe { width: 100%; height: 100%; border: 0; display: block; }
.st-video-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 84px; height: 84px; border-radius: 50%; border: 0; cursor: pointer;
  background: var(--st-primary); color: var(--st-primary-ink); display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 0 12px color-mix(in srgb, var(--st-primary) 30%, transparent); transition: transform .2s;
}
.st-video-play:hover { transform: translate(-50%, -50%) scale(1.07); }
.st-video-text { margin-top: 22px; color: var(--st-muted); text-align: center; }

/* ── Equipo ──────────────────────────────────────────────────────────────── */
.st-team { --gap: 24px; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gap); }
.st-team > .st-member { flex: 0 1 calc((100% - (var(--cols, 4) - 1) * var(--gap)) / var(--cols, 4)); min-width: 0; }
.st-member { text-align: center; }
.st-member h3 { margin: 14px 0 2px; font-size: 1.15rem; }
.st-member-role { color: var(--st-primary); font-weight: 600; font-size: .9rem; margin-bottom: 8px; }
.st-on-color .st-member-role { color: inherit; opacity: .85; }
.st-member p { color: var(--st-muted); font-size: .93rem; }
.st-member-photo { overflow: hidden; border-radius: var(--st-radius); background: var(--st-surface); aspect-ratio: 4 / 5; display: flex; align-items: center; justify-content: center; }
.st-member-photo img { width: 100%; height: 100%; object-fit: cover; }
.st-member-photo span { font: 700 2.4rem/1 var(--st-font-head); color: var(--st-primary); }
.st-team-round .st-member-photo { border-radius: 50%; aspect-ratio: 1; width: min(180px, 70%); margin: 0 auto; }

/* ── Precios ─────────────────────────────────────────────────────────────── */
.st-pricing { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); align-items: stretch; }
.st-pricing[data-n="1"] { max-width: 420px; margin: 0 auto; }
.st-pricing[data-n="2"] { max-width: 820px; margin: 0 auto; }
.st-plan {
  position: relative; display: flex; flex-direction: column; text-align: left;
  background: var(--st-card); border: 1px solid var(--st-line); border-radius: calc(var(--st-radius) * 1.2); padding: 32px 28px;
}
.st-sec-soft .st-plan { background: var(--st-bg); }
.st-plan h3 { font-size: 1.2rem; margin-bottom: 12px; }
.st-plan-price { display: flex; align-items: baseline; gap: 6px; margin-bottom: 12px; }
.st-plan-price strong { font: 800 2.4rem/1 var(--st-font-head); letter-spacing: -.02em; }
.st-plan-price span { color: var(--st-muted); }
.st-plan-text { color: var(--st-muted); font-size: .96rem; }
.st-plan-feats { list-style: none; padding: 0; margin: 10px 0 24px; display: flex; flex-direction: column; gap: 10px; }
.st-plan-feats li { display: flex; gap: 10px; align-items: flex-start; font-size: .97rem; }
.st-plan-feats svg { flex-shrink: 0; color: var(--st-primary); margin-top: 3px; }
.st-plan-cta { margin-top: auto; }
.st-plan-featured { border: 2px solid var(--st-primary); box-shadow: var(--st-shadow); transform: translateY(-6px); }
.st-plan-badge {
  position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
  background: var(--st-primary); color: var(--st-primary-ink); font: 700 .74rem/1 var(--st-font-body);
  letter-spacing: .08em; text-transform: uppercase; padding: 7px 14px; border-radius: 99px; white-space: nowrap;
}
.st-on-color .st-plan { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.18); color: inherit; }
.st-on-color .st-plan-text, .st-on-color .st-plan-price span { color: inherit; opacity: .8; }
.st-on-color .st-plan-feats svg { color: inherit; }
.st-pricing-compact .st-plan { padding: 24px 22px; }

/* ── Testimonios ─────────────────────────────────────────────────────────── */
.st-quote {
  margin: 0; background: var(--st-card); border: 1px solid var(--st-line); border-radius: var(--st-radius);
  padding: 28px; display: flex; flex-direction: column; gap: 14px; text-align: left; height: 100%;
}
.st-sec-soft .st-quote { background: var(--st-bg); }
.st-on-color .st-quote { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.16); color: inherit; }
.st-quote blockquote { margin: 0; font-size: 1.04rem; line-height: 1.65; }
.st-quote blockquote p:last-child { margin: 0; }
.st-quote figcaption { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.st-quote figcaption small { display: block; color: var(--st-muted); font-size: .85rem; }
.st-on-color .st-quote figcaption small { color: inherit; opacity: .8; }
.st-avatar { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.st-avatar-txt { display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--st-primary) 15%, transparent); color: var(--st-primary); font-weight: 700; }
.st-stars { color: #f5a524; letter-spacing: 2px; }
.st-stars span { color: var(--st-line); }
.st-quotes-row .st-quote { flex: 0 0 clamp(280px, 31%, 380px); }
.st-quotes-grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 380px)); justify-content: center; }
.st-quote-single { max-width: 820px; margin: 0 auto; display: grid; text-align: center; }
.st-qs { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .6s; }
.st-qs.active { opacity: 1; visibility: visible; }
.st-quote-single .st-quote { background: none; border: 0; text-align: center; align-items: center; padding: 0; }
.st-quote-single blockquote { font: 500 clamp(1.25rem, 1.6vw + .8rem, 1.8rem)/1.45 var(--st-font-head); }
.st-quote-single .st-dots { grid-row: 2; }

/* ── Logos ───────────────────────────────────────────────────────────────── */
.st-logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 22px 44px; }
.st-logo { display: flex; align-items: center; justify-content: center; min-height: 56px; text-decoration: none; }
.st-logo img { max-height: 54px; max-width: 150px; width: auto; filter: grayscale(1); opacity: .65; transition: filter .3s, opacity .3s; }
.st-logo:hover img { filter: none; opacity: 1; }
.st-logo span { font: 700 1.2rem/1 var(--st-font-head); opacity: .6; }
.st-logos-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); gap: 14px; }
.st-logos-grid .st-logo { background: var(--st-card); border: 1px solid var(--st-line); border-radius: var(--st-radius-sm); padding: 22px; }
.st-on-color .st-logo img { filter: grayscale(1) brightness(0) invert(1); opacity: .8; }

/* ── Preguntas frecuentes ────────────────────────────────────────────────── */
.st-faq { max-width: 860px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; text-align: left; }
.st-faq-two_columns { max-width: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.st-faq-item { background: var(--st-card); border: 1px solid var(--st-line); border-radius: var(--st-radius-sm); }
.st-sec-soft .st-faq-item { background: var(--st-bg); }
.st-on-color .st-faq-item { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.16); }
.st-faq-item summary { list-style: none; cursor: pointer; padding: 18px 22px; display: flex; justify-content: space-between; align-items: center; gap: 16px; font-weight: 600; font-size: 1.03rem; }
.st-faq-item summary::-webkit-details-marker { display: none; }
.st-faq-item summary i { flex-shrink: 0; width: 22px; height: 22px; position: relative; }
.st-faq-item summary i::before, .st-faq-item summary i::after { content: ''; position: absolute; left: 4px; right: 4px; top: 10px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .25s; }
.st-faq-item summary i::after { transform: rotate(90deg); }
.st-faq-item[open] summary i::after { transform: rotate(0); }
.st-faq-a { padding: 0 22px 18px; color: var(--st-muted); }
.st-on-color .st-faq-a { color: inherit; opacity: .85; }

/* ── Llamado a la acción ─────────────────────────────────────────────────── */
.st-cta { display: flex; flex-direction: column; align-items: center; max-width: 880px; margin: 0 auto; }
.st-cta h2 { font-size: clamp(1.9rem, 3vw + .6rem, 3rem); }
.st-cta .st-btns { margin-top: 22px; }
.st-cta-split { flex-direction: row; justify-content: space-between; align-items: center; max-width: none; gap: 32px; }
.st-cta-split .st-btns { margin-top: 0; flex-shrink: 0; }
.st-cta-split.st-al-left { text-align: left; }
.st-cta-box {
  border-radius: calc(var(--st-radius) * 1.6); padding: clamp(36px, 6vw, 72px) clamp(24px, 5vw, 64px);
  background: linear-gradient(135deg, var(--st-primary), color-mix(in srgb, var(--st-accent) 75%, #000));
  color: var(--st-primary-ink); background-size: cover; background-position: center; position: relative; overflow: hidden; isolation: isolate;
  display: flex; flex-direction: column; align-items: center;
}
.st-cta-box[style*="background-image"]::before { content: ''; position: absolute; inset: 0; background: rgba(5,8,20,.55); z-index: -1; }
.st-cta-box.st-al-left { align-items: flex-start; }
.st-cta-box h2 { color: inherit; }
.st-cta-box .st-sub { color: inherit; opacity: .9; max-width: 640px; }

/* ── Formulario ──────────────────────────────────────────────────────────── */
.st-form-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.st-form-img { margin-top: 26px; }
.st-form-img img { width: 100%; border-radius: var(--st-radius); aspect-ratio: 4 / 3; object-fit: cover; }
.st-form-card { background: var(--st-bg); color: var(--st-text); border: 1px solid var(--st-line); border-radius: calc(var(--st-radius) * 1.2); padding: clamp(22px, 3vw, 36px); box-shadow: var(--st-shadow); text-align: left; }
.st-form-narrow { max-width: 640px; margin: 0 auto; }
.st-form { display: flex; flex-direction: column; gap: 14px; }
.st-fields-2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.st-field label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: 6px; }
.st-field input, .st-field textarea {
  width: 100%; border: 1px solid var(--st-line); border-radius: var(--st-radius-sm); background: var(--st-bg); color: var(--st-text);
  padding: 12px 14px; font: inherit; font-size: 1rem; transition: border-color .2s, box-shadow .2s;
}
.st-field input:focus, .st-field textarea:focus { outline: none; border-color: var(--st-primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--st-primary) 18%, transparent); }
.st-check { display: flex; gap: 10px; align-items: flex-start; font-size: .88rem; color: var(--st-muted); }
.st-check input { margin-top: 3px; accent-color: var(--st-primary); }
.st-check a { color: var(--st-primary); }
.st-form-err { display: none; background: #fef2f2; color: #b91c1c; border-radius: var(--st-radius-sm); padding: 10px 12px; font-size: .9rem; }
.st-form-done { text-align: center; padding: 18px 6px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.st-form-done svg { color: #16a34a; }
.st-form-done p { color: var(--st-muted); }

/* ── Contacto ────────────────────────────────────────────────────────────── */
.st-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(28px, 5vw, 64px); align-items: stretch; }
.st-contact-nomap { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.st-contact-info > p { color: var(--st-muted); }
.st-ci-list { display: flex; flex-direction: column; gap: 10px; margin: 18px 0 22px; }
.st-ci { display: flex; gap: 14px; align-items: center; text-decoration: none; padding: 12px 14px; border-radius: var(--st-radius-sm); border: 1px solid var(--st-line); background: var(--st-card); transition: border-color .2s, transform .2s; }
.st-sec-soft .st-ci { background: var(--st-bg); }
a.st-ci:hover { border-color: var(--st-primary); transform: translateX(3px); }
.st-ci small { display: block; color: var(--st-muted); font-size: .8rem; }
.st-ci strong { font-weight: 600; word-break: break-word; }
.st-ci-ico { width: 42px; height: 42px; border-radius: 10px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--st-primary) 12%, transparent); color: var(--st-primary); }
.st-on-color .st-ci { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.16); }
.st-on-color .st-ci small { color: inherit; opacity: .75; }
.st-on-color .st-ci-ico { background: rgba(255,255,255,.14); color: inherit; }
.st-map { border-radius: var(--st-radius); overflow: hidden; min-height: 360px; border: 1px solid var(--st-line); box-shadow: var(--st-shadow); }
.st-map iframe { width: 100%; height: 100%; min-height: 360px; border: 0; display: block; }
.st-ci-cards { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); margin-bottom: 24px; }
.st-ci-cards .st-ci { flex-direction: column; text-align: center; padding: 26px 18px; }
.st-ci-cards a.st-ci:hover { transform: translateY(-3px); }
.st-map-wide .st-map { min-height: 420px; }

/* ── Separador ───────────────────────────────────────────────────────────── */
.st-spacer { background: var(--st-bg); }
.st-spacer-s { height: 24px; } .st-spacer-m { height: 56px; } .st-spacer-l { height: 104px; }
.st-spacer-line { display: flex; align-items: center; }
.st-spacer hr { border: 0; border-top: 1px solid var(--st-line); margin: 0; width: 100%; }

/* ── Módulos: tienda, reservas, alquiler ─────────────────────────────────── */
.st-skel-row { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.st-skel { height: 280px; border-radius: var(--st-radius); background: linear-gradient(90deg, var(--st-surface), color-mix(in srgb, var(--st-surface) 70%, var(--st-bg)), var(--st-surface)); background-size: 200% 100%; animation: st-sk 1.4s infinite; }
@keyframes st-sk { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }

.st-prods { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 290px)); justify-content: center; }
.st-prod { display: flex; flex-direction: column; text-decoration: none; color: inherit; border-radius: var(--st-radius); overflow: hidden; background: var(--st-card); border: 1px solid var(--st-line); transition: transform .25s, box-shadow .25s; }
.st-sec-soft .st-prod { background: var(--st-bg); }
.st-prod:hover { transform: translateY(-4px); box-shadow: var(--st-shadow); }
.st-prods-row .st-prod { flex: 0 0 clamp(210px, 23%, 280px); }
.st-prod-img { position: relative; aspect-ratio: 1; background: var(--st-surface); display: flex; align-items: center; justify-content: center; color: var(--st-muted); }
.st-prod-img img { width: 100%; height: 100%; object-fit: cover; }
.st-badge { position: absolute; top: 10px; left: 10px; background: #dc2626; color: #fff; font: 700 .78rem/1 var(--st-font-body); font-style: normal; padding: 6px 9px; border-radius: 99px; }
.st-prod-body { padding: 14px 16px 18px; text-align: left; }
.st-prod-name { font-weight: 600; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.st-prod-price { margin-top: 6px; font-weight: 700; color: var(--st-primary); }
.st-prod-price small { color: var(--st-muted); font-weight: 500; }
.st-prod-price s { color: var(--st-muted); font-weight: 400; margin-left: 6px; font-size: .9em; }
.st-on-color .st-prod { color: var(--st-text); }

.st-cats { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 300px)); justify-content: center; }
.st-cat { color: #fff !important; position: relative; aspect-ratio: 4 / 3; border-radius: var(--st-radius); overflow: hidden; display: flex; align-items: flex-end; text-decoration: none; color: #fff; background: linear-gradient(135deg, var(--st-primary), color-mix(in srgb, var(--st-accent) 70%, #000)); isolation: isolate; }
.st-cat img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .5s; }
.st-cat::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(5,8,20,.7)); z-index: -1; }
.st-cat:hover img { transform: scale(1.06); }
.st-cat span { padding: 16px 18px; font: 700 1.12rem/1.2 var(--st-font-head); }
.st-cats-row .st-cat { flex: 0 0 clamp(200px, 23%, 280px); }

/* Métodos de pago (tarjetas de la tienda: cuentas, QR…) */
.st-pay-tabs { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin: 0 0 22px; }
.st-pay-tabs button { border: 1px solid var(--st-line); background: var(--st-card); color: var(--st-text); border-radius: 999px; padding: 8px 18px; font: 600 .92rem var(--st-font-body); cursor: pointer; }
.st-pay-tabs button.active { background: var(--st-primary); border-color: var(--st-primary); color: var(--st-primary-ink, #fff); }
.st-pays { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 340px)); justify-content: center; }
.st-pay { background: var(--st-card); border: 1px solid var(--st-line); border-radius: var(--st-radius); padding: 24px; display: flex; flex-direction: column; gap: 14px; text-align: left; color: var(--st-text); min-width: 0; }
.st-sec-soft .st-pay { background: var(--st-bg); }
.st-pay[hidden] { display: none; }
.st-pay-head { display: flex; align-items: center; gap: 14px; }
.st-pay-logo { flex: 0 0 56px; height: 56px; border-radius: calc(var(--st-radius) * .6); background: #fff; border: 1px solid var(--st-line); display: grid; place-items: center; overflow: hidden; }
.st-pay-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.st-pay h3 { font-size: 1.12rem; margin: 0; }
.st-pay-sub { color: var(--st-muted); font-size: .9rem; }
.st-pay-details { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: .95rem; overflow-wrap: anywhere; }
.st-pay-img { margin: 0; text-align: center; }
.st-pay-img img { max-width: 220px; width: 100%; border-radius: calc(var(--st-radius) * .6); background: #fff; }
.st-pay-img figcaption { color: var(--st-muted); font-size: .85rem; margin-top: 6px; }
.st-pay-note { background: var(--st-surface); border-left: 3px solid var(--st-primary); padding: 10px 12px; border-radius: 6px; font-size: .9rem; }

.st-svc-cards { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 360px)); justify-content: center; }
.st-svc { background: var(--st-card); border: 1px solid var(--st-line); border-radius: var(--st-radius); padding: 26px; display: flex; flex-direction: column; text-align: left; color: var(--st-text); transition: transform .25s, box-shadow .25s; }
.st-sec-soft .st-svc { background: var(--st-bg); }
.st-svc:hover { transform: translateY(-4px); box-shadow: var(--st-shadow); }
.st-svc h3 { font-size: 1.2rem; }
.st-svc p { color: var(--st-muted); font-size: .96rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.st-svc-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; color: var(--st-muted); font-size: .93rem; margin: auto 0 18px; }
.st-svc-meta svg { vertical-align: -2px; }
.st-svc-meta strong { color: var(--st-text); font-size: 1.05rem; }
.st-dot { opacity: .5; }
.st-svc-list { display: flex; flex-direction: column; gap: 0; max-width: 960px; margin: 0 auto; }
.st-svc-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 18px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--st-line); text-align: left; }
.st-svc-row h3 { margin: 0 0 2px; font-size: 1.12rem; }
.st-svc-row p { margin: 0; color: var(--st-muted); font-size: .93rem; }
.st-svc-row .st-svc-meta { margin: 0; }
.st-on-color .st-svc-row { border-color: rgba(255,255,255,.18); }
.st-on-color .st-svc-row p, .st-on-color .st-svc-row .st-svc-meta, .st-on-color .st-svc-row .st-svc-meta strong { color: inherit; }

.st-rents { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 380px)); justify-content: center; }
.st-rent { display: flex; flex-direction: column; text-decoration: none; color: var(--st-text); background: var(--st-card); border: 1px solid var(--st-line); border-radius: var(--st-radius); overflow: hidden; transition: transform .25s, box-shadow .25s; text-align: left; }
.st-sec-soft .st-rent { background: var(--st-bg); }
.st-rent:hover { transform: translateY(-4px); box-shadow: var(--st-shadow); }
.st-rents-row .st-rent { flex: 0 0 clamp(260px, 31%, 360px); }
.st-rent-img { aspect-ratio: 16 / 11; background: var(--st-surface); display: flex; align-items: center; justify-content: center; color: var(--st-muted); overflow: hidden; }
.st-rent-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.st-rent:hover .st-rent-img img { transform: scale(1.04); }
.st-rent-body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.st-rent-type { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--st-primary); margin-bottom: 6px; }
.st-rent h3 { font-size: 1.15rem; margin-bottom: 8px; }
.st-rent-attrs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.st-rent-attrs span { font-size: .8rem; background: var(--st-surface); border-radius: 99px; padding: 4px 10px; color: var(--st-muted); }
.st-rent-foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.st-rent-price { font-weight: 700; font-size: 1.08rem; }
.st-rent-price small { color: var(--st-muted); font-weight: 500; }
.st-rent-go { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .9rem; color: var(--st-primary); }

/* ── Páginas: legal, 404, en construcción ────────────────────────────────── */
.st-legal { max-width: 820px; margin: 0 auto; }
.st-legal h1 { font-size: clamp(1.9rem, 3vw + .6rem, 2.8rem); }
.st-legal h2 { font-size: 1.35rem; margin-top: 1.6em; }
.st-legal p, .st-legal li { color: var(--st-muted); }
.st-notfound .st-nf-code { font: 800 clamp(5rem, 14vw, 9rem)/1 var(--st-font-head); color: var(--st-primary); opacity: .18; }
.st-soon { min-height: 100svh; display: flex; align-items: center; justify-content: center; text-align: center; padding: 40px 20px; background: radial-gradient(900px 500px at 50% 0%, color-mix(in srgb, var(--st-primary) 14%, var(--st-bg)), var(--st-bg)); }
.st-soon-in { max-width: 560px; display: flex; flex-direction: column; align-items: center; }
.st-soon-logo { max-height: 72px; max-width: 220px; margin-bottom: 26px; }
.st-soon-name { font: 700 1.6rem/1 var(--st-font-head); margin-bottom: 26px; }
.st-soon p { color: var(--st-muted); font-size: 1.1rem; }
.st-ssr { max-width: var(--st-width); margin: 0 auto; padding: 40px var(--st-gutter); }

/* ── Bloques de app (reservas, alquiler) y muestra del catálogo ─────────── */
.st-app { min-height: 160px; text-align: left; }
.st-app .st-skel { height: 140px; }
.st-sec-app .st-head { margin-bottom: clamp(20px, 3vw, 32px); }
.st-pv-tag {
  display: inline-flex; align-items: center; gap: 6px; margin: 0 auto 16px; padding: 6px 12px;
  border-radius: 999px; background: color-mix(in srgb, var(--st-primary) 12%, var(--st-bg));
  color: var(--st-primary); font: 600 .8rem/1.3 var(--st-font-body);
}
.st-shopapp { text-align: center; }
.st-catalog-pv { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; text-align: left; }
.st-catalog-filters { display: flex; flex-direction: column; gap: 8px; padding: 16px; border: 1px solid var(--st-line); border-radius: var(--st-radius); align-self: start; }
.st-catalog-filters span { font-size: .9rem; color: var(--st-muted); padding: 4px 0; border-bottom: 1px solid var(--st-line); }
.st-catalog-pv .st-prods { justify-content: start; grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); }
@media (max-width: 760px) { .st-catalog-pv { grid-template-columns: minmax(0, 1fr); } .st-catalog-filters { flex-direction: row; flex-wrap: wrap; } }

/* ── Pop-up de la portada ────────────────────────────────────────────────── */
.st-popup-back {
  position: fixed; inset: 0; z-index: 300; background: rgba(5,8,20,.55); display: flex;
  align-items: center; justify-content: center; padding: 20px; opacity: 0; transition: opacity .2s ease;
}
.st-popup-back.open { opacity: 1; }
.st-popup {
  position: relative; width: min(460px, 100%); max-height: calc(100svh - 40px); overflow: auto;
  background: var(--st-bg); color: var(--st-text); border-radius: calc(var(--st-radius) * 1.2);
  box-shadow: 0 30px 80px -20px rgba(0,0,0,.45); transform: translateY(10px); transition: transform .25s ease;
}
.st-popup-back.open .st-popup { transform: none; }
.st-popup-img { width: 100%; max-height: 60vh; object-fit: cover; display: block; }
.st-popup-body { padding: 22px 24px 26px; text-align: center; }
.st-popup-body h3 { margin-bottom: .4em; }
.st-popup-body p { color: var(--st-muted); }
.st-popup-body .st-btn { margin-top: 8px; }
.st-popup-x {
  position: absolute; top: 10px; right: 10px; z-index: 2; width: 36px; height: 36px; border-radius: 50%;
  border: 0; background: rgba(255,255,255,.92); color: #111827; display: inline-flex; align-items: center;
  justify-content: center; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.18);
}

/* ── Vista previa del editor ─────────────────────────────────────────────── */
/* Las apps embebidas no se usan en la vista previa: un clic elige la sección. */
html.st-preview .st-app > * { pointer-events: none; }
html.st-preview [data-sid] { cursor: pointer; }
html.st-preview [data-sid]:hover { outline: 2px dashed color-mix(in srgb, var(--st-primary) 70%, transparent); outline-offset: -2px; }
html.st-preview .st-pv-focus { outline: 3px solid var(--st-primary) !important; outline-offset: -3px; }
html.st-preview .st-is-hidden { opacity: .38; }
.st-pv-notice { position: absolute; top: 10px; left: 10px; z-index: 5; background: #b45309; color: #fff; font: 600 .78rem/1.3 system-ui, sans-serif; padding: 6px 10px; border-radius: 6px; max-width: calc(100% - 20px); }
.st-pv-empty { padding: 28px; border: 2px dashed var(--st-line); border-radius: var(--st-radius); text-align: center; color: var(--st-muted); font-size: .95rem; }
.st-pv-page { margin: 60px auto; max-width: 640px; }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .st-cols-4 { --cols: 2; }
  .st-cols-5 { --cols: 3; }
  .st-steps-horizontal li::after { display: none; }
}
@media (max-width: 900px) {
  .st-hero-split, .st-ti, .st-form-split, .st-contact { grid-template-columns: minmax(0, 1fr); }
  .st-ti-left .st-ti-img { order: 0; }
  .st-ti-overlap .st-ti-text { margin: -60px 12px 0; }
  .st-cta-split { flex-direction: column; text-align: center; }
  .st-cta-split.st-al-left { text-align: center; }
  .st-faq-two_columns { grid-template-columns: minmax(0, 1fr); }
  .st-team { --cols: 2 !important; }
  .st-plan-featured { transform: none; }
}
@media (max-width: 640px) {
  .st-cards, .st-cols-3 { --cols: 1; }
  .st-cols-2 { --cols: 1; }
  .st-gallery.st-gal-grid { --cols: 2; }
  .st-fields-2 { grid-template-columns: minmax(0, 1fr); }
  .st-svc-row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .st-slide-arrow { display: none; }
  .st-cards-list .st-card { flex-direction: column; }
  .st-btns .st-btn { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
  .st-sec *, .st-slide { transition: none !important; animation: none !important; }
}
