/* ----------------------------------------------------------------------------
   0 · Neutralizacion del motor atomico
   ----------------------------------------------------------------------------
   `Svg_Src_Transformer::merge_inline_styles()` escribe
   style="width:100%; height:100%; overflow:unset" en el <svg> que inyecta.
   Un atributo style solo se vence con !important. Son los unicos !important
   de esta hoja y estan acotados a `.e-svg-base > svg`.

   El wrapper del e-svg (`<div>` o `<a>` con la clase `.e-svg-base`) trae
   width:65px;height:65px del motor. Se le devuelve el tamaño que le da el
   sistema de diseño a traves de la clase que lleve encima.
-------------------------------------------------------------------------------*/

.elementor .e-svg-base { width: auto; height: auto; display: inline-flex; }
.elementor .e-svg-base > svg { display: block; }

/* Iconos de 18px: los tres contextos que el sistema de diseño dimensiona
   con `.btn svg`, `.btn-circle svg` y `.theme-toggle svg`. */
.elementor .btn > .e-svg-base > svg,
.elementor .btn-circle > .e-svg-base > svg,
.elementor .btn-circle.e-svg-base > svg,
.elementor .theme-toggle > .e-svg-base > svg {
  width: 18px !important;
  height: 18px !important;
}

/* `.to-top svg { width:20px; height:20px }` */
.elementor .to-top > .e-svg-base > svg { width: 20px !important; height: 20px !important; }

/* `.nav-toggle svg { width:20px; height:20px }` */
.elementor .nav-toggle > .e-svg-base > svg { width: 20px !important; height: 20px !important; }

/* `.navbar-frame .brand-mark svg { height:26px; width:auto }`   components.css:120
   `.nav-minimal  .brand-mark svg { height:22px; width:auto }`   components.css:352
   `.footer-dark  .brand-mark svg { height:30px; width:auto }`   components.css:860
   El <a class="brand-mark"> ES el wrapper del e-svg. */
.elementor .navbar-frame .brand-mark > svg { height: 26px !important; width: auto !important; }
.elementor .nav-minimal .brand-mark > svg { height: 22px !important; width: auto !important; }
.elementor .footer-dark .brand-mark > svg { height: 30px !important; width: auto !important; }

/* Iconos de 18px del chip: `.chip-icon svg { width:18px; height:18px }`
   (components.css:68). El wrapper del e-svg ES el `.chip-icon`. */
.elementor .chip-icon.e-svg-base > svg { width: 18px !important; height: 18px !important; }

/* `.card-video-t .play svg { width:22px; height:22px; margin-left:3px }`
   (components.css:1035). `margin-left` no viaja en el atributo `style` inline
   que escribe el transformador, asi que lo devuelve el puente: aqui solo el
   tamaño necesita `!important`. */
.elementor .card-video-t .play.e-svg-base > svg { width: 22px !important; height: 22px !important; }

/* `.card-location .place svg { width:16px; height:16px; color:var(--brand);
   flex:0 0 auto }` (components.css:463). El e-svg intercala un
   `<div class="e-svg-base">` entre `.place` y el `<svg>`: `color` se hereda y el
   puente lo devuelve, pero el ITEM FLEX pasa a ser el div. Su `flex:0 0 auto`
   se repone en assets/elementor-atomic-fixes.css, bloque 2. */
.elementor .card-location .place > .e-svg-base > svg { width: 16px !important; height: 16px !important; }

/* `.faq-ico` NO se dimensiona aqui, y es deliberado. components.css:239 declara
   `.faq-item button .faq-ico { width:36px; height:36px; display:inline-flex }`
   y NO declara ninguna regla `.faq-ico svg`. El `<svg viewBox="0 0 24 24">` sin
   width ni height llena su caja: 36x36 en el fuente, medido con Playwright.
   El `width:100%; height:100%` que `Svg_Src_Transformer` escribe inline da
   exactamente ese resultado, asi que no hay nada que pisar. Una version anterior
   de este bloque forzaba `.faq-ico > svg { width:18px !important }` con un
   comentario que decia lo contrario de lo que hacia. Corregido 2026-07-08.

   El chip decorativo del hero y las flechas de las tarjetas heredan el 18px de
   `.btn-circle svg`; ya cubierto arriba. */

/* ----------------------------------------------------------------------------
   1 · Sistema de diseño reemitido a especificidad (0,2,0)
   ----------------------------------------------------------------------------
   Copia verbatim de tokens.css + components.css + site.css, con `.elementor`
   como ancestro. Generado por `_scripts/build-elementor-atomic-css.py`.
   NO EDITAR A MANO.
-------------------------------------------------------------------------------*/


/* ===== assets/tokens.css ===== */
.elementor img {max-width: 100%; height: auto; display: block;}
.elementor :focus-visible {outline: 2px solid var(--focus-ring); outline-offset: 2px;}
.elementor .container {margin-inline: auto;}
.elementor :where(a:not([class])) {color: var(--brand-strong); text-underline-offset: 3px;}
.elementor :where(a:not([class]):hover) {color: var(--brand);}
.elementor :where([data-theme="dark"]) :where(a:not([class])) {color: var(--brand);}
.elementor :where([data-theme="dark"]) :where(a:not([class]):hover) {color: var(--sand);}
.elementor .sr-only {position: absolute; width: 1px; height: 1px;
  margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;}
.elementor .skip-link {position: absolute; left: 14px; top: -100px; z-index: 200;
  background: var(--surface); color: var(--text);
  font: 600 14px/1 var(--font-body); text-decoration: none;
  padding: 14px 18px; border-radius: var(--r-pill); box-shadow: var(--sh-2);
  transition: top .18s ease;}
.elementor .skip-link:focus {top: 14px;}


/* ===== assets/components.css ===== */
@media (prefers-reduced-motion: no-preference) {
  .elementor .btn,
  .elementor .tag-pill[href],
  .elementor .nav-pills a,
  .elementor .navbar-frame nav a,
  .elementor .card-property,
  .elementor .info-chip,
  .elementor .faq-item button,
  .elementor .theme-toggle,
  .elementor .footer a,
  .elementor .stat-tile[href] {transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;}
  .elementor .btn:hover,
  .elementor .nav-pills a:hover,
  .elementor .navbar-frame nav a:hover,
  .elementor .card-property:hover,
  .elementor .info-chip:hover,
  .elementor .theme-toggle:hover,
  .elementor .footer a:hover,
  .elementor .tag-pill[href]:hover {transform: translateY(-2px);}
}
.elementor .btn {display: inline-flex; align-items: center; gap: 10px;
  font: 600 15px/1 var(--font-body);
  padding: 14px 26px; border-radius: var(--r-pill);
  border: 0; cursor: pointer; text-decoration: none;
  color: var(--text); background: var(--panel);}
.elementor .btn:hover {box-shadow: var(--sh-2);}
.elementor .btn-primary {background: var(--brand-fill); color: var(--brand-contrast);}
.elementor .btn-primary:hover {background: var(--brand-fill-strong);}
.elementor .btn-secondary {background: var(--panel); color: var(--text); box-shadow: var(--sh-1);}
.elementor .btn-secondary:hover {background: var(--line);}
.elementor .btn-ghost {background: transparent; padding-inline: 8px; text-decoration: underline; text-underline-offset: 4px;}
.elementor .btn-circle {display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0; border-radius: 50%;
  flex-shrink: 0; 
  background: var(--brand-fill); color: var(--brand-contrast); border: 0; cursor: pointer;}
.elementor .btn-circle:hover {background: var(--brand-fill-strong); box-shadow: var(--sh-2);}
.elementor .btn-circle--lg {width: 56px; height: 56px;}
.elementor .btn-circle--soft {background: var(--panel); color: var(--text);}
.elementor .btn-circle--soft:hover {background: var(--line);}
.elementor .btn svg,
.elementor .btn-circle svg {width: 18px; height: 18px;}
.elementor .tag-pill {display: inline-flex; align-items: center; gap: 8px;
  font: 600 11px/1 var(--font-body); letter-spacing: .08em; text-transform: uppercase;
  color: var(--text-muted); background: var(--panel);
  padding: 9px 14px; border-radius: var(--r-pill); text-decoration: none;}
.elementor .tag-pill .dot {width: 8px; height: 8px; border-radius: 50%; background: var(--brand); flex: 0 0 auto;}
.elementor .tag-pill .dot--sf {background: var(--accent-sf);}
.elementor .tag-pill .dot--nido {background: var(--accent-nido);}
.elementor .tag-pill--onmedia {background: var(--glass); backdrop-filter: blur(12px); color: var(--text);}
.elementor .tag-pill--brand {background: var(--brand-fill); color: var(--brand-contrast);}
.elementor .chip-icon {display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: var(--r-pill);
  background: color-mix(in srgb, var(--brand-contrast) 18%, transparent);
  color: currentColor;}
.elementor .chip-icon svg {width: 18px; height: 18px;}
.elementor .avatar {width: 40px; height: 40px; border-radius: 50%; object-fit: cover;
  box-shadow: 0 0 0 2px var(--bg);}
.elementor .avatar-row {display: flex; justify-content: center; padding-left: 12px;}
.elementor .avatar-row .avatar {margin-left: -12px;}
.elementor .avatar--initials {display: inline-flex; align-items: center; justify-content: center;
  background: var(--panel); color: var(--text-muted);
  font: 600 13px/1 var(--font-body);}
.elementor .field {display: grid; gap: 6px;}
.elementor .field > label {font: 600 12px/1 var(--font-body); color: var(--text-muted); letter-spacing: .04em;}
.elementor .input,
.elementor .select {font: 400 15px/1.3 var(--font-body); color: var(--text);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-sm); padding: 12px 14px; width: 100%;}
.elementor .input::placeholder {color: var(--text-soft);}
.elementor .divider {border: 0; border-top: 1px solid var(--line); margin: 0;}
.elementor .theme-toggle {display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--panel); color: var(--text); border: 0; cursor: pointer;}
.elementor .theme-toggle:hover {box-shadow: var(--sh-2);}
.elementor .theme-toggle svg {width: 18px; height: 18px;}
.elementor .theme-toggle .icon-moon {display: none;}
[data-theme="dark"] .elementor .theme-toggle .icon-moon {display: block;}
[data-theme="dark"] .elementor .theme-toggle .icon-sun {display: none;}
.elementor .nav-pills {display: flex; gap: 8px; flex-wrap: wrap;}
.elementor .nav-pills a {display: inline-flex; align-items: center;
  font: 500 14px/1 var(--font-body); color: var(--text); text-decoration: none;
  padding: 12px 20px; border-radius: var(--r-pill);
  background: var(--glass);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);}
@supports not (backdrop-filter: blur(1px)) {
  .elementor .nav-pills a {background: color-mix(in srgb, var(--bg) 92%, transparent);}
}
.elementor .nav-pills a:hover,
.elementor .nav-pills a[aria-current="page"] {background: var(--surface); box-shadow: var(--sh-1);}
.elementor .navbar-frame {display: flex; align-items: center; justify-content: space-between; gap: var(--s-4);
  background: var(--surface); border-radius: var(--r-frame);
  box-shadow: var(--sh-1);
  padding: 14px 22px; margin-top: var(--s-3);
  flex-wrap: wrap;}
.elementor .navbar-frame nav {display: flex; gap: 4px; flex-wrap: wrap;}
.elementor .navbar-frame nav a {font: 500 14px/1 var(--font-body); color: var(--text); text-decoration: none;
  padding: 11px 16px; border-radius: var(--r-pill);}
.elementor .navbar-frame nav a:hover,
.elementor .navbar-frame nav a[aria-current="page"] {background: var(--panel);}
.elementor .navbar-frame .brand-mark {display: inline-flex; color: var(--brand);}
.elementor .navbar-frame .brand-mark svg {height: 26px; width: auto;}
.elementor .navbar-frame .nav-actions {display: flex; align-items: center; gap: 10px;}
.elementor .section-head {display: flex; align-items: flex-end; justify-content: space-between;
  gap: var(--s-4); margin-bottom: var(--s-5); flex-wrap: wrap;}
.elementor .section-head h2 {font: 600 clamp(28px, 3.5vw, 44px)/1.08 var(--font-display);
  margin: 0; letter-spacing: -0.01em; text-wrap: balance;}
.elementor .stat-grid {display: grid; gap: var(--s-3); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));}
.elementor .stat-tile {background: var(--surface); border-radius: var(--r-xl);
  padding: var(--s-5) var(--s-4); box-shadow: var(--sh-1);
  display: grid; gap: 6px; align-content: start; position: relative;}
.elementor .stat-tile .num {font: 600 clamp(40px, 4.5vw, 64px)/1 var(--font-display);
  letter-spacing: -0.015em;}
.elementor .stat-tile .lbl {font: 400 14px/1.5 var(--font-body); color: var(--text-muted);}
.elementor .stat-tile--accent {background: var(--brand-fill);}
.elementor .stat-tile--accent .num {color: var(--brand-contrast);}
/* El 88 % de opacidad dejaba este rotulo en 3,73:1 sobre el fondo de marca, por
   debajo del 4,5 que pide el texto normal de 14px. A opacidad entera sube a
   5,11, que es lo que ya medía la cifra de la misma tarjeta. Medido 2026-08-07
   en las dos paginas de San Fernando, que son las unicas que usan esta tarjeta. */
.elementor .stat-tile--accent .lbl {color: var(--brand-contrast);}
.elementor .stat-tile--accent .chip-icon {position: absolute; top: 16px; right: 16px; color: var(--brand-contrast);}
.elementor .search-band {display: flex; gap: var(--s-3); align-items: end; flex-wrap: wrap;
  background: var(--surface); border-radius: var(--r-xl);
  box-shadow: var(--sh-1); padding: var(--s-4);}
.elementor .search-band .field {flex: 1 1 220px;}
.elementor .search-band .btn {flex: 0 0 auto;}
.elementor .property-grid {display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); align-items: stretch;}
.elementor .card-property {display: grid; gap: 14px; align-content: start;
  background: var(--surface); border-radius: var(--r-lg);
  padding: 14px 14px 20px; box-shadow: var(--sh-1);
  text-decoration: none; color: inherit; position: relative;}
.elementor .card-property:hover {box-shadow: var(--sh-2);}
.elementor .card-property .media {position: relative; border-radius: var(--r-md); overflow: hidden; aspect-ratio: 4 / 3;}
.elementor .card-property .media img {width: 100%; height: 100%; object-fit: cover;}
.elementor .card-property .media .tag-pill {position: absolute; top: 12px; left: 12px;}
.elementor .card-property .media .render-note {position: absolute; bottom: 12px; right: 12px;}
.elementor .card-property h3 {font: 600 22px/1.2 var(--font-display); margin: 0; padding-inline: 8px;}
.elementor .card-property .meta {font: 400 14px/1.5 var(--font-body); color: var(--text-muted); padding-inline: 8px; margin: 0;}
.elementor .card-property .card-foot {display: flex; align-items: center; justify-content: space-between;
  padding-inline: 8px; margin-top: 4px;}
.elementor .card-property .price {font: 600 16px/1.2 var(--font-body);}
.elementor .card-property--featured {grid-row: span 1;}
@media (min-width: 980px) {
  .elementor .property-grid--home {grid-template-columns: 1.25fr 1fr;}
}
.elementor .render-note {display: inline-flex; font: 600 10px/1 var(--font-body); letter-spacing: .08em;
  text-transform: uppercase; color: var(--cream);
  background: rgba(28, 20, 16, .55); backdrop-filter: blur(6px);
  padding: 7px 10px; border-radius: var(--r-pill);}
.elementor .render-note--real {background: rgba(110, 26, 42, .62); color: #FFFFFF;}
.elementor .info-chip {display: inline-flex; align-items: center; gap: 12px;
  background: var(--surface); border-radius: var(--r-pill);
  box-shadow: var(--sh-2); padding: 8px 10px 8px 8px;
  text-decoration: none; color: inherit;}
.elementor .info-chip .thumb {width: 44px; height: 44px; border-radius: 50%; object-fit: cover;}
.elementor .info-chip .txt {display: grid; line-height: 1.25;}
.elementor .info-chip .txt strong {font: 600 14px/1.3 var(--font-body);}
.elementor .info-chip .txt span {font: 400 12px/1.3 var(--font-body); color: var(--text-muted);}
.elementor .testimonial {text-align: center; max-width: 760px; margin-inline: auto; display: grid; gap: var(--s-4);}
.elementor .testimonial blockquote {font: 400 clamp(20px, 2.4vw, 28px)/1.45 var(--font-display);
  margin: 0; text-wrap: balance;}
.elementor .testimonial .who {font: 600 14px/1.4 var(--font-body); color: var(--text-muted);}
.elementor .testimonial .controls {display: flex; gap: 8px; justify-content: center;}
.elementor .faq-list {display: grid;}
.elementor .faq-item {border-bottom: 1px solid var(--line);}
.elementor .faq-item h3 {margin: 0;}
.elementor .faq-item button {display: flex; align-items: center; justify-content: space-between; gap: var(--s-4);
  width: 100%; background: none; border: 0; cursor: pointer; text-align: left;
  font: 600 18px/1.35 var(--font-body); color: var(--text);
  padding: 22px 4px;}
.elementor .faq-item button .faq-ico {flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--panel); color: var(--text);}
.elementor .faq-item button[aria-expanded="true"] .faq-ico {background: var(--brand-fill); color: var(--brand-contrast);}
.elementor .faq-item button[aria-expanded="true"] .faq-ico svg {transform: rotate(45deg);}
.elementor .faq-item .faq-panel {padding: 0 4px 22px; color: var(--text-muted);}
.elementor .faq-item .faq-panel[hidden] {display: none;}
.elementor .hero-mask {position: relative; overflow: hidden;
  
  border-radius: var(--r-mask) var(--r-mask) var(--r-mask) 0;
  min-height: clamp(380px, 58vh, 560px);}
.elementor .hero-mask > img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.elementor .hero-mask > video {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.elementor .hero-claim {position: absolute; left: clamp(430px, 36vw, 520px); bottom: clamp(22px, 3vw, 36px);
  font: 600 clamp(28px, 3.5vw, 44px)/1.08 var(--font-display); letter-spacing: -0.01em;
  color: var(--cream); text-align: left; max-width: 18ch; z-index: 2;
  text-shadow: 0 2px 18px rgba(28, 20, 16, .6), 0 1px 4px rgba(28, 20, 16, .5);}
@media (max-width: 920px) {
  .elementor .hero-claim {left: 20px; bottom: 108px; max-width: 12ch;}
}
.elementor .hero-mask .render-note {position: absolute; top: 28px; right: clamp(48px, 7vw, 96px);}
.elementor .hero-dock {position: absolute; left: 0; bottom: 0;
  background: var(--dock-bg, var(--bg));
  padding: 16px 28px 0 0;
  border-top-right-radius: 36px;}
@media (max-width: 920px) {
  .elementor .hero-dock {max-width: 70%; padding-right: 18px;}
  .elementor .hero-dock .info-chip {align-items: center; padding-left: 14px; gap: 10px;}
  .elementor .hero-dock .info-chip .txt span {white-space: normal; font-size: 11.5px;}
  .elementor .hero-dock .info-chip .txt strong {font-size: 13px; line-height: 1.25;}
  .elementor .hero-dock .info-chip .thumb {display: none;}
}
.elementor .hero-dock::before,
.elementor .hero-dock::after {content: ""; position: absolute; width: 36px; height: 36px;
  background: radial-gradient(circle at 100% 0, transparent 36px, var(--dock-bg, var(--bg)) 36.5px);}
.elementor .hero-dock::before {left: 0; top: -36px;}
.elementor .hero-dock::after {right: -36px; bottom: 0;}
.elementor .hero-dock--right {left: auto; right: 0;
  padding: 16px 0 0 28px;
  border-top-right-radius: 0; border-top-left-radius: 36px;}
.elementor .hero-dock--right::before,
.elementor .hero-dock--right::after {background: radial-gradient(circle at 0 0, transparent 36px, var(--dock-bg, var(--bg)) 36.5px);}
.elementor .hero-dock--right::before {left: auto; right: 0; top: -36px;}
.elementor .hero-dock--right::after {right: auto; left: -36px; bottom: 0;}
.elementor .hero-mask--dock-right {border-radius: 36px 36px 0 36px;}
.elementor .hero-mask--uniform {border-radius: 36px 36px 36px 0;}
.elementor .cta-band {background: var(--brand-fill); color: var(--brand-contrast);
  border-radius: var(--r-hero);
  padding: clamp(40px, 6vw, 80px);
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--s-5); flex-wrap: wrap;}
.elementor .cta-band h2 {font: 600 clamp(30px, 4.5vw, 56px)/1.05 var(--font-display);
  text-transform: uppercase; letter-spacing: -0.005em;
  margin: 0; max-width: 14ch;}
.elementor .cta-band .btn {background: var(--cream); color: var(--ink);}
.elementor .cta-band .btn:hover {background: var(--white);}
.elementor .footer {background: var(--panel); margin-top: var(--s-8);}
.elementor .footer-inner {display: grid; gap: var(--s-5); padding-block: var(--s-7); grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));}
.elementor .footer .brand-mark {color: var(--brand);}
.elementor .footer .brand-mark svg {height: 34px; width: auto;}
.elementor .footer h4 {font: 600 13px/1 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); margin: 0 0 14px;}
.elementor .footer ul {list-style: none; margin: 0; padding: 0; display: grid; gap: 10px;}
.elementor .footer a {font: 400 13px/1.4 var(--font-body); color: var(--text-muted); text-decoration: none;}
.elementor .footer a:hover {color: var(--text);}
.elementor .footer .legal {border-top: 1px solid var(--line);
  padding-block: var(--s-4);
  font: 400 12px/1.5 var(--font-body); color: var(--text-soft);
  display: flex; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap;}
.elementor .display-hero {font: 600 clamp(44px, 7.5vw, 108px)/0.98 var(--font-display);
  text-transform: uppercase; letter-spacing: -0.005em;
  margin: 0; text-wrap: balance;}
.elementor .display-hero--page {font-size: clamp(36px, 5.5vw, 82px);}
.elementor .lead {font: 400 17px/1.6 var(--font-body); color: var(--text-muted); max-width: 46ch;}
.elementor .prose-xl {font: 400 clamp(20px, 2.2vw, 26px)/1.5 var(--font-display);
  letter-spacing: -0.005em;}
.elementor .prose-xl em {font-style: italic; color: var(--brand-strong);}
[data-theme="dark"] .elementor .prose-xl em {color: var(--brand);}
.elementor .section {padding-block: var(--s-6);}
@media (min-width: 900px) {
  .elementor .section {padding-block: var(--s-8);}
}
.elementor .nav-minimal {display: flex; align-items: center; justify-content: space-between; gap: var(--s-4);
  padding: 18px 4px; flex-wrap: wrap;}
.elementor .nav-minimal .brand-mark {display: inline-flex; color: var(--brand);}
.elementor .nav-minimal .brand-mark svg {height: 22px; width: auto;}
.elementor .nav-minimal .links {display: flex; gap: 2px; background: var(--panel);
  border-radius: var(--r-pill); padding: 4px;}
.elementor .nav-minimal .links a {font: 500 13.5px/1 var(--font-body); color: var(--text-muted); text-decoration: none;
  padding: 10px 16px; border-radius: var(--r-pill);}
.elementor .nav-minimal .links a:hover,
.elementor .nav-minimal .links a[aria-current="page"] {background: var(--surface); color: var(--text); box-shadow: var(--sh-1);}
.elementor .btn-ink {background: var(--ink); color: var(--cream);}
.elementor .btn-ink:hover {background: var(--ink-dim);}
[data-theme="dark"] .elementor .btn-ink {background: var(--cream); color: var(--ink);}
[data-theme="dark"] .elementor .btn-ink:hover {background: var(--white);}
.elementor .hero-split {display: grid; gap: var(--s-5); align-items: center;
  grid-template-columns: 1fr; padding-block: var(--s-5);}
@media (min-width: 900px) {
  .elementor .hero-split {grid-template-columns: 1.05fr 1fr; gap: var(--s-7);}
}
.elementor .hero-split .display-soft {font: 600 clamp(34px, 4.2vw, 60px)/1.06 var(--font-display);
  letter-spacing: -0.01em; margin: 0 0 18px; text-wrap: balance;}
.elementor .media-organic {position: relative; overflow: hidden;}
.elementor .media-organic img {width: 100%; height: 100%; object-fit: cover; aspect-ratio: 5 / 4;}
.elementor .media-organic {border-radius: clamp(48px, 8vw, 110px) var(--r-hero) clamp(48px, 8vw, 110px) clamp(72px, 14vw, 190px);}
.elementor .search-card {display: grid; gap: 14px;
  background: var(--surface); border-radius: var(--r-xl);
  box-shadow: var(--sh-3); padding: var(--s-4);
  max-width: 360px; width: 100%;}
.elementor .search-card h3 {font: 600 18px/1.3 var(--font-display); margin: 0;}
.elementor .search-card .btn {justify-content: center;}
.elementor .hero-panel {position: relative; overflow: hidden;
  border-radius: var(--r-frame);
  min-height: clamp(420px, 62vh, 600px);
  display: flex; flex-direction: column; justify-content: space-between;
  padding: var(--s-4);}
.elementor .hero-panel > img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.elementor .hero-panel > * {position: relative;}
.elementor .hero-panel .panel-top {display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); flex-wrap: wrap;}
.elementor .hero-panel .panel-bottom {display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-5); flex-wrap: wrap;}
.elementor .hero-panel .panel-title {font: 600 clamp(30px, 3.8vw, 54px)/1.08 var(--font-display);
  color: var(--cream); margin: 0; max-width: 15ch;
  text-shadow: 0 2px 24px rgba(28, 20, 16, .45);}
.elementor .hero-panel .panel-sub {font: 400 15px/1.55 var(--font-body); color: var(--cream); max-width: 44ch; opacity: .92;}
.elementor .hero-panel .scrim {position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(28, 20, 16, .55) 0%, rgba(28, 20, 16, .05) 45%);}
.elementor .hero-canvas {text-align: center; display: grid; gap: var(--s-4); justify-items: center; padding-block: var(--s-6) var(--s-5);}
.elementor .hero-canvas .display-centered {font: 600 clamp(34px, 4.6vw, 68px)/1.08 var(--font-display);
  letter-spacing: -0.01em; margin: 0; max-width: 20ch; text-wrap: balance;}
.elementor .hero-canvas .lead {text-align: center; margin-inline: auto;}
.elementor .hero-canvas .cta-pair {display: flex; gap: 12px; flex-wrap: wrap; justify-content: center;}
.elementor .media-band {position: relative; overflow: hidden;
  border-radius: var(--r-hero);
  min-height: clamp(320px, 52vh, 520px);}
.elementor .media-band > img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.elementor .media-band .scrim {position: absolute; inset: 0;
  background: linear-gradient(to top right, rgba(28, 20, 16, .74) 0%, rgba(28, 20, 16, .34) 45%, rgba(28, 20, 16, .08) 75%);}
.elementor .overlay-caption {position: absolute; left: clamp(20px, 4vw, 48px); bottom: clamp(20px, 4vw, 40px);
  display: grid; gap: 8px; max-width: 520px; color: var(--cream);}
.elementor .overlay-caption strong {font: 600 clamp(20px, 2.2vw, 28px)/1.25 var(--font-display);}
.elementor .overlay-caption span {font: 400 14px/1.6 var(--font-body); opacity: .92;}
.elementor .scroll-cue {position: absolute; right: clamp(20px, 4vw, 48px); bottom: clamp(20px, 4vw, 40px);
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--cream); font: 600 13px/1 var(--font-body); text-decoration: none;}
.elementor .scroll-cue .btn-circle {background: color-mix(in srgb, var(--cream) 22%, transparent); backdrop-filter: blur(8px); color: var(--cream);}
.elementor .scroll-cue:hover .btn-circle {background: color-mix(in srgb, var(--cream) 34%, transparent);}
.elementor .location-grid {display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));}
.elementor .card-location {display: grid; gap: 0; text-decoration: none; color: inherit;}
.elementor .card-location .media {position: relative; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4 / 3;}
.elementor .card-location .media img {width: 100%; height: 100%; object-fit: cover;}
.elementor .card-location .media .tag-pill {position: absolute; top: 12px; right: 12px;}
.elementor .card-location .place {display: flex; align-items: center; gap: 8px;
  font: 600 16px/1.3 var(--font-body);
  padding: 16px 4px 14px; border-bottom: 1px solid var(--line);}
.elementor .card-location .place svg {width: 16px; height: 16px; color: var(--brand); flex: 0 0 auto;}
@media (prefers-reduced-motion: no-preference) {
  .elementor .card-location {transition: transform .18s ease;}
  .elementor .card-location:hover {transform: translateY(-2px);}
}
.elementor .card-listing {display: grid; gap: 16px;
  background: var(--surface); border-radius: var(--r-lg);
  box-shadow: var(--sh-1); padding: 14px;}
@media (min-width: 760px) {
  .elementor .card-listing {grid-template-columns: 1fr 1.1fr; align-items: center;}
}
.elementor .card-listing .media {position: relative; border-radius: var(--r-md); overflow: hidden; aspect-ratio: 4 / 3;}
.elementor .card-listing .media img {width: 100%; height: 100%; object-fit: cover;}
.elementor .card-listing .body {display: grid; gap: 12px; padding: 6px 8px 6px 4px; align-content: center;}
.elementor .card-listing h3 {font: 600 22px/1.2 var(--font-display); margin: 0;}
.elementor .card-listing .price {font: 600 17px/1.3 var(--font-body); color: var(--brand-strong);}
[data-theme="dark"] .elementor .card-listing .price {color: var(--brand);}
.elementor .spec-chips {display: flex; gap: 8px; flex-wrap: wrap;}
.elementor .spec-chip {display: inline-flex; align-items: center; gap: 7px;
  font: 500 12.5px/1 var(--font-body); color: var(--text-muted);
  background: var(--panel); border-radius: var(--r-pill); padding: 8px 12px;}
.elementor .spec-chip svg {width: 14px; height: 14px;}
.elementor .testimonial-grid {display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));}
.elementor .card-testimonial {display: grid; gap: 14px; align-content: start;
  background: var(--surface); border-radius: var(--r-lg);
  box-shadow: var(--sh-1); padding: var(--s-4);}
.elementor .card-testimonial .head {display: flex; align-items: center; gap: 12px;}
.elementor .card-testimonial .head .who {display: grid;}
.elementor .card-testimonial .head strong {font: 600 14.5px/1.3 var(--font-body);}
.elementor .card-testimonial .head span {font: 400 12.5px/1.3 var(--font-body); color: var(--text-soft);}
.elementor .card-testimonial p {font: 400 15px/1.6 var(--font-body); color: var(--text-muted); margin: 0;}
.elementor .faq-item--num button {gap: var(--s-3); justify-content: flex-start;}
.elementor .faq-item--num .faq-num {flex: 0 0 auto; font: 600 13px/1 var(--font-body); color: var(--text-soft);
  min-width: 34px; letter-spacing: .04em;}
.elementor .faq-item--num button .faq-ico {margin-left: auto;}
.elementor .header-marco-v2 {display: grid; gap: 14px;}
.elementor .header-marco-v2 .navbar-frame {margin-top: 0;}
.elementor .hero-mask .scrim-top {position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(28, 20, 16, .58) 0%, rgba(28, 20, 16, 0) 60%);}
.elementor .hero-mask .hero-title {position: absolute;
  left: clamp(24px, 5vw, 72px); top: clamp(24px, 5vw, 60px);
  font: 600 clamp(32px, 5vw, 76px)/1.02 var(--font-display);
  text-transform: uppercase; letter-spacing: -0.005em;
  color: var(--cream); margin: 0; max-width: 17ch; text-wrap: balance;}
.elementor .photo-mosaic {display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr);}
.elementor .photo-mosaic .cell {border-radius: var(--r-md); overflow: hidden;}
.elementor .photo-mosaic .cell img {width: 100%; height: 100%; object-fit: cover;}
.elementor .photo-mosaic .cell--tall {grid-row: span 2; border-radius: var(--r-lg);}
@media (max-width: 700px) {
  .elementor .photo-mosaic {grid-template-columns: repeat(2, 1fr);}
}
.elementor .stats-row {display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));}
.elementor .stat-tile--soft {position: relative;
  background: var(--panel); box-shadow: none;
  border-radius: var(--r-xl); padding: var(--s-4);
  min-height: 230px; align-content: end;}
.elementor .stat-tile--soft .chip-icon {position: absolute; top: 18px; right: 18px;
  width: 52px; height: 52px;
  background: var(--surface); color: var(--text);
  box-shadow: var(--sh-1);}
.elementor .stat-tile--soft .num {font-size: clamp(44px, 5vw, 72px);}
.elementor .stat-tile--flame {background: var(--accent-flame);}
.elementor .stat-tile--coral {background: var(--accent-coral);}
.elementor .stat-tile--flame .num,
.elementor .stat-tile--coral .num {color: var(--cream);}
.elementor .stat-tile--flame .lbl,
.elementor .stat-tile--coral .lbl {color: color-mix(in srgb, var(--cream) 92%, transparent); font-size: 15px; font-weight: 500;}
.elementor .stat-tile--flame .chip-icon,
.elementor .stat-tile--coral .chip-icon {background: var(--cream); color: var(--ink);}
.elementor .discover-head {display: flex; justify-content: space-between; align-items: flex-end; gap: var(--s-5);
  padding-bottom: 20px; border-bottom: 1px solid var(--line); margin-bottom: var(--s-5);
  flex-wrap: wrap;}
.elementor .discover-head h2 {font: 600 clamp(30px, 3.6vw, 48px)/1.05 var(--font-display); margin: 0;}
.elementor .discover-head p {font: 400 13.5px/1.6 var(--font-body); color: var(--text-muted); max-width: 42ch; margin: 0;}
.elementor .discover-grid {display: grid; gap: 20px; grid-template-columns: repeat(4, 1fr); align-items: start;}
.elementor .card-mini {display: grid; gap: 12px; text-decoration: none; color: inherit;}
.elementor .card-mini .media {position: relative; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 1 / 1.05;}
.elementor .card-mini .media img {width: 100%; height: 100%; object-fit: cover;}
.elementor .card-mini .name {font: 600 15px/1.35 var(--font-body);}
.elementor .card-mini--featured .media {aspect-ratio: 3 / 4;}
.elementor .card-mini--featured .name {font-size: 17px;}
.elementor .card-mini--featured .media .btn-circle {position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  background: var(--surface); color: var(--text); width: 56px; height: 56px;}
.elementor .card-mini--featured:hover .media .btn-circle {background: var(--brand-fill); color: var(--brand-contrast);}
@media (prefers-reduced-motion: no-preference) {
  .elementor .card-mini {transition: transform .18s ease;}
  .elementor .card-mini:hover {transform: translateY(-2px);}
}
.elementor .discover-foot {display: flex; gap: 8px; align-items: center; margin-top: var(--s-4);
  font: 400 12.5px/1.4 var(--font-body); color: var(--text-soft);}
.elementor .discover-foot svg {width: 14px; height: 14px;}
@media (max-width: 900px) {
  .elementor .discover-grid {grid-template-columns: repeat(2, 1fr);}
}
.elementor .about-centered {display: grid; align-items: center; gap: var(--s-5);
  grid-template-columns: minmax(130px, .38fr) 2fr minmax(130px, .38fr);
  padding-block: var(--s-5);}
.elementor .about-centered .about-body {text-align: center;}
.elementor .about-centered h2 {font: 600 clamp(30px, 3.8vw, 52px)/1.12 var(--font-display);
  margin: 0 auto 16px; max-width: 21ch; text-wrap: balance;}
.elementor .about-centered .about-body p {font: 400 15px/1.65 var(--font-body); color: var(--text-muted); max-width: 52ch; margin: 0 auto;}
.elementor .about-float {display: grid; gap: 14px;}
.elementor .about-float img {border-radius: var(--r-lg); aspect-ratio: 1 / 1; object-fit: cover; width: 100%; box-shadow: var(--sh-1);}
.elementor .about-float--left img:first-child {transform: translateX(-16px); opacity: .9;}
.elementor .about-float--right img:last-child {transform: translateX(16px); opacity: .9;}
@media (max-width: 980px) {
  .elementor .about-centered {grid-template-columns: 1fr;}
  .elementor .about-float {display: none;}
}
.elementor .featured-head {text-align: center; margin-bottom: var(--s-5);}
.elementor .featured-head h2 {font: 600 clamp(28px, 3.4vw, 44px)/1.1 var(--font-display); margin: 0 0 10px;}
.elementor .featured-head p {font: 400 14px/1.6 var(--font-body); color: var(--text-muted); max-width: 52ch; margin-inline: auto;}
.elementor .featured-grid {display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr);}
.elementor .card-sale {background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--sh-1);
  padding: 12px; display: grid; gap: 12px; align-content: start;
  text-decoration: none; color: inherit;}
.elementor .card-sale .media {position: relative; border-radius: var(--r-md); overflow: hidden; aspect-ratio: 4 / 3;}
.elementor .card-sale .media img {width: 100%; height: 100%; object-fit: cover;}
.elementor .card-sale .media .tag-pill {position: absolute; top: 10px; right: 10px;}
.elementor .card-sale h3 {font: 600 18px/1.25 var(--font-display); margin: 0; padding-inline: 6px;}
.elementor .card-sale .meta {display: flex; gap: 12px; flex-wrap: wrap; padding-inline: 6px; margin: 0;
  font: 400 12.5px/1.5 var(--font-body); color: var(--text-muted);}
.elementor .card-sale .meta span {display: inline-flex; align-items: center; gap: 5px;}
.elementor .card-sale .meta svg {width: 13px; height: 13px;}
.elementor .card-sale .foot {display: flex; justify-content: space-between; align-items: center; padding: 0 6px 4px;}
.elementor .card-sale .price {font: 600 15.5px/1.2 var(--font-body);}
.elementor .card-sale .btn {padding: 10px 18px; font-size: 13px;}
@media (prefers-reduced-motion: no-preference) {
  .elementor .card-sale {transition: transform .18s ease, box-shadow .18s ease;}
  .elementor .card-sale:hover {transform: translateY(-2px); box-shadow: var(--sh-2);}
}
@media (max-width: 980px) {
  .elementor .featured-grid {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 640px) {
  .elementor .featured-grid {grid-template-columns: 1fr;}
}
.elementor .connect-head {display: flex; justify-content: space-between; align-items: center; gap: var(--s-5);
  margin-bottom: var(--s-6); flex-wrap: wrap;}
.elementor .connect-head h2 {font: 600 clamp(28px, 3.4vw, 46px)/1.1 var(--font-display); margin: 0; max-width: 16ch;}
.elementor .social-block {display: grid; gap: 10px; justify-items: end;}
.elementor .social-block span {font: 600 12px/1 var(--font-body); letter-spacing: .06em; text-transform: uppercase; color: var(--text-soft);}
.elementor .social-row {display: flex; gap: 8px;}
.elementor .social-row .btn-circle {width: 40px; height: 40px;}
.elementor .mosaic-stagger {display: grid; gap: 14px; grid-template-columns: repeat(7, 1fr); align-items: center;}
.elementor .mosaic-stagger .cell {border-radius: var(--r-md); overflow: hidden; aspect-ratio: 3 / 4;}
.elementor .mosaic-stagger .cell img {width: 100%; height: 100%; object-fit: cover;}
.elementor .mosaic-stagger .cell--hero {aspect-ratio: 9 / 13; border-radius: var(--r-lg);}
.elementor .mosaic-stagger .cell:nth-child(odd):not(.cell--hero) {transform: translateY(22px);}
.elementor .mosaic-stagger .cell:nth-child(even):not(.cell--hero) {transform: translateY(-18px);}
@media (max-width: 900px) {
  .elementor .mosaic-stagger {grid-template-columns: repeat(3, 1fr);}
  .elementor .mosaic-stagger .cell:nth-child(n+7) {display: none;}
}
.elementor .connect-arc {display: grid; gap: 20px; align-items: stretch;
  grid-template-columns: .85fr 1fr 1.5fr 1fr .85fr;
  height: clamp(380px, 38vw, 520px);
  overflow: hidden;}
.elementor .connect-arc .col {display: grid; gap: 20px; align-content: start; min-height: 0;}
.elementor .connect-arc .col img {width: 100%; object-fit: cover; display: block;
  border-radius: var(--r-lg);}
.elementor .connect-arc .col--a {align-self: center; height: auto;}
.elementor .connect-arc .col--a img {aspect-ratio: 4 / 3.4;}
.elementor .connect-arc .col--b {padding-top: 5%;}
.elementor .connect-arc .col--b img {aspect-ratio: 3 / 3.9;}
.elementor .connect-arc .col--hero {display: block; height: 100%;}
.elementor .connect-arc .col--hero img {height: 100%; border-radius: var(--r-xl);}
.elementor .connect-arc .col--d {padding-top: 13%;}
.elementor .connect-arc .col--d img {aspect-ratio: 3 / 3.7;}
.elementor .connect-arc .col--e {align-self: center; height: auto; transform: translateY(14%);}
.elementor .connect-arc .col--e img {aspect-ratio: 3 / 3.9;}
@media (max-width: 900px) {
  .elementor .connect-arc {grid-template-columns: 1fr 1.4fr 1fr; height: clamp(320px, 70vw, 420px);}
  .elementor .connect-arc .col--a,
  .elementor .connect-arc .col--e {display: none;}
}
.elementor .blog-grid {display: grid; gap: 24px; grid-template-columns: 1.55fr 1fr; align-items: stretch;}
.elementor .post-feature {position: relative; overflow: hidden; border-radius: var(--r-xl);
  min-height: 440px; display: flex; align-items: flex-end;
  text-decoration: none; color: var(--cream);}
.elementor .post-feature > img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.elementor .post-feature .scrim {position: absolute; inset: 0; background: linear-gradient(to top, rgba(28, 20, 16, .82) 0%, rgba(28, 20, 16, .38) 48%, rgba(28, 20, 16, .06) 78%);}
.elementor .post-feature .body {position: relative; display: grid; gap: 12px; padding: clamp(20px, 3vw, 36px);}
.elementor .post-feature h3 {font: 600 clamp(24px, 2.6vw, 38px)/1.12 var(--font-display); margin: 0; max-width: 22ch; text-wrap: balance;}
.elementor .post-meta {display: flex; gap: 14px; align-items: center; flex-wrap: wrap;
  font: 500 11.5px/1 var(--font-body); letter-spacing: .07em; text-transform: uppercase;
  color: color-mix(in srgb, currentColor 82%, transparent);}
.elementor .post-list {display: grid; gap: 16px; align-content: stretch;}
.elementor .post-row {display: grid; grid-template-columns: 104px 1fr auto; gap: 16px; align-items: center;
  background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--sh-1);
  padding: 12px; text-decoration: none; color: inherit;}
.elementor .post-row img {width: 104px; height: 92px; object-fit: cover; border-radius: var(--r-md);}
.elementor .post-row .txt {display: grid; gap: 7px;}
.elementor .post-row h4 {font: 600 16px/1.3 var(--font-display); margin: 0;}
.elementor .post-row .post-meta {color: var(--text-soft);}
.elementor .post-row .btn-circle {width: 38px; height: 38px;}
@media (prefers-reduced-motion: no-preference) {
  .elementor .post-feature,
  .elementor .post-row {transition: transform .18s ease, box-shadow .18s ease;}
  .elementor .post-feature:hover,
  .elementor .post-row:hover {transform: translateY(-2px); box-shadow: var(--sh-2);}
}
@media (max-width: 900px) {
  .elementor .blog-grid {grid-template-columns: 1fr;}
}
.elementor .filter-tabs {display: flex; flex-wrap: wrap; gap: 10px;}
.elementor .filter-tabs button {border: 0; cursor: pointer;
  font: 600 12.5px/1 var(--font-body); letter-spacing: .04em;
  padding: 11px 16px; border-radius: var(--r-pill);
  background: var(--panel); color: var(--text); box-shadow: var(--sh-1);}
.elementor .filter-tabs button:hover {background: var(--line);}
.elementor .filter-tabs button.is-active {background: var(--brand-fill); color: var(--brand-contrast);}
.elementor .post-grid {display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));}
.elementor .card-post {display: flex; flex-direction: column; gap: 10px;
  background: var(--surface); border-radius: var(--r-lg);
  box-shadow: var(--sh-1); overflow: hidden;
  color: inherit; text-decoration: none; padding-bottom: var(--s-4);}
.elementor .card-post .media {position: relative; aspect-ratio: 16 / 10; overflow: hidden;}
.elementor .card-post .media img {width: 100%; height: 100%; object-fit: cover;}
.elementor .card-post .media .tags {position: absolute; top: 12px; left: 12px;}
.elementor .card-post .media .tags,
.elementor .post-feature .tags {display: flex; gap: 8px; flex-wrap: wrap;}
.elementor .card-post .post-meta,
.elementor .card-post h4,
.elementor .card-post .mini-note {margin: 0; padding-inline: var(--s-4);}
.elementor .card-post h4 {font: 600 16.5px/1.35 var(--font-display);}
.elementor .card-post .post-meta {color: var(--text-soft);}
.elementor .card-post .mini-note {color: var(--text-muted);}
.elementor .card-post .cta {margin: 6px var(--s-4) 0; margin-top: auto; align-self: flex-start;
  padding: 11px 18px; font-size: 13.5px;}
@media (prefers-reduced-motion: no-preference) {
  .elementor .card-post {transition: transform .18s ease, box-shadow .18s ease;}
  .elementor .card-post:hover {transform: translateY(-2px); box-shadow: var(--sh-2);}
}
.elementor .stats-premium {background: var(--ink); color: var(--cream);
  border-radius: var(--r-hero);
  padding: clamp(28px, 4.5vw, 56px);
  display: grid; grid-template-columns: repeat(4, 1fr);}
[data-theme="dark"] .elementor .stats-premium {background: var(--panel);}
.elementor .stats-premium .cell {display: grid; gap: 10px; align-content: start;
  padding: 10px 28px;
  border-left: 1px solid color-mix(in srgb, var(--cream) 18%, transparent);}
.elementor .stats-premium .cell:first-child {border-left: 0; padding-left: 6px;}
/* Gemela de la regla de components.css: el cuerpo decide si la banda cabe.
   A 4,4vw las cuatro columnas piden mas que la caja y la ultima se corta. */
.elementor .stats-premium .kpi {font: 600 clamp(30px, 3.1vw, 52px)/1 var(--font-display); letter-spacing: -0.015em;}
.elementor .stats-premium .kpi--accent {color: var(--accent-coral);}
.elementor .stats-premium .lbl {font: 400 13.5px/1.55 var(--font-body); color: var(--cream); max-width: 22ch;}
.elementor .stats-premium .eyebrow {font: 600 11px/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--cream);}
@media (max-width: 860px) {
  .elementor .stats-premium {grid-template-columns: 1fr 1fr; row-gap: 26px;}
  .elementor .stats-premium .cell {border-left: 0; border-top: 1px solid color-mix(in srgb, var(--cream) 18%, transparent); padding: 20px 6px 0;}
  .elementor .stats-premium .cell:nth-child(-n+2) {border-top: 0; padding-top: 0;}
}
.elementor .card-testimonial--premium {background: var(--ink); color: var(--cream);
  border-radius: var(--r-xl); box-shadow: var(--sh-2);
  padding: var(--s-5);}
[data-theme="dark"] .elementor .card-testimonial--premium {background: var(--panel);}
.elementor .card-testimonial--premium .chip-icon {background: var(--accent-coral); color: var(--cream); margin-bottom: 6px;}
.elementor .card-testimonial--premium p {font: 300 19px/1.6 var(--font-body); color: color-mix(in srgb, var(--cream) 94%, transparent);}
.elementor .card-testimonial--premium .head {border-top: 1px solid color-mix(in srgb, var(--cream) 18%, transparent); padding-top: 16px; margin-top: 4px;}
.elementor .card-testimonial--premium .head strong {color: var(--cream);}
.elementor .card-testimonial--premium .head span {color: color-mix(in srgb, var(--cream) 62%, transparent);}
.elementor .card-testimonial--premium .avatar--initials {background: color-mix(in srgb, var(--cream) 14%, transparent); color: var(--cream); box-shadow: 0 0 0 2px color-mix(in srgb, var(--cream) 25%, transparent);}
.elementor .card-listing-v2 {position: relative; display: block; overflow: hidden;
  border-radius: var(--r-xl);
  aspect-ratio: 16 / 8.5;
  text-decoration: none; color: inherit;}
.elementor .card-listing-v2 > img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.elementor .card-listing-v2 .tag-pill {position: absolute; top: 16px; left: 16px;}
.elementor .card-listing-v2 .render-note {position: absolute; top: 16px; right: 16px;}
.elementor .card-listing-v2 .glass-panel {position: absolute; left: 14px; right: 14px; bottom: 14px;
  display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 14px 18px; border-radius: var(--r-lg);
  background: color-mix(in srgb, var(--bg) 80%, transparent);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);}
@supports not (backdrop-filter: blur(1px)) {
  .elementor .card-listing-v2 .glass-panel {background: color-mix(in srgb, var(--bg) 94%, transparent);}
}
.elementor .card-listing-v2 .glass-panel .info {display: grid; gap: 8px;}
.elementor .card-listing-v2 h3 {font: 600 20px/1.2 var(--font-display); margin: 0;}
.elementor .card-listing-v2 .glass-panel .right {display: flex; align-items: center; gap: 14px;}
.elementor .card-listing-v2 .price {font: 600 16px/1.2 var(--font-body);}
@media (prefers-reduced-motion: no-preference) {
  .elementor .card-listing-v2 {transition: transform .18s ease, box-shadow .18s ease;}
  .elementor .card-listing-v2:hover {transform: translateY(-2px); box-shadow: var(--sh-2);}
}
@media (max-width: 720px) {
  .elementor .card-listing-v2 {aspect-ratio: 4 / 3.4;}
}
.elementor .form-section {display: grid; gap: var(--s-6); grid-template-columns: 1fr 1.15fr; align-items: start;}
.elementor .form-side {display: grid; gap: 16px; align-content: start;}
.elementor .form-side h2 {font: 600 clamp(28px, 3.4vw, 44px)/1.1 var(--font-display); margin: 0;}
.elementor .form-side p {font: 400 15px/1.65 var(--font-body); color: var(--text-muted); max-width: 44ch; margin: 0;}
.elementor .contact-line {display: flex; gap: 12px; align-items: center; font: 500 14.5px/1.4 var(--font-body);}
.elementor .contact-line .chip-icon {background: var(--panel); color: var(--text); width: 42px; height: 42px;}
.elementor .form-card {background: var(--surface); border-radius: var(--r-xl); box-shadow: var(--sh-1);
  padding: var(--s-4); display: grid; gap: 14px;}
.elementor .form-row {display: grid; gap: 14px; grid-template-columns: 1fr 1fr;}
.elementor .textarea {font: 400 15px/1.5 var(--font-body); color: var(--text);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-sm); padding: 12px 14px; width: 100%;
  min-height: 110px; resize: vertical;}
.elementor .form-hint {font: 400 12.5px/1.5 var(--font-body); color: var(--text-soft);}
@media (max-width: 860px) {
  .elementor .form-section,
  .elementor .form-row {grid-template-columns: 1fr;}
}
.elementor .form-premium {display: grid; grid-template-columns: 1fr 1fr;
  border-radius: var(--r-hero); overflow: hidden;
  background: var(--ink); color: var(--cream);}
[data-theme="dark"] .elementor .form-premium {background: var(--panel);}
.elementor .form-premium .media {position: relative; min-height: 380px;}
.elementor .form-premium .media img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.elementor .form-premium .media .scrim {position: absolute; inset: 0; background: linear-gradient(to top, rgba(28, 20, 16, .55), rgba(28, 20, 16, 0) 55%);}
.elementor .form-premium .panel {padding: clamp(28px, 4vw, 56px); display: grid; gap: 16px; align-content: center;}
.elementor .form-premium h2 {font: 600 clamp(26px, 3vw, 40px)/1.12 var(--font-display); margin: 0; color: var(--cream);}
.elementor .form-premium .sub {font: 400 14.5px/1.6 var(--font-body); color: color-mix(in srgb, var(--cream) 78%, transparent); margin: 0;}
.elementor .form-premium .field > label {color: color-mix(in srgb, var(--cream) 80%, transparent);}
.elementor .form-premium .input,
.elementor .form-premium .select,
.elementor .form-premium .textarea {background: color-mix(in srgb, var(--cream) 9%, transparent);
  border-color: color-mix(in srgb, var(--cream) 26%, transparent);
  color: var(--cream);}
.elementor .form-premium .input::placeholder,
.elementor .form-premium .textarea::placeholder {color: color-mix(in srgb, var(--cream) 45%, transparent);}
.elementor .form-premium .btn-primary {background: var(--cream); color: var(--ink);}
.elementor .form-premium .btn-primary:hover {background: var(--white);}
.elementor .form-premium .form-hint {color: color-mix(in srgb, var(--cream) 55%, transparent);}
@media (max-width: 860px) {
  .elementor .form-premium {grid-template-columns: 1fr;}
  .elementor .form-premium .media {min-height: 240px;}
}
.elementor .footer-dark {background: var(--ink); color: var(--cream);
  border-radius: var(--r-hero); padding: clamp(28px, 4.5vw, 56px);
  display: grid; gap: var(--s-5);}
[data-theme="dark"] .elementor .footer-dark {background: var(--panel);}
.elementor .footer-dark .top {display: flex; justify-content: space-between; align-items: center; gap: var(--s-4); flex-wrap: wrap;
  padding-bottom: var(--s-4); border-bottom: 1px solid color-mix(in srgb, var(--cream) 18%, transparent);}
.elementor .footer-dark .top h2 {font: 600 clamp(26px, 3.2vw, 44px)/1.08 var(--font-display); margin: 0; max-width: 16ch;}
.elementor .footer-dark .top .btn {background: var(--cream); color: var(--ink);}
.elementor .footer-dark .cols {display: grid; gap: var(--s-5); grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));}
.elementor .footer-dark .brand-mark {color: var(--cream);}
.elementor .footer-dark .brand-mark svg {height: 30px; width: auto;}
.elementor .footer-dark h4 {font: 600 12px/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--cream); margin: 0 0 14px;}
.elementor .footer-dark ul {list-style: none; margin: 0; padding: 0; display: grid; gap: 10px;}
.elementor .footer-dark a {font: 400 13.5px/1.4 var(--font-body); color: color-mix(in srgb, var(--cream) 78%, transparent); text-decoration: none;}
.elementor .footer-dark a:hover {color: var(--cream);}
.elementor .footer-dark .bottom {display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); flex-wrap: wrap;
  padding-top: var(--s-4); border-top: 1px solid color-mix(in srgb, var(--cream) 18%, transparent);
  font: 400 12px/1.5 var(--font-body); color: color-mix(in srgb, var(--cream) 55%, transparent);}
.elementor .footer-dark .social-row .btn-circle {background: color-mix(in srgb, var(--cream) 12%, transparent); color: var(--cream);}
.elementor .footer-dark .social-row .btn-circle:hover {background: color-mix(in srgb, var(--cream) 24%, transparent);}
.elementor .footer-statement {background: var(--panel); border-radius: var(--r-hero);
  padding: clamp(32px, 5vw, 64px);
  display: grid; gap: 22px; justify-items: center; text-align: center;}
.elementor .footer-statement .wordmark {font: 600 clamp(34px, 6.5vw, 96px)/0.95 var(--font-display);
  text-transform: uppercase; letter-spacing: -0.01em;
  color: var(--brand); margin: 0;}
.elementor .footer-statement .wordmark-svg {display: block; width: min(100%, 960px); height: auto;
  color: var(--brand); margin-inline: auto;}
.elementor .footer-statement nav {display: flex; gap: 4px; flex-wrap: wrap; justify-content: center;}
.elementor .footer-statement nav a {font: 500 14px/1 var(--font-body); color: var(--text); text-decoration: none;
  padding: 10px 16px; border-radius: var(--r-pill);}
.elementor .footer-statement nav a:hover {background: var(--surface);}
.elementor .footer-statement .legal-line {width: 100%; display: flex; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap;
  border-top: 1px solid var(--line); padding-top: 18px;
  font: 400 12px/1.5 var(--font-body); color: var(--text-soft);}
.elementor .js-tilt {transition: box-shadow .18s ease, background-color .18s ease; will-change: transform;}
.elementor .to-top {position: fixed; right: 24px; bottom: 24px; z-index: 80;
  width: 52px; height: 52px; border-radius: 50%; border: 0; cursor: pointer;
  background: var(--brand-fill); color: var(--brand-contrast);
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: var(--sh-3);}
.elementor .to-top:hover {background: var(--brand-fill-strong);}
.elementor .to-top[hidden] {display: none;}
.elementor .to-top svg {width: 20px; height: 20px;}
@media (prefers-reduced-motion: no-preference) {
  .elementor .to-top {transition: transform .18s ease, background-color .18s ease;}
  .elementor .to-top:hover {transform: translateY(-3px);}
}
.elementor .avatar--ring {width: 56px; height: 56px; padding: 3px;
  background: conic-gradient(from 210deg, var(--accent-flame), var(--accent-coral), var(--sand), var(--accent-flame));
  border-radius: 50%; box-shadow: var(--sh-1); display: inline-grid;}
.elementor .avatar--ring .core {display: grid; place-items: center; width: 100%; height: 100%;
  border-radius: 50%; background: var(--surface); color: var(--text);
  font: 600 15px/1 var(--font-body);
  box-shadow: inset 0 0 0 2px var(--bg);}
.elementor .avatar--ring img.core {object-fit: cover;}
.elementor .avatar-chip {display: inline-flex; align-items: center; gap: 10px;
  background: var(--surface); border-radius: var(--r-pill); box-shadow: var(--sh-1);
  padding: 6px 16px 6px 7px;}
.elementor .avatar-chip .avatar {width: 36px; height: 36px; box-shadow: none;}
.elementor .avatar-chip .who {display: grid; line-height: 1.2;}
.elementor .avatar-chip .who strong {font: 600 13.5px/1.25 var(--font-body);}
.elementor .avatar-chip .who span {font: 400 11.5px/1.25 var(--font-body); color: var(--text-soft);}
.elementor .avatar-chip .check {display: inline-grid; place-items: center; width: 20px; height: 20px;
  border-radius: 50%; background: var(--ok); color: var(--cream); margin-left: 2px;}
.elementor .avatar-chip .check svg {width: 12px; height: 12px;}
.elementor .cta-band--premium {position: relative; overflow: hidden;
  background: var(--ink);
  border-radius: var(--r-hero);
  min-height: clamp(380px, 52vh, 520px);
  display: grid; place-items: center; text-align: center;
  padding: clamp(40px, 6vw, 88px);}
.elementor .cta-band--premium > img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.elementor .cta-band--premium .scrim {position: absolute; inset: 0;
  
  background: linear-gradient(to top right, rgba(28, 20, 16, .78) 0%, rgba(28, 20, 16, .42) 45%, rgba(28, 20, 16, .14) 78%);}
.elementor .cta-band--premium .inner {position: relative; display: grid; gap: 18px; justify-items: center; max-width: 720px;}
.elementor .cta-band--premium .inner .tag-pill {background: color-mix(in srgb, var(--cream) 16%, transparent); backdrop-filter: blur(10px); color: var(--cream);}
.elementor .cta-band--premium h2 {font: 600 clamp(32px, 4.6vw, 64px)/1.04 var(--font-display);
  text-transform: uppercase; letter-spacing: -0.005em;
  color: var(--cream); margin: 0; text-wrap: balance;}
.elementor .cta-band--premium .sub {font: 400 15.5px/1.6 var(--font-body); color: color-mix(in srgb, var(--cream) 90%, transparent); max-width: 48ch; margin: 0;}
.elementor .cta-band--premium .cta-pair {display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin-top: 6px;}
.elementor .cta-band--premium .btn-outline {background: transparent; color: var(--cream);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cream) 55%, transparent);}
.elementor .cta-band--premium .btn-outline:hover {background: color-mix(in srgb, var(--cream) 14%, transparent);}
.elementor .cta-band--premium .foot-line {position: absolute; left: clamp(24px, 4vw, 48px); right: clamp(24px, 4vw, 48px); bottom: 22px;
  display: flex; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap;
  padding-top: 14px; border-top: 1px solid color-mix(in srgb, var(--cream) 28%, transparent);
  font: 500 12px/1.4 var(--font-body); letter-spacing: .06em; text-transform: uppercase;
  color: color-mix(in srgb, var(--cream) 82%, transparent);}
.elementor .t-carousel {position: relative;}
.elementor .t-carousel .track {display: grid; grid-auto-flow: column;
  grid-auto-columns: min(420px, 82vw);
  gap: 20px; overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 4px 4px 8px;}
.elementor .t-carousel .track::-webkit-scrollbar {display: none;}
.elementor .t-carousel .track > * {scroll-snap-align: start; height: 100%;}
.elementor .t-carousel .track .card-testimonial--premium {grid-auto-columns: auto; max-width: none;}
.elementor .t-carousel .t-nav {display: flex; gap: 10px; justify-content: flex-end; margin-top: 14px;}
.elementor .t-carousel .t-nav .btn-circle {width: 44px; height: 44px; border: 0; cursor: pointer;
  background: var(--surface); color: var(--text); box-shadow: var(--sh-1);}
.elementor .t-carousel .t-nav .btn-circle:hover {background: var(--brand-fill); color: var(--brand-contrast);}
.elementor .t-carousel .t-nav .btn-circle:disabled {opacity: .35; cursor: default;}
.elementor .t-carousel .t-nav .btn-circle:disabled:hover {background: var(--surface); color: var(--text);}
.elementor .video-t-grid {display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));}
.elementor .card-video-t {position: relative; display: block; overflow: hidden;
  border-radius: var(--r-lg); aspect-ratio: 4 / 5;
  color: var(--cream); text-decoration: none;}
.elementor .card-video-t > img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
.elementor .card-video-t .shade {position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(28, 20, 16, .74), rgba(28, 20, 16, .06) 55%);}
.elementor .card-video-t .play {position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 64px; height: 64px; border-radius: 50%;
  background: color-mix(in srgb, var(--cream) 88%, transparent);
  color: var(--ink); display: grid; place-items: center;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  transition: transform .18s ease;}
.elementor .card-video-t:hover .play {transform: translate(-50%, -50%) scale(1.06);}
.elementor .card-video-t .play svg {width: 22px; height: 22px; margin-left: 3px;}
.elementor .card-video-t .who {position: absolute; left: 18px; right: 18px; bottom: 16px; display: grid; gap: 2px;}
.elementor .card-video-t .who strong {font: 600 16px/1.3 var(--font-display);}
.elementor .card-video-t .who span {font: 400 13px/1.4 var(--font-body); color: color-mix(in srgb, var(--cream) 82%, transparent);}
.elementor .card-video-t .dur {position: absolute; top: 14px; right: 14px;}
.elementor .wa-widget {position: fixed; right: 20px; bottom: 20px; z-index: 80; display: grid; justify-items: end; gap: 14px;}
.elementor .wa-fab {width: 58px; height: 58px; border-radius: 50%; border: 0; cursor: pointer;
  background: #25D366; color: #fff; display: grid; place-items: center;
  box-shadow: 0 6px 18px rgba(18, 140, 126, .35), var(--sh-2);
  transition: transform .15s ease, box-shadow .15s ease;}
.elementor .wa-fab:hover {transform: translateY(-2px); box-shadow: 0 10px 24px rgba(18, 140, 126, .4), var(--sh-3);}
.elementor .wa-fab:focus-visible {outline: 2px solid #075E54; outline-offset: 3px;}
.elementor .wa-fab svg {width: 30px; height: 30px;}
.elementor .wa-pop {width: min(350px, calc(100vw - 40px));
  border-radius: var(--r-xl); overflow: hidden;
  box-shadow: var(--sh-3); background: var(--panel);}
.elementor .wa-head {display: flex; align-items: center; gap: 12px; background: #075E54; color: #FAF7F4; padding: 14px 16px;}
.elementor .wa-head strong {font: 600 17px/1.2 var(--font-display); flex: 1; letter-spacing: .01em;}
.elementor .wa-ava {position: relative; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%;
  background: var(--lon-red); display: grid; place-items: center;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, #FAF7F4 25%, transparent);}
.elementor .wa-ava svg {width: 26px; height: auto; color: #FAF7F4;}
.elementor .wa-ava .wa-dot {position: absolute; right: -1px; bottom: -1px; width: 12px; height: 12px; border-radius: 50%; background: #25D366; border: 2px solid #075E54;}
.elementor .wa-close {border: 0; background: transparent; color: #FAF7F4; cursor: pointer; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%;}
.elementor .wa-close:hover {background: color-mix(in srgb, #FAF7F4 14%, transparent);}
.elementor .wa-close svg {width: 15px; height: 15px;}
.elementor .wa-body {padding: 18px 16px 4px;}
.elementor .wa-msg {background: var(--surface); color: var(--text);
  border-radius: var(--r-md); padding: 14px 16px 10px;
  box-shadow: var(--sh-1);
  display: grid; gap: 4px; max-width: 92%;}
.elementor .wa-msg strong {font: 600 14px/1.3 var(--font-body);}
.elementor .wa-msg p {margin: 0; font: 400 15px/1.55 var(--font-body);}
.elementor .wa-msg .wa-time {justify-self: end; font: 400 12px/1 var(--font-body); color: var(--text-soft);}
.elementor .wa-foot {padding: 14px 16px 16px;}
.elementor .wa-cta {display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%;
  font: 600 15px/1 var(--font-body);
  padding: 14px 26px; border-radius: var(--r-pill);
  background: #25D366; color: #fff; text-decoration: none;
  box-shadow: var(--sh-1);
  transition: background .15s ease, box-shadow .15s ease;}
.elementor .wa-cta:hover {background: #1FBF5C; box-shadow: var(--sh-2);}
.elementor .wa-cta svg {width: 19px; height: 19px;}
.elementor .to-top {bottom: 94px;}
@media (max-width: 920px) {
  body.has-sticky-cta .elementor .wa-widget {bottom: 84px;}
  body.has-sticky-cta .elementor .to-top {bottom: 158px;}
}
.elementor .calc-lon {display: grid; gap: var(--s-3);}
.elementor .calc-lon .brandbar {height: 5px; background: linear-gradient(90deg, var(--lon-red), var(--sand)); border-radius: var(--r-pill);}
.elementor .calc-lon .bar {display: flex; justify-content: flex-end; gap: 8px;}
.elementor .calc-lon .seg {display: inline-flex; border: 1px solid var(--line); border-radius: var(--r-pill); overflow: hidden; background: var(--surface);}
.elementor .calc-lon .seg button {border: 0; background: transparent; padding: 9px 14px; font: 600 12px/1 var(--font-body); color: var(--text-muted); cursor: pointer;}
.elementor .calc-lon .seg button.on {background: var(--brand-fill); color: var(--brand-contrast);}
.elementor .calc-lon .grid {display: grid; grid-template-columns: 1.15fr 1fr; gap: var(--s-4); align-items: start;}
@media (max-width: 760px) {
  .elementor .calc-lon .grid {grid-template-columns: 1fr;}
}
.elementor .calc-lon .inputs {background: var(--surface); border-radius: var(--r-xl); padding: clamp(22px, 3vw, 34px); box-shadow: var(--sh-1);}
.elementor .calc-lon .inputs h3 {font: 600 clamp(22px, 2.4vw, 28px)/1.15 var(--font-display); margin: 0 0 6px;}
.elementor .calc-lon .inputs .sub {font: 400 14px/1.6 var(--font-body); color: var(--text-muted); margin: 0 0 14px;}
.elementor .calc-lon label,
.elementor .calc-lon .seglabel {display: block; font: 600 12px/1 var(--font-body); letter-spacing: .07em;
  text-transform: uppercase; color: var(--text-soft); margin: 18px 0 8px;}
.elementor .calc-lon select {width: 100%; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-md);
  font: 500 15px/1.3 var(--font-body); background: var(--panel); color: var(--text); cursor: pointer;}
.elementor .calc-lon select:focus {outline: 2px solid var(--focus-ring); outline-offset: 2px;}
.elementor .calc-lon .plazos {display: flex; gap: 9px; flex-wrap: wrap;}
.elementor .calc-lon .plazos button {border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-pill);
  padding: 13px 22px; font: 600 14px/1 var(--font-body); color: var(--text); cursor: pointer;
  transition: box-shadow .12s ease;}
.elementor .calc-lon .plazos button:hover {box-shadow: var(--sh-1);}
.elementor .calc-lon .plazos button.on {background: var(--brand-fill); color: var(--brand-contrast); border-color: var(--brand-fill);}
.elementor .calc-lon input[type=range] {width: 100%; accent-color: var(--brand-fill); height: 26px;}
.elementor .calc-lon .rangeends {display: flex; justify-content: space-between; font: 600 12px/1 var(--font-body); color: var(--text-soft);}
.elementor .calc-lon .addons {margin-top: 16px; display: grid; gap: 10px;}
.elementor .calc-lon .chk {display: flex; align-items: center; gap: 9px;}
.elementor .calc-lon .chk input {width: 18px; height: 18px; accent-color: var(--brand-fill);}
.elementor .calc-lon .chk label {margin: 0; font: 500 14px/1.4 var(--font-body); letter-spacing: 0; text-transform: none; color: var(--text);}
.elementor .calc-lon .result {background: linear-gradient(160deg, var(--lon-red-earth), var(--lon-red-deep) 55%, var(--lon-red));
  color: #FAF7F4; border-radius: var(--r-hero);
  padding: clamp(24px, 3.2vw, 40px); box-shadow: var(--sh-2);
  display: grid; gap: 14px; align-content: start;}
.elementor .calc-lon .result .eyebrow {font: 600 11px/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: color-mix(in srgb, #FAF7F4 78%, transparent);}
.elementor .calc-lon .result .proj {font: 600 clamp(19px, 2vw, 24px)/1.15 var(--font-display); text-transform: uppercase; margin: 0;}
.elementor .calc-lon .cuotaCard {background: color-mix(in srgb, #FAF7F4 12%, transparent);
  border: 1px solid color-mix(in srgb, #FAF7F4 18%, transparent);
  border-radius: var(--r-lg); padding: 18px; text-align: center; display: grid; gap: 4px;}
.elementor .calc-lon .cuotaCard .lbl {font: 600 11px/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: color-mix(in srgb, #FAF7F4 80%, transparent);}
.elementor .calc-lon .cuotaCard .val {font: 600 clamp(32px, 3.4vw, 44px)/1.05 var(--font-display);}
.elementor .calc-lon .cuotaCard .sub {font: 400 13px/1.4 var(--font-body); color: color-mix(in srgb, #FAF7F4 80%, transparent);}
.elementor .calc-lon .rows {font: 400 14px/1.5 var(--font-body); display: grid; margin: 0;}
.elementor .calc-lon .rows .row {display: flex; justify-content: space-between; gap: 10px; padding: 10px 2px; border-bottom: 1px solid color-mix(in srgb, #FAF7F4 16%, transparent);}
.elementor .calc-lon .rows .row:last-of-type {border-bottom: 0;}
.elementor .calc-lon .rows .row .v {font-weight: 600; font-variant-numeric: tabular-nums; text-align: right;}
.elementor .calc-lon .rows .row.add .k,
.elementor .calc-lon .rows .row.add .v {color: color-mix(in srgb, #FAF7F4 80%, transparent);}
.elementor .calc-lon .rows .row.tot {padding-top: 12px; font-size: 15.5px;}
.elementor .calc-lon .rows .row.tot .k,
.elementor .calc-lon .rows .row.tot .v {font-weight: 700;}
.elementor .calc-lon .ctaCalc {display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font: 600 15px/1 var(--font-body); padding: 14px 26px; border-radius: var(--r-pill);
  background: var(--cream); color: var(--lon-red-deep); text-decoration: none;
  justify-self: start; box-shadow: var(--sh-1); transition: box-shadow .15s ease;}
.elementor .calc-lon .ctaCalc:hover {box-shadow: var(--sh-2);}
.elementor .calc-lon .ctaCalc svg {width: 18px; height: 18px;}
.elementor .calc-lon .disclaimer {font: 400 12.5px/1.6 var(--font-body); color: var(--text-muted); background: var(--surface); border-radius: var(--r-lg); padding: 14px 16px; box-shadow: var(--sh-1);}
.elementor .icon-grid {display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(122px, 1fr));}
.elementor .icon-tile {background: var(--surface); border-radius: var(--r-md); box-shadow: var(--sh-1);
  padding: 16px 10px 13px; display: grid; gap: 8px; justify-items: center; text-align: center;}
.elementor .icon-tile svg {width: 26px; height: 26px; color: var(--brand);}
.elementor .icon-tile span {font: 500 11.5px/1.35 var(--font-body); color: var(--text-muted);}
.elementor .lang-switch {display: flex; gap: 2px; background: var(--panel);
  border-radius: var(--r-pill); padding: 4px; flex: 0 0 auto;}
.elementor .lang-switch a {font: 600 12.5px/1 var(--font-body); color: var(--text-muted); text-decoration: none;
  padding: 8px 13px; border-radius: var(--r-pill); letter-spacing: .02em;}
.elementor .lang-switch a:hover,
.elementor .lang-switch a.is-active {background: var(--surface); color: var(--text); box-shadow: var(--sh-1);}
.elementor .lang-switch a.is-active {cursor: default;}
.elementor .lang-switch--mobile {display: none;}
@media (max-width: 920px) {
  .elementor .lang-switch--desktop {display: none;}
  .elementor .lang-switch--mobile {display: flex; margin: 6px 10px 2px;}
}
.elementor .icon-tile code {font-size: 10px; color: var(--text-soft);}


/* ===== assets/site.css ===== */
.elementor .container {max-width: 1320px; padding-inline: clamp(16px, 2.5vw, 40px);}
.elementor .bleed-band {padding-inline: 14px;}
.elementor .site-header {position: sticky; top: 14px; z-index: 70;
  padding-inline: 14px;}
.elementor .site-header .navbar-frame {max-width: none; margin-top: 0; box-shadow: var(--sh-2);}
@media (min-width: 921px) {
  .elementor .site-header .navbar-frame {display: grid; grid-template-columns: 1fr auto 1fr;}
  .elementor .site-header .navbar-frame nav.main-links {justify-self: start;}
  .elementor .site-header .navbar-frame .nav-actions {justify-self: end;}
}
.elementor .page-marco2 {padding: 14px 14px 0;}
.elementor .page-marco2 .hero-mask {height: calc(100vh - 118px); min-height: 520px;}
.elementor .page-marco2 .hero-title {font-size: clamp(30px, 4.6vw, 72px); max-width: 20ch;}
@media (max-width: 700px) {
  .elementor .page-marco2 .hero-mask .hero-title {top: 72px;}
  .elementor .page-marco2 .hero-mask {height: auto; min-height: calc(100svh - 96px);}
}
.elementor .page-marco1 {padding: 14px 14px 0; display: grid; gap: 14px;
  grid-template-rows: auto 1fr;
  min-height: calc(100vh - 104px);}
.elementor .page-marco1 .hero-intro {padding-block: var(--s-4) 0; padding-inline: clamp(4px, 1.5vw, 24px);}
.elementor .page-marco1 .hero-mask {min-height: 380px;}
.elementor .page-dividido {min-height: calc(100vh - 104px); display: grid; align-content: center;}
.elementor .page-dividido .hero-split {align-items: center;}
.elementor .page-dividido .media-organic img {aspect-ratio: auto; height: clamp(420px, calc(100vh - 240px), 780px);}
.elementor .page-hero--full {min-height: calc(100vh - 140px); align-content: center;}
.elementor .hero-under {display: grid; grid-template-columns: auto 1fr auto;
  gap: clamp(16px, 3vw, 48px); align-items: center;}
.elementor .hero-under .lead {max-width: 62ch;}
.elementor .hero-under-actions {display: flex; gap: 12px; flex-wrap: wrap;}
@media (max-width: 900px) {
  .elementor .hero-under {grid-template-columns: 1fr; align-items: start;}
}
.elementor .nav-toggle {display: none; width: 44px; height: 44px; border-radius: 50%;
  border: 0; background: var(--panel); color: var(--text); cursor: pointer;
  align-items: center; justify-content: center;}
.elementor .nav-toggle svg {width: 20px; height: 20px;}
@media (max-width: 920px) {
  .elementor .site-header {top: 8px; padding-inline: var(--s-2);}
  .elementor .site-header .navbar-frame {padding: 10px 14px; gap: 10px; flex-wrap: nowrap;}
  .elementor .site-header nav.main-links {display: none;
      position: absolute; left: 0; right: 0; top: calc(100% + 8px);
      background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--sh-3);
      padding: 10px; flex-direction: column; gap: 2px;}
  .elementor .site-header nav.main-links a {padding: 14px 16px; font-size: 15px;}
  .elementor .site-header .navbar-frame.nav-open nav.main-links {display: flex;}
  .elementor .nav-toggle {display: inline-flex;}
  .elementor .site-header .nav-actions .btn-secondary {display: none;}
  .elementor .site-header .nav-actions .btn-primary {padding: 12px 18px; font-size: 14px;}
  .elementor .site-header .navbar-frame {position: relative;}
  .elementor .site-header .navbar-frame:has(.theme-toggle--menu) .nav-actions .theme-toggle {display: none;}
  .elementor .theme-toggle--menu {display: flex; align-items: center; gap: 10px; align-self: flex-start;
      width: auto; height: auto; white-space: nowrap;
      background: var(--panel); border: 0; cursor: pointer; color: var(--text);
      padding: 12px 16px; border-radius: var(--r-pill);
      font: 600 14px/1 var(--font-body); margin: 6px 6px 4px;}
  .elementor .theme-toggle--menu svg {position: static; flex: 0 0 auto;}
  .elementor .theme-toggle--menu svg {width: 18px; height: 18px;}
  .elementor .site-header nav.main-links .lang-switch--mobile {align-self: flex-start; margin: 8px 6px 10px;}
}
.elementor .sticky-cta {position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 75;
  display: none; gap: 10px;
  background: var(--surface); border-radius: var(--r-pill);
  box-shadow: var(--sh-3); padding: 8px;}
.elementor .sticky-cta .btn {flex: 1; justify-content: center; min-height: 48px;}
.elementor .sticky-cta[data-visible="false"] {display: none !important;}
@media (max-width: 920px) {
  .elementor .sticky-cta[data-visible="true"] {display: flex;}
  .elementor .to-top {bottom: 86px;}
  body.has-sticky-cta .elementor .to-top {bottom: 150px;}
}
.elementor .page-hero {padding-block: var(--s-6) var(--s-4); display: grid; gap: 16px;}
.elementor .page-hero h1 {font: 600 clamp(32px, 4.5vw, 60px)/1.06 var(--font-display);
  margin: 0; letter-spacing: -0.01em; text-wrap: balance; max-width: 22ch;}
.elementor .page-hero .lead {max-width: 56ch;}
.elementor .page-hero--centered {text-align: center; justify-items: center;}
.elementor .page-hero--centered h1 {margin-inline: auto;}
.elementor .hero-intro {display: grid; gap: var(--s-4); grid-template-columns: 1fr;
  align-items: end; padding-block: var(--s-5) var(--s-4);}
@media (min-width: 900px) {
  .elementor .hero-intro {grid-template-columns: 1.6fr 1fr; gap: var(--s-7);}
}
@media (min-width: 900px) {
  .elementor .hero-intro .lead {justify-self: end; padding-bottom: 10px;}
}
.elementor .compare-grid {display: grid; gap: var(--s-4); grid-template-columns: 1fr 1fr; align-items: start;}
@media (max-width: 860px) {
  .elementor .compare-grid {grid-template-columns: 1fr;}
}
.elementor .compare-col {background: var(--surface); border-radius: var(--r-xl); box-shadow: var(--sh-1);
  padding: var(--s-4); display: grid; gap: 14px; align-content: start;}
.elementor .compare-col .media {border-radius: var(--r-md); overflow: hidden; aspect-ratio: 16 / 9;}
.elementor .compare-col .media img {width: 100%; height: 100%; object-fit: cover;}
.elementor .compare-col h2 {font: 600 24px/1.15 var(--font-display); margin: 0;}
.elementor .compare-row {display: flex; justify-content: space-between; gap: 14px; padding: 11px 2px; border-bottom: 1px solid var(--line);}
.elementor .compare-row dt {font: 400 14px/1.45 var(--font-body); color: var(--text-muted); margin: 0;}
.elementor .compare-row dd {font: 600 14.5px/1.45 var(--font-body); margin: 0; text-align: right;}
.elementor .compare-col dl {margin: 0;}
.elementor .econ-module {background: var(--panel); border-radius: var(--r-xl);
  padding: clamp(20px, 3.5vw, 40px); display: grid; gap: var(--s-4);}
.elementor .econ-break {display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));}
.elementor .econ-cell {background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--sh-1); padding: 18px; display: grid; gap: 6px;}
.elementor .econ-cell .k {font: 600 11px/1 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--text-soft);}
.elementor .econ-cell .v {font: 600 clamp(20px, 2vw, 26px)/1.15 var(--font-display);}
.elementor .econ-cell .s {font: 400 12.5px/1.5 var(--font-body); color: var(--text-muted);}
.elementor .econ-assumptions {font: 400 13px/1.6 var(--font-body); color: var(--text-muted);
  border-top: 1px solid var(--line); padding-top: 14px; max-width: 90ch;}
.elementor .calendly-wrap {background: var(--surface); border-radius: var(--r-xl); box-shadow: var(--sh-1);
  overflow: hidden; min-height: 680px;}
.elementor .calendly-wrap iframe {width: 100%; height: 680px; border: 0; display: block;}
.elementor .article {max-width: 72ch; margin-inline: auto;}
.elementor .article .post-meta {margin-bottom: 18px;}
.elementor .article h1 {font: 600 clamp(30px, 4vw, 48px)/1.12 var(--font-display); margin: 0 0 18px; letter-spacing: -0.01em;}
.elementor .article h2 {font: 600 clamp(22px, 2.6vw, 30px)/1.2 var(--font-display); margin: 36px 0 12px;}
.elementor .article p {font: 400 16.5px/1.75 var(--font-body); margin: 0 0 16px; color: var(--text);}
.elementor .article .direct-answer {background: var(--panel); border-radius: var(--r-lg); padding: 20px 22px;
  font: 400 16.5px/1.7 var(--font-body); margin: 0 0 24px;}
.elementor .article ul {font: 400 16.5px/1.75 var(--font-body); padding-left: 22px; display: grid; gap: 8px;}
.elementor .faq-group {margin-bottom: var(--s-6);}
.elementor .faq-group > h2 {font: 600 clamp(20px, 2.4vw, 28px)/1.2 var(--font-display); margin: 0 0 8px;}
.elementor .steps-row {display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));}
.elementor .step-cell {background: var(--surface); border-radius: var(--r-xl); box-shadow: var(--sh-1); padding: var(--s-4); display: grid; gap: 10px; align-content: start;}
.elementor .step-cell .n {width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  background: var(--brand-fill); color: var(--brand-contrast); font: 600 16px/1 var(--font-body);}
.elementor .step-cell h3 {font: 600 19px/1.25 var(--font-display); margin: 0;}
.elementor .step-cell p {font: 400 14.5px/1.6 var(--font-body); color: var(--text-muted); margin: 0;}
.elementor .section-tight {padding-block: var(--s-5);}
.elementor .center-cta {display: flex; justify-content: center; margin-top: var(--s-4);}
.elementor .mini-note {font: 400 12.5px/1.6 var(--font-body); color: var(--text-soft);}
.elementor .wa-fab-note {font: 500 13px/1.3 var(--font-body);}
.elementor .footer-dark .container {max-width: none; margin-inline: 0; width: 100%;}
@media (min-width: 921px) {
  .elementor .theme-toggle--menu {display: none;}
}
