.elementor-kit-5{--e-global-color-primary:#F2F1EC;--e-global-color-secondary:#B7BEB9;--e-global-color-text:#D6DAD5;--e-global-color-accent:#67BD45;--e-global-color-fmperaclaro:#8BD16A;--e-global-color-fmnegro:#0B0D0C;--e-global-color-fmnegroprof:#060807;--e-global-color-fmcarbon:#131815;--e-global-color-fmcarbon2:#1A211D;--e-global-color-fmbosque:#0A2D1B;--e-global-color-fmbosquehondo:#06170F;--e-global-color-fmmusgo:#123824;--e-global-color-fmtenue:#9AA29D;--e-global-color-fmfilete:#26302B;--e-global-color-fmrojo:#EE322D;--e-global-color-fmtinta:#16201A;--e-global-typography-primary-font-family:"Instrument Serif";--e-global-typography-primary-font-weight:400;--e-global-typography-primary-line-height:1.05em;--e-global-typography-secondary-font-family:"Hanken Grotesk";--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.3em;--e-global-typography-secondary-letter-spacing:0.01em;--e-global-typography-text-font-family:"Hanken Grotesk";--e-global-typography-text-font-size:clamp(1.0625rem, .98rem + .28vw, 1.1875rem);--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"Hanken Grotesk";--e-global-typography-accent-font-size:16px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0.01em;background-color:var( --e-global-color-fmnegro );color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 a{color:var( --e-global-color-accent );}.elementor-kit-5 a:hover{color:var( --e-global-color-fmperaclaro );}.elementor-kit-5 h1{color:var( --e-global-color-primary );font-family:"Instrument Serif", Sans-serif;font-weight:400;}.elementor-kit-5 h2{color:var( --e-global-color-primary );font-family:"Instrument Serif", Sans-serif;font-weight:400;}.elementor-kit-5 h3{color:var( --e-global-color-primary );font-family:"Instrument Serif", Sans-serif;font-weight:400;}.elementor-kit-5 h4{color:var( --e-global-color-primary );font-family:"Instrument Serif", Sans-serif;font-weight:400;}.elementor-kit-5 h5{color:var( --e-global-color-primary );font-family:"Instrument Serif", Sans-serif;font-weight:400;}.elementor-kit-5 h6{color:var( --e-global-color-primary );font-family:"Instrument Serif", Sans-serif;font-weight:400;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1023px){.elementor-kit-5{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:699px){.elementor-kit-5{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --e-gv-d8f4a4e:#0B0D0C; --e-gv-13c775f:#060807; --e-gv-ba7ae2f:#0A2D1B; --e-gv-74dc097:#67BD45; --e-gv-22a9abc:#8BD16A; --e-gv-dae92fd:#F2F1EC; --e-gv-e00a238:#D6DAD5; --e-gv-5d293ee:#9AA29D; --e-gv-40f3b9b:#EE322D; --e-gv-3f413fb:rgba(242, 241, 236, .12); --e-gv-c33f967:Instrument Serif; --e-gv-75526f7:Hanken Grotesk; --e-gv-e59c66d:Hanken Grotesk Local; --e-gv-368b90a:clamp(3.25rem, min(1rem + 7vw, 11vh + 1rem), 8.75rem); --e-gv-40086a3:clamp(2.5rem, 1.1rem + 4vw, 5.5rem); --e-gv-a10592c:clamp(1.0625rem, .98rem + .28vw, 1.1875rem); --e-gv-18e6371:clamp(20px, 4.6vw, 64px); --e-gv-e24a2f3:clamp(96px, 11vw, 176px); --e-gv-173bc29:1320px; --e-gv-c0a0802:20px; --fm-negro-profundo:#060807; --fm-negro:#0B0D0C; --fm-carbon:#131815; --fm-carbon-2:#1A211D; --fm-bosque-hondo:#06170F; --fm-bosque:#0A2D1B; --fm-musgo:#123824; --fm-pera:#67BD45; --fm-pera-claro:#8BD16A; --fm-hueso:#F2F1EC; --fm-texto:#D6DAD5; --fm-gris:#B7BEB9; --fm-tenue:#9AA29D; --fm-apagado:#6E7671; --fm-filete:#26302B; --fm-linea:rgba(242, 241, 236, .12); --fm-linea-fuerte:rgba(242, 241, 236, .22); --fm-rojo:#EE322D; --fm-tinta:#16201A; --fm-tinta-2:#3A403C; --fm-font-display:Instrument Serif; --fm-font-sans:Hanken Grotesk; --fm-fs-display:clamp(3.25rem, min(1rem + 7vw, 11vh + 1rem), 8.75rem); --fm-fs-h2:clamp(2.5rem, 1.1rem + 4vw, 5.5rem); --fm-fs-h3:clamp(1.875rem, 1.2rem + 1.4vw, 2.625rem); --fm-fs-lead:clamp(1.625rem, 1.05rem + 1.35vw, 2.375rem); --fm-fs-body-lg:clamp(1.1875rem, 1.05rem + .45vw, 1.375rem); --fm-fs-body:clamp(1.0625rem, .98rem + .28vw, 1.1875rem); --fm-gutter:clamp(20px, 4.6vw, 64px); --fm-col-gap:clamp(20px, 2.6vw, 40px); --fm-space-section:clamp(96px, 11vw, 176px); --fm-space-block:clamp(48px, 6vw, 96px); --fm-sierra-band-h:clamp(110px, 18vw, 300px); --fm-fs-small:15px; --fm-fs-xs:13px; --fm-max:1320px; --fm-max-wide:1520px; --fm-radius:20px; --fm-radius-sm:12px; --fm-header-h:96px; }
/* Start custom CSS *//* ==========================================================================
   Frutas Moncalvillo · CSS del sitio (Kit #5)
   Solo lo que Elementor V4 no hace de forma nativa. Fuente: web/assets/css/fm.css
   Tarea C, 28/09/2026 · consolidación del kit (páginas interiores), 29/09/2026: §4 anclas, §10–§13.
   Las clases fm-* son globales V4 y salen en el HTML con su nombre (son los ganchos de este CSS).
   Este CSS se imprime en post-5.css ANTES que las clases y los estilos locales: para ganarles, «body .elementor …».
   ========================================================================== */

/* 1. Respaldo métrico de las fuentes: si la fuente de Google llega tarde,
      el texto no cambia de tamaño al sustituirse (métricas medidas con fontTools). */
@font-face { font-family: "Instrument Serif Fallback"; src: local("Times New Roman"), local("TimesNewRomanPSMT"), local("Liberation Serif"); size-adjust: 81.5%; ascent-override: 121.5%; descent-override: 38%; line-gap-override: 0%; }
@font-face { font-family: "Instrument Serif Fallback"; font-style: italic; src: local("Times New Roman Italic"), local("TimesNewRomanPS-ItalicMT"), local("Liberation Serif Italic"); size-adjust: 79%; ascent-override: 125.3%; descent-override: 39.2%; line-gap-override: 0%; }
@font-face { font-family: "Hanken Grotesk Fallback"; src: local("Arial"), local("ArialMT"), local("Liberation Sans"); size-adjust: 100.3%; ascent-override: 99.7%; descent-override: 30.2%; line-gap-override: 0%; }

/* 2. Pilas de fuentes. Las variables V4 de fuente solo guardan el nombre de Google
      (así Elementor sabe qué fuente servir en local); aquí se les añade el respaldo.
      :root:root gana al :root de las variables sin depender del orden. */
:root:root {
  --fm-font-display: "Instrument Serif", "Instrument Serif Fallback", "Times New Roman", serif;
  --fm-font-sans: "Hanken Grotesk", "Hanken Grotesk Fallback", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* 3. Alto de la cabecera: la variable V4 guarda el de escritorio (96 px); en tableta extra y menos, 76 px. */
@media (max-width: 1179px) { :root:root { --fm-header-h: 76px; } }

/* 4. Base del documento (html y body de fm.css). Anclas: la cabecera ya está plegada al llegar (72 px; 64 px en ≤ 1179)
      → su alto + 8 px = 80 px (72 px en ≤ 1179), como la maqueta. */
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
@media (max-width: 1179px) { html { scroll-padding-top: 72px; } }
body { overflow-x: clip; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
::selection { background: #67BD45; color: #0B0D0C; }
main[tabindex="-1"]:focus { outline: none; }

/* 5. Foco visible propio en verde (anula el del tema Hello) */
.elementor a:focus-visible, .elementor button:focus-visible, .elementor [tabindex]:focus-visible,
.elementor input:focus-visible, .elementor select:focus-visible, .elementor textarea:focus-visible {
  outline: 2px solid var(--fm-pera); outline-offset: 3px; box-shadow: none;
}

/* 6. Grano fino de película sobre fotos (clase fm-grain en el contenedor de la foto) */
.elementor .fm-grain::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .09; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* 7. Cabecera al desplazarse: el JS global pone .is-scrolled en el elemento con la clase fm-header.
      El velo (::before) y el fondo con desenfoque (::after) están en la clase fm-header. */
.elementor .fm-header.is-scrolled { height: 72px; }
.elementor .fm-header.is-scrolled::after { opacity: 1; }
.elementor .fm-header.is-scrolled::before { opacity: 0; }
.elementor .fm-header.is-scrolled .fm-header-logo { height: 52px; }
@media (max-width: 1179px) {
  .elementor .fm-header.is-scrolled { height: 64px; }
  .elementor .fm-header.is-scrolled .fm-header-logo-compact { height: 38px; }
}
/* La línea roja del logo se traza al cargar (si e-svg conserva la clase interna .mc-linea del SVG) */
@keyframes fm-draw-x { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: no-preference) {
  .elementor .fm-header-logo .mc-linea { transform-box: fill-box; transform-origin: left center; animation: fm-draw-x 1.1s cubic-bezier(.16, 1, .3, 1) .5s both; }
}

/* 8. Pantallas táctiles: sin elevación de las tarjetas al tocar (en el prototipo el hover va en @media (hover: hover)) */
@media (hover: none) {
  body .elementor .fm-vitrina:hover { transform: none; }
  body .elementor .fm-vitrina:hover .fm-vitrina-img { transform: none; }
}

/* 9. Movimiento reducido: sin desplazamiento suave ni transiciones largas */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .elementor *, .elementor *::before, .elementor *::after {
    animation-duration: .01ms !important; animation-iteration-count: 1 !important;
    transition-duration: .01ms !important; scroll-behavior: auto !important;
  }
}

/* 10. Cabecera de página interior (clases fm-pagehead*, fm-crumbs, fm-toc). Fuente: fm.css (CABECERA DE PÁGINA INTERIOR).
       Ken Burns de entrada de la foto (4,8 s, acaba solo: sin botón de pausa, WCAG 2.2.2), entrada del texto (el H1 sin
       retardo) y filete; los estilos locales V4 descartan animation, por eso va aquí. */
@keyframes fm-ph-kb { from { transform: scale(1.1) translate3d(1.2%, .6%, 0); } to { transform: scale(1.02) translate3d(0, 0, 0); } }
@keyframes fm-ph-in { from { opacity: 0; transform: translate3d(0, 24px, 0); } }
@keyframes fm-filete-in { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: no-preference) {
  body .elementor .fm-pagehead-img { animation: fm-ph-kb 4.8s cubic-bezier(.33, .1, .25, 1) both; }
  body .elementor .fm-pagehead :is(.fm-crumbs, .fm-pagehead-title, .fm-pagehead-subtitle, .fm-pagehead-intro, .fm-toc) { animation: fm-ph-in 1s cubic-bezier(.16, 1, .3, 1) both; }
  body .elementor .fm-pagehead .fm-pagehead-subtitle { animation-delay: 120ms; }
  body .elementor .fm-pagehead .fm-pagehead-intro { animation-delay: 200ms; }
  body .elementor .fm-pagehead .fm-toc { animation-delay: 320ms; }
  body .elementor .fm-pagehead .fm-pagehead-filete { animation: fm-filete-in 1s cubic-bezier(.16, 1, .3, 1) .5s both; }
}
/* Primera sección tras la cabecera: su arranque tiene que verse en la primera pantalla.
   29/09 (corrección del usuario): más aire entre la cabecera y el primer contenido (+24 px en móvil, unos +50 px a 1440). */
body .elementor .fm-pagehead + * { padding-block-start: clamp(60px, 3.2vw + 44px, 108px); }
/* Pantallas bajas (1280×720, 1366×768): se compacta el ritmo vertical */
@media (min-width: 1024px) and (max-height: 780px) {
  body .elementor .fm-pagehead { min-height: clamp(500px, 70svh, 820px); }
  body .elementor .fm-pagehead-content { padding-block: 36px 24px; }
  body .elementor .fm-pagehead-subtitle { margin-block-start: 16px; font-size: clamp(1.625rem, 1rem + 1.2vw, 2rem); }
  body .elementor .fm-toc { margin-block-start: 24px; }
}
/* Índice con 5 anclas: entre 700 y 881 px la quinta quedaba sola en la segunda línea → 3 + 2 */
@media (min-width: 700px) and (max-width: 881px) { body .elementor .fm-toc:has(> :nth-child(5)) { max-width: 37rem; } }
/* Titular largo (clase fm-pagehead-title-long en el H1): en móvil las migas pierden la raya y el ítem actual no se parte */
@media (max-width: 699px) {
  body .elementor .fm-pagehead:has(.fm-pagehead-title-long) .fm-crumbs::before { display: none; }
  body .elementor .fm-pagehead:has(.fm-pagehead-title-long) .fm-crumb { white-space: nowrap; }
}
@media (max-width: 374px) { body .elementor .fm-pagehead:has(.fm-pagehead-title-long) .fm-crumbs { letter-spacing: .12em; } }

/* 11. Vitrinas (Home) y fichas (Productos, Formatos) de 1024 a 1099 px: horizontales en una columna, como la maqueta
       (el punto de corte «tableta» del Kit acaba en 1023; la maqueta cambia en 1099). */
@media (min-width: 1024px) and (max-width: 1099px) {
  body .elementor .fm-vitrinas, body .elementor .fm-fichas { grid-template-columns: minmax(0, 1fr); }
  body .elementor .fm-vitrina { display: grid; grid-template-columns: minmax(0, 46%) minmax(0, 1fr); }
  body .elementor .fm-vitrina > :first-child { aspect-ratio: auto; min-height: 300px; height: 100%; }
  body .elementor .fm-vitrina > :last-child { padding: 36px 36px 32px 8px; }
  body .elementor .fm-ficha { display: grid; grid-template-columns: minmax(0, 44%) minmax(0, 1fr); align-items: center; }
  body .elementor .fm-ficha-stage { height: 100%; }
  body .elementor .fm-ficha-body { padding: 32px 40px 32px 12px; }
}

/* 12. Corte fotográfico (fm-corte): en ≤ 1023 la foto va arriba a todo el ancho y se funde por arriba y por abajo.
       El velo de escritorio depende de la foto: va en el estilo local del e-div-block «fm-corte-veil» de cada página. */
@media (max-width: 1023px) {
  body .elementor .fm-corte-veil { background-image: linear-gradient(180deg, #0B0D0C 0%, rgba(11, 13, 12, 0) 18%, rgba(11, 13, 12, 0) 55%, rgba(11, 13, 12, .6) 80%, #0B0D0C 100%); }
}

/* 13. Formulario de Elementor Pro (widget V3) con el aspecto de .fm-form de la maqueta. El widget va dentro de un
       e-flexbox con la clase «fm-formcard» (tarjeta; contenedor de consulta). Etiquetas encima, columnas 50 %/100 %,
       marcador de obligatorio activado y la pestaña «Estilo» del widget sin tocar: estas reglas ganan a sus valores
       por defecto (fondo blanco de campos, texto blanco del botón) sin !important. Fuente: fm.css (FORMULARIOS). */
body .elementor .fm-formcard > .elementor-widget-form { width: 100%; margin-block-start: clamp(28px, 3vw, 40px); }
body .elementor .fm-formcard > .elementor-widget-form:first-child { margin-block-start: 0; }
body .elementor .fm-formcard .elementor-form .elementor-form-fields-wrapper { margin: 0 -9px; row-gap: 22px; }
body .elementor .fm-formcard .elementor-form .elementor-field-group { padding: 0 9px; margin-bottom: 0; flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
@container (max-width: 519px) { body .elementor .fm-formcard .elementor-form .elementor-field-group { width: 100%; } }
body .elementor .fm-formcard .elementor-form .elementor-field-group .elementor-field-label { display: block; margin: 0 0 8px; padding: 0; font-family: var(--fm-font-sans); font-size: var(--fm-fs-small); font-weight: 600; line-height: 1.3; letter-spacing: 0; color: var(--fm-hueso); }
body .elementor .fm-formcard .elementor-form .elementor-mark-required .elementor-field-label::after { content: " *"; padding: 0; color: var(--fm-pera); font-weight: 700; }
body .elementor .fm-formcard .elementor-form .elementor-field-group .elementor-field-textual.elementor-field-textual {
  width: 100%; min-height: 52px; padding: 14px 16px; border-radius: var(--fm-radius-sm); box-shadow: none;
  background-color: #151B17; border: 1px solid rgba(242, 241, 236, .34); color: var(--fm-hueso);
  font-family: var(--fm-font-sans); font-size: 1rem; font-weight: 400; line-height: 1.4;
  transition: border-color .3s cubic-bezier(.22, .61, .36, 1), background-color .3s cubic-bezier(.22, .61, .36, 1);
}
body .elementor .fm-formcard .elementor-form .elementor-field-group textarea.elementor-field-textual.elementor-field-textual { min-height: 164px; resize: vertical; }
body .elementor .fm-formcard .elementor-form .elementor-field-group .elementor-field-textual::placeholder { color: var(--fm-tenue); opacity: 1; }
body .elementor .fm-formcard .elementor-form .elementor-field-group .elementor-field-textual.elementor-field-textual:hover { border-color: rgba(242, 241, 236, .55); }
body .elementor .fm-formcard .elementor-form .elementor-field-group .elementor-field-textual.elementor-field-textual:focus { border-color: var(--fm-pera); background-color: #1A221D; outline: none; }
body .elementor .fm-formcard .elementor-form .elementor-field-group .elementor-field-textual.elementor-field-textual:focus-visible { outline: 2px solid var(--fm-pera); outline-offset: 2px; }
body .elementor .fm-formcard .elementor-form .elementor-field-group.elementor-error .elementor-field-textual.elementor-field-textual { border-color: #F07A6E; }
body .elementor .fm-formcard .elementor-form .elementor-select-wrapper .elementor-field-textual.elementor-field-textual { padding-right: 48px; cursor: pointer; }
body .elementor .fm-formcard .elementor-form .elementor-select-wrapper .select-caret-down-wrapper { right: 18px; color: var(--fm-pera); font-size: 14px; }
body .elementor .fm-formcard .elementor-form .elementor-select-wrapper select option { background: var(--fm-carbon-2); color: var(--fm-hueso); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-radio .elementor-field-subgroup { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
@container (min-width: 520px) { body .elementor .fm-formcard .elementor-form .elementor-field-type-radio .elementor-field-subgroup { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body .elementor .fm-formcard .elementor-form .elementor-field-type-radio .elementor-field-option { position: relative; display: flex; align-items: center; gap: 14px; min-height: 60px; margin: 0; padding: 12px 16px; background: #151B17; border: 1px solid rgba(242, 241, 236, .2); border-radius: var(--fm-radius-sm); transition: border-color .3s cubic-bezier(.22, .61, .36, 1), background-color .3s cubic-bezier(.22, .61, .36, 1); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-radio .elementor-field-option:hover { border-color: rgba(242, 241, 236, .55); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-radio .elementor-field-option:has(input:checked) { border-color: var(--fm-pera); background: rgba(103, 189, 69, .1); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-radio .elementor-field-option input { flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--fm-pera); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-radio .elementor-field-option label { font-size: .9375rem; font-weight: 500; line-height: 1.3; color: var(--fm-hueso); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-acceptance .elementor-field-option { display: flex; align-items: flex-start; gap: 12px; }
body .elementor .fm-formcard .elementor-form .elementor-field-type-acceptance .elementor-field-option input { flex: none; width: 22px; height: 22px; margin: 0; accent-color: var(--fm-pera); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-acceptance .elementor-field-option label { display: inline; font-family: var(--fm-font-sans); font-size: .9688rem; font-weight: 400; line-height: 1.5; color: var(--fm-texto); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-acceptance a { color: var(--fm-hueso); text-decoration: underline; text-decoration-color: rgba(103, 189, 69, .7); text-underline-offset: 3px; }
body .elementor .fm-formcard .elementor-form .elementor-field-type-acceptance a:hover { color: var(--fm-pera-claro); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-submit { margin-top: 6px; }
body .elementor .fm-formcard .elementor-form .elementor-button[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 56px; padding: 0 28px;
  border-radius: 999px; border: 1px solid transparent; background-color: var(--fm-pera); color: var(--fm-negro);
  font-family: var(--fm-font-sans); font-size: 1rem; font-weight: 600; line-height: 1; letter-spacing: .01em; transition: background-color .3s cubic-bezier(.22, .61, .36, 1);
}
body .elementor .fm-formcard .elementor-form .elementor-button[type="submit"]:hover, body .elementor .fm-formcard .elementor-form .elementor-button[type="submit"]:focus-visible { background-color: var(--fm-pera-claro); color: var(--fm-negro); }
body .elementor .fm-formcard .elementor-form .elementor-message { margin-top: 18px; font-family: var(--fm-font-sans); font-size: var(--fm-fs-small); line-height: 1.55; }
body .elementor .fm-formcard .elementor-form .elementor-message.elementor-message-success { padding: 16px 18px; border-radius: var(--fm-radius-sm); border: 1px solid rgba(103, 189, 69, .45); background: rgba(103, 189, 69, .08); color: var(--fm-texto); }
body .elementor .fm-formcard .elementor-form .elementor-message.elementor-message-danger, body .elementor .fm-formcard .elementor-form .elementor-error .elementor-message { color: #F4978D; }
body .elementor .fm-formcard .elementor-form .elementor-message::before { display: none; }
/* Casilla de aceptación propia (la nativa sale blanca sobre la tarjeta negra): borde ≥ 3:1 y marca negra sobre Verde Pera */
body .elementor .fm-formcard .elementor-form .elementor-field-type-acceptance .elementor-field-option input.elementor-acceptance-field {
  -webkit-appearance: none; appearance: none; display: grid; place-content: center; flex: none;
  width: 22px; height: 22px; min-height: 0; margin: 0; padding: 0; border-radius: 6px; cursor: pointer;
  border: 1px solid rgba(242, 241, 236, .5); background-color: #151B17; transition: background-color .2s cubic-bezier(.22, .61, .36, 1), border-color .2s cubic-bezier(.22, .61, .36, 1);
}
body .elementor .fm-formcard .elementor-form .elementor-field-type-acceptance .elementor-field-option input.elementor-acceptance-field::before { content: ""; width: 12px; height: 12px; transform: scale(0); transition: transform .2s cubic-bezier(.16, 1, .3, 1); background: var(--fm-negro); clip-path: polygon(14% 44%, 0 59%, 40% 100%, 100% 22%, 86% 8%, 38% 70%); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-acceptance .elementor-field-option input.elementor-acceptance-field:hover { border-color: var(--fm-hueso); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-acceptance .elementor-field-option input.elementor-acceptance-field:checked { background-color: var(--fm-pera); border-color: var(--fm-pera); }
body .elementor .fm-formcard .elementor-form .elementor-field-type-acceptance .elementor-field-option input.elementor-acceptance-field:checked::before { transform: scale(1); }
/* Botón como fm-btn-primary con flecha: ancho propio en escritorio y tableta, a todo el ancho en móvil */
body .elementor .fm-formcard .elementor-form .elementor-field-type-submit .elementor-button[type="submit"] { flex: 0 0 auto; width: auto; align-self: flex-start; }
body .elementor .fm-formcard .elementor-form .elementor-button[type="submit"] .elementor-button-content-wrapper { display: inline-flex; align-items: center; gap: 12px; }
body .elementor .fm-formcard .elementor-form .elementor-button[type="submit"] .elementor-button-content-wrapper::after {
  content: ""; flex: none; width: 18px; height: 18px; background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12h15M13.5 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12h15M13.5 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .35s cubic-bezier(.16, 1, .3, 1);
}
body .elementor .fm-formcard .elementor-form .elementor-button[type="submit"]:hover .elementor-button-content-wrapper::after { transform: translateX(4px); }
@media (max-width: 699px) { body .elementor .fm-formcard .elementor-form .elementor-field-type-submit .elementor-button[type="submit"] { flex: 1 1 100%; width: 100%; align-self: stretch; } }/* End custom CSS */