/* Fuentes propias (antes Google Fonts) */

/* Fuentes servidas desde el propio dominio (antes Google Fonts): sin petición a terceros y con caché larga.
   Mismas familias, pesos y juegos de caracteres que pedía la web. Las caras «… Fallback» ajustan Arial a las
   medidas de cada fuente para que el texto no salte cuando llega la buena. Generado por la revisión IAH-2110. */

@font-face {
  font-family: 'Funnel Display';

  font-style: normal;

  font-weight: 300 800;

  font-display: swap;

  src: url("../fonts/funnel-display-latin-ext.d28f5e233864.woff2") format('woff2');

  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Funnel Display';

  font-style: normal;

  font-weight: 300 800;

  font-display: swap;

  src: url("../fonts/funnel-display-latin.51415c9ec084.woff2") format('woff2');

  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lato';

  font-style: italic;

  font-weight: 100;

  font-display: swap;

  src: url("../fonts/lato-italic-100-latin-ext.bfceb8861433.woff2") format('woff2');

  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lato';

  font-style: italic;

  font-weight: 100;

  font-display: swap;

  src: url("../fonts/lato-italic-100-latin.cefd178ee72b.woff2") format('woff2');

  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lato';

  font-style: italic;

  font-weight: 300;

  font-display: swap;

  src: url("../fonts/lato-italic-300-latin-ext.cdc676dc97b6.woff2") format('woff2');

  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lato';

  font-style: italic;

  font-weight: 300;

  font-display: swap;

  src: url("../fonts/lato-italic-300-latin.9c3eec60f1c1.woff2") format('woff2');

  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lato';

  font-style: italic;

  font-weight: 400;

  font-display: swap;

  src: url("../fonts/lato-italic-400-latin-ext.d3b17afeeeec.woff2") format('woff2');

  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lato';

  font-style: italic;

  font-weight: 400;

  font-display: swap;

  src: url("../fonts/lato-italic-400-latin.1505dcab9d5a.woff2") format('woff2');

  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lato';

  font-style: italic;

  font-weight: 700;

  font-display: swap;

  src: url("../fonts/lato-italic-700-latin-ext.b111586d3932.woff2") format('woff2');

  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lato';

  font-style: italic;

  font-weight: 700;

  font-display: swap;

  src: url("../fonts/lato-italic-700-latin.2f952c1d4bbb.woff2") format('woff2');

  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lato';

  font-style: italic;

  font-weight: 900;

  font-display: swap;

  src: url("../fonts/lato-italic-900-latin-ext.60e128d74a6b.woff2") format('woff2');

  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lato';

  font-style: italic;

  font-weight: 900;

  font-display: swap;

  src: url("../fonts/lato-italic-900-latin.dbbbabcac580.woff2") format('woff2');

  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lato';

  font-style: normal;

  font-weight: 100;

  font-display: swap;

  src: url("../fonts/lato-normal-100-latin-ext.5a6e46fbf7f0.woff2") format('woff2');

  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lato';

  font-style: normal;

  font-weight: 100;

  font-display: swap;

  src: url("../fonts/lato-normal-100-latin.816d95a45d01.woff2") format('woff2');

  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lato';

  font-style: normal;

  font-weight: 300;

  font-display: swap;

  src: url("../fonts/lato-normal-300-latin-ext.324bf0e980ab.woff2") format('woff2');

  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lato';

  font-style: normal;

  font-weight: 300;

  font-display: swap;

  src: url("../fonts/lato-normal-300-latin.268d01e94fa0.woff2") format('woff2');

  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lato';

  font-style: normal;

  font-weight: 400;

  font-display: swap;

  src: url("../fonts/lato-normal-400-latin-ext.b0d495314364.woff2") format('woff2');

  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lato';

  font-style: normal;

  font-weight: 400;

  font-display: swap;

  src: url("../fonts/lato-normal-400-latin.b7d6b48d8d12.woff2") format('woff2');

  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lato';

  font-style: normal;

  font-weight: 700;

  font-display: swap;

  src: url("../fonts/lato-normal-700-latin-ext.01cbba1eab04.woff2") format('woff2');

  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lato';

  font-style: normal;

  font-weight: 700;

  font-display: swap;

  src: url("../fonts/lato-normal-700-latin.017598645bcc.woff2") format('woff2');

  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lato';

  font-style: normal;

  font-weight: 900;

  font-display: swap;

  src: url("../fonts/lato-normal-900-latin-ext.ccbd9d26e2de.woff2") format('woff2');

  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lato';

  font-style: normal;

  font-weight: 900;

  font-display: swap;

  src: url("../fonts/lato-normal-900-latin.cf5ec3859b05.woff2") format('woff2');

  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Funnel Display Fallback';

  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Roboto');

  size-adjust: 108.53%;

  ascent-override: 92.14%;

  descent-override: 23.03%;

  line-gap-override: 0.00%;
}

@font-face {
  font-family: 'Lato Fallback';

  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Roboto');

  size-adjust: 97.46%;

  ascent-override: 101.27%;

  descent-override: 21.85%;

  line-gap-override: 0.00%;
}

/* Importar sistema de colores */

/* =============================================================================
   SISTEMA DE COLORES IAHOY - VARIABLES DIRECTAS
   Solo variables de color sin tokens semánticos
   ============================================================================= */

:root {
  /* ===================
     BRAND COLORS
     =================== */
  --brand-50: #f0fdf9;
  --brand-100: #ccfbef;
  --brand-200: #b6ead8;
  --brand-300: #90dfc4;
  --brand-400: #6dd5b0;
  --brand-500: #69d2af;
  --brand-600: #42c89a;
  /* PRIMARY - Main brand color */
  --brand-700: #58b989;
  --brand-800: #3a8a6b;
  --brand-900: #2d6b52;
  /* ===================
     NEUTRAL COLORS
     =================== */
  --neutral-50: #ffffff;
  --neutral-100: #eaf0f3;
  --neutral-200: #c1cfd6;
  --neutral-300: #a8b8c2;
  --neutral-400: #879ead;
  --neutral-500: #6b8498;
  --neutral-600: #5a7187;
  --neutral-700: #496e83;
  --neutral-800: #2f4a5c;
  --neutral-900: #0d3d5a;
  /* Dark text primary */
  /* ===================
     ACCENT COLORS
     =================== */
  --accent-50: #fff8ec;
  --accent-100: #fef1d5;
  --accent-200: #fddfab;
  --accent-300: #fbc676;
  --accent-400: #f7a93f;
  --accent-500: #f39220;
  --accent-600: #f7931d;
  /* CTA primary */
  --accent-700: #e8841a;
  /* CTA hover */
  --accent-800: #c16a15;
  --accent-900: #9a5512;
  /* ===================
     STATE COLORS
     =================== */
  /* Success */
  --success-50: #f0fdf4;
  --success-100: #dcfce7;
  --success-200: #bbf7d0;
  --success-300: #86efac;
  --success-400: #4ade80;
  --success-500: #22c55e;
  --success-600: #16a34a;
  /* Primary success */
  --success-700: #15803d;
  --success-800: #166534;
  --success-900: #14532d;
  /* Warning */
  --warning-50: #fffbeb;
  --warning-100: #fef3c7;
  --warning-200: #fde68a;
  --warning-300: #fcd34d;
  --warning-400: #f59e0b;
  /* Primary warning */
  --warning-500: #d97706;
  --warning-600: #b45309;
  --warning-700: #92400e;
  --warning-800: #78350f;
  --warning-900: #451a03;
  /* Danger */
  --danger-50: #fef2f2;
  --danger-100: #fee2e2;
  --danger-200: #fecaca;
  --danger-300: #fca5a5;
  --danger-400: #f87171;
  --danger-500: #ef4444;
  --danger-600: #dc2626;
  /* Primary danger */
  --danger-700: #b91c1c;
  --danger-800: #991b1b;
  --danger-900: #7f1d1d;
}

/* =============================================================================
   IAHOY DESIGN SYSTEM v2 · tokens, tipografía, superficies y movimiento
   Referencia: DESIGN.md en la raíz del repo.
   ============================================================================= */

/* Fuera de @layer a propósito: la clase .lenis la pone Lenis en tiempo de ejecución y el
   purgado de Tailwind (content = solo plantillas) la eliminaría. Con Lenis activo, el
   scroll-smooth nativo de <html> interfiere con window.scrollTo(); Lenis ya suaviza rueda y anclas. */

html.lenis {
  scroll-behavior: auto !important;
}

/* Estilos base de Lenis 1.3.26 (static/vendor/lenis/lenis.css), en línea para no añadir una hoja que bloquee el primer pintado. Fuera de @layer: las clases las pone Lenis en tiempo de ejecución. */

html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}

/* Fuera de @layer: tiene que ganar al estilo del widget en base.html. Con el banner de cookies abierto en móvil, el botón sube. */

@media (max-width: 639px) {
  .consent-open #whatsapp-widget {
    bottom: 11.5rem;
  }
}

/* =============================================================================
   IAHOY · HOME · página continua (DESIGN.md §7, §12 y §13)
   Secciones sin cajas ni bandas y apariciones ligadas al scroll con CSS
   (animation-timeline). Sin librerías de animación: si el navegador no soporta
   scroll-driven animations, las apariciones caen al IntersectionObserver de
   iahoy-motion.js. v3: el fondo ya no es WebGL; ver iahoy-story.css.
   ============================================================================= */

@keyframes sd-rise {
  from {
    opacity: 0;
    transform: translate3d(0, 56px, 0) scale(0.98);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes sd-strike {
  from {
    background-size: 0% 1.5px;
  }

  to {
    background-size: 100% 1.5px;
  }
}

@keyframes sd-after {
  from {
    opacity: 0;
    transform: translate3d(-12px, 0, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

/* Recorte con margen: con el interletraje negativo, la esquina del último 7 sale de la caja y un inset(0) la cortaba */

@keyframes sd-fill {
  from {
    clip-path: inset(100% -12% -12% -12%);
  }

  to {
    clip-path: inset(-12% -12% -12% -12%);
  }
}

@keyframes sd-grow {
  from {
    transform: scaleY(0);
  }

  to {
    transform: scaleY(1);
  }
}

@keyframes sd-dot {
  from {
    background: rgb(13 61 90);
    color: rgb(255 255 255 / 0.7);
    box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.25);
  }

  to {
    background: var(--brand-500);
    color: var(--neutral-900);
    box-shadow: none;
  }
}

@keyframes sd-pop {
  from {
    opacity: 0;
    transform: translate3d(0, 28px, 0) scale(0.94);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

/* =============================================================================
   IAHOY · HOME v3 · lienzo quieto + demos reales del producto (DESIGN.md §13)
   - El fondo no se mueve: una imagen fija del degradado en el hero, halos estáticos y grano.
   - Lo que se mueve lo mueve el scroll del usuario (animation-timeline) o un cambio de paso
     (transiciones cortas). Nada en bucle salvo las grabaciones, que tienen botón de pausa.
   Fuera de @layer a propósito: Alpine y JS ponen clases y atributos en tiempo de ejecución
   (is-active, data-playing, data-paused, data-step) y el purgado de Tailwind (content = solo
   plantillas) los eliminaría. Este fichero entra antes de @tailwind utilities, así que las
   utilidades siguen ganando a igualdad de especificidad.
   ============================================================================= */

/* ---------- Lienzo ---------- */

.canvas-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 135vh;
  height: 135svh;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;
}

.canvas-bg img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 78% 30%;
     object-position: 78% 30%;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 42%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 42%, transparent 100%);
}

/* Grano fijo y quieto (SVG de 2 KB en línea): quita el aspecto "plano" del marino sin moverse */

.canvas-grain {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.07;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' 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.4 -.55'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Tipografía propia de la home ---------- */

.t-hero {
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  font-size: clamp(2.875rem, 1.1rem + 4.9vw, 5.5rem);
  line-height: 0.98;
  letter-spacing: -0.045em;
  text-wrap: balance;
  font-feature-settings: "kern";
}

.t-hero * {
  font-family: inherit;
}

.story-kicker {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-family: 'Lato', 'Lato Fallback', system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.8125rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand-500);
}

.story-kicker * {
  font-family: inherit;
}

.story-kicker-line {
  width: 2.5rem;
  height: 1px;
  background: currentColor;
  opacity: 0.55;
  flex: none;
}

/* Etiqueta "Nuevo" junto a la cabecera de un paso (verde de marca: el naranja se reserva a los CTA) */

.story-new {
  margin-left: 0.25rem;
  padding: 0.3rem 0.6rem;
  border-radius: 9999px;
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  color: #fff;
  background: rgb(66 200 154 / 0.18);
  box-shadow: inset 0 0 0 1px rgb(105 210 175 / 0.4);
}

/* ---------- Historia: pasos ---------- */

.story {
  overflow-x: clip;
}

.story-step {
  padding: 4.5rem 0;
}

@media (min-width: 1024px) {
  .story-step {
    min-height: 86vh;
    min-height: 86svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0;
    transition: opacity 500ms ease;
  }

  .motion-ok .story-step:not(.is-active) {
    opacity: 0.4;
  }
}

.demo-chips {
  display: grid;
  gap: 0.7rem;
  margin-top: 1.75rem;
}

.demo-chip {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1rem;
  font-weight: 500;
  color: rgb(255 255 255 / 0.88);
}

.demo-chip ion-icon {
  flex: none;
  color: var(--brand-500);
  font-size: 1.1rem;
}

.demo-phone + div > p.t-small {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.62);
}

/* ---------- Grabaciones: teléfono y navegador ---------- */

/* Los vídeos ya traen el marco del teléfono; el radio recorta las esquinas del fondo de la grabación */

.demo-phone {
  position: relative;
  aspect-ratio: 540 / 1098;
  border-radius: 13.5% / 6.6%;
  overflow: hidden;
  background: #03090d;
  isolation: isolate;
  box-shadow: 0 50px 90px -40px rgb(0 0 0 / 0.75), 0 22px 40px -28px rgb(0 0 0 / 0.6);
}

.demo-phone > img, .demo-phone > video,
.demo-screen > img, .demo-screen > video,
.demo-browser-media > img, .demo-browser-media > video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  max-width: none;
}

.demo-phone video, .demo-browser-media video {
  opacity: 0;
  transition: opacity 450ms ease;
}

.demo-phone video[data-playing], .demo-browser-media video[data-playing] {
  opacity: 1;
}

.demo-screen {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 500ms ease;
}

.demo-screen.is-active {
  opacity: 1;
}

.demo-browser {
  border-radius: 14px;
  overflow: hidden;
  background: #0a2a3d;
  box-shadow: 0 50px 100px -40px rgb(0 0 0 / 0.75), 0 0 0 1px rgb(255 255 255 / 0.10);
}

.demo-browser-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 2rem;
  padding: 0 0.85rem;
  background: rgb(255 255 255 / 0.05);
  border-bottom: 1px solid rgb(255 255 255 / 0.07);
}

.demo-browser-bar span {
  width: 9px;
  height: 9px;
  border-radius: 9999px;
  background: rgb(255 255 255 / 0.22);
}

.demo-browser-bar em {
  margin-left: 0.6rem;
  font-style: normal;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--neutral-200);
}

.demo-browser-media {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #e7edf0;
}

.demo-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 9999px;
  color: #fff;
  background: rgb(255 255 255 / 0.08);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.16);
  transition: background-color 200ms ease, transform 160ms var(--ease-out);
}

.demo-toggle:active {
  transform: scale(0.94);
}

.demo-toggle:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

.demo-toggle ion-icon {
  font-size: 1.05rem;
}

.demo-toggle .i-play, .demo-toggle[data-paused] .i-pause {
  display: none;
}

.demo-toggle[data-paused] .i-play {
  display: block;
}

@media (hover: hover) and (pointer: fine) {
  .demo-toggle:hover {
    background: rgb(255 255 255 / 0.14);
  }
}

/* ---------- Escenario fijo (escritorio) ---------- */

.story-stage {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5.5rem 0 7rem;
}

.story-scene {
  --dh: min(62vh, 620px);
  --dh: min(62svh, 620px);
  position: relative;
  height: var(--dh);
  width: calc(var(--dh) * 540 / 1098);
  perspective: 1600px;
}

.story-halo {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(var(--dh) * 1.45);
  aspect-ratio: 1;
  z-index: -1;
  transform: translate(-50%, -50%);
  border-radius: 9999px;
  pointer-events: none;
  background: radial-gradient(closest-side, rgb(66 200 154 / 0.30), rgb(66 200 154 / 0.10) 55%, rgb(66 200 154 / 0) 100%);
}

.story-halo i {
  position: absolute;
  inset: 15%;
  border-radius: 9999px;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.07);
}

.story-halo i + i {
  inset: -2%;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.045);
}

.story-tilt {
  position: absolute;
  inset: 0;
}

.story-phone {
  position: absolute;
  inset: 0;
  z-index: 2;
  transition: transform 900ms var(--ease-out-expo);
}

.story-phone .demo-phone {
  width: 100%;
  height: 100%;
}

/* El teléfono que se aparta cuando entra el navegador vive en iahoy-pages.css (.story-stage[data-mode="browser"]). */

.story-browser {
  position: absolute;
  left: 50%;
  top: 38%;
  width: min(39rem, 43vw);
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transform: translate3d(-40%, -44%, 0) scale(0.92);
  transition: transform 900ms var(--ease-out-expo), opacity 450ms ease;
}

.story-browser.is-active {
  opacity: 1;
  transform: translate3d(-54%, -50%, 0);
}

.stage-callouts {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}

.stage-callout {
  position: absolute;
  left: var(--x);
  top: var(--y);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  white-space: nowrap;
  font-size: 1rem;
  font-weight: 500;
  color: rgb(255 255 255 / 0.9);
  opacity: 0;
  transform: translate3d(0, 10px, 0) scale(0.96);
  transition: opacity 200ms ease, transform 200ms var(--ease-out);
}

.stage-callout ion-icon {
  flex: none;
  font-size: 1.15rem;
  color: var(--brand-500);
}

.stage-callouts.is-active .stage-callout {
  opacity: 1;
  transform: none;
  transition-duration: 700ms;
  transition-timing-function: var(--ease-out-expo);
  transition-delay: calc(260ms + var(--c, 0) * 110ms);
}

.rec-pill {
  position: absolute;
  left: 50%;
  bottom: -2rem;
  transform: translateX(-50%);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  white-space: nowrap;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.62);
}

.rec-pill::before {
  content: '';
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 9999px;
  background: var(--brand-500);
}

/* Gestorías: la fila de llamadas va bajo el marco, así que la etiqueta sube encima */

.story-stage--wide .rec-pill {
  bottom: auto;
  top: -2rem;
}

.story-rail {
  position: absolute;
  left: 0;
  right: 0;
  bottom: max(1.5rem, 3.5vh);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
}

.rail-btn {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-end;
  gap: 0.6rem;
  min-height: 44px;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--neutral-200);
  text-align: left;
  transition: color 200ms ease;
}

.rail-btn[aria-current="step"] {
  color: #fff;
}

.rail-btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
  border-radius: 6px;
}

@media (hover: hover) and (pointer: fine) {
  .rail-btn:hover {
    color: #fff;
  }
}

.rail-track {
  display: block;
  min-width: 4.5rem;
  height: 2px;
  border-radius: 2px;
  background: rgb(255 255 255 / 0.16);
  overflow: hidden;
}

.rail-fill {
  display: block;
  height: 100%;
  background: var(--brand-500);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 300ms linear;
}

/* ---------- Frase "¿Está todo bajo control?": banda clara que separa secciones ---------- */

.statement {
  background: var(--neutral-100);
  color: var(--neutral-900);
}

.statement-pin {
  padding: 5rem 0;
}

@media (min-width: 768px) {
  .statement-pin {
    padding: 6.5rem 0;
  }
}

.statement .story-kicker {
  color: var(--brand-900);
}

.statement-text {
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  font-size: clamp(1.75rem, 1rem + 2.2vw, 2.75rem);
  line-height: 1.15;
  letter-spacing: -0.03em;
  max-width: 30ch;
  color: var(--neutral-800);
  text-wrap: balance;
}

.statement-text .w {
  font-family: inherit;
}

.statement-text .w-strong {
  color: var(--neutral-900);
}

.statement-text .w-accent {
  color: var(--brand-900);
}

.statement-glow {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(ellipse 34% 38% at 70% 50%, rgb(66 200 154 / 0.13), rgb(66 200 154 / 0));
}

/* ---------- VeriFactu: calendario ---------- */

.vf-glow {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(ellipse 30% 26% at 76% 30%, rgb(66 200 154 / 0.16), rgb(66 200 154 / 0));
}

.vf-timeline {
  position: relative;
  display: grid;
  gap: 2.75rem;
  padding-left: 2.25rem;
}

.vf-timeline::before, .vf-timeline::after {
  content: '';
  position: absolute;
  left: 0.45rem;
  top: 0.55rem;
  bottom: 0.55rem;
  width: 1px;
  background: rgb(255 255 255 / 0.16);
}

.vf-timeline::after {
  background: var(--brand-500);
  transform-origin: top center;
}

.vf-node {
  position: relative;
}

.vf-dot {
  position: absolute;
  left: -2.25rem;
  top: 0;
  width: 0.95rem;
  height: 0.95rem;
  border-radius: 9999px;
  background: var(--brand-500);
  box-shadow: inset 0 0 0 2px var(--brand-500), 0 0 0 6px rgb(105 210 175 / 0.16);
}

@media (min-width: 768px) {
  .vf-timeline {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.5rem;
    padding-left: 0;
    padding-top: 2.75rem;
  }

  .vf-timeline::before, .vf-timeline::after {
    left: 0;
    right: 0;
    top: 0.45rem;
    bottom: auto;
    width: auto;
    height: 1px;
  }

  .vf-timeline::after {
    transform-origin: left center;
  }

  .vf-dot {
    left: 0;
    top: -2.75rem;
  }
}

/* ---------- Cierre: abanico de pantallas reales ---------- */

.cta-final {
  overflow-x: clip;
}

.cta3-glow {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(ellipse 46% 40% at 50% 60%, rgb(66 200 154 / 0.24), rgb(66 200 154 / 0));
}

.cta-fan {
  --fw: clamp(10.5rem, 19vw, 15rem);
  position: relative;
  height: calc(var(--fw) * 1.45);
  margin-top: 4.5rem;
  -webkit-mask-image: linear-gradient(180deg, #000 30%, transparent 96%);
  mask-image: linear-gradient(180deg, #000 30%, transparent 96%);
}

.fan-card {
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--fw);
  height: auto;
  margin-left: calc(var(--fw) / -2);
  border-radius: 13.5% / 6.6%;
  box-shadow: 0 40px 70px -30px rgb(0 0 0 / 0.7);
  transform-origin: 50% 100%;
}

.fan-c {
  z-index: 2;
}

.fan-l {
  transform: translate3d(-58%, 9%, 0) rotate(-10deg);
}

.fan-r {
  transform: translate3d(58%, 9%, 0) rotate(10deg);
}

/* ---------- Movimiento ligado al scroll (solo con soporte y sin "reducir movimiento") ---------- */

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    /* El teléfono entra inclinado y se endereza en el primer tramo de scroll */

    .motion-ok .story-tilt {
      animation: sd-untilt linear both;
      animation-timeline: scroll(root);
      animation-range: 0 80vh;
    }

    .motion-ok .story-scene {
      animation: sd-stage-in 1100ms var(--ease-out-expo) 250ms both;
    }

    /* Calendario de VeriFactu: la línea avanza y cada fecha se enciende cuando la línea llega */

    .motion-ok .vf-timeline {
      view-timeline-name: --vf;
    }

    .motion-ok .vf-timeline::after {
      animation: sd-grow linear both;
      animation-timeline: --vf;
      animation-range: cover 18% cover 48%;
    }

    .motion-ok .vf-dot {
      animation: sd-vf-dot linear both;
      animation-timeline: --vf;
      animation-range: cover calc(18% + var(--n) * 10%) cover calc(21% + var(--n) * 10%);
    }

    @media (min-width: 768px) {
      .motion-ok .vf-timeline::after {
        animation-name: sd-grow-x;
      }
    }

    /* Abanico: las tres pantallas suben juntas y se abren */

    .motion-ok .cta-fan {
      view-timeline-name: --fan;
    }

    .motion-ok .fan-card {
      animation: sd-fan-c linear both;
      animation-timeline: --fan;
      animation-range: entry 0% cover 45%;
    }

    .motion-ok .fan-l {
      animation-name: sd-fan-l;
    }

    .motion-ok .fan-r {
      animation-name: sd-fan-r;
    }
  }
}

@keyframes sd-untilt {
  from {
    transform: rotateX(12deg) rotateY(-24deg) rotateZ(5deg) translate3d(4%, 2%, 0) scale(0.97);
  }

  to {
    transform: none;
  }
}

@keyframes sd-stage-in {
  from {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes sd-grow-x {
  from {
    transform: scaleX(0);
  }

  to {
    transform: scaleX(1);
  }
}

@keyframes sd-vf-dot {
  from {
    background: var(--neutral-900);
    box-shadow: inset 0 0 0 2px rgb(255 255 255 / 0.35), 0 0 0 6px rgb(105 210 175 / 0);
  }

  to {
    background: var(--brand-500);
    box-shadow: inset 0 0 0 2px var(--brand-500), 0 0 0 6px rgb(105 210 175 / 0.16);
  }
}

@keyframes sd-fan-c {
  from {
    transform: translate3d(0, 22%, 0);
  }

  to {
    transform: none;
  }
}

@keyframes sd-fan-l {
  from {
    transform: translate3d(-8%, 26%, 0) rotate(-2deg);
  }

  to {
    transform: translate3d(-58%, 9%, 0) rotate(-10deg);
  }
}

@keyframes sd-fan-r {
  from {
    transform: translate3d(8%, 26%, 0) rotate(2deg);
  }

  to {
    transform: translate3d(58%, 9%, 0) rotate(10deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .story-phone, .story-browser, .stage-callout, .demo-screen, .demo-phone video, .demo-browser-media video, .story-step {
    transition-duration: 1ms !important;
    transition-delay: 0ms !important;
  }
}

/* Rendimiento: el titular y la entradilla son el LCP de la home. No se ocultan al cargar
   (sin fundido ni desenfoque): solo suben 10 px. El resto del hero sí entra con fundido. */

@keyframes sd-hero-rise {
  from {
    transform: translate3d(0, 10px, 0);
  }

  to {
    transform: none;
  }
}

.motion-ok .story-hero .t-hero.hero-in, .motion-ok .story-hero .t-lead.hero-in {
  animation-name: sd-hero-rise;
  animation-duration: 700ms;
  animation-delay: 0ms;
}

/* =============================================================================
   IAHOY · PÁGINAS DE SEGMENTO v3 (Autónomos, PYMEs, Gestorías) · DESIGN.md §14
   Mismo lenguaje que la home v3 (iahoy-story.css). Fuera de @layer por el mismo motivo:
   Alpine pone data-mode / is-hidden en tiempo de ejecución.
   ============================================================================= */

/* Botón principal sin .btn-cta: en estas páginas navbar-tracking.js registra cualquier .btn-cta sin
   data-freemium-cta como header_cta_clicked, y un botón del cuerpo no es la cabecera. */

.btn-solid {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 3rem;
  padding: 0.75rem 1.5rem;
  border-radius: 9999px;
  font-family: 'Lato', 'Lato Fallback', system-ui, sans-serif;
  font-weight: 700;
  background-color: var(--accent-600);
  color: var(--neutral-900);
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.35) inset, 0 1px 2px rgb(var(--ink-rgb) / 0.12);
  transition: transform 160ms var(--ease-out), background-color 200ms ease, box-shadow 200ms ease;
}

.btn-solid.btn-xl {
  min-height: 3.5rem;
  padding-left: 1.75rem;
  padding-right: 1.75rem;
  font-size: 1.0625rem;
}

.btn-solid:active {
  transform: scale(0.97);
  background-color: var(--accent-700);
}

.btn-solid:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  .btn-solid:hover {
    background-color: var(--accent-400);
    box-shadow: 0 1px 0 rgb(255 255 255 / 0.4) inset, 0 8px 22px -8px rgb(247 147 29 / 0.65);
  }
}

/* ---------- Escenario: teléfono que se aparta cuando entra el navegador (generaliza el paso 4 de la home) ---------- */

/* Cuando entra el navegador (PYMEs paso 3, home paso 4) el teléfono desaparece del todo: antes se apartaba abajo y
   tapaba una esquina del marco. */

.story-stage:not(.story-stage--wide) .story-phone {
  transition: transform 900ms var(--ease-out-expo), opacity 450ms ease;
}

.story-stage[data-mode="browser"]:not(.story-stage--wide) .story-phone {
  opacity: 0;
  transform: translate3d(0, 14%, 0) scale(0.9);
  pointer-events: none;
}

/* En modo navegador (PYMEs seguimiento/gestoría, home gestoría) las llamadas tampoco flotan sobre el marco: fila centrada
   bajo el navegador, igual que en el escenario ancho de gestorías. */

.story-stage[data-mode="browser"]:not(.story-stage--wide) .stage-callouts {
  inset: auto;
  left: 50%;
  top: calc(38% + min(39rem, 43vw) * 0.34 + 1rem);
  width: min(39rem, 43vw);
  transform: translateX(-54%);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem 1.75rem;
}

.story-stage[data-mode="browser"]:not(.story-stage--wide) .stage-callout {
  position: static;
}

/* Escenarios de teléfono (home, autónomos, PYMEs): las llamadas tampoco flotan sobre el móvil; el móvil se desplaza un poco
   a la izquierda y las llamadas van en columna a su derecha. Solo en escritorio (el escenario fijo). */

.story-stage:not(.story-stage--wide) .story-scene {
  transition: margin 900ms var(--ease-out-expo);
}

.story-stage:not(.story-stage--wide):not([data-mode="browser"]) .story-scene {
  margin-right: 16rem;
}

.story-stage:not(.story-stage--wide):not([data-mode="browser"]) .stage-callouts {
  inset: auto;
  left: calc(100% + 1.5rem);
  top: 50%;
  transform: translateY(-50%);
  width: 15.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}

.story-stage:not(.story-stage--wide):not([data-mode="browser"]) .stage-callout {
  position: static;
  white-space: normal;
}

@media (max-width: 1279px) {
  .story-stage:not(.story-stage--wide):not([data-mode="browser"]) .story-scene {
    margin-right: 14rem;
  }

  .story-stage:not(.story-stage--wide):not([data-mode="browser"]) .stage-callouts {
    width: 13.5rem;
    left: calc(100% + 1rem);
  }
}

.demo-browser-bar.is-hidden {
  display: none;
}

.demo-browser-media .demo-screen > img, .demo-browser-media .demo-screen > video {
  -o-object-fit: cover;
     object-fit: cover;
}

/* ---------- Escenario ancho (Gestorías): el protagonista es el portal, en horizontal ---------- */

.story-stage--wide .story-scene {
  --dh: auto;
  width: min(100%, 48rem);
  height: auto;
  aspect-ratio: 16 / 9.9;
}

.story-stage--wide .story-halo {
  width: 130%;
}

.story-stage--wide .story-browser {
  left: 0;
  top: 0;
  width: 100%;
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

/* Escenario ancho (gestorías): las llamadas no flotan sobre el vídeo (tapaban el teléfono y quedaban sueltas), van en una
   fila centrada bajo el marco. Las listas de todos los pasos ocupan el mismo sitio; solo se ve la activa. */

.story-stage--wide .stage-callouts {
  inset: auto 0 auto 0;
  top: calc(100% + 1.25rem);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem 1.75rem;
}

.story-stage--wide .stage-callout {
  position: static;
  font-size: 0.875rem;
}

@supports (animation-timeline: scroll()) {
  @media (prefers-reduced-motion: no-preference) {
    .motion-ok .story-stage--wide .story-tilt {
      animation-name: sd-untilt-wide;
    }
  }
}

@keyframes sd-untilt-wide {
  from {
    transform: rotateX(10deg) rotateY(-14deg) rotateZ(2deg) scale(0.96);
  }

  to {
    transform: none;
  }
}

/* Carril con 5 demos: barras más cortas en portátiles pequeños */

@media (max-width: 1279px) {
  .rail-track {
    min-width: 3.25rem;
  }

  .rail-btn {
    font-size: 0.8125rem;
  }
}

/* Etiquetas del carril siempre en una línea ("Pedir factura" se partía en dos) */

.rail-btn {
  white-space: nowrap;
}

/* Carril con 6 demos (Autónomos): menos separación para que quepa entero de 1024 a 1440 px */

.story-rail ol:has(> li:nth-child(6)) {
  gap: 0.6rem;
}

@media (max-width: 1179px) {
  .story-rail ol:has(> li:nth-child(6)) {
    gap: 0.5rem;
  }

  .story-rail ol:has(> li:nth-child(6)) .rail-btn {
    font-size: 0.78rem;
  }
}

@media (min-width: 1280px) {
  .story-rail ol:has(> li:nth-child(6)) {
    gap: 1rem;
  }
}

/* El botón flotante de WhatsApp (base.html, abajo a la derecha) tapaba el botón de pausa del carril entre
   1024 y 1439 px. En las páginas con escenario de demos sube por encima del carril (en móvil no hay carril). */

@media (min-width: 1024px) {
  body:has([data-story-stage]) #whatsapp-widget {
    bottom: 6rem;
  }
}

/* ---------- Listas editoriales (sin tarjetas) ---------- */

.feature-grid {
  display: grid;
  gap: 2.5rem 2rem;
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 640px) {
  .feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .feature-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.feature-grid > li {
  border-top: 1px solid rgb(255 255 255 / 0.14);
  padding-top: 1.5rem;
}

.feature-grid ion-icon {
  font-size: 1.5rem;
  color: var(--brand-500);
}

.feature-grid h3 {
  margin-top: 1rem;
}

.feature-grid p {
  margin-top: 0.5rem;
  color: var(--neutral-200);
}

.num-grid {
  display: grid;
  gap: 2.5rem 3rem;
  grid-template-columns: minmax(0, 1fr);
  counter-reset: n;
}

@media (min-width: 768px) {
  .num-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .num-grid:not(.num-grid--2) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .num-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .num-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.num-grid > li {
  border-top: 1px solid rgb(255 255 255 / 0.14);
  padding-top: 1.25rem;
}

.num-label {
  display: block;
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--brand-500);
}

.num-grid h3 {
  margin-top: 0.75rem;
}

.num-grid p {
  margin-top: 0.5rem;
  color: var(--neutral-200);
}

.big-num {
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1;
  font-size: clamp(3rem, 2rem + 3.2vw, 5rem);
  color: var(--brand-500);
  font-variant-numeric: tabular-nums;
}

.metric-grid {
  display: grid;
  gap: 3.5rem 3rem;
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 900px) {
  .metric-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.metric-grid > li {
  border-top: 1px solid rgb(255 255 255 / 0.14);
  padding-top: 1.75rem;
}

.metric-grid .big-num + p {
  margin-top: 0.5rem;
}

.stats-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  border-top: 1px solid rgb(255 255 255 / 0.14);
  padding-top: 2rem;
}

.stats-row > div {
  display: flex;
  flex-direction: column-reverse;
  gap: 0.5rem;
}

.stats-row .big-num {
  font-size: clamp(2.25rem, 1.4rem + 3vw, 4.25rem);
}

.quote-row {
  display: grid;
  gap: 3rem;
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 900px) {
  .quote-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.5rem;
  }
}

.quote-row > li {
  border-left: 1px solid rgb(255 255 255 / 0.15);
  padding-left: 1.75rem;
}

.quote-row blockquote {
  font-size: clamp(1.125rem, 1rem + 0.4vw, 1.375rem);
  line-height: 1.55;
  color: #fff;
}

.quote-row figcaption {
  margin-top: 1.75rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  line-height: 1.25;
}

.quote-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  background: rgb(255 255 255 / 0.10);
  color: var(--brand-500);
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
}

/* Tiempos antes / después (Gestorías) */

.time-rows > li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.25rem 1.5rem;
  align-items: baseline;
  padding: 1.75rem 0;
  border-top: 1px solid rgb(255 255 255 / 0.12);
}

.time-before, .time-after {
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.03em;
  font-size: clamp(2rem, 1.3rem + 2.6vw, 3.75rem);
  line-height: 1;
}

.time-before {
  color: var(--neutral-300);
}

.time-after {
  color: var(--brand-500);
}

.time-what {
  grid-column: 1 / -1;
  color: var(--neutral-200);
}

@media (min-width: 900px) {
  .time-rows > li {
    grid-template-columns: 12rem 14rem minmax(0, 1fr);
  }

  .time-what {
    grid-column: auto;
  }
}

/* Código de la API */

.code-card {
  border-radius: 18px;
  background: rgb(3 21 33 / 0.55);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.10), 0 40px 80px -40px rgb(0 0 0 / 0.6);
  overflow: hidden;
}

.code-card pre {
  margin: 0;
  padding: 1.5rem 1.75rem;
  overflow-x: auto;
  font: 500 0.875rem/1.7 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color: #e7eef2;
}

.code-card .c {
  color: var(--neutral-300);
}

.code-card .k {
  color: var(--brand-500);
  font-weight: 700;
}

.code-card .s {
  color: #fbc676;
}

.code-card figcaption {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 1.75rem;
  border-top: 1px solid rgb(255 255 255 / 0.08);
  font-size: 0.875rem;
  font-weight: 700;
}

.code-card figcaption ion-icon {
  color: var(--brand-500);
  font-size: 1.125rem;
}

/* Móvil: el ejemplo de la API se envuelve en vez de desplazarse en horizontal */

@media (max-width: 640px) {
  .code-card pre {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    padding: 1.25rem 1.25rem;
  }
}

/* Bloques con borde fino: add-on de marca blanca, formación */

.addon, .formacion {
  border-radius: 24px;
  padding: 2rem;
  background: rgb(255 255 255 / 0.04);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.12);
}

.addon-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
  margin: 1.75rem 0 0.75rem;
}

.addon-price .big-num {
  font-size: 3.25rem;
}

.formacion {
  display: grid;
  gap: 2.5rem;
}

@media (min-width: 900px) {
  .formacion {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    align-items: end;
    padding: 2.75rem;
  }
}

.formacion-price .big-num {
  font-size: 3.5rem;
  margin: 0.25rem 0 0.5rem;
}

/* Enlace a lo ancho (webinars) */

.line-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 2.5rem 0;
  border-top: 1px solid rgb(255 255 255 / 0.14);
  border-bottom: 1px solid rgb(255 255 255 / 0.14);
  color: #fff;
}

.line-link ion-icon {
  flex: none;
  font-size: 1.75rem;
  color: var(--brand-500);
  transition: transform 200ms var(--ease-out);
}

.line-link:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
  .line-link:hover ion-icon {
    transform: translateX(4px);
  }
}

/* Calendario de 4 etapas (Empieza en minutos) */

@media (min-width: 768px) {
  .vf-timeline--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Gestorías: titular largo, un punto más pequeño para que el hero quepa en una pantalla */

.story--wide .t-hero {
  font-size: clamp(2.5rem, 1rem + 2.9vw, 3.875rem);
}

/* ---------- Precios con el diseño nuevo (mismas plantillas y datos: pricing_section, pricing_card,
   pricing_comparison_table, gestoria_plans_section, white_label_section). Solo dentro de .pricing-v3
   (Autónomos, PYMEs, Gestorías y /packages/). ---------- */

.pricing-v3 .text-slate-600, .pricing-v3 .text-slate-500, .pricing-v3 .text-slate-400 {
  color: var(--neutral-200);
}

.pricing-v3 .border-brand-200 {
  border-color: rgb(105 210 175 / 0.35);
}

/* Marca blanca dentro de /packages/: sin fondo propio (va sobre el lienzo) */

.white-label-v3 section.bg-white {
  background: transparent;
  box-shadow: none;
  border: 0;
}

/* Selector de segmento (/packages/): píldora oscura, el activo en blanco */

.seg-toggle {
  display: inline-flex;
  gap: 0.25rem;
  padding: 0.3rem;
  border-radius: 9999px;
  background: rgb(255 255 255 / 0.06);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.14);
}

.seg-btn {
  min-height: 2.75rem;
  padding: 0.55rem 1.15rem;
  border-radius: 9999px;
  font-size: 1rem;
  font-weight: 700;
  color: var(--neutral-200);
  transition: background-color 200ms ease, color 200ms ease;
}

@media (min-width: 640px) {
  .seg-btn {
    padding: 0.6rem 1.75rem;
    font-size: 1.0625rem;
  }
}

/* Pantallas muy estrechas: tres segmentos largos (neerlandés) caben sin desbordar */

@media (max-width: 380px) {
  .seg-btn {
    padding-left: 0.7rem;
    padding-right: 0.7rem;
    font-size: 0.95rem;
  }
}

.seg-btn.is-on {
  background-color: #fff;
  color: var(--neutral-900);
}

.seg-btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  .seg-btn:not(.is-on):hover {
    color: #fff;
  }
}

/* Preguntas frecuentes: lista con líneas, sin cajas */

.faq-list {
  border-top: 1px solid rgb(255 255 255 / 0.14);
}

.faq-item {
  border-bottom: 1px solid rgb(255 255 255 / 0.14);
}

.faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.5rem 0;
  cursor: pointer;
  list-style: none;
}

.faq-q::-webkit-details-marker {
  display: none;
}

.faq-q h3 {
  color: #fff;
}

.faq-q:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
  border-radius: 6px;
}

.faq-icon {
  flex: none;
  font-size: 1.5rem;
  color: var(--brand-500);
  transition: transform 300ms var(--ease-out);
}

.faq-item[open] .faq-icon {
  transform: rotate(45deg);
}

.faq-a {
  max-width: 46rem;
  padding: 0 0 1.75rem;
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--neutral-200);
}

/* Formulario de HubSpot: trae sus propios estilos claros, así que va en una tarjeta blanca */

.hubspot-card {
  border-radius: 1.75rem;
  padding: 2rem 1.75rem;
  background-color: #fff;
  color: var(--neutral-900);
  box-shadow: 0 40px 80px -48px rgb(0 0 0 / 0.7);
}

@media (min-width: 640px) {
  .hubspot-card {
    padding: 2.5rem;
  }
}

/* Calculadora de ahorro: la herramienta va en una tarjeta clara sobre el lienzo */

.calc-card {
  border-radius: 1.75rem;
  box-shadow: 0 40px 80px -48px rgb(0 0 0 / 0.7);
}

@media (max-width: 1023px) {
  .calc-card {
    overflow-x: clip;
  }
}

/* ---------- Calculadora de tickets (/calculadora-tickets/) ---------- */

.tk-card {
  border-radius: 1.75rem;
  padding: 1.5rem;
  background-color: rgb(255 255 255 / 0.05);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.12);
}

@media (min-width: 640px) {
  .tk-card {
    padding: 1.75rem;
  }
}

.tk-ico {
  display: grid;
  place-items: center;
  flex: none;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.9rem;
  background: rgb(105 210 175 / 0.16);
  color: var(--brand-500);
  font-size: 1.35rem;
}

.tk-result {
  border-radius: 1.75rem;
  padding: 1.75rem;
  background: rgb(2 18 28 / 0.55);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.14), 0 40px 80px -48px rgb(0 0 0 / 0.7);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

@media (min-width: 640px) {
  .tk-result {
    padding: 2.25rem;
  }
}

.tk-bar {
  height: 0.375rem;
  border-radius: 9999px;
  background: rgb(255 255 255 / 0.12);
  overflow: hidden;
}

.tk-bar > span {
  display: block;
  height: 100%;
  border-radius: 9999px;
  background: var(--brand-500);
  transition: width 400ms var(--ease-out);
}

.tk-src {
  display: inline-block;
  margin-top: 0.75rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--brand-500);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.tk-src:hover {
  color: #fff;
}

/* Chips de perfil y de tramo */

.tk-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2.5rem;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--neutral-200);
  background: rgb(255 255 255 / 0.06);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.14);
  transition: background-color 200ms ease, color 200ms ease, box-shadow 200ms ease;
}

.tk-chip ion-icon {
  font-size: 1.1rem;
  color: var(--brand-500);
}

.tk-chip.is-on {
  background: #fff;
  color: var(--neutral-900);
  box-shadow: none;
}

.tk-chip.is-on ion-icon {
  color: var(--neutral-900);
}

.tk-chip:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  .tk-chip:not(.is-on):hover {
    color: #fff;
    box-shadow: inset 0 0 0 1px rgb(105 210 175 / 0.6);
  }
}

.tk-chip--sm {
  min-height: 2.25rem;
  padding: 0.4rem 0.85rem;
  font-size: 0.875rem;
}

/* Deslizadores: pista con relleno de marca (--p) y mando blanco. Los estilos de pulgar van por navegador. */

.tk-range {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  display: block;
  width: 100%;
  height: 1.5rem;
  margin: 0;
  background: transparent;
  cursor: pointer;
}

.tk-range:focus {
  outline: none;
}

.tk-range::-webkit-slider-runnable-track {
  height: 6px;
  border-radius: 9999px;
  background: linear-gradient(90deg, var(--brand-500) var(--p, 0%), rgb(255 255 255 / 0.14) var(--p, 0%));
}

.tk-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 22px;
  height: 22px;
  margin-top: -8px;
  border-radius: 9999px;
  background: #fff;
  border: 0;
  box-shadow: 0 0 0 4px rgb(105 210 175 / 0.28), 0 4px 12px rgb(0 0 0 / 0.35);
  -webkit-transition: box-shadow 160ms ease;
  transition: box-shadow 160ms ease;
}

.tk-range:focus-visible::-webkit-slider-thumb, .tk-range:active::-webkit-slider-thumb {
  box-shadow: 0 0 0 7px rgb(105 210 175 / 0.4), 0 4px 12px rgb(0 0 0 / 0.35);
}

.tk-range::-moz-range-track {
  height: 6px;
  border-radius: 9999px;
  background: rgb(255 255 255 / 0.14);
}

.tk-range::-moz-range-progress {
  height: 6px;
  border-radius: 9999px;
  background: var(--brand-500);
}

.tk-range::-moz-range-thumb {
  width: 22px;
  height: 22px;
  border-radius: 9999px;
  background: #fff;
  border: 0;
  box-shadow: 0 0 0 4px rgb(105 210 175 / 0.28), 0 4px 12px rgb(0 0 0 / 0.35);
}

.tk-range:focus-visible::-moz-range-thumb {
  box-shadow: 0 0 0 7px rgb(105 210 175 / 0.4), 0 4px 12px rgb(0 0 0 / 0.35);
}

.tk-check {
  width: 1.1rem;
  height: 1.1rem;
  flex: none;
  border-radius: 0.3rem;
  accent-color: var(--brand-500);
  cursor: pointer;
}

/* Pantallas táctiles: zona de toque de 40 px en deslizadores y chips (la pista sigue centrada) */

@media (pointer: coarse) {
  .tk-range {
    height: 2.5rem;
  }

  .tk-chip--sm {
    min-height: 2.5rem;
  }
}

/* Barra fija en móvil con el resultado (deja hueco al botón de WhatsApp a la derecha) */

.tk-bar-mobile {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  padding: 0.75rem 0;
  background: rgb(2 18 28 / 0.9);
  border-top: 1px solid rgb(255 255 255 / 0.1);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.tk-bar-mobile .btn-cta {
  min-height: 2.75rem;
  padding: 0.5rem 1.1rem;
  font-size: 0.9375rem;
}

@media (max-width: 1023px) {
  body:has(.tk-bar-mobile, .mobile-bottom-bar) {
    padding-bottom: 5.5rem;
  }

  body:has(.tk-bar-mobile, .mobile-bottom-bar) #whatsapp-widget {
    bottom: 5.5rem;
  }
}

/* Eventos: tarjetas de tipo de evento (ilustración sobre fondo claro) y calendario embebido en tarjeta clara */

.event-card {
  overflow: hidden;
  border-radius: 1.75rem;
  background-color: rgb(255 255 255 / 0.05);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.12);
}

.event-card-media {
  height: 12rem;
  overflow: hidden;
  background-color: var(--neutral-100);
}

.event-card-media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.calendar-card {
  overflow: hidden;
  border-radius: 1.75rem;
  background-color: #fff;
  padding: 0.75rem;
  box-shadow: 0 40px 80px -48px rgb(0 0 0 / 0.7);
}

.pricing-v3 .bg-slate-900, .pricing-v3 .bg-hexagon-pattern-blue {
  background: none;
  background-color: transparent;
}

.pricing-v3 .text-glow-accent {
  text-shadow: none;
}

.pricing-v3 [data-plan-card], .pricing-v3 .bg-white {
  background-color: rgb(255 255 255 / 0.05);
  border-color: rgb(255 255 255 / 0.14);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.04), 0 40px 80px -48px rgb(0 0 0 / 0.7);
}

.pricing-v3 .text-neutral-900, .pricing-v3 .text-gray-900 {
  color: #fff;
}

.pricing-v3 .text-neutral-700, .pricing-v3 .text-neutral-600, .pricing-v3 .text-neutral-500, .pricing-v3 .text-gray-700, .pricing-v3 .text-gray-600 {
  color: var(--neutral-200);
}

.pricing-v3 .text-neutral-400 {
  color: var(--neutral-200);
}

.pricing-v3 .text-brand-600 {
  color: var(--brand-500);
}

.pricing-v3 .text-brand-700 {
  color: #90dfc4;
}

.pricing-v3 .border-neutral-200, .pricing-v3 .border-neutral-100 {
  border-color: rgb(255 255 255 / 0.12);
}

.pricing-v3 .bg-neutral-200 {
  background-color: rgb(255 255 255 / 0.12);
}

.pricing-v3 .bg-neutral-100 {
  background-color: rgb(255 255 255 / 0.06);
}

.pricing-v3 .bg-neutral-900 {
  background-color: rgb(2 18 28 / 0.55);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.12);
}

/* Botones naranjas de los planes: texto tinta (blanco sobre naranja no llega a 3:1) */

.pricing-v3 .bg-accent-600 {
  color: var(--neutral-900);
  border-radius: 9999px;
  font-weight: 700;
}

.pricing-v3 [data-plan-card] .absolute > span {
  color: var(--neutral-900);
}

/* Neerlandés y alemán: palabras compuestas largas (Besparingscalculator, Kommunikationszentrale) en pantallas estrechas */

@media (max-width: 1023px) {
  html:lang(nl) body, html:lang(de) body {
    overflow-wrap: break-word;
  }

  html:lang(nl) :is(h1, h2, h3, h4, [class*="kicker"]), html:lang(de) :is(h1, h2, h3, h4, [class*="kicker"]) {
    hyphens: auto;
    -webkit-hyphens: auto;
  }
}

/* =============================================================================
   IAHOY · FORMACIÓN v3 (/formacion/ y /formacion/claude-gestorias/) · DESIGN.md §14
   Mismo lienzo marino que el resto de páginas v3. Lo que se lee con calma (qué es la
   formación, el programa, qué incluye) va en hojas claras (.fm-sheet) para alternar con
   el marino. Fuera de @layer como iahoy-pages.css: Alpine pone .is-on en tiempo de ejecución.
   ============================================================================= */

/* Sobre una hoja clara, la barra en cristal marino al 55 % dejaba el texto blanco por debajo de 3:1 */

body:has(.fm-sheet) .site-nav[data-mode="dark"][data-scrolled] {
  background-color: rgb(var(--ink-rgb) / 0.92);
}

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

.fm-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--neutral-200);
}

.fm-crumbs a {
  font-weight: 700;
  color: #fff;
  text-decoration: underline;
  text-decoration-color: rgb(255 255 255 / 0.3);
  text-underline-offset: 4px;
}

.fm-crumbs a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
  border-radius: 4px;
}

.fm-crumbs-sep {
  display: inline-flex;
  color: var(--neutral-300);
}

@media (hover: hover) and (pointer: fine) {
  .fm-crumbs a:hover {
    text-decoration-color: #fff;
  }
}

.fm-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 2.25rem;
  padding: 0.35rem 1rem 0.35rem 0.4rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  color: var(--neutral-200);
  background: rgb(255 255 255 / 0.06);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.14);
}

.fm-badge b {
  color: #fff;
}

.fm-badge img {
  width: 1.6rem;
  height: 1.6rem;
  padding: 0.2rem;
  border-radius: 9999px;
  background: #fff;
}

.fm-hero-sub {
  display: block;
  margin-top: 1rem;
  color: var(--brand-500);
  font-size: clamp(1.375rem, 1.1rem + 0.9vw, 2rem);
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.fm-card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  border-radius: 24px;
  padding: 2rem 1.5rem;
  background: rgb(255 255 255 / 0.04);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.12);
}

@media (min-width: 640px) {
  .fm-card {
    padding: 2.25rem;
  }
}

.fm-card--dashed {
  background: transparent;
  box-shadow: none;
  border: 1px dashed rgb(255 255 255 / 0.32);
}

.fm-card-icon {
  width: 3.5rem;
  height: 3.5rem;
}

.fm-textlink {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 0.25rem;
  font-weight: 700;
  color: #fff;
  text-decoration: underline;
  text-decoration-color: rgb(255 255 255 / 0.3);
  text-underline-offset: 4px;
}

.fm-textlink:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
  border-radius: 4px;
}

@media (hover: hover) and (pointer: fine) {
  .fm-textlink:hover {
    text-decoration-color: #fff;
  }
}

/* ---------- Hoja clara ---------- */

.fm-sheet {
  position: relative;
  border-radius: 2rem;
  padding: 3.5rem 1.25rem;
  background: #fff;
  color: var(--neutral-900);
  box-shadow: 0 40px 80px -48px rgb(0 0 0 / 0.7);
}

@media (min-width: 640px) {
  .fm-sheet {
    padding: 4rem 3rem;
  }
}

@media (min-width: 1024px) {
  .fm-sheet {
    padding: 5rem 4.5rem;
  }
}

.fm-sheet .story-kicker {
  color: var(--brand-900);
}

.fm-sheet .t-lead, .fm-muted {
  color: var(--neutral-700);
}

.fm-sheet .btn-solid:focus-visible, .hubspot-card .btn-solid:focus-visible {
  outline-color: var(--neutral-900);
}

.fm-sheet .fm-textlink {
  color: var(--neutral-900);
  text-decoration-color: rgb(var(--ink-rgb) / 0.3);
}

.fm-sheet .fm-textlink:focus-visible {
  outline-color: var(--neutral-900);
}

@media (hover: hover) and (pointer: fine) {
  .fm-sheet .fm-textlink:hover {
    text-decoration-color: var(--neutral-900);
  }
}

/* ---------- Formación en IA para gestorías y asesorías (/formacion/) ---------- */

.fm-statement {
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2.5rem);
  line-height: 1.15;
  letter-spacing: -0.025em;
  text-wrap: balance;
  color: var(--neutral-700);
}

.fm-statement strong {
  font-weight: inherit;
  color: var(--neutral-900);
}

.fm-bento {
  display: grid;
  gap: 1rem;
}

@media (min-width: 1024px) {
  .fm-bento {
    grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
    grid-template-rows: auto auto;
    gap: 1.25rem;
  }

  .fm-bento-tall {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
}

.fm-tile {
  border-radius: 24px;
  padding: 2rem 1.5rem;
  background: var(--neutral-100);
}

@media (min-width: 640px) {
  .fm-tile {
    padding: 2.25rem;
  }
}

.fm-tile--ink {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: var(--neutral-900);
}

.fm-tile--ink::before {
  content: '';
  position: absolute;
  right: -10%;
  top: -10%;
  width: 80%;
  aspect-ratio: 1;
  border-radius: 9999px;
  pointer-events: none;
  background: radial-gradient(closest-side, rgb(66 200 154 / 0.22), rgb(66 200 154 / 0));
}

.fm-tile--ink > * {
  position: relative;
}

.fm-icon-list {
  display: grid;
  gap: 0.85rem;
}

.fm-icon-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  font-weight: 700;
  line-height: 1.4;
}

.fm-icon-list ion-icon {
  flex: none;
  padding: 0.5rem;
  border-radius: 0.75rem;
  font-size: 1.1rem;
  color: var(--brand-900);
  background: #fff;
}

.fm-tile--ink .fm-icon-list li {
  font-weight: 400;
  color: var(--neutral-200);
}

.fm-tile--ink .fm-icon-list ion-icon {
  color: var(--brand-500);
  background: rgb(105 210 175 / 0.14);
}

.fm-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  padding: 1.75rem 0;
  border-top: 1px solid rgb(255 255 255 / 0.14);
  border-bottom: 1px solid rgb(255 255 255 / 0.14);
}

.fm-stats > div {
  display: flex;
  flex-direction: column-reverse;
  justify-content: flex-end;
  gap: 0.4rem;
}

.fm-stats .big-num {
  font-size: clamp(2rem, 1.4rem + 2.2vw, 3.25rem);
  white-space: nowrap;
}

.fm-stats dt {
  font-size: 0.8125rem;
  line-height: 1.35;
  color: var(--neutral-200);
}

/* Tres fechas en una línea (mismos puntos que el calendario de "Empieza en minutos") */

.fm-dates {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  padding-top: 1.6rem;
}

.fm-dates::before {
  content: '';
  position: absolute;
  left: 0.45rem;
  right: 0.45rem;
  top: 0.45rem;
  height: 1px;
  background: rgb(105 210 175 / 0.5);
}

.fm-dates li {
  position: relative;
  font-size: 0.875rem;
  line-height: 1.35;
  color: var(--neutral-200);
}

.fm-dates li::before {
  content: '';
  position: absolute;
  left: 0;
  top: -1.6rem;
  width: 0.95rem;
  height: 0.95rem;
  border-radius: 9999px;
  background: var(--brand-500);
  box-shadow: 0 0 0 6px rgb(105 210 175 / 0.16);
}

.fm-dates b {
  display: block;
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  font-size: 1.125rem;
  color: #fff;
}

.fm-audience {
  display: grid;
  gap: 0.5rem;
}

.fm-audience li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-radius: 1rem;
  background: #fff;
  font-weight: 700;
}

.fm-audience ion-icon {
  flex: none;
  font-size: 1.25rem;
  color: var(--brand-900);
}

.fm-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.fm-checks li {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.85rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 700;
  box-shadow: inset 0 0 0 1px rgb(var(--ink-rgb) / 0.16);
}

.fm-checks ion-icon {
  flex: none;
  color: var(--brand-900);
}

/* ---------- Casos reales (claude-gestorias, marino) ---------- */

.fm-cases {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 1024px) {
  .fm-cases {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 3.5rem;
    align-items: center;
  }
}

.fm-case {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2.5rem;
  overflow: hidden;
  border-radius: 2rem;
  padding: 2.25rem 1.5rem 0;
  background: rgb(255 255 255 / 0.05);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.12), 0 40px 80px -48px rgb(0 0 0 / 0.7);
}

@media (min-width: 640px) {
  .fm-case {
    padding: 2.75rem 2.75rem 0;
    min-height: 26rem;
  }
}

.fm-case::before {
  content: '';
  position: absolute;
  left: 10%;
  right: 10%;
  bottom: -40%;
  height: 80%;
  border-radius: 9999px;
  pointer-events: none;
  background: radial-gradient(closest-side, rgb(66 200 154 / 0.22), rgb(66 200 154 / 0));
}

.fm-case > * {
  position: relative;
}

.fm-doc {
  display: grid;
  gap: 0.6rem;
  padding: 1.25rem 1.25rem 1.5rem;
  border-radius: 16px 16px 0 0;
  background: #fff;
  box-shadow: 0 -10px 40px -10px rgb(0 0 0 / 0.35);
}

.fm-doc-hd {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--neutral-900);
}

.fm-doc-hd ion-icon {
  flex: none;
  font-size: 1.05rem;
  color: var(--neutral-700);
}

.fm-doc i {
  display: block;
  height: 0.5rem;
  border-radius: 9999px;
  background: var(--neutral-100);
}

.fm-doc i:nth-of-type(2) {
  width: 86%;
}

.fm-doc i:nth-of-type(3) {
  width: 64%;
}

.fm-doc-ok {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.35rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--neutral-900);
}

.fm-doc-ok ion-icon {
  flex: none;
  font-size: 1.05rem;
  color: var(--brand-900);
}

.fm-benefits > li {
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
  padding: 1.75rem 0;
  border-top: 1px solid rgb(255 255 255 / 0.14);
}

.fm-benefits > li:last-child {
  border-bottom: 1px solid rgb(255 255 255 / 0.14);
}

.fm-benefits img {
  width: 3.5rem;
  height: 3.5rem;
}

/* ---------- Programa por sesiones (hoja clara) ---------- */

.fm-sessions {
  display: grid;
  gap: 1rem;
}

@media (min-width: 1024px) {
  .fm-sessions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .fm-session {
    height: 100%;
  }
}

.fm-session {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
  padding: 1rem 1rem 1.5rem;
  border-radius: 24px;
  text-align: left;
  color: var(--neutral-900);
  background: var(--neutral-100);
  transition: background-color 220ms ease, color 220ms ease, box-shadow 220ms ease, transform 160ms var(--ease-out);
}

.fm-session:active {
  transform: scale(0.98);
}

.fm-session:focus-visible {
  outline: 2px solid var(--neutral-900);
  outline-offset: 3px;
}

.fm-session-illu {
  display: block;
  margin-bottom: 0.75rem;
  border-radius: 18px;
  background: #fff;
  padding: 0.5rem 1rem;
}

.fm-session-illu img {
  display: block;
  width: 100%;
  max-width: 12rem;
  height: auto;
  margin: 0 auto;
}

.fm-session-when {
  padding: 0 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--brand-900);
}

.fm-session-title {
  padding: 0 0.5rem;
}

.fm-session-sum {
  padding: 0 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--neutral-700);
}

.fm-session-more {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: auto;
  padding: 0.75rem 0.5rem 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--neutral-900);
}

.fm-session-more ion-icon {
  font-size: 1rem;
  transition: transform 220ms var(--ease-out);
}

.fm-session.is-on {
  color: #fff;
  background: var(--neutral-900);
}

.fm-session.is-on .fm-session-when {
  color: var(--brand-500);
}

.fm-session.is-on .fm-session-sum {
  color: var(--neutral-200);
}

.fm-session.is-on .fm-session-more {
  color: var(--brand-500);
}

.fm-session.is-on .fm-session-more ion-icon {
  transform: rotate(180deg);
}

@media (hover: hover) and (pointer: fine) {
  .fm-session:not(.is-on):hover {
    box-shadow: inset 0 0 0 1px rgb(var(--ink-rgb) / 0.22);
  }
}

.fm-panel {
  border-radius: 24px;
  padding: 2rem 1.5rem;
  color: #fff;
  background: var(--neutral-900);
}

@media (min-width: 640px) {
  .fm-panel {
    padding: 2.5rem;
  }
}

.fm-points {
  display: grid;
  gap: 1.75rem 2.5rem;
  counter-reset: fm-point;
}

@media (min-width: 768px) {
  .fm-points {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.fm-points li {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 1rem;
}

.fm-points li::before {
  counter-increment: fm-point;
  content: counter(fm-point);
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--neutral-900);
  background: var(--brand-500);
}

.fm-points p + p {
  margin-top: 0.35rem;
  color: var(--neutral-200);
}

.fm-goal {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.75rem;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  font-weight: 700;
  background: var(--neutral-100);
}

.fm-goal ion-icon {
  flex: none;
  font-size: 1.1rem;
  color: var(--brand-900);
}

/* ---------- Colegio e inscripción ---------- */

.fm-cert {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  border-radius: 2rem;
  padding: 2.25rem 1.5rem;
  background: rgb(255 255 255 / 0.05);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.12), 0 40px 80px -48px rgb(0 0 0 / 0.7);
}

@media (min-width: 640px) {
  .fm-cert {
    padding: 2.75rem;
  }
}

.fm-includes > li {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 1.25rem;
  align-items: center;
  padding: 1.5rem 0;
  border-top: 1px solid rgb(var(--ink-rgb) / 0.10);
  color: var(--neutral-700);
}

.fm-includes > li:last-child {
  border-bottom: 1px solid rgb(var(--ink-rgb) / 0.10);
}

.fm-includes img {
  width: 3rem;
  height: 3rem;
}

.fm-price {
  display: flex;
  flex-direction: column;
  border-radius: 24px;
  padding: 2.25rem 1.75rem;
  color: #fff;
  background: var(--neutral-900);
}

@media (min-width: 640px) {
  .fm-price {
    padding: 2.75rem;
  }
}

.fm-price .big-num {
  margin: 0.5rem 0;
}

.fm-price hr {
  margin: 1.5rem 0;
  border: 0;
  border-top: 1px solid rgb(255 255 255 / 0.14);
}

/* =============================================================================
   IAHOY · FORMACIÓN · Hero en banda clara con la mesa 3D (del desorden al orden) y la
   convocatoria en hoja clara con el logo del Colegio.
   Estado final por defecto: con prefers-reduced-motion todo queda quieto y ordenado.
   Las animaciones solo entran con (prefers-reduced-motion: no-preference) y usan
   transform/opacity salvo el trazo de los conectores, de un solo disparo.
   ============================================================================= */

/* =============================================================================
   Convocatoria como hoja clara con el logo del Colegio en el hueco del sello (fh-*)
   ============================================================================= */

.fh-doc {
  position: relative;
  border-radius: 1.75rem;
  padding: 3.75rem 1.5rem 2.5rem;
  color: var(--neutral-900);
  background:
    linear-gradient(225deg, transparent 2.6rem, #fff 2.6rem) top right / 100% 100% no-repeat;
  box-shadow: 0 40px 80px -40px rgb(0 0 0 / 0.75);
}

.fh-doc::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 3.7rem;
  height: 3.7rem;
  border-bottom-left-radius: 0.9rem;
  background: linear-gradient(225deg, transparent 50%, var(--neutral-200) 50%);
  box-shadow: -6px 6px 14px -6px rgb(0 0 0 / 0.25);
}

@media (min-width: 640px) {
  .fh-doc {
    padding: 3rem 3rem 3.25rem;
  }
}

@media (min-width: 1024px) {
  .fh-doc {
    padding: 3.5rem 4rem 3.75rem;
  }
}

.fh-doc-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  padding-bottom: 1.5rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid rgb(var(--ink-rgb) / 0.12);
}

.fh-status {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.85rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--brand-900);
  background: var(--brand-50);
  box-shadow: inset 0 0 0 1px rgb(45 107 82 / 0.3);
}

.fh-status::before {
  content: '';
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
  background: var(--brand-600);
  box-shadow: 0 0 0 4px rgb(66 200 154 / 0.2);
}

.fh-doc-ref {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--neutral-700);
}

.fh-doc-ref ion-icon {
  color: var(--brand-900);
}

.fh-doc-grid {
  display: grid;
  gap: 2.5rem;
}

@media (min-width: 1024px) {
  .fh-doc-grid {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 4rem;
    align-items: end;
  }
}

.fh-ledger > div {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  padding: 1rem 0;
  border-bottom: 1px dotted rgb(var(--ink-rgb) / 0.3);
}

.fh-ledger > div:first-child {
  border-top: 1px dotted rgb(var(--ink-rgb) / 0.3);
}

.fh-ledger dt {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex: none;
  width: 7.5rem;
  font-size: 0.875rem;
  color: var(--neutral-700);
}

.fh-ledger dt ion-icon {
  flex: none;
  font-size: 1.05rem;
  color: var(--brand-900);
}

.fh-ledger dd {
  margin-left: auto;
  text-align: right;
  font-weight: 700;
}

.fh-ledger dd span {
  font-weight: 400;
  color: var(--neutral-700);
}

.fh-textlink {
  color: var(--neutral-900);
  text-decoration-color: rgb(var(--ink-rgb) / 0.3);
}

.fh-textlink:focus-visible {
  outline-color: var(--neutral-900);
}

.fh-doc .btn-solid:focus-visible {
  outline-color: var(--neutral-900);
}

.fh-stamp {
  position: absolute;
  top: -2.75rem;
  right: 1rem;
  z-index: 1;
  width: 11rem;
  padding: 0.65rem 0.85rem;
  border-radius: 1rem;
  background: #fff;
  box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 5.5px rgb(45 107 82 / 0.55), 0 18px 30px -12px rgb(0 0 0 / 0.45), 0 0 0 1px rgb(var(--ink-rgb) / 0.08);
  transform: rotate(-6deg);
}

.fh-stamp img {
  display: block;
  width: 100%;
  height: auto;
}

@media (min-width: 640px) {
  .fh-stamp {
    top: -3.25rem;
    right: 3.5rem;
    width: 14rem;
    padding: 0.85rem 1.1rem;
  }

  .fh-doc-head {
    padding-right: 15rem;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .motion-ok .fh-doc .fh-stamp {
    opacity: 0;
    transform: rotate(-120deg) scale(0.6);
    transition: opacity 500ms ease 350ms, transform 1100ms var(--ease-out-expo) 350ms;
  }

  .motion-ok .fh-doc.is-revealed .fh-stamp {
    opacity: 1;
    transform: rotate(-6deg);
  }
}

/* =============================================================================
   Banda clara + mesa en 3D. Piezas comunes: fl-*
   Capas de la mesa: .fl-tilt (ratón) > .fl-scroll (scroll) > .fl-plane (ángulo) >
   .fl-slot (altura y scroll por pieza) > .fl-move (ratón por pieza) > .fl-card (caída)
   ============================================================================= */

.fl-band {
  position: relative;
  color: var(--neutral-900);
  background: linear-gradient(180deg, #fff 0%, #f4f9f9 62%, var(--neutral-100) 100%);
  border-radius: 0 0 2.5rem 2.5rem;
  overflow: clip;
}

.fl-hero {
  --px: 0;
  --py: 0;
  position: relative;
}

.fl-title {
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  color: var(--neutral-900);
  font-size: clamp(2.875rem, 1.1rem + 4.6vw, 5.25rem);
  line-height: 0.98;
  letter-spacing: -0.045em;
  text-wrap: balance;
}

.fl-title * {
  font-family: inherit;
}

.fl-title em {
  font-style: normal;
  color: var(--brand-900);
}

.fl-band .t-lead {
  color: var(--neutral-700);
}

.fl-band .btn-solid:focus-visible, .fl-band .btn-ghost:focus-visible {
  outline-color: var(--neutral-900);
}

.fl-stage {
  position: relative;
  height: var(--stage-h, 20rem);
  perspective: var(--persp, 1700px);
  perspective-origin: 50% 30%;
}

.fl-tilt, .fl-scroll {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
}

.fl-tilt {
  transform: rotateX(calc(var(--py) * var(--tilt-x, -7deg))) rotateY(calc(var(--px) * var(--tilt-y, 9deg)));
}

.fl-plane {
  position: absolute;
  left: var(--plane-left, 50%);
  top: var(--plane-top, 50%);
  width: var(--w, 35rem);
  height: var(--h, 35rem);
  transform-style: preserve-3d;
  margin-left: calc(var(--w, 35rem) / -2);
  margin-top: calc(var(--h, 35rem) / -2);
  transform: scale(var(--s, 1)) rotateX(var(--ax, 54deg)) rotateZ(var(--az, -36deg));
}

.fl-floor {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.fl-slot {
  position: absolute;
  transform-style: preserve-3d;
  transform: translateZ(var(--z, 0px));
}

.fl-move {
  transform-style: preserve-3d;
  transform: translate3d(calc(var(--px) * var(--d, 0) * 1px), calc(var(--py) * var(--d, 0) * 1px), 0);
}

.fl-card {
  border-radius: 18px;
  color: var(--neutral-900);
  background: #fff;
  box-shadow: 0 0 0 1px rgb(var(--ink-rgb) / 0.07), -16px 26px 36px -14px rgb(13 61 90 / 0.30);
}

@media (prefers-reduced-motion: no-preference) {
  .fl-card {
    animation: fl-drop 1300ms var(--ease-out-expo) both;
    animation-delay: calc(450ms + var(--i, 0) * var(--stagger, 140ms));
  }

  .fl-floor {
    animation: fl-floor 1400ms var(--ease-out) 200ms both;
  }
}

@keyframes fl-drop {
  from {
    opacity: 0;
    transform: translate3d(calc(var(--sx, 0px) * 0.4), calc(var(--sy, 0px) * 0.4), var(--dz, 220px)) rotateZ(var(--sr, 0deg)) rotateX(-18deg);
  }

  35% {
    opacity: 1;
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes fl-floor {
  from {
    opacity: 0;
    transform: scale(0.85);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

/* ---------- Mesa isométrica: se inclina con el ratón y se separa en altura con el scroll ---------- */

.fl-iso .fl-stage {
  --stage-h: 20rem;
  --s: 0.44;
}

@media (min-width: 640px) {
  .fl-iso .fl-stage {
    --stage-h: 30rem;
    --s: 0.78;
  }
}

@media (min-width: 1024px) {
  .fl-iso .fl-stage {
    --stage-h: 38rem;
    --s: 0.9;
    --plane-top: 58%;
    --plane-left: 52%;
  }
}

.fl-iso .fl-plane {
  --w: 36rem;
  --h: 36rem;
  --ax: 55deg;
  --az: -38deg;
}

@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: scroll()) {
    .fl-iso .fl-slot {
      animation: fl-lift linear both;
      animation-timeline: scroll(root);
      animation-range: 0 70vh;
    }
  }
}

@keyframes fl-lift {
  from {
    transform: translateZ(var(--z, 0px));
  }

  to {
    transform: translateZ(calc(var(--z, 0px) * 2.2 + 24px));
  }
}

/* =============================================================================
   Del desorden al orden: los objetos caen amontonados (.fo-mess desplazado) y,
   cuando aparecen los conectores menta, se colocan en su sitio. Sin movimiento: ya ordenados.
   Capas: .fl-slot > .fl-move > .fo-mess (desorden -> orden) > .fl-card (caída)
   ============================================================================= */

.fo-mess {
  transform-style: preserve-3d;
}

.fo-card {
  position: relative;
}

.fo-label {
  display: block;
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.9375rem;
  line-height: 1.1;
}

.fo-ok {
  position: absolute;
  top: -0.6rem;
  right: -0.6rem;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 9999px;
  background: var(--brand-600);
  box-shadow: 0 0 0 3px #fff;
}

.fo-ok::after {
  content: '';
  position: absolute;
  left: 0.5rem;
  top: 0.33rem;
  width: 0.4rem;
  height: 0.72rem;
  border: solid #fff;
  border-width: 0 0.17rem 0.17rem 0;
  transform: rotate(45deg);
}

.fo-bars {
  display: grid;
  gap: 0.45rem;
  margin-top: 0.75rem;
}

.fo-bars b {
  display: block;
  height: 0.42rem;
  border-radius: 9999px;
  background: var(--neutral-200);
}

.fo-mail {
  width: 9.5rem;
  padding: 1rem 1rem 0.85rem;
}

.fo-mail svg {
  width: 3rem;
  height: auto;
}

.fo-mail .fo-label {
  margin-top: 0.6rem;
}

.fo-badge {
  position: absolute;
  left: 3.1rem;
  top: 0.55rem;
  display: grid;
  place-items: center;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  color: var(--neutral-900);
  background: var(--accent-600);
  box-shadow: 0 0 0 3px #fff;
}

.fo-inv {
  width: 7.5rem;
  padding: 0.9rem 0.9rem 1.1rem;
  border-radius: 10px 10px 0 0;
}

.fo-inv::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -7px;
  height: 8px;
  background: conic-gradient(from -45deg at bottom, #0000, #fff 1deg 89deg, #0000 90deg) 50% / 14px 100%;
}

.fo-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  margin-top: 0.8rem;
  padding-top: 0.55rem;
  border-top: 1.5px dashed var(--neutral-200);
}

.fo-total b {
  display: block;
  width: 55%;
  height: 0.55rem;
  border-radius: 9999px;
  background: var(--neutral-900);
}

.fo-total em {
  font-style: normal;
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--brand-900);
}

.fo-inv .fo-ok {
  right: -0.4rem;
  top: -0.5rem;
}

.fo-phone {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  width: 6.25rem;
  height: 10.5rem;
  padding: 1.4rem 0.55rem 0.6rem;
  border-radius: 1.3rem;
  background: var(--neutral-900);
  box-shadow: inset 0 0 0 3px #0a3350, -16px 26px 36px -14px rgb(13 61 90 / 0.4);
}

.fo-notch {
  position: absolute;
  top: 0.5rem;
  left: 50%;
  width: 1.8rem;
  height: 0.35rem;
  margin-left: -0.9rem;
  border-radius: 9999px;
  background: #0a3350;
}

.fo-bub {
  display: block;
  width: 78%;
  height: 1.4rem;
  border-radius: 0.6rem 0.6rem 0.6rem 0.2rem;
  background: #fff;
}

.fo-bub--me {
  align-self: flex-end;
  width: 64%;
  border-radius: 0.6rem 0.6rem 0.2rem 0.6rem;
  background: var(--brand-500);
}

.fo-bub--s {
  width: 52%;
}

.fo-note {
  width: 6.75rem;
  height: 6.75rem;
  padding: 0.9rem 0.8rem;
  border-radius: 4px;
  background: #fde68a;
  box-shadow: -14px 22px 30px -14px rgb(13 61 90 / 0.3);
}

.fo-scrib {
  display: grid;
  gap: 0.6rem;
  margin-top: 0.4rem;
}

.fo-scrib b {
  display: block;
  height: 0.3rem;
  border-radius: 9999px;
  background: #b45309;
  opacity: 0.55;
}

.fo-folder {
  width: 10.5rem;
  padding: 1.3rem 1rem 1rem;
  border-radius: 6px 14px 14px 14px;
  background: var(--brand-500);
  box-shadow: -16px 26px 36px -14px rgb(13 61 90 / 0.32);
}

.fo-tab {
  position: absolute;
  left: 0;
  top: -0.75rem;
  width: 4.5rem;
  height: 1rem;
  border-radius: 8px 8px 0 0;
  background: var(--brand-500);
}

.fo-folder .fo-bars b {
  background: rgb(13 61 90 / 0.25);
}

.fo-cal {
  width: 8.5rem;
  padding: 0 0.8rem 0.8rem;
  overflow: visible;
}

.fo-cal-hd {
  display: block;
  height: 1.1rem;
  margin: 0 -0.8rem 0.6rem;
  border-radius: 18px 18px 0 0;
  background: var(--neutral-900);
}

.fo-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.35rem;
}

.fo-grid i {
  display: block;
  aspect-ratio: 1;
  border-radius: 4px;
  background: var(--neutral-100);
}

.fo-grid i.is-due {
  background: var(--accent-600);
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--accent-600);
}

.fo-cal .fo-label {
  margin-top: 0.6rem;
}

.fo-link {
  fill: none;
  stroke: var(--brand-600);
  stroke-width: 3.5;
  stroke-linecap: round;
  stroke-dasharray: 1 1;
  stroke-dashoffset: 0;
}

.fo-node {
  fill: #fff;
  stroke: var(--brand-900);
  stroke-width: 3;
}

@media (prefers-reduced-motion: no-preference) {
  .fo-mess {
    animation: fo-order 1200ms var(--ease-in-out) both;
    animation-delay: calc(2500ms + var(--i, 0) * 90ms);
  }

  .fo-link {
    animation: fl-draw-link 800ms var(--ease-out) both;
    animation-delay: calc(3300ms + var(--n, 0) * 120ms);
  }

  .fo-node {
    animation: fo-fade 500ms ease both;
    animation-delay: calc(3500ms + var(--n, 0) * 120ms);
  }

  .fo-ok {
    animation: fo-pop 600ms var(--ease-out-expo) both;
    animation-delay: calc(3800ms + var(--i, 0) * 110ms);
  }

  .fo-hero .fl-card {
    --dz: 320px;
    animation-duration: 1000ms;
    animation-delay: calc(300ms + var(--i, 0) * 120ms);
  }
}

@keyframes fo-order {
  from {
    transform: translate3d(var(--ox, 0px), var(--oy, 0px), 0) rotateZ(var(--or, 0deg));
  }

  to {
    transform: none;
  }
}

@keyframes fl-draw-link {
  from {
    stroke-dashoffset: 1;
  }

  to {
    stroke-dashoffset: 0;
  }
}

@keyframes fo-fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fo-pop {
  from {
    opacity: 0;
    transform: scale(0.3);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

/* Mesa isométrica; las entradas se unen a la carpeta del cliente y de ahí a plazos y tareas. El scroll gira la mesa. */

.fl-orden .fl-plane {
  --ax: 55deg;
  --az: -36deg;
}

@media (min-width: 1024px) {
  .fl-orden .fl-stage {
    --s: 0.96;
    --plane-top: 55%;
    --plane-left: 49%;
  }
}

@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: scroll()) {
    .fl-orden .fl-slot {
      animation: none;
    }

    .fl-orden .fl-scroll {
      animation: fo-turn linear both;
      animation-timeline: scroll(root);
      animation-range: 0 70vh;
    }
  }
}

@keyframes fo-turn {
  from {
    transform: none;
  }

  to {
    transform: translateY(-6%) rotateZ(-6deg) scale(1.04);
  }
}

/* ---------- "La foto completa" (home, banda "¿Está todo bajo control?"): misma mesa, objetos ya ordenados alrededor de IAhoy ---------- */

.fc-mesa .fl-stage {
  --stage-h: 15rem;
  --s: 0.42;
  margin-bottom: -2rem;
}

@media (min-width: 640px) {
  .fc-mesa .fl-stage {
    --stage-h: 24rem;
    --s: 0.6;
  }
}

@media (min-width: 1024px) {
  .fc-mesa .fl-stage {
    --stage-h: 30rem;
    --s: 0.74;
    --plane-top: 52%;
  }
}

.fc-hub {
  display: grid;
  place-items: center;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 30px;
  box-shadow: 0 0 0 8px rgb(105 210 175 / 0.22), -16px 26px 36px -14px rgb(13 61 90 / 0.30);
}

.fc-hub img {
  width: 3.6rem;
  height: auto;
}

@media (prefers-reduced-motion: no-preference) {
  /* Todo espera a que la sección se vea (iahoy-motion.js añade .is-revealed) */

  .fc-mesa:not(.is-revealed) :is(.fl-card, .fl-floor, .fo-link, .fo-ok) {
    animation-play-state: paused;
  }

  .fc-mesa .fl-card {
    animation-delay: calc(150ms + var(--i, 0) * 110ms);
  }

  .fc-mesa .fo-link {
    animation-delay: calc(900ms + var(--n, 0) * 110ms);
  }

  .fc-mesa .fo-ok {
    animation-delay: calc(1300ms + var(--i, 0) * 90ms);
  }

  .fc-mesa.is-revealed .fc-hub {
    animation: fl-drop 1300ms var(--ease-out-expo) 650ms both, fc-pulse 3.2s ease-in-out 2.4s infinite;
  }
}

@keyframes fc-pulse {
  0%, 100% {
    box-shadow: 0 0 0 8px rgb(105 210 175 / 0.22), -16px 26px 36px -14px rgb(13 61 90 / 0.30);
  }

  50% {
    box-shadow: 0 0 0 16px rgb(105 210 175 / 0.08), -16px 26px 36px -14px rgb(13 61 90 / 0.30);
  }
}

/* ---------- Claude en tu gestoría (hero oscuro): Claude lee lo que entra en el despacho y actúa ----------
   Secuencia de una sola pasada (--t por pieza): caen las piezas, se trazan los conectores de entrada,
   Claude lee (barrido sobre cada documento, el símbolo gira), y salen la respuesta, el informe y la Skill. */

.fcl {
  overflow-x: clip;
}

.fcl .fl-stage {
  --stage-h: 23rem;
  --s: 0.54;
}

@media (min-width: 640px) {
  .fcl .fl-stage {
    --stage-h: 30rem;
    --s: 0.74;
  }
}

@media (min-width: 1024px) {
  .fcl .fl-stage {
    --stage-h: 38rem;
    --s: 0.98;
    --plane-top: 54%;
    --plane-left: 47%;
  }
}

.fcl .fl-card {
  box-shadow: 0 0 0 1px rgb(var(--ink-rgb) / 0.07), -16px 26px 36px -14px rgb(3 20 31 / 0.55);
}

.fcl .fo-link {
  stroke: var(--brand-500);
}

.fcl .fo-node {
  stroke: var(--brand-500);
  fill: var(--neutral-900);
}

.fcl-pulse {
  fill: none;
  stroke: #fff;
  stroke-width: 6;
  stroke-linecap: round;
  stroke-dasharray: 0.05 1.05;
  stroke-dashoffset: 0.05;
  opacity: 0;
}

.fcl-sub {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.75rem;
  color: var(--neutral-700);
}

.fcl-mail {
  width: 9rem;
  padding: 1rem 1rem 0.9rem;
}

.fcl-mail svg {
  width: 3rem;
  height: auto;
}

.fcl-mail .fo-label {
  margin-top: 0.6rem;
}

.fcl-doc {
  width: 8.5rem;
  padding: 0.9rem 0.9rem 1rem;
  border-radius: 6px;
}

.fcl-mark {
  position: relative;
}

.fcl-mark::after {
  content: '';
  position: absolute;
  inset: -0.2rem -0.3rem;
  border-radius: 0.3rem;
  background: rgb(249 154 38 / 0.38);
}

.fcl-aeat {
  width: 10rem;
  padding: 0.9rem 1rem 1rem;
  border-top: 0.45rem solid #b42318;
  border-radius: 10px;
}

.fcl-due {
  display: inline-block;
  margin-top: 0.7rem;
  padding: 0.2rem 0.5rem;
  border-radius: 9999px;
  font-size: 0.6875rem;
  font-weight: 700;
  color: #b42318;
  background: #fde8e6;
}

.fcl-scan {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
  pointer-events: none;
}

.fcl-scan::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 40%;
  opacity: 0;
  background: linear-gradient(180deg, rgb(105 210 175 / 0), rgb(105 210 175 / 0.55) 80%, #42c89a);
}

.fcl-hub {
  display: grid;
  place-items: center;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 0 0 10px rgb(105 210 175 / 0.18), -20px 40px 50px -16px rgb(3 20 31 / 0.6);
}

.fcl-hub img {
  width: 3.6rem;
  height: auto;
}

/* El aviso de estado mira a la cámara: deshace el giro de la mesa */

.fcl-status {
  position: relative;
  transform: rotateZ(36deg) rotateX(-55deg);
  transform-origin: 50% 100%;
  width: 13rem;
  height: 2.5rem;
}

.fcl-status > span {
  position: absolute;
  left: 0;
  top: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  white-space: nowrap;
  padding: 0.55rem 0.95rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--neutral-900);
  background: #fff;
  box-shadow: 0 14px 30px -12px rgb(3 20 31 / 0.6);
}

.fcl-status-a {
  opacity: 0;
}

.fcl-status-a i {
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 9999px;
  background: #d97757;
}

.fcl-status-a i:last-of-type {
  margin-right: 0.35rem;
}

.fcl-status-b::before {
  content: '';
  width: 0.5rem;
  height: 0.5rem;
  margin-right: 0.2rem;
  border-radius: 9999px;
  background: var(--brand-600);
  box-shadow: 0 0 0 3px rgb(66 200 154 / 0.25);
}

.fcl-reply {
  width: 10.5rem;
  padding: 0.95rem 1rem 1rem;
}

.fcl-type {
  display: grid;
  gap: 0.4rem;
  margin-top: 0.7rem;
}

.fcl-type b {
  display: block;
  width: var(--bw, 92%);
  height: 0.42rem;
  border-radius: 9999px;
  background: var(--brand-500);
  transform-origin: 0 50%;
}

.fcl-report {
  width: 8.5rem;
  padding: 0.9rem 0.95rem 0.9rem;
}

.fcl-chart {
  display: flex;
  align-items: flex-end;
  gap: 0.35rem;
  height: 2.6rem;
  margin-top: 0.6rem;
  padding-bottom: 0.15rem;
  border-bottom: 1.5px solid var(--neutral-200);
}

.fcl-chart b {
  flex: 1;
  height: var(--h);
  border-radius: 0.2rem 0.2rem 0 0;
  background: var(--brand-600);
  transform-origin: 50% 100%;
}

.fcl-chart b:last-child {
  background: var(--accent-600);
}

.fcl-skill-card {
  width: 12rem;
  padding: 0.85rem 0.9rem;
}

.fcl-skill {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.fcl-skill svg {
  flex: none;
  width: 1.6rem;
  height: 1.6rem;
}

.fcl-skill > span {
  flex: 1;
}

.fcl-skill em {
  position: relative;
  flex: none;
  width: 2rem;
  height: 1.15rem;
  border-radius: 9999px;
  background: var(--brand-600);
}

.fcl-skill em::after {
  content: '';
  position: absolute;
  top: 0.17rem;
  left: 1rem;
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 9999px;
  background: #fff;
}

@media (prefers-reduced-motion: no-preference) {
  .fcl .fl-card {
    animation-delay: calc(200ms + var(--i, 0) * 110ms);
  }

  .fcl .fo-link, .fcl .fo-node {
    animation-delay: var(--t);
  }

  .fcl .fcl-pulse {
    animation: fcl-pulse 900ms var(--ease-in-out) var(--t) both;
  }

  .fcl .fcl-hub-shadow {
    animation: fo-fade 900ms ease 700ms both;
  }

  /* Lee: barrido menta sobre cada documento; el símbolo gira mientras tanto */

  .fcl .fcl-in .fcl-scan::after {
    animation: fcl-scan 900ms var(--ease-in-out) var(--t) both;
  }

  .fcl .fcl-mark::after {
    animation: fcl-mark 400ms ease both;
    animation-delay: calc(var(--t, 2200ms) + 500ms);
  }

  .fcl .fcl-doc .fcl-mark:nth-child(4)::after {
    animation-delay: calc(var(--t, 2200ms) + 750ms);
  }

  .fcl .fcl-hub img {
    animation: fcl-think 2400ms var(--ease-in-out) 1700ms both;
  }

  .fcl .fcl-status {
    animation: fcl-status 600ms var(--ease-out-expo) 1700ms both;
  }

  .fcl .fcl-status-a {
    animation: fcl-status-a 2000ms ease 1700ms both;
  }

  .fcl .fcl-status-a i {
    animation: fcl-dot 700ms ease-in-out 1700ms 3 both;
  }

  .fcl .fcl-status-a i:nth-of-type(2) {
    animation-delay: 1850ms;
  }

  .fcl .fcl-status-a i:nth-of-type(3) {
    animation-delay: 2000ms;
  }

  .fcl .fcl-status-b {
    animation: fo-fade 400ms ease 3600ms both;
  }

  /* Actúa: se escribe la respuesta, crece el informe, se activa la Skill */

  .fcl .fcl-type b {
    animation: fcl-grow-x 500ms var(--ease-out) both;
    animation-delay: var(--t);
  }

  .fcl .fcl-type b:nth-child(2) {
    animation-delay: calc(var(--t) + 180ms);
  }

  .fcl .fcl-type b:nth-child(3) {
    animation-delay: calc(var(--t) + 360ms);
  }

  .fcl .fcl-chart b {
    animation: fcl-grow-y 600ms var(--ease-out-expo) both;
    animation-delay: var(--t);
  }

  .fcl .fcl-chart b:nth-child(2) {
    animation-delay: calc(var(--t) + 90ms);
  }

  .fcl .fcl-chart b:nth-child(3) {
    animation-delay: calc(var(--t) + 180ms);
  }

  .fcl .fcl-chart b:nth-child(4) {
    animation-delay: calc(var(--t) + 270ms);
  }

  .fcl .fcl-skill em {
    animation: fcl-toggle-bg 300ms ease both;
    animation-delay: var(--t);
  }

  .fcl .fcl-skill em::after {
    animation: fcl-toggle 300ms var(--ease-out) both;
    animation-delay: var(--t);
  }

  .fcl .fo-ok {
    animation-delay: calc(var(--t, 4200ms) + 500ms);
  }
}

@keyframes fcl-pulse {
  0% {
    opacity: 1;
    stroke-dashoffset: 0.05;
  }

  90% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    stroke-dashoffset: -1;
  }
}

@keyframes fcl-scan {
  0% {
    opacity: 1;
    transform: translateY(-100%);
  }

  85% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: translateY(250%);
  }
}

@keyframes fcl-mark {
  from {
    opacity: 0;
    transform: scaleX(0.2);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes fcl-think {
  0% {
    transform: none;
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes fcl-status {
  from {
    opacity: 0;
    transform: rotateZ(36deg) rotateX(-55deg) translateY(10px) scale(0.9);
  }

  to {
    opacity: 1;
    transform: rotateZ(36deg) rotateX(-55deg);
  }
}

@keyframes fcl-status-a {
  0%, 92% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes fcl-dot {
  0%, 100% {
    opacity: 0.3;
  }

  50% {
    opacity: 1;
  }
}

@keyframes fcl-grow-x {
  from {
    transform: scaleX(0);
  }

  to {
    transform: none;
  }
}

@keyframes fcl-grow-y {
  from {
    transform: scaleY(0);
  }

  to {
    transform: none;
  }
}

@keyframes fcl-toggle-bg {
  from {
    background: var(--neutral-200);
  }

  to {
    background: var(--brand-600);
  }
}

@keyframes fcl-toggle {
  from {
    left: 0.2rem;
  }

  to {
    left: 1rem;
  }
}

*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box;
  /* 1 */
  border-width: 0;
  /* 2 */
  border-style: solid;
  /* 2 */
  border-color: #c1cfd6;
  /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -moz-tab-size: 4;
  /* 3 */
  -o-tab-size: 4;
     tab-size: 4;
  /* 3 */
  font-family: Lato, Lato Fallback, system-ui, sans-serif;
  /* 4 */
  font-feature-settings: normal;
  /* 5 */
  font-variation-settings: normal;
  /* 6 */
  -webkit-tap-highlight-color: transparent;
  /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0;
  /* 1 */
  line-height: inherit;
  /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0;
  /* 1 */
  color: inherit;
  /* 2 */
  border-top-width: 1px;
  /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  /* 1 */
  font-feature-settings: normal;
  /* 2 */
  font-variation-settings: normal;
  /* 3 */
  font-size: 1em;
  /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0;
  /* 1 */
  border-color: inherit;
  /* 2 */
  border-collapse: collapse;
  /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-feature-settings: inherit;
  /* 1 */
  font-variation-settings: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  font-weight: inherit;
  /* 1 */
  line-height: inherit;
  /* 1 */
  letter-spacing: inherit;
  /* 1 */
  color: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
  padding: 0;
  /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button;
  /* 1 */
  background-color: transparent;
  /* 2 */
  background-image: none;
  /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  /* 1 */
  color: #879ead;
  /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  /* 1 */
  color: #879ead;
  /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  /* 1 */
  vertical-align: middle;
  /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  border-color: #6b8498;
  border-width: 1px;
  border-radius: 0px;
  padding-top: 0.5rem;
  padding-right: 0.75rem;
  padding-bottom: 0.5rem;
  padding-left: 0.75rem;
  font-size: 1rem;
  line-height: 1.5rem;
  --tw-shadow: 0 0 #0000;
}

[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: #2563eb;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  border-color: #2563eb;
}

input::-moz-placeholder, textarea::-moz-placeholder {
  color: #6b8498;
  opacity: 1;
}

input::placeholder,textarea::placeholder {
  color: #6b8498;
  opacity: 1;
}

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-date-and-time-value {
  min-height: 1.5em;
  text-align: inherit;
}

::-webkit-datetime-edit {
  display: inline-flex;
}

::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {
  padding-top: 0;
  padding-bottom: 0;
}

select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b8498' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 0.5rem center;
  background-repeat: no-repeat;
  background-size: 1.5em 1.5em;
  padding-right: 2.5rem;
  -webkit-print-color-adjust: exact;
          print-color-adjust: exact;
}

[multiple],[size]:where(select:not([size="1"])) {
  background-image: initial;
  background-position: initial;
  background-repeat: unset;
  background-size: initial;
  padding-right: 0.75rem;
  -webkit-print-color-adjust: unset;
          print-color-adjust: unset;
}

[type='checkbox'],[type='radio'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  -webkit-print-color-adjust: exact;
          print-color-adjust: exact;
  display: inline-block;
  vertical-align: middle;
  background-origin: border-box;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  flex-shrink: 0;
  height: 1rem;
  width: 1rem;
  color: #2563eb;
  background-color: #fff;
  border-color: #6b8498;
  border-width: 1px;
  --tw-shadow: 0 0 #0000;
}

[type='checkbox'] {
  border-radius: 0px;
}

[type='radio'] {
  border-radius: 100%;
}

[type='checkbox']:focus,[type='radio']:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
  --tw-ring-offset-width: 2px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: #2563eb;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}

[type='checkbox']:checked,[type='radio']:checked {
  border-color: transparent;
  background-color: currentColor;
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
}

[type='checkbox']:checked {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
}

@media (forced-colors: active)  {
  [type='checkbox']:checked {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}

[type='radio']:checked {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
}

@media (forced-colors: active)  {
  [type='radio']:checked {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}

[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {
  border-color: transparent;
  background-color: currentColor;
}

[type='checkbox']:indeterminate {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");
  border-color: transparent;
  background-color: currentColor;
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
}

@media (forced-colors: active)  {
  [type='checkbox']:indeterminate {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}

[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {
  border-color: transparent;
  background-color: currentColor;
}

[type='file'] {
  background: unset;
  border-color: inherit;
  border-width: 0;
  border-radius: 0;
  padding: 0;
  font-size: unset;
  line-height: inherit;
}

[type='file']:focus {
  outline: 1px solid ButtonText;
  outline: 1px auto -webkit-focus-ring-color;
}

:root {
  --ink-rgb: 13 61 90;
  /* neutral-900 #0d3d5a en componentes RGB, para transparencias */
  --hairline: rgb(var(--ink-rgb) / 0.08);
  --shadow-1: 0 1px 2px rgb(var(--ink-rgb) / 0.06), 0 1px 1px rgb(var(--ink-rgb) / 0.04);
  --shadow-2: 0 1px 2px rgb(var(--ink-rgb) / 0.05), 0 10px 28px -8px rgb(var(--ink-rgb) / 0.16);
  --shadow-3: 0 2px 6px rgb(var(--ink-rgb) / 0.06), 0 28px 60px -18px rgb(var(--ink-rgb) / 0.30);
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
}

html {
  -webkit-tap-highlight-color: rgb(var(--ink-rgb) / 0.08);
}

::-moz-selection {
  background: rgb(66 200 154 / 0.28);
  color: var(--neutral-900);
}

::selection {
  background: rgb(66 200 154 / 0.28);
  color: var(--neutral-900);
}

/* Mismo hueco que ionicons da al icono al cargar: sin esto mide 0 y la línea salta al aparecer */

ion-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  box-sizing: content-box;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
}

/* Typography hierarchy with Funnel Display and Lato */

h1 {
  font-family: Funnel Display, Funnel Display Fallback, system-ui, sans-serif;
  font-weight: 700;
}

h2 {
  font-family: Funnel Display, Funnel Display Fallback, system-ui, sans-serif;
  font-weight: 600;
}

h3 {
  font-family: Lato, Lato Fallback, system-ui, sans-serif;
  font-weight: 600;
}

h4, h5, h6 {
  font-family: Lato, Lato Fallback, system-ui, sans-serif;
  font-weight: 500;
}

p, span, div, a, li, td, th {
  font-family: Lato, Lato Fallback, system-ui, sans-serif;
}

.container {
  width: 100%;
}

@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}

@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}

@media (min-width: 1536px) {
  .container {
    max-width: 1536px;
  }
}

/* Banner de cookies: tarjeta compacta; los dos botones con el mismo peso (AEPD) */

.consent-card {
  box-shadow: 0 24px 60px -20px rgb(0 0 0 / 0.45), 0 0 0 1px rgb(var(--ink-rgb) / 0.06);
}

.consent-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0 1rem;
  border-radius: 9999px;
  background: var(--neutral-900);
  color: #fff;
  font-weight: 700;
  font-size: 0.9375rem;
  transition: background-color 200ms ease, transform 160ms var(--ease-out);
}

.consent-btn:active {
  transform: scale(0.97);
}

.consent-btn:focus-visible {
  outline: 2px solid var(--neutral-900);
  outline-offset: 2px;
}

@media (hover: hover) and (pointer: fine) {
  .consent-btn:hover {
    background: #164e6f;
  }
}

/* ---------- Tipografía ---------- */

.t-display, .t-h2, .t-h3, .t-title {
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  text-wrap: balance;
  font-feature-settings: "kern";
}

.t-display *, .t-h2 *, .t-h3 *, .t-title * {
  font-family: inherit;
}

.t-h2 {
  font-size: clamp(2.125rem, 1.45rem + 2vw, 3.25rem);
  line-height: 1.06;
  letter-spacing: -0.03em;
}

.t-h3 {
  font-size: clamp(1.5rem, 1.25rem + 0.8vw, 2rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.t-title {
  font-size: 1.25rem;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

.t-lead {
  font-family: 'Lato', 'Lato Fallback', system-ui, sans-serif;
  font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
  line-height: 1.6;
  text-wrap: pretty;
}

.t-small {
  font-size: 0.875rem;
  line-height: 1.5;
}

.t-eyebrow {
  font-family: 'Lato', 'Lato Fallback', system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.8125rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.tabular {
  font-variant-numeric: tabular-nums;
}

/* ---------- Botones secundarios (píldora) ---------- */

.btn-ghost, .btn-ghost-dark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 9999px;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-family: Lato, Lato Fallback, system-ui, sans-serif;
  font-weight: 700;
  min-height: 3rem;
  transition: background-color 200ms ease, border-color 200ms ease, color 200ms ease, transform 160ms var(--ease-out);
}

.btn-ghost {
  color: var(--neutral-900);
  border: 1px solid rgb(var(--ink-rgb) / 0.16);
  background: transparent;
}

.btn-ghost-dark {
  color: #fff;
  border: 1px solid rgb(255 255 255 / 0.28);
  background: rgb(255 255 255 / 0.02);
}

.btn-ghost:active, .btn-ghost-dark:active {
  transform: scale(0.97);
}

.btn-ghost:focus-visible {
  outline: 2px solid var(--neutral-900);
  outline-offset: 3px;
}

.btn-ghost-dark:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  .btn-ghost:hover {
    background: rgb(var(--ink-rgb) / 0.05);
    border-color: rgb(var(--ink-rgb) / 0.28);
  }

  .btn-ghost-dark:hover {
    background: rgb(255 255 255 / 0.10);
    border-color: rgb(255 255 255 / 0.45);
  }
}

.btn-xl {
  min-height: 3.5rem;
  padding-left: 1.75rem;
  padding-right: 1.75rem;
  font-size: 1.0625rem;
}

/* ---------- Superficies ---------- */

.frame-media {
  border-radius: 28px;
  box-shadow: var(--shadow-3);
  overflow: hidden;
}

/* ---------- Movimiento: apariciones y entrada del hero ---------- */

.motion-ok [data-reveal] {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition: opacity 700ms var(--ease-out-expo), transform 700ms var(--ease-out-expo);
  transition-delay: calc(var(--reveal-i, 0) * 70ms);
}

.motion-ok [data-reveal].is-revealed {
  opacity: 1;
  transform: none;
}

@keyframes iahoy-hero-in {
  from {
    opacity: 0;
    transform: translate3d(0, 14px, 0);
    filter: blur(6px);
  }

  to {
    opacity: 1;
    transform: none;
    filter: blur(0);
  }
}

.motion-ok .hero-in {
  animation: iahoy-hero-in 900ms var(--ease-out-expo) both;
  animation-delay: calc(var(--hero-i, 0) * 90ms + 120ms);
}

/* ---------- Barra de navegación ---------- */

.site-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  padding-top: env(safe-area-inset-top);
  color: var(--neutral-900);
  background-color: rgb(255 255 255 / 0);
  transition: background-color 280ms ease, box-shadow 280ms ease, color 280ms ease;
}

.site-nav[data-state="solid"] {
  background-color: rgb(255 255 255 / 0.82);
  -webkit-backdrop-filter: saturate(1.6) blur(14px);
  backdrop-filter: saturate(1.6) blur(14px);
}

.site-nav[data-state="solid"][data-scrolled] {
  box-shadow: 0 1px 0 var(--hairline), 0 8px 24px -16px rgb(var(--ink-rgb) / 0.18);
}

.site-nav[data-state="over-dark"] {
  color: #fff;
}

.site-nav .nav-logo-light {
  display: none;
}

.site-nav[data-state="over-dark"] .nav-logo-light {
  display: block;
}

.site-nav[data-state="over-dark"] .nav-logo-dark {
  display: none;
}

.site-nav .nav-item {
  color: rgb(var(--ink-rgb) / 0.82);
  border-radius: 9999px;
  transition: color 180ms ease, background-color 180ms ease;
}

.site-nav[data-state="over-dark"] .nav-item {
  color: rgb(255 255 255 / 0.84);
}

.site-nav .nav-item[aria-current="page"] {
  color: var(--neutral-900);
  font-weight: 700;
}

.site-nav[data-state="over-dark"] .nav-item[aria-current="page"] {
  color: #fff;
}

@media (hover: hover) and (pointer: fine) {
  .site-nav .nav-item:hover {
    color: var(--neutral-900);
    background-color: rgb(var(--ink-rgb) / 0.05);
  }

  .site-nav[data-state="over-dark"] .nav-item:hover {
    color: #fff;
    background-color: rgb(255 255 255 / 0.08);
  }
}

/* Selector de idioma (components/navbar.html): mismos colores que .nav-item, sin su tracking */

.site-nav .nav-lang {
  color: rgb(var(--ink-rgb) / 0.82);
  border-radius: 9999px;
  transition: color 180ms ease, background-color 180ms ease;
}

.site-nav[data-state="over-dark"] .nav-lang {
  color: rgb(255 255 255 / 0.84);
}

@media (hover: hover) and (pointer: fine) {
  .site-nav .nav-lang:hover {
    color: var(--neutral-900);
    background-color: rgb(var(--ink-rgb) / 0.05);
  }

  .site-nav[data-state="over-dark"] .nav-lang:hover {
    color: #fff;
    background-color: rgb(255 255 255 / 0.08);
  }
}

.site-nav .nav-item:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* ---------- Logos de respaldo ---------- */

/* ---------- Detalles editoriales (home) ---------- */

/* Barra sobre el fondo oscuro de toda la página: cristal marino al hacer scroll */

.site-nav[data-mode="dark"][data-scrolled] {
  background-color: rgb(var(--ink-rgb) / 0.55);
  -webkit-backdrop-filter: saturate(1.5) blur(16px);
  backdrop-filter: saturate(1.5) blur(16px);
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.08);
}

/* ---------- Piezas ---------- */

.logo-mono {
  filter: brightness(0) invert(1);
  opacity: 0.7;
  transition: opacity 240ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .logo-mono:hover {
    opacity: 1;
  }
}

.bubble {
  position: relative;
  max-width: 34rem;
  padding: 1.1rem 1.4rem;
  background: rgb(var(--ink-rgb) / 0.62);
  color: #fff;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.10), 0 18px 40px -24px rgb(0 0 0 / 0.55);
  border-radius: 22px 22px 6px 22px;
}

.bubble-reply {
  border-radius: 22px 22px 22px 6px;
  background: rgb(66 200 154 / 0.16);
  box-shadow: inset 0 0 0 1px rgb(105 210 175 / 0.30);
}

.strike-text {
  background: linear-gradient(currentColor, currentColor) 0 58% / 100% 1.5px no-repeat;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.quote-mark {
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  font-size: 5rem;
  line-height: 0.6;
  color: var(--brand-500);
}

.steps-v2 {
  position: relative;
}

.steps-v2::before {
  content: '';
  position: absolute;
  left: 1.25rem;
  top: 1.25rem;
  bottom: 1.25rem;
  width: 1px;
  background: rgb(255 255 255 / 0.16);
}

.steps-v2::after {
  content: '';
  position: absolute;
  left: 1.25rem;
  top: 1.25rem;
  bottom: 1.25rem;
  width: 1px;
  background: var(--brand-500);
  transform-origin: top;
}

.step-dot {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
  border-radius: 9999px;
  font-family: 'Funnel Display', 'Funnel Display Fallback', system-ui, sans-serif;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  background: var(--brand-500);
  color: var(--neutral-900);
}

.play-dot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 9999px;
  background: rgb(255 255 255 / 0.92);
  color: var(--neutral-900);
  box-shadow: 0 12px 30px -10px rgb(0 0 0 / 0.5);
  transition: transform 200ms var(--ease-out);
}

@media (hover: hover) and (pointer: fine) {
  .group:hover .play-dot {
    transform: scale(1.06);
  }
}

.group:active .play-dot {
  transform: scale(0.97);
}

/* Testimonios: carril horizontal que avanza solo (static/js/iahoy-marquee.js) y se puede deslizar a mano */

.hscroll-track {
  display: flex;
  gap: 2.5rem;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 3rem, #000 calc(100% - 3rem), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 3rem, #000 calc(100% - 3rem), transparent);
}

.hscroll-track::-webkit-scrollbar {
  display: none;
}

.hscroll-track > li {
  flex: none;
  width: min(26rem, 80vw);
}

.hscroll-track > li:first-child, .hscroll-track > li:nth-child(6) {
  width: min(34rem, 86vw);
}

@media (min-width: 1024px) {
  .hscroll-track {
    gap: 4rem;
    padding-left: max(2rem, calc((100vw - 80rem) / 2 + 2rem));
  }
}

/* ---------- Movimiento ligado al scroll ---------- */

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    /* Apariciones: sustituyen al IntersectionObserver y además se revierten al subir */

    .motion-ok [data-reveal] {
      opacity: 1;
      transform: none;
      transition: none;
      animation: sd-rise linear both;
      animation-timeline: view();
      animation-range: entry calc(var(--reveal-i, 0) * 4%) cover calc(26% + var(--reveal-i, 0) * 4%);
    }

    .motion-ok .sd-strike {
      animation: sd-strike linear both;
      animation-timeline: view();
      animation-range: entry 100% cover 34%;
    }

    .motion-ok .sd-after {
      animation: sd-after linear both;
      animation-timeline: view();
      animation-range: cover 20% cover 38%;
    }

    /* v3: termina de rellenarse un poco antes del centro de la pantalla (antes acababa pasado el centro y se quedaba a medias) */

    .motion-ok .numeral-solid {
      animation: sd-fill linear both;
      animation-timeline: view();
      animation-range: entry 45% cover 42%;
    }

    .motion-ok .steps-v2 {
      view-timeline-name: --steps;
    }

    .motion-ok .steps-v2::after {
      animation: sd-grow linear both;
      animation-timeline: --steps;
      animation-range: cover 30% cover 70%;
    }

    .motion-ok .step-dot {
      animation: sd-dot linear both;
      animation-timeline: view();
      animation-range: cover 40% cover 46%;
    }

    .motion-ok .sd-pop {
      animation: sd-pop linear both;
      animation-timeline: view();
      animation-range: entry 10% cover 30%;
    }
  }
}

/* =============================================================================
     HERO TITLE LETTER ANIMATION - Keyframes para animación de letras
     ============================================================================= */

@keyframes letter-rise {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =============================================================================
     BUTTON COMPONENTS - Sistema unificado de botones IAhoy
     ============================================================================= */

/* BASE - Estilos compartidos por todos los botones */

/* TAMAÑOS */

/* CTA PRINCIPAL - Botón naranja para llamadas a la acción */

/* Texto en tinta sobre naranja: 4,99:1 (blanco daba 2,30:1 y suspendía WCAG AA). DESIGN.md §2 */

.btn-cta {
  border-radius: 9999px;
  font-family: Lato, Lato Fallback, system-ui, sans-serif;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.btn-cta:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.btn-cta:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px;
}

.btn-cta {
  /* DESIGN.md §7: nunca transition-all; solo propiedades que cambian */
  transition: transform 160ms var(--ease-out), background-color 200ms ease, box-shadow 200ms ease, color 200ms ease, border-color 200ms ease;
}

.btn-cta:active {
  transform: scale(0.97);
}

.btn-cta {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-size: 1rem;
  line-height: 1.5rem;
  min-height: 3rem;
  background-color: var(--accent-600);
  color: var(--neutral-900);
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.35) inset, 0 1px 2px rgb(var(--ink-rgb) / 0.12);
}

.btn-cta:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(13 61 90 / var(--tw-ring-opacity, 1));
}

@media (hover: hover) and (pointer: fine) {
  .btn-cta:hover {
    background-color: var(--accent-400);
    box-shadow: 0 1px 0 rgb(255 255 255 / 0.4) inset, 0 8px 22px -8px rgb(247 147 29 / 0.65);
  }
}

.btn-cta:active {
  background-color: var(--accent-700);
  transform: scale(0.97);
}

/* SECUNDARIO - Botón con borde neutro oscuro */

/* VARIANTES DE TAMAÑO COMBINADAS */

.btn-cta-sm {
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  border-radius: 9999px;
  font-family: Lato, Lato Fallback, system-ui, sans-serif;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.btn-cta-sm:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.btn-cta-sm:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px;
}

.btn-cta-sm {
  /* DESIGN.md §7: nunca transition-all; solo propiedades que cambian */
  transition: transform 160ms var(--ease-out), background-color 200ms ease, box-shadow 200ms ease, color 200ms ease, border-color 200ms ease;
}

.btn-cta-sm:active {
  transform: scale(0.97);
}

.btn-cta-sm {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-size: 1rem;
  line-height: 1.5rem;
  min-height: 3rem;
  background-color: var(--accent-600);
  color: var(--neutral-900);
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.35) inset, 0 1px 2px rgb(var(--ink-rgb) / 0.12);
}

.btn-cta-sm:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(13 61 90 / var(--tw-ring-opacity, 1));
}

@media (hover: hover) and (pointer: fine) {
  .btn-cta-sm:hover {
    background-color: var(--accent-400);
    box-shadow: 0 1px 0 rgb(255 255 255 / 0.4) inset, 0 8px 22px -8px rgb(247 147 29 / 0.65);
  }
}

.btn-cta-sm:active {
  background-color: var(--accent-700);
  transform: scale(0.97);
}

.tk-bar-mobile .btn-cta-sm {
  min-height: 2.75rem;
  padding: 0.5rem 1.1rem;
  font-size: 0.9375rem;
}

/* HERO BUTTONS - Probar gratis y Cómo funciona */

.btn-hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  border-radius: 1rem;
  --tw-bg-opacity: 1;
  background-color: rgb(247 147 29 / var(--tw-bg-opacity, 1));
  padding-left: 2rem;
  padding-right: 2rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.pricing-v3 .btn-hero-cta {
  color: var(--neutral-900);
  border-radius: 9999px;
  font-weight: 700;
}

.btn-hero-cta:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(232 132 26 / var(--tw-bg-opacity, 1));
}

.btn-hero-secondary {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  border-radius: 1rem;
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(13 61 90 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 2rem;
  padding-right: 2rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(13 61 90 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.white-label-v3 section.btn-hero-secondary {
  background: transparent;
  box-shadow: none;
  border: 0;
}

 .pricing-v3 .btn-hero-secondary {
  background-color: rgb(255 255 255 / 0.05);
  border-color: rgb(255 255 255 / 0.14);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.04), 0 40px 80px -48px rgb(0 0 0 / 0.7);
}

.pricing-v3 .btn-hero-secondary {
  color: #fff;
}

.btn-hero-secondary:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(234 240 243 / var(--tw-bg-opacity, 1));
}

.pricing-v3 .btn-hero-secondary:hover {
  background-color: rgb(255 255 255 / 0.06);
}

/* =============================================================================
     NAVIGATION COMPONENTS
     ============================================================================= */

.nav-item {
  color: var(--neutral-900);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.nav-item:hover {
  color: var(--neutral-700);
}

/* =============================================================================
     TYPOGRAPHY COMPONENTS
     ============================================================================= */

/* Logo hover effect - Subtle and elegant */

.navbar-logo {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

.navbar-logo:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

/* =============================================================================
     BLOG PROSE - Legibilidad del cuerpo del artículo (sin plugin typography)
     ============================================================================= */

.blog-prose {
  color: var(--neutral-700);
  font-size: 17px;
  line-height: 1.78;
}

.blog-prose p {
  margin: 0 0 24px;
}

.blog-prose h2 {
  color: var(--neutral-900);
  font-size: 29px;
  line-height: 1.18;
  letter-spacing: -0.01em;
  margin: 44px 0 16px;
  scroll-margin-top: 100px;
  font-family: Funnel Display, Funnel Display Fallback, system-ui, sans-serif;
  font-weight: 700;
}

.blog-prose h3 {
  color: var(--neutral-900);
  font-size: 22px;
  margin: 32px 0 12px;
  font-family: Lato, Lato Fallback, system-ui, sans-serif;
  font-weight: 600;
}

.blog-prose h4 {
  color: var(--neutral-900);
  font-size: 18px;
  margin: 24px 0 8px;
  font-family: Lato, Lato Fallback, system-ui, sans-serif;
  font-weight: 600;
}

.blog-prose ul {
  margin: 0 0 24px;
  padding-left: 24px;
  list-style: disc;
}

.blog-prose ol {
  margin: 0 0 24px;
  padding-left: 24px;
  list-style: decimal;
}

.blog-prose li {
  margin: 6px 0;
}

.blog-prose strong {
  color: var(--neutral-900);
  font-weight: 700;
}

.blog-prose a {
  color: var(--accent-700);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(230, 133, 26, 0.35);
  text-underline-offset: 2px;
}

.blog-prose hr {
  margin: 40px 0;
  border-color: #e5e7eb;
}

.blog-prose .rich-text > *:first-child {
  margin-top: 0;
}

.blog-callout {
  background: #eaf6f1;
  border-radius: 14px;
  padding: 20px 24px;
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin: 28px 0;
}

.blog-callout__icon {
  width: 34px;
  height: 34px;
  border-radius: 9999px;
  background: var(--brand-600);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  font-weight: 700;
}

.blog-callout__text {
  font-size: 15px;
  color: var(--neutral-900);
  line-height: 1.55;
}

.blog-checks {
  list-style: none;
  padding: 0;
  margin: 24px 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.blog-checks li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 16px;
  line-height: 1.55;
  color: var(--neutral-700);
}

.blog-checks li::before {
  content: "\2713";
  flex: none;
  width: 22px;
  height: 22px;
  border-radius: 9999px;
  background: var(--brand-600);
  color: #fff;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}

/* =============================================================================
     BLOG INDEX (handoff "news") - dot-grid, panel menta y tintes de portada
     ============================================================================= */

.blog-dotgrid {
  background-image: radial-gradient(circle, rgba(13, 61, 90, 0.06) 1px, transparent 1px);
  background-size: 22px 22px;
}

.blog-dotgrid-dark {
  background-image: radial-gradient(circle, rgba(255, 255, 255, 0.07) 1px, transparent 1px);
  background-size: 22px 22px;
}

.blog-mint-panel {
  background-image: linear-gradient(150deg, var(--brand-200), var(--brand-300));
}

.cta-glow {
  background: radial-gradient(circle at 30% 30%, rgba(66, 200, 154, 0.16), transparent 70%);
}

/* Tintes de portada (alternos menta/frío del handoff). brand-200 = #b6ead8 */

.cover-tone-1 {
  background-color: #cdeee0;
}

.cover-tone-2 {
  background-color: var(--brand-200);
}

.cover-tone-3 {
  background-color: #d8f1e8;
}

.cover-tone-4 {
  background-color: #bfead9;
}

.blog-card {
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.blog-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(13, 61, 90, 0.14);
}

.blog-card:hover .blog-card__title {
  color: var(--accent-700);
}

.blog-arrow {
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.group:hover .blog-arrow {
  transform: translateX(4px);
}

/* =============================================================================
     HERO BACKGROUND - Reutilizable para todos los heros
     ============================================================================= */

.hero-background {
  position: relative;
  width: 100%;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.white-label-v3 section.hero-background {
  background: transparent;
  box-shadow: none;
  border: 0;
}

 .pricing-v3 .hero-background {
  background-color: rgb(255 255 255 / 0.05);
  border-color: rgb(255 255 255 / 0.14);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.04), 0 40px 80px -48px rgb(0 0 0 / 0.7);
}

.hero-background {
  background-color: var(--neutral-100);
  background-image:
      linear-gradient(135deg, var(--neutral-100) 0%, rgba(234, 240, 243, 0) 65%),
      url("/static/images/pattern-hexagon.1be62b8b7189.svg");
  background-size: 100% 100%, 35px 40px;
  background-repeat: no-repeat, repeat;
  background-position: center center, 0 0;
}

/* Background pattern with hexagons (reusable without layout) */

.bg-hexagon-pattern {
  background-color: var(--neutral-100);
  background-image:
      linear-gradient(135deg, var(--neutral-100) 0%, rgba(234, 240, 243, 0) 65%),
      url("/static/images/pattern-hexagon.1be62b8b7189.svg");
  background-size: 100% 100%, 35px 40px;
  background-repeat: no-repeat, repeat;
  background-position: center center, 0 0;
}

/* Background pattern with hexagons (reusable without layout) */

.bg-hexagon-pattern-blue {
  color: var(--neutral-900);
  background-color: var(--neutral-900);
  background-image:
      linear-gradient(to top right, var(--neutral-700), var(--neutral-900)),
      url("/static/images/pattern-hexagon.1be62b8b7189.svg");
  background-size: 100% 100%, 35px 40px;
  background-repeat: no-repeat, repeat;
  background-position: center center, 0 0;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.pointer-events-none {
  pointer-events: none;
}

.visible {
  visibility: visible;
}

.invisible {
  visibility: hidden;
}

.static {
  position: static;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.sticky {
  position: sticky;
}

.inset-0 {
  inset: 0px;
}

.-right-10 {
  right: -2.5rem;
}

.-right-\[34px\] {
  right: -34px;
}

.-top-10 {
  top: -2.5rem;
}

.-top-11 {
  top: -2.75rem;
}

.-top-12 {
  top: -3rem;
}

.-top-4 {
  top: -1rem;
}

.-top-5 {
  top: -1.25rem;
}

.-top-\[30px\] {
  top: -30px;
}

.bottom-0 {
  bottom: 0px;
}

.bottom-1 {
  bottom: 0.25rem;
}

.bottom-1\.5 {
  bottom: 0.375rem;
}

.bottom-2 {
  bottom: 0.5rem;
}

.bottom-4 {
  bottom: 1rem;
}

.bottom-\[83\.7\%\] {
  bottom: 83.7%;
}

.bottom-full {
  bottom: 100%;
}

.left-0 {
  left: 0px;
}

.left-1\/2 {
  left: 50%;
}

.left-2 {
  left: 0.5rem;
}

.left-4 {
  left: 1rem;
}

.left-5 {
  left: 1.25rem;
}

.left-6 {
  left: 1.5rem;
}

.left-\[-24px\] {
  left: -24px;
}

.left-\[18px\] {
  left: 18px;
}

.left-\[2\.46\%\] {
  left: 2.46%;
}

.right-0 {
  right: 0px;
}

.right-1\.5 {
  right: 0.375rem;
}

.right-2 {
  right: 0.5rem;
}

.right-3 {
  right: 0.75rem;
}

.right-4 {
  right: 1rem;
}

.right-\[-24px\] {
  right: -24px;
}

.right-\[150px\] {
  right: 150px;
}

.right-\[90\.17\%\] {
  right: 90.17%;
}

.top-0 {
  top: 0px;
}

.top-1 {
  top: 0.25rem;
}

.top-1\/2 {
  top: 50%;
}

.top-10 {
  top: 2.5rem;
}

.top-16 {
  top: 4rem;
}

.top-3 {
  top: 0.75rem;
}

.top-4 {
  top: 1rem;
}

.top-\[18px\] {
  top: 18px;
}

.top-\[5\.56\%\] {
  top: 5.56%;
}

.top-full {
  top: 100%;
}

.z-0 {
  z-index: 0;
}

.z-10 {
  z-index: 10;
}

.z-20 {
  z-index: 20;
}

.z-30 {
  z-index: 30;
}

.z-50 {
  z-index: 50;
}

.z-\[2\] {
  z-index: 2;
}

.z-\[45\] {
  z-index: 45;
}

.z-\[49\] {
  z-index: 49;
}

.z-\[60\] {
  z-index: 60;
}

.z-\[70\] {
  z-index: 70;
}

.z-\[80\] {
  z-index: 80;
}

.order-1 {
  order: 1;
}

.order-2 {
  order: 2;
}

.-mx-2 {
  margin-left: -0.5rem;
  margin-right: -0.5rem;
}

.-my-1\.5 {
  margin-top: -0.375rem;
  margin-bottom: -0.375rem;
}

.mx-4 {
  margin-left: 1rem;
  margin-right: 1rem;
}

.mx-5 {
  margin-left: 1.25rem;
  margin-right: 1.25rem;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.my-2 {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.my-6 {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

.my-8 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.\!mt-2 {
  margin-top: 0.5rem !important;
}

.-mb-2 {
  margin-bottom: -0.5rem;
}

.-mb-20 {
  margin-bottom: -5rem;
}

.-mb-px {
  margin-bottom: -1px;
}

.-ml-1 {
  margin-left: -0.25rem;
}

.-ml-20 {
  margin-left: -5rem;
}

.-mr-1 {
  margin-right: -0.25rem;
}

.-mr-10 {
  margin-right: -2.5rem;
}

.-mr-20 {
  margin-right: -5rem;
}

.-mt-10 {
  margin-top: -2.5rem;
}

.-mt-20 {
  margin-top: -5rem;
}

.mb-0 {
  margin-bottom: 0px;
}

.mb-0\.5 {
  margin-bottom: 0.125rem;
}

.mb-1 {
  margin-bottom: 0.25rem;
}

.mb-1\.5 {
  margin-bottom: 0.375rem;
}

.mb-10 {
  margin-bottom: 2.5rem;
}

.mb-12 {
  margin-bottom: 3rem;
}

.mb-14 {
  margin-bottom: 3.5rem;
}

.mb-16 {
  margin-bottom: 4rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.mb-5 {
  margin-bottom: 1.25rem;
}

.mb-6 {
  margin-bottom: 1.5rem;
}

.mb-7 {
  margin-bottom: 1.75rem;
}

.mb-8 {
  margin-bottom: 2rem;
}

.mb-9 {
  margin-bottom: 2.25rem;
}

.ml-0\.5 {
  margin-left: 0.125rem;
}

.ml-1 {
  margin-left: 0.25rem;
}

.ml-1\.5 {
  margin-left: 0.375rem;
}

.ml-2 {
  margin-left: 0.5rem;
}

.ml-3 {
  margin-left: 0.75rem;
}

.ml-4 {
  margin-left: 1rem;
}

.ml-6 {
  margin-left: 1.5rem;
}

.ml-auto {
  margin-left: auto;
}

.mr-1 {
  margin-right: 0.25rem;
}

.mr-2 {
  margin-right: 0.5rem;
}

.mr-3 {
  margin-right: 0.75rem;
}

.ms-auto {
  margin-inline-start: auto;
}

.mt-0\.5 {
  margin-top: 0.125rem;
}

.mt-1 {
  margin-top: 0.25rem;
}

.mt-1\.5 {
  margin-top: 0.375rem;
}

.mt-10 {
  margin-top: 2.5rem;
}

.mt-12 {
  margin-top: 3rem;
}

.mt-14 {
  margin-top: 3.5rem;
}

.mt-16 {
  margin-top: 4rem;
}

.mt-2 {
  margin-top: 0.5rem;
}

.mt-20 {
  margin-top: 5rem;
}

.mt-3 {
  margin-top: 0.75rem;
}

.mt-4 {
  margin-top: 1rem;
}

.mt-5 {
  margin-top: 1.25rem;
}

.mt-6 {
  margin-top: 1.5rem;
}

.mt-7 {
  margin-top: 1.75rem;
}

.mt-8 {
  margin-top: 2rem;
}

.mt-9 {
  margin-top: 2.25rem;
}

.mt-auto {
  margin-top: auto;
}

.box-border {
  box-sizing: border-box;
}

.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

.inline {
  display: inline;
}

.flex {
  display: flex;
}

.inline-flex {
  display: inline-flex;
}

.table {
  display: table;
}

.grid {
  display: grid;
}

.contents {
  display: contents;
}

.hidden {
  display: none;
}

.aspect-\[16\/9\] {
  aspect-ratio: 16/9;
}

.aspect-video {
  aspect-ratio: 16 / 9;
}

.size-6 {
  width: 1.5rem;
  height: 1.5rem;
}

.size-\[24px\] {
  width: 24px;
  height: 24px;
}

.h-0 {
  height: 0px;
}

.h-1 {
  height: 0.25rem;
}

.h-10 {
  height: 2.5rem;
}

.h-11 {
  height: 2.75rem;
}

.h-12 {
  height: 3rem;
}

.h-14 {
  height: 3.5rem;
}

.h-16 {
  height: 4rem;
}

.h-2 {
  height: 0.5rem;
}

.h-20 {
  height: 5rem;
}

.h-28 {
  height: 7rem;
}

.h-3 {
  height: 0.75rem;
}

.h-4 {
  height: 1rem;
}

.h-40 {
  height: 10rem;
}

.h-5 {
  height: 1.25rem;
}

.h-52 {
  height: 13rem;
}

.h-6 {
  height: 1.5rem;
}

.h-60 {
  height: 15rem;
}

.h-64 {
  height: 16rem;
}

.h-7 {
  height: 1.75rem;
}

.h-8 {
  height: 2rem;
}

.h-80 {
  height: 20rem;
}

.h-9 {
  height: 2.25rem;
}

.h-\[180px\] {
  height: 180px;
}

.h-\[1px\] {
  height: 1px;
}

.h-\[200px\] {
  height: 200px;
}

.h-\[24px\] {
  height: 24px;
}

.h-\[270px\] {
  height: 270px;
}

.h-\[280px\] {
  height: 280px;
}

.h-\[32px\] {
  height: 32px;
}

.h-\[72px\] {
  height: 72px;
}

.h-\[74px\] {
  height: 74px;
}

.h-\[90px\] {
  height: 90px;
}

.h-auto {
  height: auto;
}

.h-full {
  height: 100%;
}

.h-px {
  height: 1px;
}

.h-screen {
  height: 100vh;
}

.max-h-\[82vh\] {
  max-height: 82vh;
}

.max-h-\[85vh\] {
  max-height: 85vh;
}

.max-h-\[90vh\] {
  max-height: 90vh;
}

.\!min-h-\[2\.75rem\] {
  min-height: 2.75rem !important;
}

.\!min-h-\[40px\] {
  min-height: 40px !important;
}

.min-h-\[120px\] {
  min-height: 120px;
}

.min-h-\[240px\] {
  min-height: 240px;
}

.min-h-\[320px\] {
  min-height: 320px;
}

.min-h-\[40px\] {
  min-height: 40px;
}

.min-h-\[40vh\] {
  min-height: 40vh;
}

.min-h-\[44px\] {
  min-height: 44px;
}

.min-h-\[48px\] {
  min-height: 48px;
}

.min-h-px {
  min-height: 1px;
}

.min-h-screen {
  min-height: 100vh;
}

.w-1\.5 {
  width: 0.375rem;
}

.w-10 {
  width: 2.5rem;
}

.w-11 {
  width: 2.75rem;
}

.w-12 {
  width: 3rem;
}

.w-14 {
  width: 3.5rem;
}

.w-16 {
  width: 4rem;
}

.w-2 {
  width: 0.5rem;
}

.w-2\/5 {
  width: 40%;
}

.w-20 {
  width: 5rem;
}

.w-28 {
  width: 7rem;
}

.w-3 {
  width: 0.75rem;
}

.w-4 {
  width: 1rem;
}

.w-40 {
  width: 10rem;
}

.w-44 {
  width: 11rem;
}

.w-5 {
  width: 1.25rem;
}

.w-56 {
  width: 14rem;
}

.w-6 {
  width: 1.5rem;
}

.w-60 {
  width: 15rem;
}

.w-64 {
  width: 16rem;
}

.w-7 {
  width: 1.75rem;
}

.w-72 {
  width: 18rem;
}

.w-8 {
  width: 2rem;
}

.w-80 {
  width: 20rem;
}

.w-9 {
  width: 2.25rem;
}

.w-\[1024px\] {
  width: 1024px;
}

.w-\[147px\] {
  width: 147px;
}

.w-\[24px\] {
  width: 24px;
}

.w-\[32px\] {
  width: 32px;
}

.w-\[74px\] {
  width: 74px;
}

.w-\[78px\] {
  width: 78px;
}

.w-\[90\%\] {
  width: 90%;
}

.w-\[90px\] {
  width: 90px;
}

.w-\[calc\(100\%-2rem\)\] {
  width: calc(100% - 2rem);
}

.w-\[min\(66vw\2c 19rem\)\] {
  width: min(66vw,19rem);
}

.w-\[min-content\] {
  width: -moz-min-content;
  width: min-content;
}

.w-auto {
  width: auto;
}

.w-fit {
  width: -moz-fit-content;
  width: fit-content;
}

.w-full {
  width: 100%;
}

.w-px {
  width: 1px;
}

.min-w-0 {
  min-width: 0px;
}

.min-w-\[11\.5rem\] {
  min-width: 11.5rem;
}

.min-w-\[560px\] {
  min-width: 560px;
}

.min-w-full {
  min-width: 100%;
}

.min-w-px {
  min-width: 1px;
}

.max-w-2xl {
  max-width: 42rem;
}

.max-w-3xl {
  max-width: 48rem;
}

.max-w-4xl {
  max-width: 56rem;
}

.max-w-5xl {
  max-width: 64rem;
}

.max-w-6xl {
  max-width: 72rem;
}

.max-w-7xl {
  max-width: 80rem;
}

.max-w-\[1080px\] {
  max-width: 1080px;
}

.max-w-\[1100px\] {
  max-width: 1100px;
}

.max-w-\[1180px\] {
  max-width: 1180px;
}

.max-w-\[12ch\] {
  max-width: 12ch;
}

.max-w-\[130px\] {
  max-width: 130px;
}

.max-w-\[13ch\] {
  max-width: 13ch;
}

.max-w-\[14ch\] {
  max-width: 14ch;
}

.max-w-\[15ch\] {
  max-width: 15ch;
}

.max-w-\[16ch\] {
  max-width: 16ch;
}

.max-w-\[17ch\] {
  max-width: 17ch;
}

.max-w-\[20ch\] {
  max-width: 20ch;
}

.max-w-\[30ch\] {
  max-width: 30ch;
}

.max-w-\[32rem\] {
  max-width: 32rem;
}

.max-w-\[34ch\] {
  max-width: 34ch;
}

.max-w-\[36rem\] {
  max-width: 36rem;
}

.max-w-\[400px\] {
  max-width: 400px;
}

.max-w-\[420px\] {
  max-width: 420px;
}

.max-w-\[440px\] {
  max-width: 440px;
}

.max-w-\[460px\] {
  max-width: 460px;
}

.max-w-\[52rem\] {
  max-width: 52rem;
}

.max-w-\[620px\] {
  max-width: 620px;
}

.max-w-\[740px\] {
  max-width: 740px;
}

.max-w-\[760px\] {
  max-width: 760px;
}

.max-w-\[768px\] {
  max-width: 768px;
}

.max-w-\[780px\] {
  max-width: 780px;
}

.max-w-\[80\%\] {
  max-width: 80%;
}

.max-w-\[85\%\] {
  max-width: 85%;
}

.max-w-lg {
  max-width: 32rem;
}

.max-w-md {
  max-width: 28rem;
}

.max-w-none {
  max-width: none;
}

.max-w-sm {
  max-width: 24rem;
}

.max-w-xl {
  max-width: 36rem;
}

.flex-1 {
  flex: 1 1 0%;
}

.flex-none {
  flex: none;
}

.flex-shrink-0 {
  flex-shrink: 0;
}

.shrink-0 {
  flex-shrink: 0;
}

.flex-grow {
  flex-grow: 1;
}

.grow {
  flex-grow: 1;
}

.basis-0 {
  flex-basis: 0px;
}

.origin-top {
  transform-origin: top;
}

.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.-translate-x-3 {
  --tw-translate-x: -0.75rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.-translate-y-1 {
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.-translate-y-2 {
  --tw-translate-y: -0.5rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.translate-y-0 {
  --tw-translate-y: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.translate-y-1 {
  --tw-translate-y: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.scale-100 {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.scale-105 {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.scale-125 {
  --tw-scale-x: 1.25;
  --tw-scale-y: 1.25;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.scale-95 {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

@keyframes cardAppear {
  0% {
    opacity: 0;
    transform: scale(0.95);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

.animate-card-appear {
  animation: cardAppear 0.6s ease-out forwards;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.animate-fade-in {
  animation: fadeIn 0.5s ease-in-out;
}

@keyframes hexRotate {
  0% {
    opacity: 0;
    transform: rotate(-5deg);
  }

  100% {
    opacity: 1;
    transform: rotate(0deg);
  }
}

.animate-hex-rotate {
  animation: hexRotate 0.7s ease-out forwards;
}

@keyframes slideUp {
  0% {
    transform: translateY(20px);
    opacity: 0;
  }

  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

.animate-slide-up {
  animation: slideUp 0.5s ease-out;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.animate-spin {
  animation: spin 1s linear infinite;
}

.cursor-help {
  cursor: help;
}

.cursor-pointer {
  cursor: pointer;
}

.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.resize {
  resize: both;
}

.scroll-mt-20 {
  scroll-margin-top: 5rem;
}

.scroll-mt-24 {
  scroll-margin-top: 6rem;
}

.scroll-mt-28 {
  scroll-margin-top: 7rem;
}

.list-inside {
  list-style-position: inside;
}

.list-decimal {
  list-style-type: decimal;
}

.list-disc {
  list-style-type: disc;
}

.list-none {
  list-style-type: none;
}

.appearance-none {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-\[118px_1fr\] {
  grid-template-columns: 118px 1fr;
}

.flex-row {
  flex-direction: row;
}

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.place-items-center {
  place-items: center;
}

.content-stretch {
  align-content: stretch;
}

.items-start {
  align-items: flex-start;
}

.items-end {
  align-items: flex-end;
}

.items-center {
  align-items: center;
}

.items-baseline {
  align-items: baseline;
}

.items-stretch {
  align-items: stretch;
}

.justify-start {
  justify-content: flex-start;
}

.justify-end {
  justify-content: flex-end;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.gap-0 {
  gap: 0px;
}

.gap-0\.5 {
  gap: 0.125rem;
}

.gap-1 {
  gap: 0.25rem;
}

.gap-1\.5 {
  gap: 0.375rem;
}

.gap-10 {
  gap: 2.5rem;
}

.gap-12 {
  gap: 3rem;
}

.gap-14 {
  gap: 3.5rem;
}

.gap-16 {
  gap: 4rem;
}

.gap-2 {
  gap: 0.5rem;
}

.gap-2\.5 {
  gap: 0.625rem;
}

.gap-3 {
  gap: 0.75rem;
}

.gap-3\.5 {
  gap: 0.875rem;
}

.gap-4 {
  gap: 1rem;
}

.gap-5 {
  gap: 1.25rem;
}

.gap-6 {
  gap: 1.5rem;
}

.gap-7 {
  gap: 1.75rem;
}

.gap-8 {
  gap: 2rem;
}

.gap-\[10px\] {
  gap: 10px;
}

.gap-\[16px\] {
  gap: 16px;
}

.gap-\[24px\] {
  gap: 24px;
}

.gap-\[34px\] {
  gap: 34px;
}

.gap-\[4px\] {
  gap: 4px;
}

.gap-\[6px\] {
  gap: 6px;
}

.gap-\[8px\] {
  gap: 8px;
}

.gap-x-10 {
  -moz-column-gap: 2.5rem;
       column-gap: 2.5rem;
}

.gap-x-12 {
  -moz-column-gap: 3rem;
       column-gap: 3rem;
}

.gap-x-2\.5 {
  -moz-column-gap: 0.625rem;
       column-gap: 0.625rem;
}

.gap-x-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}

.gap-x-6 {
  -moz-column-gap: 1.5rem;
       column-gap: 1.5rem;
}

.gap-x-7 {
  -moz-column-gap: 1.75rem;
       column-gap: 1.75rem;
}

.gap-x-8 {
  -moz-column-gap: 2rem;
       column-gap: 2rem;
}

.gap-y-12 {
  row-gap: 3rem;
}

.gap-y-2 {
  row-gap: 0.5rem;
}

.gap-y-3 {
  row-gap: 0.75rem;
}

.gap-y-4 {
  row-gap: 1rem;
}

.gap-y-6 {
  row-gap: 1.5rem;
}

.gap-y-7 {
  row-gap: 1.75rem;
}

.space-x-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.75rem * var(--tw-space-x-reverse));
  margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(1rem * var(--tw-space-x-reverse));
  margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-8 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(2rem * var(--tw-space-x-reverse));
  margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-y-0 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0px * var(--tw-space-y-reverse));
}

.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}

.space-y-10 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2.5rem * var(--tw-space-y-reverse));
}

.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}

.space-y-3\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.875rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.875rem * var(--tw-space-y-reverse));
}

.space-y-32 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(8rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(8rem * var(--tw-space-y-reverse));
}

.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}

.space-y-5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}

.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}

.space-y-8 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}

.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}

.divide-gray-200 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(193 207 214 / var(--tw-divide-opacity, 1));
}

.divide-neutral-100 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(234 240 243 / var(--tw-divide-opacity, 1));
}

.self-start {
  align-self: flex-start;
}

.self-end {
  align-self: flex-end;
}

.overflow-hidden {
  overflow: hidden;
}

.overflow-clip {
  overflow: clip;
}

.overflow-visible {
  overflow: visible;
}

.overflow-x-auto {
  overflow-x: auto;
}

.overflow-y-auto {
  overflow-y: auto;
}

.scroll-smooth {
  scroll-behavior: smooth;
}

.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.whitespace-nowrap {
  white-space: nowrap;
}

.whitespace-pre {
  white-space: pre;
}

.text-nowrap {
  text-wrap: nowrap;
}

.break-words {
  overflow-wrap: break-word;
}

.rounded {
  border-radius: 0.25rem;
}

.rounded-2xl {
  border-radius: 1rem;
}

.rounded-3xl {
  border-radius: 1.5rem;
}

.rounded-\[1\.75rem\] {
  border-radius: 1.75rem;
}

.rounded-\[100px\] {
  border-radius: 100px;
}

.rounded-\[14px\] {
  border-radius: 14px;
}

.rounded-\[16px\] {
  border-radius: 16px;
}

.rounded-\[18px\] {
  border-radius: 18px;
}

.rounded-\[20px\] {
  border-radius: 20px;
}

.rounded-\[2rem\] {
  border-radius: 2rem;
}

.rounded-\[3rem\] {
  border-radius: 3rem;
}

.rounded-\[8px\] {
  border-radius: 8px;
}

.rounded-full {
  border-radius: 9999px;
}

.rounded-lg {
  border-radius: 0.5rem;
}

.rounded-md {
  border-radius: 0.375rem;
}

.rounded-xl {
  border-radius: 0.75rem;
}

.rounded-b {
  border-bottom-right-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}

.rounded-t {
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}

.rounded-bl-\[20px\] {
  border-bottom-left-radius: 20px;
}

.rounded-bl-\[28px\] {
  border-bottom-left-radius: 28px;
}

.rounded-br-\[100px\] {
  border-bottom-right-radius: 100px;
}

.rounded-br-\[140px\] {
  border-bottom-right-radius: 140px;
}

.rounded-tl-\[20px\] {
  border-top-left-radius: 20px;
}

.rounded-tl-\[28px\] {
  border-top-left-radius: 28px;
}

.rounded-tl-md {
  border-top-left-radius: 0.375rem;
}

.rounded-tr-\[20px\] {
  border-top-right-radius: 20px;
}

.rounded-tr-\[28px\] {
  border-top-right-radius: 28px;
}

.rounded-tr-md {
  border-top-right-radius: 0.375rem;
}

.border {
  border-width: 1px;
}

.border-0 {
  border-width: 0px;
}

.border-2 {
  border-width: 2px;
}

.border-4 {
  border-width: 4px;
}

.border-8 {
  border-width: 8px;
}

.border-\[3px\] {
  border-width: 3px;
}

.border-b {
  border-bottom-width: 1px;
}

.border-b-2 {
  border-bottom-width: 2px;
}

.border-l {
  border-left-width: 1px;
}

.border-l-4 {
  border-left-width: 4px;
}

.border-t {
  border-top-width: 1px;
}

.border-solid {
  border-style: solid;
}

.border-none {
  border-style: none;
}

.border-\[\#b6ead8\] {
  --tw-border-opacity: 1;
  border-color: rgb(182 234 216 / var(--tw-border-opacity, 1));
}

.border-\[\#c1cfd6\] {
  --tw-border-opacity: 1;
  border-color: rgb(193 207 214 / var(--tw-border-opacity, 1));
}

.border-\[\#d8e0e5\] {
  --tw-border-opacity: 1;
  border-color: rgb(216 224 229 / var(--tw-border-opacity, 1));
}

.border-\[\#e5e7eb\] {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}

.border-\[\#eaf0f3\] {
  --tw-border-opacity: 1;
  border-color: rgb(234 240 243 / var(--tw-border-opacity, 1));
}

.border-\[\#eef3f6\] {
  --tw-border-opacity: 1;
  border-color: rgb(238 243 246 / var(--tw-border-opacity, 1));
}

.border-accent-100 {
  --tw-border-opacity: 1;
  border-color: rgb(254 241 213 / var(--tw-border-opacity, 1));
}

.border-accent-600 {
  --tw-border-opacity: 1;
  border-color: rgb(247 147 29 / var(--tw-border-opacity, 1));
}

.border-brand-200 {
  --tw-border-opacity: 1;
  border-color: rgb(182 234 216 / var(--tw-border-opacity, 1));
}

.border-brand-300 {
  --tw-border-opacity: 1;
  border-color: rgb(144 223 196 / var(--tw-border-opacity, 1));
}

.border-brand-500 {
  --tw-border-opacity: 1;
  border-color: rgb(105 210 175 / var(--tw-border-opacity, 1));
}

.border-brand-600 {
  --tw-border-opacity: 1;
  border-color: rgb(66 200 154 / var(--tw-border-opacity, 1));
}

.border-gray-100 {
  --tw-border-opacity: 1;
  border-color: rgb(234 240 243 / var(--tw-border-opacity, 1));
}

.border-gray-200 {
  --tw-border-opacity: 1;
  border-color: rgb(193 207 214 / var(--tw-border-opacity, 1));
}

.border-gray-300 {
  --tw-border-opacity: 1;
  border-color: rgb(168 184 194 / var(--tw-border-opacity, 1));
}

.border-green-200 {
  --tw-border-opacity: 1;
  border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));
}

.border-indigo-200 {
  --tw-border-opacity: 1;
  border-color: rgb(199 210 254 / var(--tw-border-opacity, 1));
}

.border-indigo-300 {
  --tw-border-opacity: 1;
  border-color: rgb(165 180 252 / var(--tw-border-opacity, 1));
}

.border-indigo-500 {
  --tw-border-opacity: 1;
  border-color: rgb(99 102 241 / var(--tw-border-opacity, 1));
}

.border-neutral-100 {
  --tw-border-opacity: 1;
  border-color: rgb(234 240 243 / var(--tw-border-opacity, 1));
}

.border-neutral-200 {
  --tw-border-opacity: 1;
  border-color: rgb(193 207 214 / var(--tw-border-opacity, 1));
}

.border-neutral-300 {
  --tw-border-opacity: 1;
  border-color: rgb(168 184 194 / var(--tw-border-opacity, 1));
}

.border-neutral-800 {
  --tw-border-opacity: 1;
  border-color: rgb(47 74 92 / var(--tw-border-opacity, 1));
}

.border-neutral-900 {
  --tw-border-opacity: 1;
  border-color: rgb(13 61 90 / var(--tw-border-opacity, 1));
}

.border-red-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}

.border-red-500 {
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}

.border-transparent {
  border-color: transparent;
}

.border-white {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}

.border-white\/10 {
  border-color: rgb(255 255 255 / 0.1);
}

.border-white\/15 {
  border-color: rgb(255 255 255 / 0.15);
}

.border-white\/5 {
  border-color: rgb(255 255 255 / 0.05);
}

.border-t-neutral-900 {
  --tw-border-opacity: 1;
  border-top-color: rgb(13 61 90 / var(--tw-border-opacity, 1));
}

.bg-\[\#0d3d5a\] {
  --tw-bg-opacity: 1;
  background-color: rgb(13 61 90 / var(--tw-bg-opacity, 1));
}

.bg-\[\#25d366\] {
  --tw-bg-opacity: 1;
  background-color: rgb(37 211 102 / var(--tw-bg-opacity, 1));
}

.bg-\[\#e7edf0\] {
  --tw-bg-opacity: 1;
  background-color: rgb(231 237 240 / var(--tw-bg-opacity, 1));
}

.bg-\[\#eaf0f3\] {
  --tw-bg-opacity: 1;
  background-color: rgb(234 240 243 / var(--tw-bg-opacity, 1));
}

.bg-\[\#eaf6f1\] {
  --tw-bg-opacity: 1;
  background-color: rgb(234 246 241 / var(--tw-bg-opacity, 1));
}

.bg-\[\#f3f6f8\] {
  --tw-bg-opacity: 1;
  background-color: rgb(243 246 248 / var(--tw-bg-opacity, 1));
}

.bg-\[\#f7931d\] {
  --tw-bg-opacity: 1;
  background-color: rgb(247 147 29 / var(--tw-bg-opacity, 1));
}

.bg-\[\#ff9800\] {
  --tw-bg-opacity: 1;
  background-color: rgb(255 152 0 / var(--tw-bg-opacity, 1));
}

.bg-accent-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 241 213 / var(--tw-bg-opacity, 1));
}

.bg-accent-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 248 236 / var(--tw-bg-opacity, 1));
}

.bg-accent-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 146 32 / var(--tw-bg-opacity, 1));
}

.bg-accent-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(247 147 29 / var(--tw-bg-opacity, 1));
}

.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}

.bg-black\/80 {
  background-color: rgb(0 0 0 / 0.8);
}

.bg-blue-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}

.bg-blue-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}

.bg-brand-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(204 251 239 / var(--tw-bg-opacity, 1));
}

.bg-brand-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(182 234 216 / var(--tw-bg-opacity, 1));
}

.bg-brand-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 249 / var(--tw-bg-opacity, 1));
}

.bg-brand-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(105 210 175 / var(--tw-bg-opacity, 1));
}

.bg-brand-500\/15 {
  background-color: rgb(105 210 175 / 0.15);
}

.bg-brand-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(66 200 154 / var(--tw-bg-opacity, 1));
}

.bg-brand-600\/20 {
  background-color: rgb(66 200 154 / 0.2);
}

.bg-brand-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(58 138 107 / var(--tw-bg-opacity, 1));
}

.bg-danger-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}

.bg-gray-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 240 243 / var(--tw-bg-opacity, 1));
}

.bg-gray-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(193 207 214 / var(--tw-bg-opacity, 1));
}

.bg-gray-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(168 184 194 / var(--tw-bg-opacity, 1));
}

.bg-gray-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(135 158 173 / var(--tw-bg-opacity, 1));
}

.bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.bg-gray-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(73 110 131 / var(--tw-bg-opacity, 1));
}

.bg-gray-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(47 74 92 / var(--tw-bg-opacity, 1));
}

.bg-gray-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(13 61 90 / var(--tw-bg-opacity, 1));
}

.bg-green-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}

.bg-green-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
}

.bg-green-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
}

.bg-indigo-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(238 242 255 / var(--tw-bg-opacity, 1));
}

.bg-indigo-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1));
}

.bg-neutral-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 240 243 / var(--tw-bg-opacity, 1));
}

.bg-neutral-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(193 207 214 / var(--tw-bg-opacity, 1));
}

.bg-neutral-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.bg-neutral-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(13 61 90 / var(--tw-bg-opacity, 1));
}

.bg-neutral-900\/20 {
  background-color: rgb(13 61 90 / 0.2);
}

.bg-neutral-900\/60 {
  background-color: rgb(13 61 90 / 0.6);
}

.bg-neutral-900\/70 {
  background-color: rgb(13 61 90 / 0.7);
}

.bg-neutral-900\/85 {
  background-color: rgb(13 61 90 / 0.85);
}

.bg-neutral-950\/10 {
  background-color: rgb(10 10 10 / 0.1);
}

.bg-orange-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));
}

.bg-orange-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));
}

.bg-purple-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));
}

.bg-purple-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 245 255 / var(--tw-bg-opacity, 1));
}

.bg-purple-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1));
}

.bg-red-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}

.bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}

.bg-slate-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
}

.bg-success-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}

.bg-transparent {
  background-color: transparent;
}

.bg-warning-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}

.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.bg-white\/10 {
  background-color: rgb(255 255 255 / 0.1);
}

.bg-white\/15 {
  background-color: rgb(255 255 255 / 0.15);
}

.bg-white\/5 {
  background-color: rgb(255 255 255 / 0.05);
}

.bg-white\/80 {
  background-color: rgb(255 255 255 / 0.8);
}

.bg-white\/90 {
  background-color: rgb(255 255 255 / 0.9);
}

.bg-white\/95 {
  background-color: rgb(255 255 255 / 0.95);
}

.bg-white\/\[0\.04\] {
  background-color: rgb(255 255 255 / 0.04);
}

.bg-white\/\[0\.05\] {
  background-color: rgb(255 255 255 / 0.05);
}

.bg-white\/\[0\.06\] {
  background-color: rgb(255 255 255 / 0.06);
}

.bg-yellow-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));
}

.bg-yellow-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));
}

.bg-yellow-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));
}

.bg-opacity-50 {
  --tw-bg-opacity: 0.5;
}

.bg-opacity-75 {
  --tw-bg-opacity: 0.75;
}

.bg-gradient-to-b {
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}

.from-\[rgba\(65\2c 200\2c 154\2c 0\)\] {
  --tw-gradient-from: rgba(65,200,154,0) var(--tw-gradient-from-position);
  --tw-gradient-to: rgba(65, 200, 154, 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-white {
  --tw-gradient-from: #fff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.to-\[\#f3f6f8\] {
  --tw-gradient-to: #f3f6f8 var(--tw-gradient-to-position);
}

.to-\[rgba\(65\2c 200\2c 154\2c 0\.2\)\] {
  --tw-gradient-to: rgba(65,200,154,0.2) var(--tw-gradient-to-position);
}

.object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}

.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}

.p-1 {
  padding: 0.25rem;
}

.p-1\.5 {
  padding: 0.375rem;
}

.p-10 {
  padding: 2.5rem;
}

.p-2 {
  padding: 0.5rem;
}

.p-2\.5 {
  padding: 0.625rem;
}

.p-3 {
  padding: 0.75rem;
}

.p-4 {
  padding: 1rem;
}

.p-5 {
  padding: 1.25rem;
}

.p-6 {
  padding: 1.5rem;
}

.p-7 {
  padding: 1.75rem;
}

.p-8 {
  padding: 2rem;
}

.p-\[1\.4rem\] {
  padding: 1.4rem;
}

.p-\[10px\] {
  padding: 10px;
}

.p-\[6px\] {
  padding: 6px;
}

.\!px-4 {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

.\!px-5 {
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
}

.\!py-0 {
  padding-top: 0px !important;
  padding-bottom: 0px !important;
}

.px-0 {
  padding-left: 0px;
  padding-right: 0px;
}

.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}

.px-10 {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}

.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.px-7 {
  padding-left: 1.75rem;
  padding-right: 1.75rem;
}

.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}

.px-\[16px\] {
  padding-left: 16px;
  padding-right: 16px;
}

.px-\[20px\] {
  padding-left: 20px;
  padding-right: 20px;
}

.px-\[25px\] {
  padding-left: 25px;
  padding-right: 25px;
}

.px-\[28px\] {
  padding-left: 28px;
  padding-right: 28px;
}

.px-\[49px\] {
  padding-left: 49px;
  padding-right: 49px;
}

.px-\[82px\] {
  padding-left: 82px;
  padding-right: 82px;
}

.px-\[8px\] {
  padding-left: 8px;
  padding-right: 8px;
}

.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}

.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}

.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}

.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}

.py-20 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.py-24 {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

.py-28 {
  padding-top: 7rem;
  padding-bottom: 7rem;
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}

.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.py-9 {
  padding-top: 2.25rem;
  padding-bottom: 2.25rem;
}

.py-\[10px\] {
  padding-top: 10px;
  padding-bottom: 10px;
}

.py-\[16px\] {
  padding-top: 16px;
  padding-bottom: 16px;
}

.py-\[22px\] {
  padding-top: 22px;
  padding-bottom: 22px;
}

.py-\[32px\] {
  padding-top: 32px;
  padding-bottom: 32px;
}

.py-\[4px\] {
  padding-top: 4px;
  padding-bottom: 4px;
}

.py-\[50px\] {
  padding-top: 50px;
  padding-bottom: 50px;
}

.py-\[57px\] {
  padding-top: 57px;
  padding-bottom: 57px;
}

.py-\[59px\] {
  padding-top: 59px;
  padding-bottom: 59px;
}

.py-\[60px\] {
  padding-top: 60px;
  padding-bottom: 60px;
}

.py-\[6px\] {
  padding-top: 6px;
  padding-bottom: 6px;
}

.pb-1 {
  padding-bottom: 0.25rem;
}

.pb-10 {
  padding-bottom: 2.5rem;
}

.pb-12 {
  padding-bottom: 3rem;
}

.pb-14 {
  padding-bottom: 3.5rem;
}

.pb-16 {
  padding-bottom: 4rem;
}

.pb-2 {
  padding-bottom: 0.5rem;
}

.pb-20 {
  padding-bottom: 5rem;
}

.pb-24 {
  padding-bottom: 6rem;
}

.pb-28 {
  padding-bottom: 7rem;
}

.pb-32 {
  padding-bottom: 8rem;
}

.pb-4 {
  padding-bottom: 1rem;
}

.pb-6 {
  padding-bottom: 1.5rem;
}

.pb-8 {
  padding-bottom: 2rem;
}

.pb-9 {
  padding-bottom: 2.25rem;
}

.pb-\[75\%\] {
  padding-bottom: 75%;
}

.pl-0 {
  padding-left: 0px;
}

.pl-4 {
  padding-left: 1rem;
}

.pl-5 {
  padding-left: 1.25rem;
}

.pl-6 {
  padding-left: 1.5rem;
}

.pl-8 {
  padding-left: 2rem;
}

.pr-2 {
  padding-right: 0.5rem;
}

.pr-20 {
  padding-right: 5rem;
}

.pr-24 {
  padding-right: 6rem;
}

.pr-4 {
  padding-right: 1rem;
}

.pr-8 {
  padding-right: 2rem;
}

.pt-0\.5 {
  padding-top: 0.125rem;
}

.pt-1 {
  padding-top: 0.25rem;
}

.pt-1\.5 {
  padding-top: 0.375rem;
}

.pt-10 {
  padding-top: 2.5rem;
}

.pt-14 {
  padding-top: 3.5rem;
}

.pt-16 {
  padding-top: 4rem;
}

.pt-2 {
  padding-top: 0.5rem;
}

.pt-20 {
  padding-top: 5rem;
}

.pt-24 {
  padding-top: 6rem;
}

.pt-28 {
  padding-top: 7rem;
}

.pt-3 {
  padding-top: 0.75rem;
}

.pt-32 {
  padding-top: 8rem;
}

.pt-36 {
  padding-top: 9rem;
}

.pt-4 {
  padding-top: 1rem;
}

.pt-5 {
  padding-top: 1.25rem;
}

.pt-6 {
  padding-top: 1.5rem;
}

.pt-8 {
  padding-top: 2rem;
}

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.align-middle {
  vertical-align: middle;
}

.align-text-bottom {
  vertical-align: text-bottom;
}

.font-\[\'Funnel_Display\:Bold\'\2c _sans-serif\] {
  font-family: 'Funnel Display:Bold', sans-serif;
}

.font-\[\'Lato\:Bold\'\2c _sans-serif\] {
  font-family: 'Lato:Bold', sans-serif;
}

.font-\[\'Lato\:Italic\'\2c _sans-serif\] {
  font-family: 'Lato:Italic', sans-serif;
}

.font-\[\'Lato\:Medium\'\2c _sans-serif\] {
  font-family: 'Lato:Medium', sans-serif;
}

.font-\[\'Lato\:Regular\'\2c _sans-serif\] {
  font-family: 'Lato:Regular', sans-serif;
}

.font-display {
  font-family: Funnel Display, Funnel Display Fallback, system-ui, sans-serif;
}

.font-heading-large {
  font-family: Funnel Display, Funnel Display Fallback, system-ui, sans-serif;
}

.font-heading-small {
  font-family: Lato, Lato Fallback, system-ui, sans-serif;
}

.font-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.font-sans {
  font-family: Lato, Lato Fallback, system-ui, sans-serif;
}

.font-serif {
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
}

.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}

.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}

.text-5xl {
  font-size: 3rem;
  line-height: 1;
}

.text-6xl {
  font-size: 3.75rem;
  line-height: 1;
}

.text-8xl {
  font-size: 6rem;
  line-height: 1;
}

.text-\[0\.65rem\] {
  font-size: 0.65rem;
}

.text-\[0\.68rem\] {
  font-size: 0.68rem;
}

.text-\[1\.25rem\] {
  font-size: 1.25rem;
}

.text-\[1\.2rem\] {
  font-size: 1.2rem;
}

.text-\[10px\] {
  font-size: 10px;
}

.text-\[11\.5px\] {
  font-size: 11.5px;
}

.text-\[11px\] {
  font-size: 11px;
}

.text-\[12px\] {
  font-size: 12px;
}

.text-\[13\.5px\] {
  font-size: 13.5px;
}

.text-\[13px\] {
  font-size: 13px;
}

.text-\[14\.5px\] {
  font-size: 14.5px;
}

.text-\[14px\] {
  font-size: 14px;
}

.text-\[15px\] {
  font-size: 15px;
}

.text-\[16px\] {
  font-size: 16px;
}

.text-\[17px\] {
  font-size: 17px;
}

.text-\[18px\] {
  font-size: 18px;
}

.text-\[19px\] {
  font-size: 19px;
}

.text-\[20px\] {
  font-size: 20px;
}

.text-\[23px\] {
  font-size: 23px;
}

.text-\[25px\] {
  font-size: 25px;
}

.text-\[28px\] {
  font-size: 28px;
}

.text-\[30px\] {
  font-size: 30px;
}

.text-\[32px\] {
  font-size: 32px;
}

.text-\[33px\] {
  font-size: 33px;
}

.text-\[34px\] {
  font-size: 34px;
}

.text-\[40px\] {
  font-size: 40px;
}

.text-\[48px\] {
  font-size: 48px;
}

.text-\[clamp\(3rem\2c 2rem\+4vw\2c 5\.5rem\)\] {
  font-size: clamp(3rem,2rem + 4vw,5.5rem);
}

.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}

.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.font-bold {
  font-weight: 700;
}

.font-extrabold {
  font-weight: 800;
}

.font-light {
  font-weight: 300;
}

.font-medium {
  font-weight: 500;
}

.font-normal {
  font-weight: 400;
}

.font-semibold {
  font-weight: 600;
}

.uppercase {
  text-transform: uppercase;
}

.italic {
  font-style: italic;
}

.not-italic {
  font-style: normal;
}

.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}

.leading-4 {
  line-height: 1rem;
}

.leading-5 {
  line-height: 1.25rem;
}

.leading-6 {
  line-height: 1.5rem;
}

.leading-7 {
  line-height: 1.75rem;
}

.leading-\[1\.08\] {
  line-height: 1.08;
}

.leading-\[1\.1\] {
  line-height: 1.1;
}

.leading-\[1\.2\] {
  line-height: 1.2;
}

.leading-\[1\.45\] {
  line-height: 1.45;
}

.leading-\[1\.4\] {
  line-height: 1.4;
}

.leading-\[1\] {
  line-height: 1;
}

.leading-\[normal\] {
  line-height: normal;
}

.leading-none {
  line-height: 1;
}

.leading-normal {
  line-height: 1.5;
}

.leading-relaxed {
  line-height: 1.625;
}

.leading-snug {
  line-height: 1.375;
}

.leading-tight {
  line-height: 1.25;
}

.tracking-\[0\.12em\] {
  letter-spacing: 0.12em;
}

.tracking-\[0\.14em\] {
  letter-spacing: 0.14em;
}

.tracking-\[0\.1em\] {
  letter-spacing: 0.1em;
}

.tracking-\[0\.25em\] {
  letter-spacing: 0.25em;
}

.tracking-\[0\.2em\] {
  letter-spacing: 0.2em;
}

.tracking-normal {
  letter-spacing: 0em;
}

.tracking-tight {
  letter-spacing: -0.025em;
}

.tracking-wide {
  letter-spacing: 0.025em;
}

.tracking-wider {
  letter-spacing: 0.05em;
}

.tracking-widest {
  letter-spacing: 0.1em;
}

.\!text-brand-500 {
  --tw-text-opacity: 1 !important;
  color: rgb(105 210 175 / var(--tw-text-opacity, 1)) !important;
}

.\!text-brand-600 {
  --tw-text-opacity: 1 !important;
  color: rgb(66 200 154 / var(--tw-text-opacity, 1)) !important;
}

.text-\[\#042133\] {
  --tw-text-opacity: 1;
  color: rgb(4 33 51 / var(--tw-text-opacity, 1));
}

.text-\[\#0d3d5a\] {
  --tw-text-opacity: 1;
  color: rgb(13 61 90 / var(--tw-text-opacity, 1));
}

.text-\[\#1fa855\] {
  --tw-text-opacity: 1;
  color: rgb(31 168 85 / var(--tw-text-opacity, 1));
}

.text-\[\#496e83\] {
  --tw-text-opacity: 1;
  color: rgb(73 110 131 / var(--tw-text-opacity, 1));
}

.text-\[\#58b989\] {
  --tw-text-opacity: 1;
  color: rgb(88 185 137 / var(--tw-text-opacity, 1));
}

.text-\[\#879ead\] {
  --tw-text-opacity: 1;
  color: rgb(135 158 173 / var(--tw-text-opacity, 1));
}

.text-\[\#c1cfd6\] {
  --tw-text-opacity: 1;
  color: rgb(193 207 214 / var(--tw-text-opacity, 1));
}

.text-accent-600 {
  --tw-text-opacity: 1;
  color: rgb(247 147 29 / var(--tw-text-opacity, 1));
}

.text-black {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}

.text-blue-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}

.text-blue-700 {
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}

.text-blue-900 {
  --tw-text-opacity: 1;
  color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}

.text-brand-200 {
  --tw-text-opacity: 1;
  color: rgb(182 234 216 / var(--tw-text-opacity, 1));
}

.text-brand-300 {
  --tw-text-opacity: 1;
  color: rgb(144 223 196 / var(--tw-text-opacity, 1));
}

.text-brand-400 {
  --tw-text-opacity: 1;
  color: rgb(109 213 176 / var(--tw-text-opacity, 1));
}

.text-brand-500 {
  --tw-text-opacity: 1;
  color: rgb(105 210 175 / var(--tw-text-opacity, 1));
}

.text-brand-600 {
  --tw-text-opacity: 1;
  color: rgb(66 200 154 / var(--tw-text-opacity, 1));
}

.text-brand-700 {
  --tw-text-opacity: 1;
  color: rgb(88 185 137 / var(--tw-text-opacity, 1));
}

.text-brand-800 {
  --tw-text-opacity: 1;
  color: rgb(58 138 107 / var(--tw-text-opacity, 1));
}

.text-brand-900 {
  --tw-text-opacity: 1;
  color: rgb(45 107 82 / var(--tw-text-opacity, 1));
}

.text-danger-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}

.text-danger-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}

.text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(135 158 173 / var(--tw-text-opacity, 1));
}

.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 132 152 / var(--tw-text-opacity, 1));
}

.text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(73 110 131 / var(--tw-text-opacity, 1));
}

.text-gray-700 {
  --tw-text-opacity: 1;
  color: rgb(73 110 131 / var(--tw-text-opacity, 1));
}

.text-gray-800 {
  --tw-text-opacity: 1;
  color: rgb(47 74 92 / var(--tw-text-opacity, 1));
}

.text-gray-900 {
  --tw-text-opacity: 1;
  color: rgb(13 61 90 / var(--tw-text-opacity, 1));
}

.text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}

.text-green-700 {
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}

.text-green-800 {
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / var(--tw-text-opacity, 1));
}

.text-green-900 {
  --tw-text-opacity: 1;
  color: rgb(20 83 45 / var(--tw-text-opacity, 1));
}

.text-indigo-600 {
  --tw-text-opacity: 1;
  color: rgb(79 70 229 / var(--tw-text-opacity, 1));
}

.text-indigo-700 {
  --tw-text-opacity: 1;
  color: rgb(67 56 202 / var(--tw-text-opacity, 1));
}

.text-indigo-800 {
  --tw-text-opacity: 1;
  color: rgb(55 48 163 / var(--tw-text-opacity, 1));
}

.text-neutral-100 {
  --tw-text-opacity: 1;
  color: rgb(234 240 243 / var(--tw-text-opacity, 1));
}

.text-neutral-200 {
  --tw-text-opacity: 1;
  color: rgb(193 207 214 / var(--tw-text-opacity, 1));
}

.text-neutral-200\/70 {
  color: rgb(193 207 214 / 0.7);
}

.text-neutral-200\/80 {
  color: rgb(193 207 214 / 0.8);
}

.text-neutral-300 {
  --tw-text-opacity: 1;
  color: rgb(168 184 194 / var(--tw-text-opacity, 1));
}

.text-neutral-400 {
  --tw-text-opacity: 1;
  color: rgb(135 158 173 / var(--tw-text-opacity, 1));
}

.text-neutral-50 {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.text-neutral-500 {
  --tw-text-opacity: 1;
  color: rgb(107 132 152 / var(--tw-text-opacity, 1));
}

.text-neutral-600 {
  --tw-text-opacity: 1;
  color: rgb(90 113 135 / var(--tw-text-opacity, 1));
}

.text-neutral-700 {
  --tw-text-opacity: 1;
  color: rgb(73 110 131 / var(--tw-text-opacity, 1));
}

.text-neutral-800 {
  --tw-text-opacity: 1;
  color: rgb(47 74 92 / var(--tw-text-opacity, 1));
}

.text-neutral-900 {
  --tw-text-opacity: 1;
  color: rgb(13 61 90 / var(--tw-text-opacity, 1));
}

.text-neutral-950 {
  --tw-text-opacity: 1;
  color: rgb(10 10 10 / var(--tw-text-opacity, 1));
}

.text-orange-700 {
  --tw-text-opacity: 1;
  color: rgb(194 65 12 / var(--tw-text-opacity, 1));
}

.text-orange-800 {
  --tw-text-opacity: 1;
  color: rgb(154 52 18 / var(--tw-text-opacity, 1));
}

.text-orange-900 {
  --tw-text-opacity: 1;
  color: rgb(124 45 18 / var(--tw-text-opacity, 1));
}

.text-purple-600 {
  --tw-text-opacity: 1;
  color: rgb(147 51 234 / var(--tw-text-opacity, 1));
}

.text-purple-700 {
  --tw-text-opacity: 1;
  color: rgb(126 34 206 / var(--tw-text-opacity, 1));
}

.text-purple-800 {
  --tw-text-opacity: 1;
  color: rgb(107 33 168 / var(--tw-text-opacity, 1));
}

.text-purple-900 {
  --tw-text-opacity: 1;
  color: rgb(88 28 135 / var(--tw-text-opacity, 1));
}

.text-red-400 {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}

.text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}

.text-red-700 {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

.text-red-800 {
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}

.text-red-900 {
  --tw-text-opacity: 1;
  color: rgb(127 29 29 / var(--tw-text-opacity, 1));
}

.text-slate-400 {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}

.text-slate-500 {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}

.text-slate-600 {
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}

.text-success-400 {
  --tw-text-opacity: 1;
  color: rgb(74 222 128 / var(--tw-text-opacity, 1));
}

.text-success-500 {
  --tw-text-opacity: 1;
  color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}

.text-success-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}

.text-success-700 {
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}

.text-warning-700 {
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}

.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.text-white\/60 {
  color: rgb(255 255 255 / 0.6);
}

.text-white\/80 {
  color: rgb(255 255 255 / 0.8);
}

.text-white\/85 {
  color: rgb(255 255 255 / 0.85);
}

.text-white\/90 {
  color: rgb(255 255 255 / 0.9);
}

.text-yellow-700 {
  --tw-text-opacity: 1;
  color: rgb(161 98 7 / var(--tw-text-opacity, 1));
}

.text-yellow-800 {
  --tw-text-opacity: 1;
  color: rgb(133 77 14 / var(--tw-text-opacity, 1));
}

.text-yellow-900 {
  --tw-text-opacity: 1;
  color: rgb(113 63 18 / var(--tw-text-opacity, 1));
}

.underline {
  text-decoration-line: underline;
}

.no-underline {
  text-decoration-line: none;
}

.decoration-neutral-900\/30 {
  text-decoration-color: rgb(13 61 90 / 0.3);
}

.decoration-white\/30 {
  text-decoration-color: rgb(255 255 255 / 0.3);
}

.decoration-dotted {
  text-decoration-style: dotted;
}

.underline-offset-2 {
  text-underline-offset: 2px;
}

.underline-offset-4 {
  text-underline-offset: 4px;
}

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.placeholder-gray-400::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(135 158 173 / var(--tw-placeholder-opacity, 1));
}

.placeholder-gray-400::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(135 158 173 / var(--tw-placeholder-opacity, 1));
}

.accent-neutral-600 {
  accent-color: #5a7187;
}

.accent-success-500 {
  accent-color: #22c55e;
}

.opacity-0 {
  opacity: 0;
}

.opacity-100 {
  opacity: 1;
}

.opacity-20 {
  opacity: 0.2;
}

.opacity-25 {
  opacity: 0.25;
}

.opacity-30 {
  opacity: 0.3;
}

.opacity-40 {
  opacity: 0.4;
}

.opacity-5 {
  opacity: 0.05;
}

.opacity-70 {
  opacity: 0.7;
}

.opacity-75 {
  opacity: 0.75;
}

.opacity-80 {
  opacity: 0.8;
}

.mix-blend-multiply {
  mix-blend-mode: multiply;
}

.shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-\[0_12px_28px_rgba\(13\2c 61\2c 90\2c 0\.12\)\] {
  --tw-shadow: 0 12px 28px rgba(13,61,90,0.12);
  --tw-shadow-colored: 0 12px 28px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-\[0_22px_50px_rgba\(0\2c 0\2c 0\2c 0\.3\)\] {
  --tw-shadow: 0 22px 50px rgba(0,0,0,0.3);
  --tw-shadow-colored: 0 22px 50px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-\[0_40px_80px_-15px_rgba\(0\2c 0\2c 0\2c 0\.08\)\] {
  --tw-shadow: 0 40px 80px -15px rgba(0,0,0,0.08);
  --tw-shadow-colored: 0 40px 80px -15px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-\[0_4px_10px_rgba\(0\2c 0\2c 0\2c 0\.06\)\] {
  --tw-shadow: 0 4px 10px rgba(0,0,0,0.06);
  --tw-shadow-colored: 0 4px 10px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.outline {
  outline-style: solid;
}

.ring-1 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring-brand-200 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(182 234 216 / var(--tw-ring-opacity, 1));
}

.ring-brand-500\/40 {
  --tw-ring-color: rgb(105 210 175 / 0.4);
}

.ring-white\/10 {
  --tw-ring-color: rgb(255 255 255 / 0.1);
}

.ring-white\/15 {
  --tw-ring-color: rgb(255 255 255 / 0.15);
}

.ring-white\/20 {
  --tw-ring-color: rgb(255 255 255 / 0.2);
}

.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.blur-3xl {
  --tw-blur: blur(64px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.blur-\[100px\] {
  --tw-blur: blur(100px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.blur-\[80px\] {
  --tw-blur: blur(80px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-shadow {
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.duration-100 {
  transition-duration: 100ms;
}

.duration-150 {
  transition-duration: 150ms;
}

.duration-200 {
  transition-duration: 200ms;
}

.duration-300 {
  transition-duration: 300ms;
}

.duration-500 {
  transition-duration: 500ms;
}

.duration-700 {
  transition-duration: 700ms;
}

.ease-in {
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}

.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.ease-out {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

.text-glow-accent {
  text-shadow: 0 1px 8px color-mix(in srgb, var(--accent-200) 60%, transparent);
}

/* Custom rounded corners for badges */

.rounded-custom {
  border-top-left-radius: 100px;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 100px;
  border-bottom-left-radius: 20px;
}

/* Alternative custom rounded corners for messages */

/* Another alternative custom rounded corners for FAQ */

/* Another alternative custom rounded corners for pricing cards */

.rounded-custom-alt-3 {
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 100px;
  border-bottom-left-radius: 20px;
}

.letter-animate {
  display: inline-block;
  animation: letter-rise 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.hero-title-animated {
  word-break: break-word;
}

/* Reveal al hacer scroll: scroll-animations.js añade .in-view al entrar en viewport */

.reveal-up {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.reveal-up.in-view {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .reveal-up {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.\[animation-duration\:320ms\] {
  animation-duration: 320ms;
}

.\[animation-duration\:480ms\] {
  animation-duration: 480ms;
}

.after\:absolute::after {
  content: var(--tw-content);
  position: absolute;
}

.after\:left-\[2px\]::after {
  content: var(--tw-content);
  left: 2px;
}

.after\:top-\[2px\]::after {
  content: var(--tw-content);
  top: 2px;
}

.after\:h-5::after {
  content: var(--tw-content);
  height: 1.25rem;
}

.after\:w-5::after {
  content: var(--tw-content);
  width: 1.25rem;
}

.after\:rounded-full::after {
  content: var(--tw-content);
  border-radius: 9999px;
}

.after\:border::after {
  content: var(--tw-content);
  border-width: 1px;
}

.after\:border-gray-300::after {
  content: var(--tw-content);
  --tw-border-opacity: 1;
  border-color: rgb(168 184 194 / var(--tw-border-opacity, 1));
}

.after\:bg-white::after {
  content: var(--tw-content);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.after\:transition-all::after {
  content: var(--tw-content);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.after\:content-\[\'\'\]::after {
  --tw-content: '';
  content: var(--tw-content);
}

.open\:shadow-md[open] {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:-translate-y-0\.5:hover {
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:-translate-y-1:hover {
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:-translate-y-2:hover {
  --tw-translate-y: -0.5rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-105:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-110:hover {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-\[1\.01\]:hover {
  --tw-scale-x: 1.01;
  --tw-scale-y: 1.01;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:border-brand-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(109 213 176 / var(--tw-border-opacity, 1));
}

.hover\:border-brand-500:hover {
  --tw-border-opacity: 1;
  border-color: rgb(105 210 175 / var(--tw-border-opacity, 1));
}

.hover\:border-gray-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(168 184 194 / var(--tw-border-opacity, 1));
}

.hover\:border-neutral-200:hover {
  --tw-border-opacity: 1;
  border-color: rgb(193 207 214 / var(--tw-border-opacity, 1));
}

.hover\:border-neutral-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(168 184 194 / var(--tw-border-opacity, 1));
}

.hover\:bg-\[\#1fac4f\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(31 172 79 / var(--tw-bg-opacity, 1));
}

.hover\:bg-\[\#f28c00\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(242 140 0 / var(--tw-bg-opacity, 1));
}

.hover\:bg-\[\#f9fcfd\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(249 252 253 / var(--tw-bg-opacity, 1));
}

.hover\:bg-accent-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(247 147 29 / var(--tw-bg-opacity, 1));
}

.hover\:bg-accent-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(232 132 26 / var(--tw-bg-opacity, 1));
}

.hover\:bg-blue-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}

.hover\:bg-brand-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 249 / var(--tw-bg-opacity, 1));
}

.hover\:bg-gray-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(234 240 243 / var(--tw-bg-opacity, 1));
}

.hover\:bg-gray-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(193 207 214 / var(--tw-bg-opacity, 1));
}

.hover\:bg-gray-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-green-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1));
}

.hover\:bg-indigo-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(67 56 202 / var(--tw-bg-opacity, 1));
}

.hover\:bg-neutral-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(234 240 243 / var(--tw-bg-opacity, 1));
}

.hover\:bg-neutral-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-neutral-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(47 74 92 / var(--tw-bg-opacity, 1));
}

.hover\:bg-neutral-900:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(13 61 90 / var(--tw-bg-opacity, 1));
}

.hover\:bg-red-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}

.hover\:bg-white:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-white\/10:hover {
  background-color: rgb(255 255 255 / 0.1);
}

.hover\:bg-white\/\[0\.08\]:hover {
  background-color: rgb(255 255 255 / 0.08);
}

.hover\:bg-opacity-75:hover {
  --tw-bg-opacity: 0.75;
}

.hover\:bg-opacity-90:hover {
  --tw-bg-opacity: 0.9;
}

.hover\:text-accent-700:hover {
  --tw-text-opacity: 1;
  color: rgb(232 132 26 / var(--tw-text-opacity, 1));
}

.hover\:text-blue-800:hover {
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}

.hover\:text-brand-600:hover {
  --tw-text-opacity: 1;
  color: rgb(66 200 154 / var(--tw-text-opacity, 1));
}

.hover\:text-gray-700:hover {
  --tw-text-opacity: 1;
  color: rgb(73 110 131 / var(--tw-text-opacity, 1));
}

.hover\:text-gray-800:hover {
  --tw-text-opacity: 1;
  color: rgb(47 74 92 / var(--tw-text-opacity, 1));
}

.hover\:text-gray-900:hover {
  --tw-text-opacity: 1;
  color: rgb(13 61 90 / var(--tw-text-opacity, 1));
}

.hover\:text-green-800:hover {
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / var(--tw-text-opacity, 1));
}

.hover\:text-green-900:hover {
  --tw-text-opacity: 1;
  color: rgb(20 83 45 / var(--tw-text-opacity, 1));
}

.hover\:text-indigo-900:hover {
  --tw-text-opacity: 1;
  color: rgb(49 46 129 / var(--tw-text-opacity, 1));
}

.hover\:text-neutral-300:hover {
  --tw-text-opacity: 1;
  color: rgb(168 184 194 / var(--tw-text-opacity, 1));
}

.hover\:text-neutral-700:hover {
  --tw-text-opacity: 1;
  color: rgb(73 110 131 / var(--tw-text-opacity, 1));
}

.hover\:text-neutral-900:hover {
  --tw-text-opacity: 1;
  color: rgb(13 61 90 / var(--tw-text-opacity, 1));
}

.hover\:text-purple-900:hover {
  --tw-text-opacity: 1;
  color: rgb(88 28 135 / var(--tw-text-opacity, 1));
}

.hover\:text-red-900:hover {
  --tw-text-opacity: 1;
  color: rgb(127 29 29 / var(--tw-text-opacity, 1));
}

.hover\:text-slate-900:hover {
  --tw-text-opacity: 1;
  color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}

.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.hover\:underline:hover {
  text-decoration-line: underline;
}

.hover\:no-underline:hover {
  text-decoration-line: none;
}

.hover\:decoration-neutral-900:hover {
  text-decoration-color: #0d3d5a;
}

.hover\:decoration-white:hover {
  text-decoration-color: #fff;
}

.hover\:opacity-70:hover {
  opacity: 0.7;
}

.hover\:opacity-75:hover {
  opacity: 0.75;
}

.hover\:shadow-2xl:hover {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-\[0_50px_100px_-20px_rgba\(37\2c 99\2c 235\2c 0\.12\)\]:hover {
  --tw-shadow: 0 50px 100px -20px rgba(37,99,235,0.12);
  --tw-shadow-colored: 0 50px 100px -20px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-lg:hover {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-md:hover {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-xl:hover {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:ring-brand-500:hover {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(105 210 175 / var(--tw-ring-opacity, 1));
}

.hover\:ring-white\/30:hover {
  --tw-ring-color: rgb(255 255 255 / 0.3);
}

.focus\:not-sr-only:focus {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

.focus\:fixed:focus {
  position: fixed;
}

.focus\:left-4:focus {
  left: 1rem;
}

.focus\:top-4:focus {
  top: 1rem;
}

.focus\:z-10:focus {
  z-index: 10;
}

.focus\:z-\[60\]:focus {
  z-index: 60;
}

.focus\:rounded-full:focus {
  border-radius: 9999px;
}

.focus\:border-accent-500:focus {
  --tw-border-opacity: 1;
  border-color: rgb(243 146 32 / var(--tw-border-opacity, 1));
}

.focus\:border-brand-500:focus {
  --tw-border-opacity: 1;
  border-color: rgb(105 210 175 / var(--tw-border-opacity, 1));
}

.focus\:border-indigo-500:focus {
  --tw-border-opacity: 1;
  border-color: rgb(99 102 241 / var(--tw-border-opacity, 1));
}

.focus\:border-transparent:focus {
  border-color: transparent;
}

.focus\:bg-white:focus {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.focus\:px-5:focus {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.focus\:py-3:focus {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.focus\:font-bold:focus {
  font-weight: 700;
}

.focus\:text-neutral-900:focus {
  --tw-text-opacity: 1;
  color: rgb(13 61 90 / var(--tw-text-opacity, 1));
}

.focus\:shadow-lg:focus {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus\:ring-0:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-4:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-accent-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(251 198 118 / var(--tw-ring-opacity, 1));
}

.focus\:ring-accent-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(243 146 32 / var(--tw-ring-opacity, 1));
}

.focus\:ring-blue-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity, 1));
}

.focus\:ring-brand-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(105 210 175 / var(--tw-ring-opacity, 1));
}

.focus\:ring-green-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1));
}

.focus\:ring-indigo-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1));
}

.focus\:ring-red-600:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity, 1));
}

.focus\:ring-offset-2:focus {
  --tw-ring-offset-width: 2px;
}

.focus\:ring-offset-red-50:focus {
  --tw-ring-offset-color: #fef2f2;
}

.focus-visible\:outline:focus-visible {
  outline-style: solid;
}

.focus-visible\:outline-2:focus-visible {
  outline-width: 2px;
}

.focus-visible\:outline-offset-2:focus-visible {
  outline-offset: 2px;
}

.focus-visible\:outline-offset-4:focus-visible {
  outline-offset: 4px;
}

.focus-visible\:outline-accent-600:focus-visible {
  outline-color: #f7931d;
}

.focus-visible\:outline-blue-600:focus-visible {
  outline-color: #2563eb;
}

.focus-visible\:outline-white:focus-visible {
  outline-color: #fff;
}

.active\:bg-accent-800:active {
  --tw-bg-opacity: 1;
  background-color: rgb(193 106 21 / var(--tw-bg-opacity, 1));
}

.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}

.disabled\:bg-neutral-300:disabled {
  --tw-bg-opacity: 1;
  background-color: rgb(168 184 194 / var(--tw-bg-opacity, 1));
}

.group[open] .group-open\:rotate-45 {
  --tw-rotate: 45deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:bg-accent-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 241 213 / var(--tw-bg-opacity, 1));
}

.group:hover .group-hover\:bg-neutral-900\/30 {
  background-color: rgb(13 61 90 / 0.3);
}

.group:hover .group-hover\:bg-neutral-950\/0 {
  background-color: rgb(10 10 10 / 0);
}

.group:hover .group-hover\:text-accent-700 {
  --tw-text-opacity: 1;
  color: rgb(232 132 26 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-success-500 {
  --tw-text-opacity: 1;
  color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:opacity-100 {
  opacity: 1;
}

.peer:checked ~ .peer-checked\:bg-accent-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(247 147 29 / var(--tw-bg-opacity, 1));
}

.peer:checked ~ .peer-checked\:after\:translate-x-full::after {
  content: var(--tw-content);
  --tw-translate-x: 100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.peer:checked ~ .peer-checked\:after\:border-white::after {
  content: var(--tw-content);
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}

.peer:focus ~ .peer-focus\:outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.peer:focus ~ .peer-focus\:ring-4 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.peer:focus ~ .peer-focus\:ring-accent-300 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(251 198 118 / var(--tw-ring-opacity, 1));
}

@media (min-width: 640px) {
  .sm\:right-auto {
    right: auto;
  }

  .sm\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  .sm\:mx-8 {
    margin-left: 2rem;
    margin-right: 2rem;
  }

  .sm\:mx-auto {
    margin-left: auto;
    margin-right: auto;
  }

  .sm\:my-8 {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }

  .sm\:mt-0 {
    margin-top: 0px;
  }

  .sm\:mt-5 {
    margin-top: 1.25rem;
  }

  .sm\:mt-6 {
    margin-top: 1.5rem;
  }

  .sm\:inline {
    display: inline;
  }

  .sm\:grid {
    display: grid;
  }

  .sm\:hidden {
    display: none;
  }

  .sm\:h-10 {
    height: 2.5rem;
  }

  .sm\:h-\[460px\] {
    height: 460px;
  }

  .sm\:h-\[480px\] {
    height: 480px;
  }

  .sm\:w-32 {
    width: 8rem;
  }

  .sm\:w-\[48\%\] {
    width: 48%;
  }

  .sm\:w-full {
    width: 100%;
  }

  .sm\:max-w-\[25rem\] {
    max-width: 25rem;
  }

  .sm\:max-w-lg {
    max-width: 32rem;
  }

  .sm\:max-w-sm {
    max-width: 24rem;
  }

  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sm\:flex-row {
    flex-direction: row;
  }

  .sm\:items-center {
    align-items: center;
  }

  .sm\:justify-between {
    justify-content: space-between;
  }

  .sm\:gap-4 {
    gap: 1rem;
  }

  .sm\:gap-6 {
    gap: 1.5rem;
  }

  .sm\:gap-7 {
    gap: 1.75rem;
  }

  .sm\:divide-y > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-y-reverse: 0;
    border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
    border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
  }

  .sm\:divide-gray-200 > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-opacity: 1;
    border-color: rgb(193 207 214 / var(--tw-divide-opacity, 1));
  }

  .sm\:rounded-lg {
    border-radius: 0.5rem;
  }

  .sm\:rounded-xl {
    border-radius: 0.75rem;
  }

  .sm\:p-0 {
    padding: 0px;
  }

  .sm\:p-14 {
    padding: 3.5rem;
  }

  .sm\:p-6 {
    padding: 1.5rem;
  }

  .sm\:p-8 {
    padding: 2rem;
  }

  .sm\:px-0 {
    padding-left: 0px;
    padding-right: 0px;
  }

  .sm\:px-10 {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }

  .sm\:px-14 {
    padding-left: 3.5rem;
    padding-right: 3.5rem;
  }

  .sm\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .sm\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .sm\:py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .sm\:py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
  }

  .sm\:pt-28 {
    padding-top: 7rem;
  }

  .sm\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }

  .sm\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

@media (min-width: 768px) {
  .md\:left-0 {
    left: 0px;
  }

  .md\:left-6 {
    left: 1.5rem;
  }

  .md\:top-12 {
    top: 3rem;
  }

  .md\:top-20 {
    top: 5rem;
  }

  .md\:order-1 {
    order: 1;
  }

  .md\:order-2 {
    order: 2;
  }

  .md\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  .md\:mb-10 {
    margin-bottom: 2.5rem;
  }

  .md\:mb-14 {
    margin-bottom: 3.5rem;
  }

  .md\:mb-16 {
    margin-bottom: 4rem;
  }

  .md\:mb-20 {
    margin-bottom: 5rem;
  }

  .md\:ml-10 {
    margin-left: 2.5rem;
  }

  .md\:mr-10 {
    margin-right: 2.5rem;
  }

  .md\:mr-6 {
    margin-right: 1.5rem;
  }

  .md\:mt-16 {
    margin-top: 4rem;
  }

  .md\:mt-20 {
    margin-top: 5rem;
  }

  .md\:mt-4 {
    margin-top: 1rem;
  }

  .md\:mt-8 {
    margin-top: 2rem;
  }

  .md\:inline {
    display: inline;
  }

  .md\:flex {
    display: flex;
  }

  .md\:grid {
    display: grid;
  }

  .md\:hidden {
    display: none;
  }

  .md\:aspect-auto {
    aspect-ratio: auto;
  }

  .md\:h-10 {
    height: 2.5rem;
  }

  .md\:h-12 {
    height: 3rem;
  }

  .md\:h-14 {
    height: 3.5rem;
  }

  .md\:h-20 {
    height: 5rem;
  }

  .md\:h-40 {
    height: 10rem;
  }

  .md\:h-6 {
    height: 1.5rem;
  }

  .md\:h-80 {
    height: 20rem;
  }

  .md\:h-\[240px\] {
    height: 240px;
  }

  .md\:h-\[500px\] {
    height: 500px;
  }

  .md\:w-12 {
    width: 3rem;
  }

  .md\:w-14 {
    width: 3.5rem;
  }

  .md\:w-20 {
    width: 5rem;
  }

  .md\:w-6 {
    width: 1.5rem;
  }

  .md\:w-80 {
    width: 20rem;
  }

  .md\:min-w-\[300px\] {
    min-width: 300px;
  }

  .md\:max-w-\[500px\] {
    max-width: 500px;
  }

  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .md\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .md\:flex-row {
    flex-direction: row;
  }

  .md\:items-end {
    align-items: flex-end;
  }

  .md\:items-center {
    align-items: center;
  }

  .md\:justify-between {
    justify-content: space-between;
  }

  .md\:gap-12 {
    gap: 3rem;
  }

  .md\:gap-4 {
    gap: 1rem;
  }

  .md\:gap-6 {
    gap: 1.5rem;
  }

  .md\:gap-8 {
    gap: 2rem;
  }

  .md\:space-y-6 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
  }

  .md\:rounded-full {
    border-radius: 9999px;
  }

  .md\:p-12 {
    padding: 3rem;
  }

  .md\:p-14 {
    padding: 3.5rem;
  }

  .md\:p-5 {
    padding: 1.25rem;
  }

  .md\:p-6 {
    padding: 1.5rem;
  }

  .md\:p-8 {
    padding: 2rem;
  }

  .md\:px-10 {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }

  .md\:px-12 {
    padding-left: 3rem;
    padding-right: 3rem;
  }

  .md\:px-20 {
    padding-left: 5rem;
    padding-right: 5rem;
  }

  .md\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .md\:px-7 {
    padding-left: 1.75rem;
    padding-right: 1.75rem;
  }

  .md\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .md\:py-10 {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }

  .md\:py-12 {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .md\:py-14 {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }

  .md\:py-16 {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .md\:py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .md\:py-24 {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }

  .md\:py-28 {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }

  .md\:py-32 {
    padding-top: 8rem;
    padding-bottom: 8rem;
  }

  .md\:py-36 {
    padding-top: 9rem;
    padding-bottom: 9rem;
  }

  .md\:py-40 {
    padding-top: 10rem;
    padding-bottom: 10rem;
  }

  .md\:py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
  }

  .md\:py-6 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  .md\:py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .md\:pb-10 {
    padding-bottom: 2.5rem;
  }

  .md\:pb-16 {
    padding-bottom: 4rem;
  }

  .md\:pb-20 {
    padding-bottom: 5rem;
  }

  .md\:pb-24 {
    padding-bottom: 6rem;
  }

  .md\:pb-28 {
    padding-bottom: 7rem;
  }

  .md\:pb-32 {
    padding-bottom: 8rem;
  }

  .md\:pb-36 {
    padding-bottom: 9rem;
  }

  .md\:pb-40 {
    padding-bottom: 10rem;
  }

  .md\:pb-44 {
    padding-bottom: 11rem;
  }

  .md\:pl-10 {
    padding-left: 2.5rem;
  }

  .md\:pr-10 {
    padding-right: 2.5rem;
  }

  .md\:pt-1 {
    padding-top: 0.25rem;
  }

  .md\:pt-10 {
    padding-top: 2.5rem;
  }

  .md\:pt-24 {
    padding-top: 6rem;
  }

  .md\:pt-32 {
    padding-top: 8rem;
  }

  .md\:pt-40 {
    padding-top: 10rem;
  }

  .md\:pt-6 {
    padding-top: 1.5rem;
  }

  .md\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .md\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .md\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .md\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }

  .md\:text-6xl {
    font-size: 3.75rem;
    line-height: 1;
  }

  .md\:text-7xl {
    font-size: 4.5rem;
    line-height: 1;
  }

  .md\:text-\[1\.35rem\] {
    font-size: 1.35rem;
  }

  .md\:text-\[1\.375rem\] {
    font-size: 1.375rem;
  }

  .md\:text-\[1\.4rem\] {
    font-size: 1.4rem;
  }

  .md\:text-\[30px\] {
    font-size: 30px;
  }

  .md\:text-base {
    font-size: 1rem;
    line-height: 1.5rem;
  }

  .md\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .md\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }

  .md\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}

@media (min-width: 1024px) {
  .lg\:sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
  }

  .lg\:absolute {
    position: absolute;
  }

  .lg\:sticky {
    position: sticky;
  }

  .lg\:right-9 {
    right: 2.25rem;
  }

  .lg\:top-1\/2 {
    top: 50%;
  }

  .lg\:top-28 {
    top: 7rem;
  }

  .lg\:top-32 {
    top: 8rem;
  }

  .lg\:top-40 {
    top: 10rem;
  }

  .lg\:order-1 {
    order: 1;
  }

  .lg\:order-2 {
    order: 2;
  }

  .lg\:col-span-1 {
    grid-column: span 1 / span 1;
  }

  .lg\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  .lg\:col-span-3 {
    grid-column: span 3 / span 3;
  }

  .lg\:col-span-5 {
    grid-column: span 5 / span 5;
  }

  .lg\:col-span-7 {
    grid-column: span 7 / span 7;
  }

  .lg\:mx-0 {
    margin-left: 0px;
    margin-right: 0px;
  }

  .lg\:mx-auto {
    margin-left: auto;
    margin-right: auto;
  }

  .lg\:mb-10 {
    margin-bottom: 2.5rem;
  }

  .lg\:mb-12 {
    margin-bottom: 3rem;
  }

  .lg\:mb-2 {
    margin-bottom: 0.5rem;
  }

  .lg\:mb-24 {
    margin-bottom: 6rem;
  }

  .lg\:mb-6 {
    margin-bottom: 1.5rem;
  }

  .lg\:mt-0 {
    margin-top: 0px;
  }

  .lg\:mt-20 {
    margin-top: 5rem;
  }

  .lg\:block {
    display: block;
  }

  .lg\:flex {
    display: flex;
  }

  .lg\:grid {
    display: grid;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:h-\[420px\] {
    height: 420px;
  }

  .lg\:min-h-\[100svh\] {
    min-height: 100svh;
  }

  .lg\:w-1\/2 {
    width: 50%;
  }

  .lg\:w-\[32\%\] {
    width: 32%;
  }

  .lg\:-translate-y-1\/2 {
    --tw-translate-y: -50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .lg\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .lg\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lg\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .lg\:grid-cols-\[1\.05fr_1fr\] {
    grid-template-columns: 1.05fr 1fr;
  }

  .lg\:grid-cols-\[1\.15fr_0\.85fr\] {
    grid-template-columns: 1.15fr 0.85fr;
  }

  .lg\:grid-cols-\[17rem_minmax\(0\2c 1fr\)\] {
    grid-template-columns: 17rem minmax(0,1fr);
  }

  .lg\:grid-cols-\[248px_1fr\] {
    grid-template-columns: 248px 1fr;
  }

  .lg\:grid-cols-\[minmax\(0\2c 1\.1fr\)_minmax\(0\2c 3fr\)\] {
    grid-template-columns: minmax(0,1.1fr) minmax(0,3fr);
  }

  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_320px\] {
    grid-template-columns: minmax(0,1fr) 320px;
  }

  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_minmax\(0\2c 1fr\)\] {
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  }

  .lg\:grid-cols-\[minmax\(0\2c 4fr\)_minmax\(0\2c 8fr\)\] {
    grid-template-columns: minmax(0,4fr) minmax(0,8fr);
  }

  .lg\:grid-cols-\[minmax\(0\2c 5fr\)_minmax\(0\2c 6fr\)\] {
    grid-template-columns: minmax(0,5fr) minmax(0,6fr);
  }

  .lg\:grid-cols-\[minmax\(0\2c 5fr\)_minmax\(0\2c 7fr\)\] {
    grid-template-columns: minmax(0,5fr) minmax(0,7fr);
  }

  .lg\:grid-cols-\[minmax\(0\2c 6fr\)_minmax\(0\2c 6fr\)\] {
    grid-template-columns: minmax(0,6fr) minmax(0,6fr);
  }

  .lg\:grid-cols-\[minmax\(0\2c 7fr\)_minmax\(0\2c 5fr\)\] {
    grid-template-columns: minmax(0,7fr) minmax(0,5fr);
  }

  .lg\:flex-row {
    flex-direction: row;
  }

  .lg\:items-end {
    align-items: flex-end;
  }

  .lg\:items-center {
    align-items: center;
  }

  .lg\:justify-start {
    justify-content: flex-start;
  }

  .lg\:justify-end {
    justify-content: flex-end;
  }

  .lg\:justify-between {
    justify-content: space-between;
  }

  .lg\:gap-10 {
    gap: 2.5rem;
  }

  .lg\:gap-12 {
    gap: 3rem;
  }

  .lg\:gap-14 {
    gap: 3.5rem;
  }

  .lg\:gap-16 {
    gap: 4rem;
  }

  .lg\:gap-20 {
    gap: 5rem;
  }

  .lg\:gap-32 {
    gap: 8rem;
  }

  .lg\:gap-4 {
    gap: 1rem;
  }

  .lg\:gap-8 {
    gap: 2rem;
  }

  .lg\:space-y-10 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(2.5rem * var(--tw-space-y-reverse));
  }

  .lg\:self-start {
    align-self: flex-start;
  }

  .lg\:self-center {
    align-self: center;
  }

  .lg\:whitespace-nowrap {
    white-space: nowrap;
  }

  .lg\:p-10 {
    padding: 2.5rem;
  }

  .lg\:p-12 {
    padding: 3rem;
  }

  .lg\:p-6 {
    padding: 1.5rem;
  }

  .lg\:px-14 {
    padding-left: 3.5rem;
    padding-right: 3.5rem;
  }

  .lg\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .lg\:pb-12 {
    padding-bottom: 3rem;
  }

  .lg\:pb-16 {
    padding-bottom: 4rem;
  }

  .lg\:pb-20 {
    padding-bottom: 5rem;
  }

  .lg\:pb-24 {
    padding-bottom: 6rem;
  }

  .lg\:pb-\[20svh\] {
    padding-bottom: 20svh;
  }

  .lg\:pl-4 {
    padding-left: 1rem;
  }

  .lg\:pr-4 {
    padding-right: 1rem;
  }

  .lg\:pt-24 {
    padding-top: 6rem;
  }

  .lg\:pt-28 {
    padding-top: 7rem;
  }

  .lg\:pt-36 {
    padding-top: 9rem;
  }

  .lg\:pt-40 {
    padding-top: 10rem;
  }

  .lg\:pt-6 {
    padding-top: 1.5rem;
  }

  .lg\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }

  .lg\:text-6xl {
    font-size: 3.75rem;
    line-height: 1;
  }
}

@media (min-width: 1280px) {
  .xl\:-mr-40 {
    margin-right: -10rem;
  }

  .xl\:inline {
    display: inline;
  }

  .xl\:flex {
    display: flex;
  }

  .xl\:gap-1 {
    gap: 0.25rem;
  }

  .xl\:gap-4 {
    gap: 1rem;
  }

  .xl\:gap-7 {
    gap: 1.75rem;
  }

  .xl\:px-3\.5 {
    padding-left: 0.875rem;
    padding-right: 0.875rem;
  }

  .xl\:text-\[15px\] {
    font-size: 15px;
  }
}

@media (min-width: 1536px) {
  .\32xl\:-mr-56 {
    margin-right: -14rem;
  }
}

@media (prefers-color-scheme: dark) {
  .dark\:bg-brand-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(105 210 175 / var(--tw-bg-opacity, 1));
  }

  .dark\:bg-brand-800 {
    --tw-bg-opacity: 1;
    background-color: rgb(58 138 107 / var(--tw-bg-opacity, 1));
  }

  .dark\:bg-gray-700 {
    --tw-bg-opacity: 1;
    background-color: rgb(73 110 131 / var(--tw-bg-opacity, 1));
  }

  .dark\:\!text-brand-500 {
    --tw-text-opacity: 1 !important;
    color: rgb(105 210 175 / var(--tw-text-opacity, 1)) !important;
  }

  .dark\:text-brand-800 {
    --tw-text-opacity: 1;
    color: rgb(58 138 107 / var(--tw-text-opacity, 1));
  }

  .dark\:text-gray-400 {
    --tw-text-opacity: 1;
    color: rgb(135 158 173 / var(--tw-text-opacity, 1));
  }
}

.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker {
  display: none;
}
