
@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600;700&family=Caveat:wght@400;500;600;700&display=swap');
/* ============================================================
   Instituto Leco — entrypoint CSS del tema.
   Compila a assets/dist/css/main.css vía PostCSS + Tailwind.
   ============================================================ */
/* 1. Tokens del Style Guide (CSS variables, @font-face, type styles base). */
/* ============================================================
   LECO — Colors & Type Foundations
   ------------------------------------------------------------
   Simplified palette: white base, blue scale (primary),
   yellow for accents only. Grays for neutrals/text.
   ============================================================ */
/* ---------- Fonts ----------------------------------------
   PRIMARY: Montserrat (brand font, provided as variable TTF).
   Quicksand + Caveat kept from Google Fonts as optional
   logo-adjacent display / script accents.
   Los @import van primero (regla de PostCSS); el @font-face del
   TTF local viene después.
   ---------------------------------------------------------- */
@font-face {
  font-family: 'Montserrat';
  src: url('../fonts/Montserrat-VariableFont_wght.ttf') format('truetype-variations'),
       url('../fonts/Montserrat-VariableFont_wght.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root {
  /* ============================================================
     COLOR PRIMITIVES
     ============================================================ */

  /* Blue scale (primary family, anchored on #0E55A2) */
  --blue-50:  #EAF2FB;
  --blue-100: #D1E0F2;
  --blue-200: #A8C1E3;
  --blue-300: #6E97CC;
  --blue-400: #3D78BC;
  --blue-500: #0E55A2;   /* BRAND PRIMARY — institutional blue */
  --blue-600: #0B4786;
  --blue-700: #0A3B6F;
  --blue-800: #082E57;
  --blue-900: #06213F;
  --blue-950: #041630;

  /* Soft lavender (legacy accent from logo — kept subtle) */
  --lavender-100: #EEF0F8;
  --lavender-300: #A9B1D9;
  --lavender-500: #7C87C3;

  /* Yellow accent scale */
  --yellow-50:  #FEF9E8;
  --yellow-100: #FDF1C2;
  --yellow-200: #FBE48A;
  --yellow-300: #F5D25A;
  --yellow-400: #E8BE3A;
  --yellow-500: #DEAF47;   /* BRAND ACCENT — warm gold */
  --yellow-600: #B78B2F;
  --yellow-700: #8A6820;

  /* Neutral / gray scale */
  --white:     #FFFFFF;
  --gray-25:   #FBFCFD;
  --gray-50:   #F6F8FA;
  --gray-100:  #EEF2F6;
  --gray-200:  #E2E8F0;
  --gray-300:  #CBD5E1;
  --gray-400:  #94A3B8;
  --gray-500:  #64748B;
  --gray-600:  #475569;
  --gray-700:  #334155;
  --gray-800:  #1E293B;
  --gray-900:  #0F172A;

  /* Status (muted, institutional — not saturated tech hues) */
  --success:   #2F8A5A;
  --success-bg:#E7F4EC;
  --warning:   #B78B2F;
  --warning-bg:#FDF1C2;
  --danger:    #B3261E;
  --danger-bg: #FBEAE8;

  /* ============================================================
     SEMANTIC COLOR TOKENS
     ============================================================ */

  /* Surfaces / backgrounds */
  --bg:            var(--white);
  --bg-subtle:     var(--gray-50);
  --bg-muted:      var(--gray-100);
  --bg-brand:      var(--blue-500);
  --bg-brand-soft: var(--blue-50);
  --bg-inverse:    var(--blue-900);

  /* Foreground / text */
  --fg:            var(--gray-900);
  --fg-1:          var(--gray-900);   /* primary text */
  --fg-2:          var(--gray-600);   /* secondary text */
  --fg-3:          var(--gray-400);   /* tertiary / captions */
  --fg-inverse:    var(--white);
  --fg-brand:      var(--blue-500);
  --fg-accent:     var(--yellow-600);
  --fg-on-brand:   var(--white);

  /* Borders */
  --border:        var(--gray-200);
  --border-strong: var(--gray-300);
  --border-brand:  var(--blue-500);
  --border-focus:  var(--blue-400);

  /* Interactive */
  --link:          var(--blue-500);
  --link-hover:    var(--blue-600);
  --focus-ring:    0 0 0 3px rgba(14, 85, 162, 0.25);

  /* ============================================================
     TYPOGRAPHY
     ============================================================ */

  /* Families */
  --font-sans:    'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-display: 'Quicksand', 'Montserrat', sans-serif;   /* rounded geometric (logo match) */
  --font-script:  'Caveat', 'Quicksand', cursive;          /* soft script accent (logo match) */
  --font-mono:    ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  /* Sizes (rem-based, 16px root) */
  --fs-xs:   0.75rem;   /* 12 */
  --fs-sm:   0.875rem;  /* 14 */
  --fs-base: 1rem;      /* 16 */
  --fs-md:   1.125rem;  /* 18 */
  --fs-lg:   1.25rem;   /* 20 */
  --fs-xl:   1.5rem;    /* 24 */
  --fs-2xl:  1.875rem;  /* 30 */
  --fs-3xl:  2.25rem;   /* 36 */
  --fs-4xl:  3rem;      /* 48 */
  --fs-5xl:  3.75rem;   /* 60 */

  /* Weights */
  --fw-light:  300;
  --fw-normal: 400;
  --fw-medium: 500;
  --fw-semi:   600;
  --fw-bold:   700;
  --fw-black:  800;

  /* Line heights */
  --lh-tight:  1.15;
  --lh-snug:   1.3;
  --lh-normal: 1.5;
  --lh-relaxed:1.7;

  /* Letter spacing */
  --ls-tight:  -0.02em;
  --ls-normal: 0;
  --ls-wide:   0.04em;
  --ls-wider:  0.08em;

  /* ============================================================
     SPACING, RADII, SHADOWS, LAYOUT
     ============================================================ */

  /* Spacing scale (4px base) */
  --sp-0: 0;
  --sp-1: 0.25rem;  /* 4 */
  --sp-2: 0.5rem;   /* 8 */
  --sp-3: 0.75rem;  /* 12 */
  --sp-4: 1rem;     /* 16 */
  --sp-5: 1.25rem;  /* 20 */
  --sp-6: 1.5rem;   /* 24 */
  --sp-8: 2rem;     /* 32 */
  --sp-10:2.5rem;   /* 40 */
  --sp-12:3rem;     /* 48 */
  --sp-16:4rem;     /* 64 */
  --sp-20:5rem;     /* 80 */
  --sp-24:6rem;     /* 96 */

  /* Radii — soft, institutional, never pill unless explicit */
  --r-xs: 4px;
  --r-sm: 6px;
  --r-md: 8px;
  --r-lg: 12px;
  --r-xl: 16px;
  --r-2xl: 24px;
  --r-full: 999px;

  /* ------------------------------------------------------------
     ELEVATION — stroke & fill first, shadows are a last resort.
     Use border changes (--border → --border-strong → --blue-200)
     and background fills (--bg → --bg-subtle → --bg-brand-soft)
     to separate layers. Shadows only when a layer literally
     floats above the page (modals, popovers).
     ------------------------------------------------------------ */
  --sh-none: none;                         /* default — flat */
  --sh-xs:   none;                         /* inputs — flat, rely on border */
  --sh-sm:   none;                         /* cards rest — flat, rely on border */
  --sh-md:   0 2px 6px rgba(15, 23, 42, 0.05);   /* hover lift — barely there */
  --sh-lg:   0 8px 20px rgba(15, 23, 42, 0.08);  /* popovers / dropdowns */
  --sh-xl:   0 16px 32px rgba(15, 23, 42, 0.10); /* modals only */
  --sh-brand:none;                         /* primary CTA — flat, color does the work */

  /* Layout */
  --container:   1200px;
  --container-narrow: 960px;
  --container-wide:   1400px;

  /* Motion */
  --dur-fast:   120ms;
  --dur-base:   180ms;
  --dur-slow:   260ms;
  --ease-out:   cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);
}
/* ============================================================
   SEMANTIC TYPE STYLES — use as classes or mixins
   ============================================================ */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  color: var(--fg-1);
  background: var(--bg);
}
/* Headings inherit color from their container, so dark surfaces
   (--blue-900 bg, white fg) Just Work without manual overrides.
   The body sets --fg-1 as the default foreground. */
.h1, h1 {
  font-family: var(--font-sans);
  font-size: var(--fs-4xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  color: inherit;
}
.h2, h2 {
  font-family: var(--font-sans);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  color: inherit;
}
.h3, h3 {
  font-family: var(--font-sans);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-semi);
  line-height: var(--lh-snug);
  color: inherit;
}
.h4, h4 {
  font-family: var(--font-sans);
  font-size: var(--fs-xl);
  font-weight: var(--fw-semi);
  line-height: var(--lh-snug);
  color: inherit;
}
.h5, h5 {
  font-family: var(--font-sans);
  font-size: var(--fs-lg);
  font-weight: var(--fw-semi);
  line-height: var(--lh-snug);
  color: inherit;
}
.eyebrow {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: var(--ls-wider);
  color: var(--fg-brand);
}
.lead, p.lead {
  font-family: var(--font-sans);
  font-size: var(--fs-md);
  font-weight: var(--fw-normal);
  line-height: var(--lh-relaxed);
  color: var(--fg-2);
}
p, .body {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  color: inherit;
}
.small, small {
  font-size: var(--fs-sm);
  color: var(--fg-2);
}
.caption {
  font-size: var(--fs-xs);
  color: var(--fg-3);
  letter-spacing: var(--ls-wide);
}
.display-logo {
  /* Use for hero wordmark-style headings that echo the logo */
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  letter-spacing: 0.02em;
}
.script {
  font-family: var(--font-script);
  font-weight: var(--fw-medium);
}
code, .mono {
  font-family: var(--font-mono);
  font-size: 0.92em;
}
a { color: var(--link); text-decoration: none; }
a:hover { color: var(--link-hover); text-decoration: underline; text-underline-offset: 2px; }
/* 2. Componentes del Style Guide (.leco-btn, .leco-badge, .leco-input, .leco-chip). */
/* =============================================================
   LECO · Shared component CSS
   One source of truth for buttons, badges, inputs, cards.
   Import AFTER colors_and_type.css — this file references its
   --blue-*, --yellow-*, --gray-*, --fg-*, --font-* vars.
   ============================================================= */
/* ---------- Buttons ------------------------------------------- */
/* Tactile-but-subtle: hairline highlight on top, darker edge on
   bottom, 1px press offset. Still flat/institutional overall.  */
.leco-btn{
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  border-radius: 8px;
  padding: 10px 18px;
  border: 1px solid transparent;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  white-space: nowrap;
  transition: transform .08s cubic-bezier(.2,.8,.2,1),
              background .18s ease,
              border-color .18s ease,
              box-shadow .18s ease,
              color .18s ease;
  position: relative;
}
.leco-btn:active{ transform: translateY(1px); }
.leco-btn[disabled]{ opacity: .5; cursor: not-allowed; transform: none !important; }
/* Primary — brand blue */
.leco-btn.primary{
  background: linear-gradient(var(--blue-500), var(--blue-600));
  color: #fff;
  border-color: var(--blue-700);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    inset 0 -1px 0 rgba(0,0,0,0.18);
}
.leco-btn.primary:hover{
  background: linear-gradient(var(--blue-400), var(--blue-500));
  border-color: var(--blue-600);
}
.leco-btn.primary:active{
  background: var(--blue-600);
  box-shadow:
    inset 0 1px 0 rgba(0,0,0,0.12),
    inset 0 -1px 0 rgba(255,255,255,0.08);
}
/* Secondary — white/blue outline */
.leco-btn.secondary{
  background: linear-gradient(#fff, #F5F8FC);
  color: var(--blue-600);
  border-color: var(--border-strong);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    inset 0 -1px 0 rgba(15,23,42,0.06);
}
.leco-btn.secondary:hover{
  background: linear-gradient(#fff, var(--blue-50));
  border-color: var(--blue-300);
}
.leco-btn.secondary:active{
  background: var(--blue-50);
  box-shadow:
    inset 0 1px 0 rgba(15,23,42,0.06),
    inset 0 -1px 0 rgba(255,255,255,0.6);
}
/* Ghost — transparent */
.leco-btn.ghost{
  background: transparent;
  color: var(--fg-1);
  border-color: transparent;
  box-shadow: none;
}
.leco-btn.ghost:hover{
  background: var(--bg-muted);
  border-color: var(--border);
}
.leco-btn.ghost:active{ background: var(--gray-200); }
/* Accent — yellow */
.leco-btn.accent{
  background: linear-gradient(var(--yellow-400), var(--yellow-500));
  color: #fff;
  border-color: var(--yellow-600);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.35),
    inset 0 -1px 0 rgba(0,0,0,0.15);
}
.leco-btn.accent:hover{
  background: linear-gradient(var(--yellow-300), var(--yellow-400));
  border-color: var(--yellow-500);
  color: #5A4212;
}
.leco-btn.accent:active{ background: var(--yellow-500); }
/* On dark surfaces (hero, footer) */
.leco-btn.on-dark{
  background: linear-gradient(#fff, #F1F5FA);
  color: var(--blue-700);
  border-color: #CCD9EA;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    inset 0 -1px 0 rgba(0,0,0,0.12),
    0 1px 2px rgba(0,0,0,0.15);
}
.leco-btn.on-dark:hover{
  background: #fff;
  border-color: #fff;
}
.leco-btn.on-dark:active{ background: #EEF3FA; }
/* Sizes */
.leco-btn.sm{ padding: 6px 12px; font-size: 13px; border-radius: 7px; }
.leco-btn.lg{ padding: 14px 22px; font-size: 15px; border-radius: 9px; }
/* ---------- Badges / Chips ------------------------------------ */
.leco-badge{
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 600;
  border-radius: 999px;
  padding: 5px 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid transparent;
  line-height: 1.2;
  white-space: nowrap;
}
.leco-badge .dot{ width: 6px; height: 6px; border-radius: 50%; display: inline-block; background: currentColor; }
.leco-badge.blue    { background: var(--blue-50);    color: var(--blue-700);  border-color: var(--blue-100); }
.leco-badge.gray    { background: var(--gray-100);   color: var(--gray-700);  border-color: var(--gray-200); }
.leco-badge.lav     { background: var(--lavender-100); color: #4a4f7a;        border-color: #d8dcea; }
.leco-badge.yellow  { background: var(--yellow-100); color: var(--yellow-700); border-color: #F3DD87; }
.leco-badge.green   { background: var(--success-bg); color: #1F5F3D;          border-color: #BDE0CB; }
.leco-badge.outline { background: #fff; color: var(--fg-2); border-color: var(--border); }
/* ---------- Filter chips (selectable pill) -------------------- */
.leco-chip{
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 600;
  border-radius: 999px;
  padding: 7px 16px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--fg-1);
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.leco-chip:hover{ border-color: var(--blue-300); color: var(--blue-700); }
.leco-chip.active{
  background: var(--blue-500);
  color: #fff;
  border-color: var(--blue-500);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), inset 0 -1px 0 rgba(0,0,0,0.15);
}
/* ---------- Inputs -------------------------------------------- */
.leco-input{
  font-family: var(--font-sans);
  font-size: 14px;
  padding: 10px 12px;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  background: #fff;
  color: var(--fg-1);
  box-shadow: var(--sh-xs);
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.leco-input:focus{
  border-color: var(--blue-400);
  box-shadow: 0 0 0 3px rgba(14,85,162,0.2);
}
.leco-input.err{ border-color: #B3261E; }
.leco-input::-moz-placeholder{ color: var(--fg-3); }
.leco-input::placeholder{ color: var(--fg-3); }
select.leco-input{
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 34px;
}
/* ---------- Eyebrow (supra-title) ----------------------------- */
.leco-eyebrow{
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--blue-500);
  margin-bottom: 10px;
}
/* 3. Tailwind (utilities + components + base reset). */
*, ::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(14 85 162 / 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(14 85 162 / 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.19 | 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: #E2E8F0; /* 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: Montserrat, ui-sans-serif, 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, SF Mono, Menlo, Consolas, 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: #94A3B8; /* 2 */
}
input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #94A3B8; /* 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;
}
.container{
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
}
@media (min-width: 380px){
  .container{
    max-width: 380px;
  }
}
@media (min-width: 640px){
  .container{
    max-width: 640px;
    padding-right: 1.75rem;
    padding-left: 1.75rem;
  }
}
@media (min-width: 960px){
  .container{
    max-width: 960px;
    padding-right: 2rem;
    padding-left: 2rem;
  }
}
@media (min-width: 1200px){
  .container{
    max-width: 1200px;
  }
}
@media (min-width: 1400px){
  .container{
    max-width: 1400px;
  }
}
/* Tailwind define .outline como utility (outline-style: solid).
	   Eso colisiona con el tono `.leco-badge.outline` del DS y lo
	   agranda visualmente. Neutralizamos el outline para todos los
	   badges. */
.leco-badge {
		outline: none !important;
	}
/* `colors_and_type.css` del DS define `a:hover { text-decoration: underline }`
	   global, lo cual es correcto para text-links dentro de prosa. Pero los
	   <a> que actúan como botones, ítems de nav o brands NO deberían tener
	   underline en hover. Override explícito acá (no tocamos el DS). */
.leco-btn,
	.leco-btn:hover,
	.leco-btn:focus,
	.leco-btn:active,
	.leco-chip,
	.leco-chip:hover,
	.leco-chip:focus,
	.leco-chip:active,
	.leco-nav a,
	.leco-nav a:hover,
	.leco-mobile-nav a,
	.leco-mobile-nav a:hover,
	.leco-header__brand,
	.leco-header__brand:hover,
	.leco-footer__brand,
	.leco-footer__brand:hover,
	.leco-course-card__title a,
	.leco-course-card__title a:hover,
	.leco-tipo-card .leco-eyebrow,
	.leco-faq-block__q,
	.leco-faq-block__q:hover {
		text-decoration: none;
	}
/* Containers / utilities ----------------------------------- */
.leco-wrap{
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: 1200px;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
@media (min-width: 640px){
  .leco-wrap{
    padding-left: 1.75rem;
    padding-right: 1.75rem;
  }
}
@media (min-width: 960px){
  .leco-wrap{
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
.leco-prose{
  max-width: 960px;
  color: var(--fg-1);
}
/* Line-clamp: trunca visualmente preservando el texto completo
	   para SEO y accesibilidad. */
.leco-clamp-2,
	.leco-clamp-3 {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
.leco-clamp-2 { -webkit-line-clamp: 2; line-clamp: 2; }
.leco-clamp-3 { -webkit-line-clamp: 3; line-clamp: 3; }
/* Accesibilidad ------------------------------------------- */
.sr-only{
  position: absolute;
  margin: -1px;
  height: 1px;
  width: 1px;
  overflow: hidden;
  white-space: nowrap;
  padding: 0;
		border: 0;
		clip: rect(0, 0, 0, 0);
}
[x-cloak] {
		display: none !important;
	}
.leco-skip-link{
		border: 0;
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border-width: 0;
}
.leco-skip-link:focus{
  position: static;
  padding: 0;
  overflow: visible;
  white-space: normal;
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 50;
  border-radius: 8px;
  --tw-bg-opacity: 1;
  background-color: rgb(14 85 162 / var(--tw-bg-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
		clip: auto;
		width: auto;
		height: auto;
		margin: 0;
}
/* Header --------------------------------------------------- */
.leco-header{
  position: sticky;
  top: 0;
  z-index: 40;
  border-bottom-width: 1px;
  border-color: var(--border);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.leco-header__inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.leco-header__brand{
  display: flex;
  flex-shrink: 0;
  align-items: center;
}
.leco-header__logo{
  height: 2.5rem;
  width: auto;
}
.leco-header__nav{
  display: none;
  flex: 1 1 0%;
  justify-content: center;
}
@media (min-width: 960px){
  .leco-header__nav{
    display: flex;
  }
}
.leco-nav{
  margin: 0;
  display: flex;
  list-style-type: none;
  align-items: center;
  gap: 0.25rem;
  padding: 0;
}
.leco-nav > .menu-item{
  position: relative;
}
.leco-nav .menu-item > a,
	.leco-nav li > a{
  border-radius: 8px;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--fg-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;
		text-decoration: none;
}
.leco-nav .menu-item > a:hover,
	.leco-nav li > a:hover,
	.leco-nav .current-menu-item > a{
  background-color: var(--bg-muted);
  --tw-text-opacity: 1;
  color: rgb(11 71 134 / var(--tw-text-opacity, 1));
}
.leco-nav .menu-item-has-children > a{
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.leco-nav .menu-item-has-children > a::after {
		content: "";
		width: 0.42rem;
		height: 0.42rem;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: translateY(-1px) rotate(45deg);
		opacity: 0.72;
	}
.leco-nav .sub-menu{
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 100%;
  margin: 0;
  min-width: 220px;
  list-style-type: none;
  border-radius: 8px;
  border-width: 1px;
  border-color: var(--border);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 0.5rem;
  opacity: 0;
  --tw-shadow: 0 16px 32px rgba(15, 23, 42, 0.10);
  --tw-shadow-colored: 0 16px 32px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
		transform: translateY(6px);
		transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), visibility var(--dur-base) var(--ease-out);
		z-index: 50;
}
.leco-nav .menu-item-has-children:hover > .sub-menu,
	.leco-nav .menu-item-has-children:focus-within > .sub-menu{
  visibility: visible;
  opacity: 1;
		transform: translateY(0);
}
.leco-nav .sub-menu .menu-item > a,
	.leco-nav .sub-menu li > a{
  display: block;
  border-radius: 8px;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
		white-space: nowrap;
}
.leco-header__ctas{
  display: none;
  flex-shrink: 0;
  align-items: center;
  gap: 0.5rem;
}
@media (min-width: 960px){
  .leco-header__ctas{
    display: flex;
  }
}
.leco-header__cta-aula{
  display: none;
}
@media (min-width: 1200px){
  .leco-header__cta-aula{
    display: inline-flex;
  }
}
.leco-cart-link{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  border-width: 1px;
  border-color: var(--border);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  color: var(--fg-1);
		text-decoration: none;
		width: 38px;
		height: 34px;
}
.leco-cart-link:hover{
  background-color: var(--bg-muted);
  --tw-text-opacity: 1;
  color: rgb(10 59 111 / var(--tw-text-opacity, 1));
		text-decoration: none;
}
.leco-cart-link__count{
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
		top: -7px;
		right: -7px;
		min-width: 18px;
		height: 18px;
		padding: 0 5px;
		border-radius: 999px;
		background: var(--blue-700);
}
.leco-burger{
  display: inline-flex;
  height: 2.75rem;
  width: 2.75rem;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  border-width: 1px;
  border-color: var(--border);
  background-color: transparent;
  color: var(--fg-1);
}
@media (min-width: 960px){
  .leco-burger{
    display: none;
  }
}
.leco-burger {
		cursor: pointer;
	}
.leco-burger:hover{
  background-color: var(--bg-muted);
}
.leco-mobile-panel{
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  border-bottom-width: 1px;
  border-color: var(--border);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --tw-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
  --tw-shadow-colored: 0 8px 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);
}
@media (min-width: 960px){
  .leco-mobile-panel{
    display: none;
  }
}
.leco-mobile-panel nav{
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.leco-mobile-nav{
  margin: 0;
  display: flex;
  list-style-type: none;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0;
}
.leco-mobile-nav .menu-item > a,
	.leco-mobile-nav li > a{
  display: block;
  border-radius: 8px;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--fg-1);
		text-decoration: none;
}
.leco-mobile-nav .menu-item > a:hover,
	.leco-mobile-nav li > a:hover{
  background-color: var(--bg-muted);
  --tw-text-opacity: 1;
  color: rgb(11 71 134 / var(--tw-text-opacity, 1));
}
.leco-mobile-nav .sub-menu{
  margin: 0;
  margin-top: 0.25rem;
  margin-bottom: 0.5rem;
  display: flex;
  list-style-type: none;
  flex-direction: column;
  gap: 0.25rem;
  padding-left: 1rem;
		border-left: 1px solid var(--border);
}
.leco-mobile-nav .sub-menu .menu-item > a,
	.leco-mobile-nav .sub-menu li > a{
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--fg-2);
}
.leco-mobile-panel__ctas{
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  border-top-width: 1px;
  border-color: var(--border);
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.leco-mobile-panel__ctas .leco-cart-link{
  margin-left: auto;
  margin-right: auto;
}
/* Footer --------------------------------------------------- */
.leco-footer{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
		background: var(--blue-900);
		border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.leco-footer__main{
  padding-top: 3rem;
  padding-bottom: 3rem;
}
@media (min-width: 960px){
  .leco-footer__main{
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}
.leco-footer__grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 2.5rem;
}
@media (min-width: 640px){
  .leco-footer__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 960px){
  .leco-footer__grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.leco-footer__brand .leco-footer__logo {
		filter: brightness(0) invert(1);
	}
.leco-footer__tagline{
  margin-top: 1rem;
  font-size: 0.875rem;
  line-height: 1.7;
		color: rgba(255, 255, 255, 0.78);
}
.leco-footer__heading{
  margin-bottom: 1rem;
  font-size: 1rem;
  font-weight: 600;
		color: #ffffff;
}
.leco-footer__list{
  margin: 0;
  display: flex;
  list-style-type: none;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0;
}
.leco-footer__list a{
  font-size: 0.875rem;
		color: rgba(255, 255, 255, 0.78);
		text-decoration: none;
}
.leco-footer__list a:hover {
		color: #ffffff;
		text-decoration: underline;
		text-underline-offset: 3px;
	}
.leco-footer__newsletter-lead{
  margin-bottom: 1rem;
  font-size: 0.875rem;
  line-height: 1.7;
		color: rgba(255, 255, 255, 0.78);
}
.leco-footer__newsletter{
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.leco-footer__newsletter .wpcf7-form{
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.leco-footer__newsletter .wpcf7-form p{
  margin: 0;
}
.leco-footer__newsletter label{
  font-size: 0.875rem;
  font-weight: 600;
		color: rgba(255, 255, 255, 0.78);
}
.leco-footer__newsletter .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):not(.wpcf7-acceptance){
  width: 100%;
		font-family: var(--font-sans);
		font-size: 16px;
		padding: 12px 14px;
		background: rgba(255, 255, 255, 0.08);
		color: #ffffff;
		border: 1px solid rgba(255, 255, 255, 0.18);
		border-radius: 8px;
		outline: none;
}
.leco-footer__newsletter .wpcf7-submit{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  font-weight: 600;
		min-height: 44px;
		font-family: var(--font-sans);
		background: linear-gradient(var(--blue-500), var(--blue-600));
		color: #fff;
		border: 1px solid var(--blue-700);
		border-radius: 8px;
		cursor: pointer;
		padding: 10px 18px;
}
.leco-footer__newsletter .wpcf7-form-control::-moz-placeholder {
		color: rgba(255, 255, 255, 0.55);
	}
.leco-footer__newsletter .wpcf7-form-control::placeholder {
		color: rgba(255, 255, 255, 0.55);
	}
.leco-footer__newsletter .wpcf7-acceptance{
  font-size: 0.875rem;
		color: rgba(255, 255, 255, 0.72);
}
.leco-footer__newsletter .wpcf7-acceptance .wpcf7-list-item{
  margin: 0;
}
.leco-footer__newsletter .wpcf7-acceptance label{
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
		font-weight: 500;
		line-height: 1.35;
}
.leco-footer__newsletter .wpcf7-checkbox,
	.leco-footer__newsletter .wpcf7-acceptance input[type='checkbox'] {
		margin-top: 3px;
	}
.leco-footer__newsletter a {
		color: #fff;
		text-decoration: underline;
		text-underline-offset: 3px;
	}
.leco-footer__newsletter .wpcf7-response-output{
  margin: 0;
  margin-top: 0.5rem;
  padding: 0.5rem;
  font-size: 0.75rem;
		border-color: rgba(255, 255, 255, 0.18);
}
.leco-footer__newsletter .wpa-test-msg,
	.leco-footer__newsletter .altEmail_container,
	.leco-footer__newsletter .wpa_hidden_field {
		display: none !important;
	}
.leco-footer__legal{
  font-size: 0.875rem;
		background: rgba(0, 0, 0, 0.25);
		color: rgba(255, 255, 255, 0.78);
}
.leco-footer__legal-inner{
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
@media (min-width: 640px){
  .leco-footer__legal-inner{
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}
.leco-footer__copyright{
  margin: 0;
}
.leco-legal-nav{
  margin: 0;
  display: flex;
  list-style-type: none;
  flex-wrap: wrap;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  row-gap: 0.5rem;
  padding: 0;
}
.leco-legal-nav a {
		color: rgba(255, 255, 255, 0.78);
		text-decoration: none;
	}
.leco-legal-nav a:hover {
		color: #ffffff;
		text-decoration: underline;
		text-underline-offset: 3px;
	}
/* Cert strip ---------------------------------------------- */
.leco-cert-strip{
  margin-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}
.leco-cert-strip__item{
  display: inline-flex;
  align-items: center;
  justify-content: center;
		background: rgba(255, 255, 255, 0.08);
		border: 1px solid rgba(255, 255, 255, 0.18);
		border-radius: var(--r-md);
		min-width: 100px;
		min-height: 68px;
		padding: 10px;
}
.leco-cert-strip__item img{
  display: block;
		width: 80px;
		-o-object-fit: contain;
		   object-fit: contain;
		filter: none;
		opacity: 1;
}
.leco-cert-strip__item--quality {
		width: 152px;
		min-height: 106px;
		background: rgba(255, 255, 255, 0.96);
		border-color: rgba(255, 255, 255, 0.36);
	}
.leco-cert-strip__item--quality img {
		width: 132px;
		height: auto;
	}
/* Section primitives -------------------------------------- */
.leco-section{
  padding-top: 4rem;
  padding-bottom: 4rem;
}
@media (min-width: 960px){
  .leco-section{
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}
/* Generic pages + WooCommerce flow ------------------------ */
.leco-page-shell{
  padding-top: 3rem;
  padding-bottom: 3rem;
}
@media (min-width: 960px){
  .leco-page-shell{
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}
.leco-page__header{
  margin-bottom: 2rem;
}
.leco-page__title{
  margin: 0;
  font-size: 2.25rem;
  font-weight: 800;
}
@media (min-width: 640px){
  .leco-page__title{
    font-size: 3rem;
  }
}
.leco-page__title {
		letter-spacing: -0.025em;
		line-height: 1.08;
	}
.leco-page__content {
		max-width: none;
	}
.leco-page--legal .leco-page__header{
  margin-bottom: 1.5rem;
		max-width: 920px;
		margin-left: auto;
		margin-right: auto;
}
.leco-page--legal .leco-page__title{
  font-size: 1.875rem;
}
@media (min-width: 640px){
  .leco-page--legal .leco-page__title{
    font-size: 2.25rem;
  }
}
.leco-page--legal .leco-page__content{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.5rem;
}
@media (min-width: 640px){
  .leco-page--legal .leco-page__content{
    padding: 2rem;
  }
}
.leco-page--legal .leco-page__content {
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
		max-width: 920px;
		margin-left: auto;
		margin-right: auto;
	}
.leco-page--legal .elementor {
		max-width: none;
	}
.leco-page--legal .elementor-section,
	.leco-page--legal .elementor-column,
	.leco-page--legal .elementor-widget-wrap {
		margin: 0 !important;
		padding: 0 !important;
	}
.leco-page--legal .elementor-spacer,
	.leco-page--legal .elementor-widget-divider,
	.leco-page--legal .elementor-widget-image,
	.leco-page--legal .wp-block-image,
	.leco-page--legal figure {
		display: none !important;
	}
.leco-page--legal .elementor-widget {
		margin: 0 0 0.9rem !important;
	}
.leco-page--legal .elementor-widget:last-child {
		margin-bottom: 0 !important;
	}
.leco-page--legal .elementor-heading-title,
	.leco-page--legal .elementor-widget-heading h1,
	.leco-page--legal .elementor-widget-heading h2,
	.leco-page--legal .elementor-widget-heading h3,
	.leco-page--legal .elementor-widget-heading h4,
	.leco-page--legal .elementor-widget-heading h5,
	.leco-page--legal .elementor-widget-heading h6 {
		color: var(--fg-1) !important;
		font-family: var(--font-sans) !important;
		line-height: 1.3 !important;
		letter-spacing: 0 !important;
		margin: 0 !important;
	}
.leco-page--legal .elementor-widget-text-editor,
	.leco-page--legal .elementor-widget-text-editor p,
	.leco-page--legal .elementor-widget-text-editor li,
	.leco-page--legal .elementor-widget-text-editor span {
		color: var(--fg-2) !important;
		font-family: var(--font-sans) !important;
		font-size: 0.95rem !important;
		line-height: 1.7 !important;
	}
.leco-page--legal .leco-page__content h2,
	.leco-page--legal .leco-page__content h3,
	.leco-page--legal .leco-page__content h4{
  margin-top: 2rem;
  margin-bottom: 0.75rem;
  font-weight: 700;
  color: var(--fg-1);
		letter-spacing: 0;
}
.leco-page--legal .leco-page__content h2 { font-size: 1.35rem; }
.leco-page--legal .leco-page__content h3 { font-size: 1.12rem; }
.leco-page--legal .leco-page__content p,
	.leco-page--legal .leco-page__content li{
  color: var(--fg-2);
		font-size: 0.95rem;
		line-height: 1.7;
}
.leco-page--legal .leco-page__content ul,
	.leco-page--legal .leco-page__content ol {
		padding-left: 1.2rem;
	}
.leco-page--legal .leco-page__content a {
		color: var(--blue-600);
		text-decoration: underline;
		text-underline-offset: 3px;
	}
.leco-page--legal .leco-page__content table {
		width: 100%;
		border-collapse: collapse;
		margin: 1rem 0;
		font-size: 0.9rem;
	}
.leco-page--legal .leco-page__content table th,
	.leco-page--legal .leco-page__content table td {
		border: 1px solid var(--border);
		padding: 0.55rem 0.65rem;
		text-align: left;
	}
.leco-page--legal .leco-page__content table th {
		background: var(--bg-subtle);
		color: var(--fg-1);
		font-weight: 700;
	}
.leco-woo-notices{
  margin-top: 1.5rem;
}
.leco-woo-toast{
  position: fixed;
  z-index: 50;
		top: 76px;
		right: max(24px, calc((100vw - var(--container)) / 2 + 24px));
		width: min(420px, calc(100vw - 32px));
		animation: leco-toast-out .24s ease 5.5s forwards;
}
.admin-bar .leco-woo-toast {
		top: 108px;
	}
@media (max-width: 767px) {
		.leco-woo-toast {
			right: 16px;
			left: 16px;
			width: auto;
		}
	}
.woocommerce-notices-wrapper,
	.leco-woo-notices,
	.leco-woo-toast{
  font-size: 0.875rem;
}
.leco-woo-toast .woocommerce-message,
	.leco-woo-toast .woocommerce-info,
	.leco-woo-toast .woocommerce-error{
  margin-bottom: 0;
  padding: 0.75rem;
  font-size: 0.75rem;
  --tw-shadow: 0 16px 32px rgba(15, 23, 42, 0.10);
  --tw-shadow-colored: 0 16px 32px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.leco-woo-toast .button{
  margin-top: 0.5rem;
}
@keyframes leco-toast-out {
		to {
			opacity: 0;
			transform: translateY(-6px);
			pointer-events: none;
		}
	}
.woocommerce-message .button,
	.woocommerce-info .button,
	.woocommerce-error .button{
  margin-right: 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
		border-radius: var(--r-sm);
		background: var(--blue-700);
		color: #fff;
		text-decoration: none;
}
.woocommerce-cart-form,
	.woocommerce-checkout{
  font-size: 0.875rem;
}
.woocommerce-cart .leco-page__content > .woocommerce{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: flex-start;
  gap: 1.25rem;
}
@media (min-width: 960px){
  .woocommerce-cart .leco-page__content > .woocommerce{
    grid-template-columns: minmax(0,1fr) 300px;
  }
  .woocommerce-cart .leco-page__content > .woocommerce > .woocommerce-notices-wrapper{
    grid-column: span 2 / span 2;
  }
}
.woocommerce-cart .leco-page__content > .woocommerce > .woocommerce-cart-form{
  min-width: 0;
}
.woocommerce-cart-form table.shop_table,
	.woocommerce-checkout-review-order table.shop_table{
  width: 100%;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
		border-collapse: collapse;
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
		overflow: hidden;
}
.woocommerce-cart-form table.shop_table.cart {
		background: transparent;
		border: 0;
		border-collapse: collapse;
		border-spacing: 0;
		table-layout: fixed !important;
		overflow: visible;
	}
.woocommerce-cart-form table.shop_table th,
	.woocommerce-cart-form table.shop_table td,
	.woocommerce-checkout-review-order table.shop_table th,
	.woocommerce-checkout-review-order table.shop_table td{
  padding: 0.75rem;
  text-align: left;
  vertical-align: middle;
		border-bottom: 1px solid var(--border);
}
.woocommerce-cart-form table.shop_table th,
	.woocommerce-checkout-review-order table.shop_table th{
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--fg-2);
		letter-spacing: .04em;
		background: var(--bg-muted);
}
.woocommerce-cart-form table.shop_table.cart thead th{
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-bottom: 0.5rem;
  padding-top: 0;
		background: transparent;
		border: 0;
}
.woocommerce-cart-form table.shop_table.cart tbody tr.cart_item td {
		background: #fff;
		border-bottom: 1px solid var(--border);
	}
.woocommerce-cart-form table.shop_table.cart tbody tr.cart_item td:first-child {
		border-left: 0;
		border-radius: 0;
	}
.woocommerce-cart-form table.shop_table.cart tbody tr.cart_item td:last-child {
		border-right: 0;
		border-radius: 0;
	}
.woocommerce-cart-form table.shop_table th.product-remove,
	.woocommerce-cart-form table.shop_table td.product-remove {
		width: 36px !important;
		padding-left: 2px !important;
		padding-right: 6px !important;
	}
.woocommerce-cart-form table.shop_table th.product-thumbnail,
	.woocommerce-cart-form table.shop_table td.product-thumbnail {
		width: 76px !important;
		padding-left: 4px !important;
		padding-right: 10px !important;
	}
.woocommerce-cart-form table.shop_table th.product-price,
	.woocommerce-cart-form table.shop_table td.product-price {
		width: 104px !important;
		text-align: right !important;
		white-space: nowrap;
	}
.woocommerce-cart-form table.shop_table th.product-quantity,
	.woocommerce-cart-form table.shop_table td.product-quantity {
		width: 106px !important;
		text-align: center !important;
	}
.woocommerce-cart-form table.shop_table th.product-subtotal,
	.woocommerce-cart-form table.shop_table td.product-subtotal {
		width: 116px !important;
		text-align: right !important;
		font-weight: 700;
		white-space: nowrap;
	}
.woocommerce-cart-form table.shop_table.cart td.product-thumbnail img {
		display: block !important;
		width: 58px !important;
		height: 58px !important;
		max-width: 58px !important;
		-o-object-fit: cover;
		   object-fit: cover;
		border-radius: var(--r-sm);
		border: 1px solid var(--border);
		background: var(--bg-muted);
	}
.woocommerce-cart-form .product-name a{
  font-weight: 700;
  color: var(--fg-1);
		text-decoration: none;
}
.woocommerce-cart-form .product-name{
  padding-right: 0.5rem;
  font-size: 0.875rem;
		line-height: 1.35;
}
.woocommerce-cart-form .product-price,
	.woocommerce-cart-form .product-subtotal{
  font-size: 0.875rem;
  color: var(--fg-1);
}
.woocommerce-cart-form .variation{
  margin-top: 0.25rem;
  display: grid;
  gap: 0.25rem;
  font-size: 0.75rem;
  color: var(--fg-2);
}
.woocommerce-cart-form .variation dt,
	.woocommerce-cart-form .variation dd,
	.woocommerce-cart-form .variation p{
  margin: 0;
}
.woocommerce-cart-form .product-remove a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
		width: 28px;
		height: 28px;
		border-radius: 999px;
		background: var(--danger-bg);
		color: var(--danger);
		text-decoration: none;
}
.woocommerce-cart-form .product-remove a:hover {
		background: var(--danger);
		color: #fff;
		text-decoration: none;
	}
.woocommerce-cart-form .quantity{
  display: flex;
  justify-content: center;
		width: auto;
}
.woocommerce-cart-form .quantity .qty {
		display: inline-flex !important;
		width: 64px !important;
		max-width: 64px !important;
		height: 36px !important;
		min-height: 36px;
		margin: 0 auto;
		border: 1px solid var(--blue-200) !important;
		border-radius: var(--r-sm);
		background: #fff;
		color: var(--fg-1);
		padding: 0 6px !important;
		text-align: center;
		font-size: .875rem;
		font-weight: 700;
		line-height: 1;
		-webkit-appearance: auto;
		   -moz-appearance: auto;
		        appearance: auto;
		box-shadow: inset 0 1px 2px rgb(15 23 42 / .06);
	}
.woocommerce-cart-form .quantity .qty:focus {
		border-color: var(--blue-600) !important;
		outline: 2px solid rgb(37 99 235 / .16);
		outline-offset: 1px;
	}
.woocommerce-cart-form table.shop_table td.actions {
		display: block;
		padding: 8px 0 0;
		background: transparent;
		border: 0;
	}
.woocommerce-cart-form .coupon{
  display: grid;
  align-items: center;
  gap: 0.5rem;
		grid-template-columns: minmax(260px, 320px) max-content;
		float: none;
		width: 100%;
}
.woocommerce-cart-form .coupon button[name="apply_coupon"] {
		min-width: 144px;
		min-height: 44px;
	}
.woocommerce-cart-form .coupon .input-text,
	.woocommerce form .form-row input.input-text,
	.woocommerce form .form-row textarea,
	.woocommerce form .form-row select{
  width: 100%;
		min-height: 40px;
		border: 1px solid var(--border);
		border-radius: var(--r-sm);
		background: #fff;
		padding: 8px 11px;
}
.woocommerce-cart-form .coupon .input-text {
		width: 100%;
		min-height: 44px;
	}
.woocommerce button.button,
	.woocommerce a.button,
	.woocommerce input.button,
	.woocommerce #respond input#submit{
  display: inline-flex;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  font-weight: 700;
		min-height: 40px;
		padding: 10px 16px;
		border: 0;
		border-radius: var(--r-sm);
		background: var(--blue-700);
		color: #fff;
		text-decoration: none;
}
.woocommerce-cart-form button[name="update_cart"] {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		margin: -1px !important;
		padding: 0 !important;
		overflow: hidden !important;
		clip: rect(0, 0, 0, 0) !important;
		white-space: nowrap !important;
		border: 0 !important;
	}
.woocommerce button.button:hover,
	.woocommerce a.button:hover,
	.woocommerce input.button:hover,
	.woocommerce #respond input#submit:hover {
		background: var(--blue-600);
		color: #fff;
		text-decoration: none;
	}
.woocommerce button.button:disabled,
	.woocommerce button.button:disabled[disabled] {
		opacity: .55;
		cursor: not-allowed;
	}
.cart_totals h2,
	.woocommerce-billing-fields h3,
	.woocommerce-additional-fields h3,
	#order_review_heading{
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: 1.5rem;
  font-weight: 700;
}
.woocommerce form .form-row{
  margin-bottom: 1rem;
}
.woocommerce form .form-row label{
  margin-bottom: 0.25rem;
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--fg-2);
}
.woocommerce form .form-row .required {
		color: var(--danger);
	}
.leco-section--md{
  padding-top: 3rem;
  padding-bottom: 3rem;
}
@media (min-width: 960px){
  .leco-section--md{
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }
}
.leco-section--white { background: var(--bg); }
.leco-section--subtle { background: var(--bg-subtle); }
.leco-section--soft { background: var(--bg-brand-soft); }
.leco-section__head{
  margin-bottom: 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media (min-width: 960px){
  .leco-section__head{
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}
.leco-section__head--stack{
  margin-bottom: 3rem;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
}
.leco-section__title{
  margin-top: 0.5rem;
  margin-bottom: 0.75rem;
  font-size: 2.25rem;
  font-weight: 700;
}
@media (min-width: 960px){
  .leco-section__title{
    font-size: 3rem;
  }
}
.leco-section__title {
		letter-spacing: -0.025em;
		line-height: 1.1;
	}
.leco-section__lead{
  max-width: 960px;
  font-size: 1.125rem;
  color: var(--fg-2);
		line-height: 1.55;
}
/* Hero ---------------------------------------------------- */
.leco-visual-hero {
		position: relative;
		isolation: isolate;
		overflow: hidden;
		padding: 5.5rem 0 4.75rem;
		background:
			radial-gradient(circle at 86% 18%, rgba(22, 112, 205, 0.11), transparent 28rem),
			var(--blue-50);
		color: var(--fg-1);
	}
.leco-visual-hero::after {
		content: '';
		position: absolute;
		inset: auto 0 -1px;
		z-index: 0;
		height: 7rem;
		background: linear-gradient(180deg, rgba(239, 246, 255, 0), var(--bg));
		pointer-events: none;
	}
.leco-visual-hero__inner {
		position: relative;
		z-index: 1;
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(440px, 0.95fr);
		gap: 2.75rem;
		align-items: center;
	}
.leco-visual-hero__copy {
		max-width: 660px;
	}
.leco-visual-hero__eyebrow {
		display: inline-flex;
		align-items: center;
		margin-bottom: 1rem;
		color: var(--blue-600);
		font-size: 0.78rem;
		font-weight: 800;
		letter-spacing: 0.06em;
		line-height: 1.2;
		text-transform: uppercase;
	}
.leco-visual-hero__title {
		margin: 0 0 1.25rem;
		max-width: 640px;
		color: var(--fg-1);
		font-size: 3rem;
		font-weight: 800;
		letter-spacing: 0;
		line-height: 1.04;
	}
.leco-visual-hero__title em {
		color: var(--blue-600);
		font-style: italic;
	}
.leco-visual-hero__lead {
		margin: 0 0 2rem;
		max-width: 590px;
		color: var(--fg-2);
		font-size: 1.12rem;
		line-height: 1.65;
	}
.leco-visual-hero__ctas {
		display: flex;
		flex-wrap: wrap;
		gap: 0.75rem;
		margin-bottom: 1.25rem;
	}
.leco-visual-hero__caps {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		gap: 1rem;
		max-width: 100%;
	}
.leco-visual-hero__caps span {
		display: inline-flex;
		align-items: center;
		gap: 0.38rem;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		color: var(--fg-2);
		font-size: 0.76rem;
		font-weight: 700;
		line-height: 1.2;
		white-space: nowrap;
	}
.leco-visual-hero__caps .dot {
		width: 0.42rem;
		height: 0.42rem;
		display: inline-block;
		flex: 0 0 auto;
		border-radius: 999px;
		background: var(--blue-300);
	}
.leco-visual-hero__caps .dot--yellow { background: var(--yellow-400); }
.leco-visual-hero__caps .dot--green { background: var(--success); }
.leco-visual-hero__media {
		position: relative;
		margin: 0;
		aspect-ratio: 16 / 11;
		overflow: hidden;
		border: 1px solid rgba(23, 74, 130, 0.14);
		border-radius: var(--r-xl);
		background: #fff;
		box-shadow: 0 18px 48px rgba(15, 23, 42, 0.14);
	}
.leco-visual-hero__media img {
		display: block;
		width: 100%;
		height: 100%;
		background: #fff;
		-o-object-fit: fill;
		   object-fit: fill;
	}
.leco-hero {
		background: var(--blue-50);
		position: relative;
		overflow: hidden;
		padding-top: 4rem;
		padding-bottom: 4rem;
	}
@media (min-width: 960px){
  .leco-hero{
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}
.leco-hero__grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: center;
  gap: 2.5rem;
}
@media (min-width: 960px){
  .leco-hero__grid{
    grid-template-columns: 1.15fr 1fr;
    gap: 4rem;
  }
}
.leco-hero__title{
  margin-bottom: 1.25rem;
  font-size: 2.25rem;
  font-weight: 800;
}
@media (min-width: 640px){
  .leco-hero__title{
    font-size: 3rem;
  }
}
@media (min-width: 960px){
  .leco-hero__title{
    font-size: 44px;
  }
}
.leco-hero__title {
		letter-spacing: -0.025em;
		line-height: 1.08;
	}
.leco-hero__sci em {
		color: var(--blue-500);
		font-style: italic;
	}
.leco-hero__lead{
  margin-bottom: 1.75rem;
  max-width: 540px;
  font-size: 1.125rem;
  color: var(--fg-2);
		line-height: 1.6;
}
.leco-hero__ctas{
  margin-bottom: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.leco-hero__caps{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.leco-cap{
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--fg-2);
}
.leco-cap .dot{
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
  border-radius: 999px;
		background: var(--blue-500);
}
.leco-cap__dot--yellow { background: var(--yellow-500) !important; }
.leco-cap__dot--green  { background: var(--success) !important; }
.leco-hero__card-wrap{
  position: relative;
}
.leco-hero__card{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.75rem;
		border: 1px solid var(--border);
		border-radius: var(--r-xl);
		box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
}
.leco-hero__card-eyebrow{
  margin-bottom: 0.5rem;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
		color: var(--blue-500);
}
.leco-hero__card-title{
  margin-bottom: 0.25rem;
  font-size: 1.5rem;
  font-weight: 700;
		letter-spacing: -0.01em;
}
.leco-hero__card-code{
  margin-bottom: 1.25rem;
  font-size: 0.875rem;
  color: var(--fg-2);
}
.leco-hero__card-stats{
  margin-bottom: 1rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
		border-top: 1px solid var(--border);
		border-bottom: 1px solid var(--border);
}
.leco-hero__stat{
  display: flex;
  gap: 0.5rem;
}
.leco-hero__stat-icon{
  display: inline-flex;
  height: 1.75rem;
  width: 1.75rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
		background: var(--blue-50);
		color: var(--blue-500);
}
.leco-hero__stat-label{
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--fg-3);
}
.leco-hero__stat-value{
  font-size: 13px;
  font-weight: 600;
  color: var(--fg-1);
}
.leco-hero__card-badges{
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
/* align-items: flex-start hace que el botón se alinee con el top
	   del bloque de precio (la línea grande), no con el medio del
	   bloque (que cae entre precio y "IVA incluido"). */
.leco-hero__card-footer{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}
.leco-hero__card-price{
  font-size: 26px;
  font-weight: 800;
		letter-spacing: -0.02em;
		line-height: 1.1;
}
.leco-hero__card-iva{
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: var(--fg-2);
}
.leco-hero__card-tag{
  position: absolute;
  top: -0.75rem;
  right: 1.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
		background: var(--yellow-500);
		color: #fff;
		border-radius: 999px;
		box-shadow: 0 8px 18px rgba(222, 175, 71, 0.4);
}
/* Trust band ---------------------------------------------- */
.leco-trust-band{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
		border-bottom: 1px solid var(--border);
}
.leco-trust-band__inner{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: center;
  gap: 2rem;
}
@media (min-width: 960px){
  .leco-trust-band__inner{
    grid-template-columns: minmax(0,1fr) auto;
    gap: 3rem;
  }
}
.leco-trust-band__copy{
  max-width: 820px;
}
.leco-trust-band__label{
  margin-bottom: 0.5rem;
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--fg-2);
}
.leco-trust-band__text{
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--fg-1);
		line-height: 1.45;
}
.leco-trust-band__items{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 1.5rem;
}
@media (min-width: 960px){
  .leco-trust-band__items{
    justify-content: flex-end;
  }
}
.leco-trust-band__cert {
		height: 72px;
		max-width: 260px;
		width: auto;
		-o-object-fit: contain;
		   object-fit: contain;
	}
/* Course card --------------------------------------------- */
.leco-course-grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (min-width: 640px){
  .leco-course-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 960px){
  .leco-course-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.leco-course-card{
  position: relative;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
		transition: border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
		display: flex;
		flex-direction: column;
}
.leco-course-card:hover {
		border-color: var(--blue-300);
		box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
	}
.leco-course-card.is-featured {
		border-color: var(--blue-500);
	}
.leco-course-card__featured-bar {
		height: 4px;
		background: linear-gradient(to right, var(--blue-500), var(--blue-700));
	}
.leco-course-card__media{
  display: block;
		height: 200px;
		background: var(--bg-muted);
		border-bottom: 1px solid var(--border);
		text-decoration: none;
}
.leco-course-card__media img{
  display: block;
  height: 100%;
  width: 100%;
		-o-object-fit: cover;
		   object-fit: cover;
}
.leco-course-card__media.is-fallback img {
		-o-object-fit: contain;
		   object-fit: contain;
		padding: 1rem;
	}
.leco-course-card__body{
  display: flex;
  flex: 1 1 0%;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1.25rem;
}
.leco-course-card__badges{
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.leco-course-card__type{
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--fg-3);
}
.leco-course-card__code { color: var(--fg-2); }
.leco-course-card__title{
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
		letter-spacing: -0.01em;
		line-height: 1.3;
}
.leco-course-card__title a {
		color: inherit;
		text-decoration: none;
	}
.leco-course-card__title a:hover { color: var(--blue-600); }
.leco-course-card__blurb{
  margin: 0;
  font-size: 0.875rem;
  color: var(--fg-2);
		line-height: 1.55;
}
.leco-course-card__meta{
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  row-gap: 0.25rem;
  font-size: 0.875rem;
  color: var(--fg-2);
}
.leco-course-card__meta-row{
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.leco-course-card__meta-row dt,
	.leco-course-card__meta-row dd{
  margin: 0;
  display: inline-flex;
  align-items: center;
}
.leco-course-card__seats { margin-top: auto; }
.leco-course-card__footer{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding-top: 0.75rem;
		border-top: 1px solid var(--border);
		margin-top: 4px;
}
.leco-course-card__price-amount{
  font-size: 1.5rem;
  font-weight: 800;
		letter-spacing: -0.01em;
		line-height: 1.1;
}
.leco-course-card__price-amount .amount{
  font-weight: 800;
}
.leco-course-card__price-iva{
  font-size: 0.75rem;
  color: var(--fg-2);
}
/* Precio con prefijo "Desde" (productos variables) -------- */
.leco-price__prefix{
  margin-right: 0.25rem;
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--fg-2);
		letter-spacing: 0;
		text-transform: none;
		vertical-align: middle;
}
/* Cuando wc_price emite múltiples spans por currency, mantener
	   solo el monto en negrita y subordinar el resto. */
.leco-course-card__price-amount .woocommerce-Price-currencySymbol,
	.leco-hero__card-price .woocommerce-Price-currencySymbol {
		font-weight: 700;
	}
/* Tipos de formación -------------------------------------- */
.leco-tipos-grid{
  margin-bottom: 2rem;
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (min-width: 640px){
  .leco-tipos-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.leco-tipo-card{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 2rem;
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
}
.leco-tipo-card__meta{
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.leco-tipo-card__eyebrow{
  margin: 0;
  display: block;
		font-size: 11px;
		font-weight: 700;
		letter-spacing: 0.08em;
		line-height: 1.1;
		text-transform: uppercase;
		color: var(--blue-600);
}
.leco-tipo-card__icon{
  display: inline-flex;
  height: 3rem;
  width: 3rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
		background: var(--blue-50);
		color: var(--blue-500);
}
.leco-tipo-card__title{
  margin-bottom: 0.5rem;
  margin-top: 0;
  font-size: 1.5rem;
  font-weight: 700;
		letter-spacing: -0.01em;
}
.leco-tipo-card__desc{
  margin-bottom: 1.5rem;
  font-size: 15px;
  color: var(--fg-2);
		line-height: 1.6;
}
.leco-tipo-card__cta{
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.875rem;
  font-weight: 600;
		color: var(--blue-500);
		text-decoration: none;
}
.leco-tipo-card__cta:hover { color: var(--blue-600); text-decoration: underline; }
/* Por qué LECO -------------------------------------------- */
.leco-pql-grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: flex-start;
  gap: 2.5rem;
}
@media (min-width: 960px){
  .leco-pql-grid{
    grid-template-columns: 1fr 1.2fr;
    gap: 4rem;
  }
  .leco-pql-copy{
    position: sticky;
    top: 6rem;
  }
}
.leco-pql-title{
  margin-top: 0.5rem;
  margin-bottom: 1.25rem;
  font-size: 2.25rem;
  font-weight: 800;
}
@media (min-width: 960px){
  .leco-pql-title{
    font-size: 3rem;
  }
}
.leco-pql-title {
		letter-spacing: -0.025em;
		line-height: 1.1;
	}
.leco-pql-lead{
  margin-bottom: 2rem;
  font-size: 1.125rem;
  color: var(--fg-2);
		line-height: 1.55;
}
.leco-pql-stats{
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  padding-top: 1.75rem;
		border-top: 1px solid var(--blue-100);
}
.leco-pql-stat dt,
	.leco-pql-stat dd{
  margin: 0;
}
.leco-pql-stat__n{
  font-size: 2.25rem;
  font-weight: 800;
		color: var(--blue-700);
		letter-spacing: -0.02em;
}
.leco-pql-stat__l{
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: var(--fg-2);
}
.leco-pql-stat__confirm {
		font-size: 0.55em;
		color: var(--fg-3);
		font-weight: 600;
		margin-left: 4px;
	}
.leco-pql-cards{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (min-width: 640px){
  .leco-pql-cards{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.leco-pql-card{
  padding: 1.75rem;
		background: var(--bg-subtle);
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
}
.leco-pql-card__icon{
  margin-bottom: 1rem;
  display: inline-flex;
  height: 2.75rem;
  width: 2.75rem;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
		background: var(--blue-50);
		color: var(--blue-500);
}
.leco-pql-card__title{
  margin-bottom: 0.5rem;
  font-size: 1.125rem;
  font-weight: 700;
		letter-spacing: -0.01em;
}
.leco-pql-card__desc{
  margin: 0;
  font-size: 0.875rem;
  color: var(--fg-2);
		line-height: 1.6;
}
/* FUNDAE banner ------------------------------------------- */
.leco-fundae{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: center;
  gap: 2rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 2rem;
}
@media (min-width: 640px){
  .leco-fundae{
    grid-template-columns: auto 1fr auto;
  }
}
.leco-fundae {
		border: 1px solid var(--border);
		border-radius: var(--r-xl);
	}
.leco-fundae__icon{
  display: inline-flex;
  height: 5rem;
  width: 5rem;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
		background: var(--yellow-100);
		color: var(--yellow-700);
		border: 1px solid #F3DD87;
}
.leco-fundae__eyebrow{
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
		color: var(--yellow-700);
}
.leco-fundae__title{
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  font-size: 1.875rem;
  font-weight: 700;
		letter-spacing: -0.01em;
}
.leco-fundae__desc{
  margin: 0;
  max-width: 680px;
  font-size: 15px;
  color: var(--fg-2);
		line-height: 1.55;
}
/* FAQ block ----------------------------------------------- */
.leco-faq-block__head{
  margin-bottom: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media (min-width: 960px){
  .leco-faq-block__head{
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}
.leco-faq-block__title{
  margin-top: 0.5rem;
  margin-bottom: 0.75rem;
  font-size: 2.25rem;
  font-weight: 800;
		letter-spacing: -0.025em;
}
.leco-faq-block__desc{
  margin: 0;
  max-width: 640px;
  font-size: 1.125rem;
  color: var(--fg-2);
		line-height: 1.55;
}
.leco-faq-block__list{
  margin: 0;
  display: flex;
  list-style-type: none;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0;
}
.leco-faq-block__item {
		background: var(--bg);
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
		overflow: hidden;
	}
.leco-faq-block__q{
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  text-align: left;
  font-size: 1.125rem;
  font-weight: 600;
		background: transparent;
		border: 0;
		color: var(--fg-1);
		cursor: pointer;
}
.leco-faq-block__q:hover { background: var(--bg-subtle); }
.leco-faq-block__icon{
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
		color: var(--fg-2);
		transition: transform var(--dur-base) var(--ease-out);
}
.leco-faq-block__icon.is-open { transform: rotate(180deg); }
.leco-faq-block__a{
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-bottom: 1rem;
  font-size: 0.875rem;
  color: var(--fg-2);
		line-height: 1.6;
}
/* CTA cierre ---------------------------------------------- */
.leco-cta-cierre{
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}
@media (min-width: 960px){
  .leco-cta-cierre{
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}
.leco-cta-cierre {
		background: var(--blue-50);
		border-top: 1px solid var(--border);
	}
.leco-cta-cierre__inner{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: center;
  gap: 2.5rem;
}
@media (min-width: 960px){
  .leco-cta-cierre__inner{
    grid-template-columns: 1.2fr auto;
  }
}
.leco-cta-cierre__eyebrow{
  margin-bottom: 0.75rem;
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
		color: var(--blue-600);
}
.leco-cta-cierre__title{
  margin-bottom: 1rem;
  font-size: 2.25rem;
  font-weight: 800;
}
@media (min-width: 960px){
  .leco-cta-cierre__title{
    font-size: 3rem;
  }
}
.leco-cta-cierre__title {
		letter-spacing: -0.02em;
		line-height: 1.15;
		color: var(--fg-1);
	}
.leco-cta-cierre__lead{
  margin: 0;
  max-width: 640px;
  font-size: 1.125rem;
		line-height: 1.55;
		color: var(--fg-2);
}
.leco-cta-cierre__ctas{
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
/* Page hero (archive + single) ---------------------------- */
.leco-page-hero {
		background: var(--blue-50);
		padding-top: 3rem;
		padding-bottom: 3rem;
	}
@media (min-width: 960px){
  .leco-page-hero{
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}
.leco-page-hero__title{
  margin-bottom: 1rem;
  font-size: 2.25rem;
  font-weight: 800;
}
@media (min-width: 640px){
  .leco-page-hero__title{
    font-size: 3rem;
  }
}
@media (min-width: 960px){
  .leco-page-hero__title{
    font-size: 52px;
  }
}
.leco-page-hero__title {
		letter-spacing: -0.025em;
		line-height: 1.1;
	}
.leco-page-hero__lead{
  margin: 0;
  max-width: 720px;
  font-size: 1.125rem;
  color: var(--fg-2);
		line-height: 1.55;
}
.leco-page-hero__badges{
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
/* Breadcrumb ---------------------------------------------- */
.leco-breadcrumb{
  margin-bottom: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--fg-2);
}
.leco-breadcrumb a {
		color: var(--fg-2);
		text-decoration: none;
	}
.leco-breadcrumb a:hover {
		color: var(--blue-600);
	}
.leco-breadcrumb__sep {
		color: var(--fg-3);
	}
/* Institutional pages ------------------------------------- */
.leco-about-hero__grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: center;
  gap: 2rem;
}
@media (min-width: 960px){
  .leco-about-hero__grid{
    grid-template-columns: minmax(0,1fr) 380px;
    gap: 3.5rem;
  }
}
.leco-about-hero__panel{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.5rem;
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
		box-shadow: var(--sh-sm);
}
.leco-about-hero__panel-icon{
  margin-bottom: 1.25rem;
  display: inline-flex;
  height: 3.5rem;
  width: 3.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
		background: var(--blue-50);
		color: var(--blue-500);
}
.leco-about-hero__panel-kicker{
  margin-bottom: 0.5rem;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
		color: var(--blue-500);
}
.leco-about-hero__panel-title{
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--fg-1);
		line-height: 1.35;
}
.leco-about-hero__certs{
  margin-top: 1.5rem;
  padding-top: 1.25rem;
		border-top: 1px solid var(--border);
}
.leco-about-hero__certs .leco-cert-strip{
  justify-content: flex-start;
  gap: 0.75rem;
}
.leco-about-hero__certs .leco-cert {
		max-height: 44px;
	}
.leco-about-intro{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: flex-start;
  gap: 2rem;
}
@media (min-width: 960px){
  .leco-about-intro{
    grid-template-columns: 0.82fr 1fr;
    gap: 3.5rem;
  }
}
.leco-about__title{
  margin-top: 0.5rem;
  margin-bottom: 0;
  font-size: 2.25rem;
  font-weight: 800;
}
@media (min-width: 960px){
  .leco-about__title{
    font-size: 3rem;
  }
}
.leco-about__title {
		letter-spacing: -0.025em;
		line-height: 1.1;
	}
.leco-about-intro__copy{
  font-size: 1.125rem;
  color: var(--fg-2);
		line-height: 1.65;
}
.leco-about-intro__copy p{
  margin-top: 0;
  margin-bottom: 1.25rem;
}
.leco-about-intro__copy p:last-child{
  margin-bottom: 0;
}
.leco-about-card-grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (min-width: 640px){
  .leco-about-card-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.leco-about-card,
	.leco-about-program{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.5rem;
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
}
.leco-about-card__icon,
	.leco-about-program__icon{
  margin-bottom: 1rem;
  display: inline-flex;
  height: 2.75rem;
  width: 2.75rem;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
		background: var(--blue-50);
		color: var(--blue-500);
}
.leco-about-card__title,
	.leco-about-program__title{
  margin-bottom: 0.5rem;
  font-size: 1.125rem;
  font-weight: 700;
		letter-spacing: -0.01em;
}
.leco-about-card__text,
	.leco-about-program__text{
  margin: 0;
  font-size: 0.875rem;
  color: var(--fg-2);
		line-height: 1.6;
}
.leco-about-programs__grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (min-width: 640px){
  .leco-about-programs__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 960px){
  .leco-about-programs__grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.leco-about-program {
		background: var(--bg-subtle);
	}
.leco-clients .leco-section__head{
  margin-bottom: 2rem;
}
.leco-clients__grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
@media (min-width: 640px){
  .leco-clients__grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 960px){
  .leco-clients__grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
  }
}
.leco-client{
  display: flex;
  align-items: center;
  justify-content: center;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.25rem;
  text-align: center;
		min-height: 112px;
		border: 1px solid var(--border);
		border-radius: var(--r-md);
		box-shadow: var(--sh-xs);
}
.leco-client img {
		display: block;
		width: 100%;
		max-width: 170px;
		max-height: 68px;
		-o-object-fit: contain;
		   object-fit: contain;
		filter: saturate(.95);
	}
.leco-client__text{
  font-size: 1.5rem;
  font-weight: 800;
  text-transform: uppercase;
		color: var(--blue-700);
		letter-spacing: .02em;
}
.leco-about-cta{
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
@media (min-width: 960px){
  .leco-about-cta{
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}
.leco-about-cta {
		background: var(--blue-900);
	}
.leco-about-cta__inner{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: center;
  gap: 2rem;
}
@media (min-width: 960px){
  .leco-about-cta__inner{
    grid-template-columns: minmax(0,1fr) auto;
  }
}
.leco-about-cta__eyebrow{
  margin-bottom: 0.75rem;
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
		color: var(--yellow-300);
}
.leco-about-cta__title{
  margin-bottom: 0.75rem;
  font-size: 2.25rem;
  font-weight: 800;
}
@media (min-width: 960px){
  .leco-about-cta__title{
    font-size: 3rem;
  }
}
.leco-about-cta__title {
		letter-spacing: -0.02em;
		line-height: 1.15;
		color: #fff;
	}
.leco-about-cta__lead{
  margin: 0;
  max-width: 660px;
  font-size: 1.125rem;
		line-height: 1.55;
		color: rgba(255, 255, 255, 0.78);
}
.leco-about-cta__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
/* Blog / Noticias ----------------------------------------- */
.leco-news-featured{
  margin-bottom: 2rem;
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
@media (min-width: 960px){
  .leco-news-featured{
    grid-template-columns: 1.05fr 1fr;
  }
}
.leco-news-featured {
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
		overflow: hidden;
	}
.leco-news-featured__media{
  display: block;
  min-height: 260px;
		background: var(--bg-muted);
}
.leco-news-featured__media img{
  display: block;
  height: 100%;
  width: 100%;
		-o-object-fit: cover;
		   object-fit: cover;
}
.leco-news-featured__fallback,
	.leco-news-card__fallback{
  height: 100%;
  width: 100%;
		min-height: 180px;
		background: linear-gradient(135deg, var(--blue-50), var(--gray-100));
}
.leco-news-featured__body{
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1.5rem;
}
.leco-news-featured__body .leco-badge,
	.leco-news-card__body .leco-badge {
		align-self: flex-start;
	}
.leco-news-featured__body .leco-btn {
		align-self: flex-start;
		width: auto;
	}
.leco-news-featured__title{
  margin: 0;
  font-size: 1.875rem;
  font-weight: 700;
		letter-spacing: -0.01em;
		line-height: 1.2;
}
.leco-news-featured__title a {
		color: inherit;
		text-decoration: none;
	}
.leco-news-featured__title a:hover {
		color: var(--blue-600);
	}
.leco-news-featured__meta,
	.leco-news-card__meta,
	.leco-news-single__meta{
  margin: 0;
  font-size: 0.875rem;
  color: var(--fg-2);
}
.leco-news-featured__excerpt,
	.leco-news-card__excerpt{
  margin: 0;
  font-size: 0.875rem;
  color: var(--fg-2);
		line-height: 1.6;
}
.leco-news-grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (min-width: 640px){
  .leco-news-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 960px){
  .leco-news-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.leco-news-card{
  display: flex;
  flex-direction: column;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
		overflow: hidden;
}
.leco-news-card__media{
  display: block;
  height: 180px;
		background: var(--bg-muted);
}
.leco-news-card__media img{
  display: block;
  height: 100%;
  width: 100%;
		-o-object-fit: cover;
		   object-fit: cover;
}
.leco-news-card__body{
  display: flex;
  flex: 1 1 0%;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1.25rem;
}
.leco-news-card__title{
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
		letter-spacing: -0.01em;
		line-height: 1.3;
}
.leco-news-card__title a {
		color: inherit;
		text-decoration: none;
	}
.leco-news-card__title a:hover {
		color: var(--blue-600);
	}
.leco-news-card__link{
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.875rem;
  font-weight: 600;
		color: var(--blue-600);
		text-decoration: none;
}
.leco-news-card__link:hover {
		text-decoration: underline;
	}
.leco-news-pagination{
  margin-top: 2.5rem;
  display: flex;
  justify-content: center;
}
.leco-news-pagination ul{
  margin: 0;
  display: flex;
  list-style-type: none;
  align-items: center;
  gap: 0.5rem;
  padding: 0;
}
.leco-news-pagination a,
	.leco-news-pagination span{
  display: inline-flex;
  height: 2.25rem;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
		text-decoration: none;
		border: 1px solid var(--border);
		background: #fff;
		color: var(--fg-1);
}
.leco-news-pagination a:hover {
		background: var(--bg-subtle);
		border-color: var(--blue-300);
	}
.leco-news-pagination .current {
		background: var(--blue-600);
		border-color: var(--blue-700);
		color: #fff;
	}
.leco-news-single__wrap{
  max-width: 920px;
}
.leco-news-single__search{
  margin-bottom: 1.25rem;
}
.leco-news-single__article{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.5rem;
}
@media (min-width: 960px){
  .leco-news-single__article{
    padding: 2rem;
  }
}
.leco-news-single__article {
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
	}
.leco-news-single__cover{
  margin-bottom: 1.75rem;
  overflow: hidden;
		border-radius: var(--r-md);
}
.leco-news-single__cover img{
  display: block;
  height: auto;
  width: 100%;
}
.leco-news-single__content{
  color: var(--fg-1);
		line-height: 1.75;
}
.leco-news-single__content > *:first-child {
		margin-top: 0;
	}
.leco-news-single__content > *:last-child {
		margin-bottom: 0;
	}
.leco-news-single__nav{
  margin-top: 2rem;
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 0.75rem;
  border-top-width: 1px;
  border-color: var(--border);
  padding-top: 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
}
@media (min-width: 380px){
  .leco-news-single__nav{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.leco-news-single__nav a {
		color: var(--blue-600);
		text-decoration: none;
	}
.leco-news-single__nav > div:last-child {
		justify-self: end;
		text-align: right;
	}
.leco-news-single__nav a:hover {
		text-decoration: underline;
	}
.leco-news-search{
  position: relative;
  margin-bottom: 1.5rem;
}
.leco-news-search svg{
  position: absolute;
  left: 0.75rem;
  top: 50%;
  --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));
		color: var(--fg-3);
}
.leco-news-search input{
  width: 100%;
		font-family: var(--font-sans);
		font-size: 14px;
		padding: 11px 12px 11px 38px;
		border: 1px solid var(--border-strong);
		border-radius: 999px;
		background: #fff;
		color: var(--fg-1);
		box-shadow: var(--sh-xs);
		outline: none;
}
.leco-news-search__submit {
		display: none;
	}
.leco-news-search input:focus {
		border-color: var(--blue-400);
		box-shadow: 0 0 0 3px rgba(14, 85, 162, 0.18);
	}
@media (max-width: 767px) {
		.leco-news-featured{
    gap: 0;
  }
		.leco-news-featured__body{
    padding: 1.25rem;
  }
		.leco-news-featured__title{
    font-size: 1.5rem;
  }
		.leco-news-single__article{
    padding: 1.25rem;
  }
		.leco-news-single__nav > div:last-child {
			justify-self: start;
			text-align: left;
		}
		.leco-news-search input {
			padding-right: 96px;
		}
		.leco-news-search__submit{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    font-weight: 600;
			position: absolute;
			right: 6px;
			top: 50%;
			transform: translateY(-50%);
			height: 34px;
			padding: 0 12px;
			border: 1px solid var(--blue-700);
			border-radius: 999px;
			background: linear-gradient(var(--blue-500), var(--blue-600));
			color: #fff;
			cursor: pointer;
  }
	}
.leco-contact-grid,
	.leco-work-grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: flex-start;
  gap: 2rem;
}
@media (min-width: 960px){
  .leco-contact-grid,
	.leco-work-grid{
    grid-template-columns: minmax(0,1fr) 430px;
    gap: 3rem;
  }
}
.leco-contact__title{
  margin-top: 0.5rem;
  margin-bottom: 1.25rem;
  font-size: 2.25rem;
  font-weight: 800;
}
@media (min-width: 960px){
  .leco-contact__title{
    font-size: 3rem;
  }
}
.leco-contact__title {
		letter-spacing: -0.025em;
		line-height: 1.1;
	}
.leco-contact-offices{
  margin-bottom: 1.5rem;
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (min-width: 640px){
  .leco-contact-offices{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.leco-contact-office,
	.leco-work-profile{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.5rem;
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
}
.leco-contact-office__icon,
	.leco-work-profile__icon{
  margin-bottom: 1rem;
  display: inline-flex;
  height: 2.75rem;
  width: 2.75rem;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
		background: var(--blue-50);
		color: var(--blue-500);
}
.leco-contact-office__city,
	.leco-work-profile__title{
  margin-bottom: 0.5rem;
  font-size: 1.125rem;
  font-weight: 700;
		letter-spacing: -0.01em;
}
.leco-contact-office__address,
	.leco-work-profile__text,
	.leco-work-lead{
  margin: 0;
  font-size: 0.875rem;
  color: var(--fg-2);
		line-height: 1.6;
}
.leco-contact-office__phone{
  margin-top: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
		color: var(--blue-600);
		text-decoration: none;
}
.leco-contact-office__phone:hover {
		text-decoration: underline;
	}
.leco-contact-direct{
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  background-color: var(--bg-subtle);
  padding: 1.25rem;
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
}
.leco-contact-direct a{
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
		color: var(--fg-1);
		text-decoration: none;
}
.leco-contact-direct a:hover {
		color: var(--blue-600);
	}
.leco-form-panel{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.5rem;
}
@media (min-width: 960px){
  .leco-form-panel{
    position: sticky;
    top: 6rem;
  }
}
.leco-form-panel {
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
		box-shadow: var(--sh-sm);
	}
.leco-form-panel__eyebrow{
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
		color: var(--blue-500);
}
.leco-form-panel__title{
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  font-size: 1.875rem;
  font-weight: 700;
		letter-spacing: -0.01em;
		line-height: 1.15;
}
.leco-form-panel__lead{
  margin-bottom: 1.25rem;
  font-size: 0.875rem;
  color: var(--fg-2);
		line-height: 1.6;
}
.leco-form-panel .wpcf7-form{
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.leco-form-panel .wpcf7-form p{
  margin: 0;
}
.leco-form-panel .wpcf7-form label{
  margin-bottom: 0.25rem;
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--fg-2);
}
.leco-form-panel .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio){
  width: 100%;
		font-family: var(--font-sans);
		font-size: 14px;
		padding: 10px 12px;
		border: 1px solid var(--border-strong);
		border-radius: 8px;
		background: #fff;
		color: var(--fg-1);
		box-shadow: var(--sh-xs);
		outline: none;
}
.leco-form-panel textarea.wpcf7-form-control {
		min-height: 130px;
		resize: vertical;
	}
.leco-form-panel .wpcf7-submit{
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
		font-family: var(--font-sans);
		background: linear-gradient(var(--blue-500), var(--blue-600));
		color: #fff;
		border: 1px solid var(--blue-700);
		border-radius: 8px;
		box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), inset 0 -1px 0 rgba(0,0,0,0.18);
		cursor: pointer;
		padding: 10px 18px;
		text-decoration: none;
		white-space: nowrap;
		min-height: 44px;
		justify-content: center;
}
.leco-work-lead{
  margin-bottom: 1.5rem;
  max-width: 720px;
  font-size: 1.125rem;
}
.leco-work-profiles{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (min-width: 640px){
  .leco-work-profiles{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 960px){
  .leco-work-profiles{
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}
@media (min-width: 1200px){
  .leco-work-profiles{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
/* Catalog --------------------------------------------- */
.leco-catalog__head{
  margin-bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
@media (min-width: 640px){
  .leco-catalog__head{
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}
.leco-catalog__count{
  font-size: 0.875rem;
  color: var(--fg-2);
}
.leco-catalog__count strong{
  font-size: 1rem;
  color: var(--fg-1);
}
.leco-catalog__empty{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 3rem;
  text-align: center;
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
}
.leco-catalog__empty p{
  margin-bottom: 1rem;
  color: var(--fg-2);
}
.leco-course-grid--3col{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (min-width: 640px){
  .leco-course-grid--3col{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 960px){
  .leco-course-grid--3col{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
/* Filters ------------------------------------------------- */
.leco-filters{
  margin-bottom: 1.75rem;
  display: grid;
  gap: 1rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.25rem;
		grid-template-columns: 1fr;
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
		align-items: end;
}
@media (min-width: 960px) {
		.leco-filters {
			grid-template-columns: auto repeat(2, minmax(180px, 1fr)) auto;
		}
	}
.leco-filters__label{
  padding-bottom: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--fg-2);
		letter-spacing: 0.08em;
}
.leco-filters__field{
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.leco-filters__legend{
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--fg-2);
		letter-spacing: 0.06em;
}
.leco-filters__search-control .leco-input{
  width: 100%;
  padding-left: 2.25rem;
}
.leco-filters__clear{
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  align-self: flex-end;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--fg-2);
		justify-self: start;
		text-decoration: none;
}
.leco-filters__clear:hover {
		color: var(--blue-600);
	}
.leco-pagination{
  margin-top: 2rem;
  display: flex;
  justify-content: center;
}
.leco-pagination ul{
  margin: 0;
  display: flex;
  list-style-type: none;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0;
}
.leco-pagination a,
	.leco-pagination span{
  display: inline-flex;
  height: 2.5rem;
  min-width: 2.5rem;
  align-items: center;
  justify-content: center;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  font-size: 0.875rem;
  font-weight: 700;
		border: 1px solid var(--border);
		border-radius: var(--r-sm);
		background: #fff;
		color: var(--fg-1);
		text-decoration: none;
}
.leco-pagination a:hover,
	.leco-pagination .current {
		border-color: var(--blue-700);
		background: var(--blue-700);
		color: #fff;
		text-decoration: none;
	}
/* Comparativa table --------------------------------------- */
.leco-comp-table-wrap{
  overflow-x: auto;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
		border: 1px solid var(--border);
		border-radius: var(--r-lg);
}
.leco-comp-table{
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.leco-comp-table th,
	.leco-comp-table td{
  padding: 1rem;
  text-align: left;
  vertical-align: top;
		border-bottom: 1px solid var(--border);
}
.leco-comp-table thead th{
  font-size: 1rem;
  font-weight: 700;
		color: var(--fg-1);
		background: var(--bg-subtle);
}
.leco-comp-table tbody th{
  font-weight: 600;
  color: var(--fg-2);
		width: 1%;
		white-space: nowrap;
		background: var(--bg-subtle);
}
.leco-comp-table tbody tr:last-child th,
	.leco-comp-table tbody tr:last-child td {
		border-bottom: 0;
	}
/* In Company (page) --------------------------------------- */
.leco-incompany-page__grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: flex-start;
  gap: 3rem;
}
@media (min-width: 960px){
  .leco-incompany-page__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
  }
}
.leco-incompany-page__title{
  margin-top: 0.5rem;
  margin-bottom: 1rem;
  font-size: 2.25rem;
  font-weight: 800;
}
@media (min-width: 960px){
  .leco-incompany-page__title{
    font-size: 3rem;
  }
}
.leco-incompany-page__title {
		letter-spacing: -0.02em;
		line-height: 1.15;
	}
.leco-incompany-page__lead{
  margin-bottom: 2rem;
  font-size: 1.125rem;
  color: var(--fg-2);
		line-height: 1.55;
}
.leco-incompany-page__benefits{
  margin-bottom: 2rem;
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (min-width: 640px){
  .leco-incompany-page__benefits{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.leco-incompany-page__benefit-title{
  margin-top: 0.75rem;
  margin-bottom: 0.25rem;
  font-size: 15px;
  font-weight: 700;
}
.leco-incompany-page__benefit-desc{
  font-size: 0.875rem;
  color: var(--fg-2);
		line-height: 1.55;
}
.leco-incompany-page__panel{
  padding: 2.25rem;
}
@media (min-width: 960px){
  .leco-incompany-page__panel{
    position: sticky;
    top: 6rem;
  }
}
.leco-incompany-page__panel {
		background: var(--bg-subtle);
		border: 1px solid var(--border);
		border-radius: var(--r-xl);
	}
.leco-incompany-page__panel-eyebrow{
  margin-bottom: 0.5rem;
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
		color: var(--blue-500);
		letter-spacing: 0.1em;
}
.leco-incompany-page__panel-title{
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
  font-weight: 700;
		letter-spacing: -0.01em;
}
.leco-incompany-page__panel-lead{
  margin-bottom: 1.5rem;
  font-size: 0.875rem;
  color: var(--fg-2);
		line-height: 1.6;
}
.leco-incompany-page__panel-placeholder{
  padding: 1.25rem;
  font-size: 0.875rem;
  color: var(--fg-2);
		background: var(--bg);
		border: 1px dashed var(--border-strong);
		border-radius: var(--r-md);
}
.leco-incompany-page__panel-placeholder p{
  margin-bottom: 1rem;
		line-height: 1.55;
}
.leco-incompany-page__panel-cta{
  width: 100%;
  justify-content: center;
}
/* FUNDAE detalle ------------------------------------------ */
.leco-fundae-detalle{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: center;
  gap: 3rem;
}
@media (min-width: 960px){
  .leco-fundae-detalle{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
  }
}
.leco-fundae-detalle__pill{
  margin-bottom: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
		background: var(--yellow-100);
		border: 1px solid #F3DD87;
		border-radius: 999px;
		color: var(--yellow-700);
		font-size: 11px;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-transform: uppercase;
}
.leco-fundae-detalle__title{
  margin-bottom: 1rem;
  font-size: 2.25rem;
  font-weight: 800;
}
@media (min-width: 960px){
  .leco-fundae-detalle__title{
    font-size: 3rem;
  }
}
.leco-fundae-detalle__title {
		letter-spacing: -0.02em;
		line-height: 1.15;
	}
.leco-fundae-detalle__lead{
  margin-bottom: 1.5rem;
  font-size: 1.125rem;
  color: var(--fg-2);
		line-height: 1.55;
}
.leco-fundae-detalle__steps-card{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 2.5rem;
		border: 1px solid var(--border);
		border-radius: var(--r-xl);
}
.leco-fundae-detalle__steps-eyebrow{
  margin-bottom: 1rem;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--fg-2);
		letter-spacing: 0.08em;
}
/* Checklist (with green check icon) ----------------------- */
.leco-checklist{
  margin: 0;
  display: flex;
  list-style-type: none;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0;
}
.leco-checklist li{
  display: flex;
  gap: 0.75rem;
  font-size: 15px;
		line-height: 1.55;
}
.leco-checklist__icon{
  margin-top: 0.25rem;
  display: inline-flex;
  height: 1.25rem;
  width: 1.25rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
		background: var(--success-bg);
		color: var(--success);
}
/* Steps (1..N numbered list) ------------------------------ */
.leco-steps{
  margin: 0;
  display: flex;
  list-style-type: none;
  flex-direction: column;
  gap: 1.25rem;
  padding: 0;
}
.leco-steps__item{
  display: flex;
  gap: 1rem;
}
.leco-steps__num{
  display: inline-flex;
  height: 2rem;
  width: 2rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 700;
		background: var(--blue-500);
		color: #fff;
}
.leco-steps__title{
  margin-bottom: 0.25rem;
  font-size: 15px;
  font-weight: 700;
}
.leco-steps__desc{
  font-size: 0.875rem;
  color: var(--fg-2);
		line-height: 1.55;
}
/* Archive cierre ------------------------------------------ */
.leco-archive-cierre{
  margin-left: auto;
  margin-right: auto;
  max-width: 960px;
  padding: 3rem;
  text-align: center;
		background: var(--bg-subtle);
		border: 1px solid var(--border);
		border-radius: var(--r-xl);
}
.leco-archive-cierre__title{
  margin-bottom: 0.75rem;
  font-size: 1.875rem;
  font-weight: 700;
		letter-spacing: -0.02em;
}
.leco-archive-cierre__lead{
  margin-bottom: 1.5rem;
  font-size: 1rem;
  color: var(--fg-2);
}
/* Single product hero + inscription card ------------------ */
.leco-single-hero__grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: flex-start;
  gap: 2.5rem;
}
@media (min-width: 960px){
  .leco-single-hero__grid{
    grid-template-columns: 1.5fr 1fr;
    gap: 3.5rem;
  }
}
.leco-single-hero__title{
  margin-bottom: 1rem;
  font-size: 2.25rem;
  font-weight: 800;
}
@media (min-width: 640px){
  .leco-single-hero__title{
    font-size: 36px;
  }
}
@media (min-width: 960px){
  .leco-single-hero__title{
    font-size: 40px;
  }
}
.leco-single-hero__title {
		letter-spacing: -0.025em;
		line-height: 1.08;
	}
.leco-single-hero__lead{
  margin-bottom: 1.5rem;
  font-size: 1.125rem;
  color: var(--fg-2);
		line-height: 1.55;
}
.leco-single-hero__badges{
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.leco-inscription-card{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.75rem;
}
@media (min-width: 960px){
  .leco-inscription-card{
    position: sticky;
    top: 6rem;
  }
}
.leco-inscription-card {
		border: 1px solid var(--border);
		border-radius: var(--r-xl);
		box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
	}
.leco-inscription-card__price{
  margin-bottom: 0.25rem;
  font-size: 3rem;
  font-weight: 800;
		letter-spacing: -0.02em;
		line-height: 1.05;
}
.leco-inscription-card__price-meta{
  margin-bottom: 1.25rem;
  font-size: 0.875rem;
  color: var(--fg-2);
}
.leco-inscription-card__details{
  margin: 0;
  margin-bottom: 0.75rem;
  display: grid;
  gap: 0.375rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
		border-top: 1px solid var(--border);
		border-bottom: 1px solid var(--border);
}
.leco-inscription-card__row{
  margin: 0;
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.75rem;
}
.leco-inscription-card__row dt{
  margin: 0;
  color: var(--fg-2);
}
.leco-inscription-card__row dd{
  margin: 0;
  text-align: right;
  font-weight: 600;
  color: var(--fg-1);
}
.leco-inscription-card__notes{
  margin-bottom: 0.75rem;
  display: grid;
  gap: 0.25rem;
  font-size: 11px;
		color: var(--fg-2);
		line-height: 1.35;
}
.leco-inscription-card__notes p{
  margin: 0;
		font-size: 11px;
		line-height: 1.35;
}
.leco-inscription-card__notes p:first-child{
  font-weight: 600;
		color: var(--fg-1);
}
.leco-inscription-card__purchase{
  margin-top: 0.75rem;
}
.leco-inscription-card__purchase form.cart{
  margin: 0;
}
.leco-inscription-card__purchase .variations{
  margin-bottom: 0.5rem;
  width: 100%;
		border-collapse: collapse;
}
.leco-inscription-card__purchase .variations tr{
  margin-bottom: 0.5rem;
  display: block;
}
.leco-inscription-card__purchase .variations th,
	.leco-inscription-card__purchase .variations td{
  display: block;
  padding: 0;
  text-align: left;
}
.leco-inscription-card__purchase .variations label{
  margin-bottom: 0.25rem;
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: var(--fg-2);
}
.leco-inscription-card__purchase .variations select{
  width: 100%;
		min-height: 38px;
		border: 1px solid var(--border);
		border-radius: var(--r-sm);
		background: #fff;
		color: var(--fg-1);
		padding: 0 36px 0 12px;
		font-size: 13px;
}
.leco-inscription-card__purchase .variable-items-wrapper{
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  padding: 0;
		list-style: none;
}
.leco-inscription-card__purchase .variable-item{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 600;
		min-height: 32px;
		min-width: 38px;
		padding: 5px 10px;
		border: 1px solid var(--border);
		border-radius: var(--r-sm);
		background: #fff;
		color: var(--fg-1);
		cursor: pointer;
}
.leco-inscription-card__purchase .variable-item.selected,
	.leco-inscription-card__purchase .variable-item[aria-checked="true"] {
		border-color: var(--blue-700);
		box-shadow: 0 0 0 1px var(--blue-700);
	}
.leco-inscription-card__purchase .reset_variations{
  margin-top: 0.25rem;
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
		color: var(--blue-700);
}
.leco-inscription-card__purchase .single_variation{
  margin-bottom: 0.5rem;
  font-size: 0.75rem;
}
.leco-inscription-card__purchase .woocommerce-variation-add-to-cart{
  display: flex;
  align-items: stretch;
  gap: 0.5rem;
}
.leco-inscription-card__purchase .woocommerce-variation-price{
  font-weight: 700;
  color: var(--fg-1);
}
.leco-inscription-card__purchase .woocommerce-variation-availability{
  font-size: 0.75rem;
  color: var(--fg-2);
}
.leco-inscription-card__purchase .quantity{
  margin: 0;
  flex-shrink: 0;
		width: 74px;
}
.leco-inscription-card__purchase .quantity .qty{
  width: 100%;
  text-align: center;
		height: 42px;
		min-height: 42px;
		border: 1px solid var(--border);
		border-radius: var(--r-sm);
		font-weight: 700;
}
.leco-inscription-card__purchase .single_add_to_cart_button{
  display: inline-flex;
  flex: 1 1 0%;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-weight: 700;
		min-height: 42px;
		height: 42px;
		padding: 11px 18px;
		border: 0;
		border-radius: 9px;
		background: linear-gradient(180deg, var(--blue-600), var(--blue-700));
		color: #fff;
		box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 1px 0 rgba(15,23,42,.04);
}
.leco-inscription-card__purchase .single_add_to_cart_button:hover {
		background: linear-gradient(180deg, var(--blue-500), var(--blue-700));
	}
.leco-inscription-card__purchase .single_add_to_cart_button.disabled,
	.leco-inscription-card__purchase .single_add_to_cart_button:disabled {
		opacity: .55;
		cursor: not-allowed;
	}
.leco-inscription-card__purchase .wpa-test-msg{
  display: none;
}
.leco-inscription-card__fundae{
  margin-top: 1rem;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem;
		background: var(--yellow-50);
		border: 1px solid #F3DD87;
		border-radius: var(--r-md);
}
.leco-inscription-card__fundae-icon{
  flex-shrink: 0;
		color: var(--yellow-700);
}
.leco-inscription-card__fundae-text{
  font-size: 0.75rem;
		color: var(--yellow-700);
		line-height: 1.5;
}
/* Single content (descripción larga del producto) ---------- */
.leco-single-content{
  max-width: 900px;
}
.leco-single-content__title{
  margin-top: 0.5rem;
  margin-bottom: 1.25rem;
  font-size: 1.875rem;
  font-weight: 700;
		letter-spacing: -0.01em;
}
.leco-single-content .leco-prose {
		max-width: 860px;
		font-size: 1rem;
		line-height: 1.75;
	}
.leco-single-content .leco-prose h2,
	.leco-single-content .leco-prose h3,
	.leco-single-content .leco-prose h4 {
		margin: 1.4rem 0 .65rem;
		color: var(--fg-1);
		font-weight: 800;
		line-height: 1.22;
	}
.leco-single-content .leco-prose h3 {
		font-size: 1.18rem;
	}
.leco-single-content .leco-prose p,
	.leco-single-content .leco-prose ul,
	.leco-single-content .leco-prose ol {
		margin: 0 0 1rem;
	}
/* Newsletter ---------------------------------------------- */
.leco-newsletter-grid{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  align-items: center;
  gap: 3rem;
}
@media (min-width: 640px){
  .leco-newsletter-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.leco-newsletter__title{
  margin-top: 0.5rem;
  margin-bottom: 0.75rem;
  font-size: 1.875rem;
  font-weight: 700;
		letter-spacing: -0.02em;
}
.leco-newsletter__desc{
  margin: 0;
  font-size: 15px;
  color: var(--fg-2);
		line-height: 1.6;
}
.leco-newsletter__form{
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.leco-newsletter__form .wpcf7-form{
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.leco-newsletter__form .wpcf7-form p{
  margin: 0;
}
.leco-newsletter__form label{
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--fg-2);
}
.leco-newsletter__form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio){
  width: 100%;
		font-family: var(--font-sans);
		font-size: 14px;
		padding: 10px 12px;
		border: 1px solid var(--border-strong);
		border-radius: 8px;
		background: #fff;
		color: var(--fg-1);
		box-shadow: var(--sh-xs);
		outline: none;
}
.leco-newsletter__form .wpcf7-submit{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  font-weight: 600;
		min-height: 44px;
		font-family: var(--font-sans);
		background: linear-gradient(var(--blue-500), var(--blue-600));
		color: #fff;
		border: 1px solid var(--blue-700);
		border-radius: 8px;
		cursor: pointer;
		padding: 10px 18px;
}
.leco-newsletter__form .wpcf7-acceptance{
  font-size: 0.75rem;
  color: var(--fg-2);
		line-height: 1.45;
}
.leco-newsletter__form a { color: var(--blue-500); }
.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;
}
.\!visible{
  visibility: visible !important;
}
.visible{
  visibility: visible;
}
.collapse{
  visibility: collapse;
}
.static{
  position: static;
}
.absolute{
  position: absolute;
}
.sticky{
  position: sticky;
}
.\!block{
  display: block !important;
}
.block{
  display: block;
}
.inline{
  display: inline;
}
.table{
  display: table;
}
.grid{
  display: grid;
}
.\!hidden{
  display: none !important;
}
.hidden{
  display: none;
}
.outline{
  outline-style: solid;
}
.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);
}
/* 4. Custom layer del tema. Ajustes y patrones específicos del sitio. */
/* WooCommerce genera estas clases en runtime, así que viven fuera de @layer
   para que Tailwind no las purge durante el build. */
.cart-collaterals {
	margin-top: 0;
}
.cart_totals {
	position: sticky;
	top: 6rem;
	padding: 1.25rem;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
}
.cart_totals h2 {
	margin: 0 0 .75rem;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.2;
}
.cart_totals table.shop_table,
.cart_totals table.shop_table tbody {
	display: block !important;
	width: 100% !important;
	margin: 0 0 1rem !important;
	border: 0 !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
}
.cart_totals table.shop_table tr {
	display: flex !important;
	align-items: baseline !important;
	justify-content: space-between !important;
	gap: 1rem !important;
	padding: .5625rem 0 !important;
	border-bottom: 1px solid var(--border) !important;
}
.cart_totals table.shop_table tr:last-child {
	border-bottom: 0 !important;
}
.cart_totals table.shop_table th,
.cart_totals table.shop_table td {
	display: block !important;
	width: auto !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}
.cart_totals table.shop_table th {
	flex: 1 1 auto !important;
	text-align: left !important;
	font-weight: 700;
	color: var(--fg-2);
}
.cart_totals table.shop_table td {
	flex: 0 0 auto !important;
	text-align: right !important;
	font-weight: 700;
	white-space: nowrap !important;
	color: var(--fg-1);
}
.cart_totals table.shop_table_responsive tr td::before {
	content: none !important;
	display: none !important;
}
.cart_totals .order-total th,
.cart_totals .order-total td {
	font-size: 1rem;
	color: var(--fg-1);
}
/* Checkout WooCommerce --------------------------------------------------- */
.woocommerce-form-coupon-toggle,
.checkout_coupon.woocommerce-form-coupon,
form.checkout.woocommerce-checkout {
	width: 100%;
}
body.woocommerce-checkout {
	display: block;
	max-width: 100vw;
	overflow-x: hidden;
}
body.woocommerce-checkout .leco-main,
body.woocommerce-checkout .leco-page,
body.woocommerce-checkout .leco-page__content,
body.woocommerce-checkout .leco-page__content > .woocommerce {
	min-width: 0;
	max-width: 100%;
	overflow-x: clip;
}
body.woocommerce-checkout .leco-wrap {
	min-width: 0;
	max-width: var(--container);
	overflow-x: clip;
}
.woocommerce-form-coupon-toggle {
	margin-bottom: 1rem;
}
body.woocommerce-checkout .woocommerce-message .button,
body.woocommerce-checkout .woocommerce-info .button,
body.woocommerce-checkout .woocommerce-error .button {
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--blue-700);
	font-size: .98em;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: .14em;
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle .showcoupon {
	color: var(--blue-700);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: .14em;
}
.checkout_coupon.woocommerce-form-coupon {
	display: grid;
	grid-template-columns: minmax(260px, 360px) max-content;
	gap: .625rem;
	align-items: end;
	margin: 0 0 1.25rem;
	padding: 1rem;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
}
.checkout_coupon.woocommerce-form-coupon .form-row {
	margin: 0 !important;
}
form.checkout.woocommerce-checkout {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 390px;
	grid-template-rows: auto 1fr;
	gap: 1.5rem;
	align-items: start;
	min-width: 0;
}
form.checkout.woocommerce-checkout #customer_details,
form.checkout.woocommerce-checkout #order_review {
	min-width: 0;
	max-width: 100%;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
}
form.checkout.woocommerce-checkout #customer_details {
	grid-column: 1;
	grid-row: 1 / span 2;
	padding: 1.25rem;
}
form.checkout.woocommerce-checkout #order_review_heading {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.2;
}
form.checkout.woocommerce-checkout #order_review {
	grid-column: 2;
	grid-row: 2;
	position: sticky;
	top: 6rem;
	padding: 1.25rem;
}
.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3 {
	margin: 0 0 1rem;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.2;
}
.leco-checkout-mode {
	margin: 0 0 1.25rem;
	padding: 1rem;
	min-width: 0;
	background: var(--bg-subtle);
	border: 1px solid var(--border);
	border-radius: var(--r-md);
}
.leco-checkout-mode__title {
	margin: 0 0 .625rem;
	font-size: .8125rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--fg-2);
}
.leco-checkout-mode__options {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .5rem;
}
.leco-checkout-mode__options label {
	display: flex !important;
	align-items: center;
	gap: .5rem;
	min-width: 0;
	min-height: 42px;
	margin: 0 !important;
	padding: .625rem .75rem;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	color: var(--fg-1) !important;
	font-size: .8125rem !important;
	font-weight: 700 !important;
	cursor: pointer;
}
.leco-checkout-mode__options span {
	min-width: 0;
	overflow-wrap: anywhere;
}
.leco-checkout-mode__options input {
	flex: 0 0 auto;
	margin: 0;
}
.leco-checkout-section-title {
	grid-column: 1 / -1;
	margin: .5rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--border);
	font-size: .95rem;
	font-weight: 800;
	color: var(--fg-1);
}
.leco-checkout-field-hidden {
	display: none !important;
}
.leco-group-help {
	grid-column: 1 / -1;
	margin-top: .5rem;
	padding: 1rem;
	background: var(--blue-50);
	border: 1px solid var(--blue-100);
	border-radius: var(--r-md);
}
form.checkout.woocommerce-checkout > .leco-group-help {
	grid-column: 2;
	grid-row: 3;
}
.leco-group-help--hidden {
	display: none !important;
}
.leco-group-help-legacy-hidden {
	display: none !important;
}
.leco-group-help__inner {
	display: grid;
	gap: .875rem;
}
.leco-group-help__eyebrow {
	margin: 0 0 .25rem;
	font-size: .6875rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--blue-700);
}
.leco-group-help__title {
	margin: 0 0 .35rem;
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.25;
	color: var(--fg-1);
}
.leco-group-help__text,
.leco-group-help__note {
	margin: 0;
	font-size: .875rem;
	line-height: 1.55;
	color: var(--fg-2);
}
.leco-group-help__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}
.leco-group-help__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: .45rem .7rem;
	border: 1px solid var(--blue-200);
	border-radius: var(--r-sm);
	background: #fff;
	color: var(--blue-700);
	font-size: .8125rem;
	font-weight: 700;
	text-decoration: none;
}
.leco-group-help__link:hover {
	border-color: var(--blue-400);
	color: var(--blue-800);
	text-decoration: none;
}
.leco-group-help__note a {
	color: var(--blue-700);
	font-weight: 700;
}
.woocommerce-billing-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .875rem 1rem;
	min-width: 0;
}
.woocommerce form .form-row,
form.checkout.woocommerce-checkout .form-row {
	float: none !important;
	width: auto !important;
	min-width: 0;
	max-width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}
form.checkout.woocommerce-checkout .form-row-first,
form.checkout.woocommerce-checkout .form-row-last {
	grid-column: span 1;
}
form.checkout.woocommerce-checkout .form-row-wide,
form.checkout.woocommerce-checkout .address-field,
form.checkout.woocommerce-checkout .notes {
	grid-column: 1 / -1;
}
form.checkout.woocommerce-checkout label {
	display: block;
	margin-bottom: .3125rem;
	font-size: .75rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--fg-2);
}
form.checkout.woocommerce-checkout .required {
	color: var(--danger);
}
.woocommerce-input-wrapper,
.select2-container {
	display: block;
	min-width: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	box-sizing: border-box;
	max-width: 100% !important;
	width: 100% !important;
	min-height: 42px;
	border: 1px solid var(--border) !important;
	border-radius: var(--r-sm) !important;
	background: #fff !important;
	color: var(--fg-1);
	box-shadow: none !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	padding: .5625rem .6875rem;
}
form.checkout.woocommerce-checkout .woocommerce-invalid input.input-text,
form.checkout.woocommerce-checkout .woocommerce-invalid textarea,
form.checkout.woocommerce-checkout .woocommerce-invalid select,
form.checkout.woocommerce-checkout .woocommerce-invalid .select2-selection,
form.checkout.woocommerce-checkout .leco-checkout-field-error input.input-text,
form.checkout.woocommerce-checkout .leco-checkout-field-error textarea,
form.checkout.woocommerce-checkout .leco-checkout-field-error select,
form.checkout.woocommerce-checkout .leco-checkout-field-error .select2-selection,
form.checkout.woocommerce-checkout input[aria-invalid="true"],
form.checkout.woocommerce-checkout textarea[aria-invalid="true"],
form.checkout.woocommerce-checkout select[aria-invalid="true"] {
	border-color: #dc2626 !important;
	box-shadow: 0 0 0 3px rgba(220, 38, 38, .12) !important;
}
form.checkout.woocommerce-checkout .woocommerce-invalid .woocommerce-input-wrapper,
form.checkout.woocommerce-checkout .leco-checkout-field-error .woocommerce-input-wrapper {
	color: #b91c1c;
	font-size: .875rem;
	font-weight: 600;
	line-height: 1.35;
}
form.checkout.woocommerce-checkout .checkout-inline-error-message {
	margin: .3125rem 0 0;
	color: #b91c1c;
	font-size: .875rem;
	font-weight: 600;
	line-height: 1.35;
}
form.checkout.woocommerce-checkout .woocommerce-invalid .woocommerce-input-wrapper strong,
form.checkout.woocommerce-checkout .leco-checkout-field-error .woocommerce-input-wrapper strong {
	font-weight: 800;
}
.select2-container--default .select2-selection--single {
	display: flex;
	align-items: center;
	padding: 0 .6875rem;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
	min-width: 0;
	width: 100%;
	padding: 0 1.5rem 0 0 !important;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--fg-1) !important;
	line-height: 1.4 !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 50% !important;
	right: .5rem !important;
	transform: translateY(-50%);
}
form.checkout.woocommerce-checkout textarea {
	min-height: 86px;
	resize: vertical;
}
.woocommerce-checkout-review-order-table {
	margin: 0 0 1rem !important;
	border: 0 !important;
	border-collapse: collapse !important;
	font-size: .8125rem;
}
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding: .75rem 0 !important;
	border-bottom: 1px solid var(--border) !important;
	vertical-align: top;
}
.woocommerce-checkout-review-order-table thead th {
	padding-top: 0 !important;
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--fg-2);
	background: transparent !important;
}
.woocommerce-checkout-review-order-table .product-total,
.woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
	white-space: nowrap;
}
.woocommerce-checkout-review-order-table .product-name {
	padding-right: 1rem !important;
	font-weight: 600;
	line-height: 1.3;
}
.woocommerce-checkout-review-order-table .product-quantity {
	display: inline-flex;
	margin-left: .25rem;
	color: var(--fg-2);
}
.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td {
	background: transparent !important;
	border-radius: 0 !important;
}
.woocommerce-checkout-payment {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--border);
}
.woocommerce-checkout-payment ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce-checkout-payment .wc_payment_method > label {
	margin-bottom: .5rem;
	font-size: .875rem;
	color: var(--fg-1);
}
.woocommerce-checkout-payment .payment_box {
	margin: 0 0 1rem;
	padding: .875rem;
	font-size: .8125rem;
	line-height: 1.5;
	color: var(--fg-2);
	background: var(--bg-muted);
	border: 1px solid var(--border);
	border-radius: var(--r-md);
}
.woocommerce-checkout-payment .payment_box p {
	margin: 0;
}
.woocommerce-privacy-policy-text {
	margin: 0 0 1rem;
	padding: 0;
	font-size: .6875rem;
	line-height: 1.45;
	color: var(--fg-2);
	background: transparent;
	border: 0;
	border-radius: 0;
}
.woocommerce-privacy-policy-text,
.woocommerce-privacy-policy-text p,
.woocommerce-privacy-policy-text li,
.woocommerce-privacy-policy-text a {
	font-size: .6875rem;
}
.woocommerce-privacy-policy-text p,
.woocommerce-privacy-policy-text ul,
.woocommerce-privacy-policy-text ol {
	margin-top: 0;
}
.woocommerce-terms-and-conditions-wrapper .form-row {
	margin-bottom: 1rem !important;
}
.woocommerce-form__label-for-checkbox {
	display: flex !important;
	gap: .5rem;
	align-items: flex-start;
	font-size: .8125rem !important;
	line-height: 1.45;
	color: var(--fg-1) !important;
}
.woocommerce-form__input-checkbox {
	margin-top: .1875rem;
}
.leco-checkout-terms-alert {
	position: relative;
	margin: -.5rem -.5rem 1rem;
	padding: .5rem;
	border: 1px solid rgba(202, 138, 4, .35);
	border-radius: .5rem;
	background: rgba(254, 249, 195, .75);
	box-shadow: 0 0 0 4px rgba(250, 204, 21, .18);
	transition: background-color .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.leco-checkout-terms-alert .woocommerce-form__label-for-checkbox {
	color: var(--fg-0) !important;
}
#place_order {
	width: 100%;
	min-height: 46px;
}
/* Pedido recibido ------------------------------------------------------- */
.woocommerce-order {
	display: grid;
	gap: 1.5rem;
	max-width: 980px;
}
.woocommerce-order p {
	margin: 0;
	line-height: 1.6;
	color: var(--fg-2);
}
.woocommerce-order .woocommerce-thankyou-order-received {
	display: flex;
	align-items: center;
	gap: .625rem;
	margin: 0;
	padding: 1rem 1.125rem;
	border: 1px solid rgba(22, 163, 74, .22);
	border-radius: var(--r-md);
	background: #f0fdf4;
	color: #166534;
	font-size: 1rem;
	font-weight: 800;
}
.woocommerce-order .woocommerce-thankyou-order-received::before {
	content: '';
	flex: 0 0 .625rem;
	width: .625rem;
	height: .625rem;
	border-radius: 999px;
	background: #16a34a;
	box-shadow: 0 0 0 4px rgba(22, 163, 74, .12);
}
.woocommerce-order-overview.woocommerce-thankyou-order-details {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: .75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce-order-overview.woocommerce-thankyou-order-details li {
	min-width: 0;
	margin: 0;
	padding: .875rem;
	border: 1px solid var(--border);
	border-radius: var(--r-md);
	background: #fff;
	color: var(--fg-2);
	font-size: .75rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.woocommerce-order-overview.woocommerce-thankyou-order-details strong {
	display: block;
	margin-top: .35rem;
	overflow-wrap: anywhere;
	color: var(--fg-0);
	font-size: .9375rem;
	font-weight: 800;
	text-transform: none;
	letter-spacing: 0;
}
.woocommerce-bacs-bank-details,
.woocommerce-order-details,
.woocommerce-customer-details {
	margin: 0;
	padding: 1.25rem;
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	background: #fff;
}
.woocommerce-bacs-bank-details {
	display: grid;
	gap: .75rem;
	background: var(--blue-50);
	border-color: var(--blue-100);
}
.woocommerce-bacs-bank-details h2,
.woocommerce-bacs-bank-details h3,
.woocommerce-order-details__title,
.woocommerce-column__title {
	margin: 0;
	color: var(--fg-0);
	font-weight: 800;
	line-height: 1.2;
}
.woocommerce-bacs-bank-details h2,
.woocommerce-order-details__title,
.woocommerce-column__title {
	font-size: 1.25rem;
}
.woocommerce-bacs-bank-details h3 {
	font-size: .95rem;
	color: var(--fg-1);
}
.wc-bacs-bank-details.order_details.bacs_details {
	margin: 0;
	padding: 0;
	list-style: none;
}
.wc-bacs-bank-details.order_details.bacs_details li {
	margin: 0;
	padding: .875rem;
	border: 1px solid var(--blue-100);
	border-radius: var(--r-md);
	background: #fff;
	color: var(--fg-2);
}
.wc-bacs-bank-details.order_details.bacs_details strong {
	display: block;
	margin-top: .25rem;
	overflow-wrap: anywhere;
	color: var(--fg-0);
	font-size: 1rem;
}
.woocommerce-order-details {
	display: grid;
	gap: 1rem;
}
.woocommerce-order table.shop_table {
	width: 100%;
	margin: 0 !important;
	border: 0 !important;
	border-collapse: collapse !important;
	font-size: .9rem;
}
.woocommerce-order table.shop_table th,
.woocommerce-order table.shop_table td {
	padding: .875rem 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--border) !important;
	background: transparent !important;
	vertical-align: top;
}
.woocommerce-order table.shop_table thead th {
	padding-top: 0 !important;
	color: var(--fg-2);
	font-size: .75rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.woocommerce-order table.shop_table tbody tr:last-child td,
.woocommerce-order table.shop_table tfoot tr:last-child th,
.woocommerce-order table.shop_table tfoot tr:last-child td,
.woocommerce-order table.shop_table.custom-fields tr:last-child th,
.woocommerce-order table.shop_table.custom-fields tr:last-child td {
	border-bottom: 0 !important;
}
.woocommerce-order table.shop_table .product-name {
	width: 72%;
	padding-right: 1.25rem !important;
	font-weight: 700;
	line-height: 1.35;
}
.woocommerce-order table.shop_table .product-name a {
	color: var(--fg-0);
	text-decoration: none;
}
.woocommerce-order table.shop_table .product-name a:hover {
	color: var(--blue-700);
	text-decoration: underline;
	text-underline-offset: .14em;
}
.woocommerce-order table.shop_table .product-total,
.woocommerce-order table.shop_table tfoot td {
	text-align: right;
	white-space: nowrap;
}
.woocommerce-order table.shop_table tfoot th,
.woocommerce-order table.shop_table tfoot td {
	font-weight: 800;
}
.woocommerce-order table.shop_table.custom-fields {
	padding-top: .25rem;
	border-top: 1px solid var(--border) !important;
}
.woocommerce-order table.shop_table.custom-fields th,
.woocommerce-order table.shop_table.custom-fields td {
	width: 50%;
	padding: .625rem 0 !important;
	font-size: .875rem;
}
.woocommerce-order table.shop_table.custom-fields th {
	padding-right: 1rem !important;
	color: var(--fg-1);
	font-weight: 800;
	text-align: left;
}
.woocommerce-customer-details {
	display: grid;
	gap: 1rem;
}
.woocommerce-customer-details address {
	margin: 0;
	padding: 0;
	color: var(--fg-1);
	font-style: normal;
	line-height: 1.65;
}
.woocommerce-customer-details address p {
	margin-top: .35rem;
	color: var(--fg-2);
}
/* Mi cuenta WooCommerce -------------------------------------------------- */
.woocommerce-account .leco-page__content > .woocommerce {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 1.25rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
}
.woocommerce-account .woocommerce-MyAccount-navigation {
	padding: .875rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .375rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: flex;
	align-items: center;
	min-height: 40px;
	padding: .5rem .6875rem;
	border-radius: var(--r-sm);
	font-size: .875rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--fg-2);
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
	color: var(--blue-700);
	background: var(--blue-50);
}
.woocommerce-account .woocommerce-MyAccount-content {
	padding: 1.125rem;
}
.woocommerce-account .woocommerce-MyAccount-content > :first-child {
	margin-top: 0;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button,
.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: .5625rem .875rem;
	border: 1px solid var(--blue-700);
	border-radius: 8px;
	background: linear-gradient(var(--blue-500), var(--blue-600));
	color: #fff;
	font-size: .875rem;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
	width: 100%;
	margin: 0;
	border: 1px solid var(--border);
	border-radius: var(--r-md);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table th,
.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
	padding: .6875rem .75rem;
	border-bottom: 1px solid var(--border);
	font-size: .8125rem;
	text-align: left;
	vertical-align: middle;
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table th {
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--fg-2);
	background: var(--bg-subtle);
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table tr:last-child td {
	border-bottom: 0;
}
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
.woocommerce-account .woocommerce-EditAccountForm,
.woocommerce-account .woocommerce-address-fields {
	padding: 1rem;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
}
.woocommerce-account .woocommerce-form-login .form-row,
.woocommerce-account .woocommerce-form-register .form-row,
.woocommerce-account .woocommerce-EditAccountForm .form-row,
.woocommerce-account .woocommerce-address-fields .form-row {
	margin-bottom: .8125rem !important;
}
.woocommerce-account .woocommerce-LostPassword {
	margin-top: .5rem;
	font-size: .8125rem;
}
.woocommerce-account .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .875rem;
}
.woocommerce-account .woocommerce-Address {
	padding: .875rem;
	border: 1px solid var(--border);
	border-radius: var(--r-md);
	background: var(--bg-subtle);
}
@media (max-width: 959px) {
	.leco-visual-hero {
		padding: 4.5rem 0 3.75rem;
	}

	.leco-visual-hero__inner {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}

	.leco-visual-hero__copy {
		max-width: 720px;
	}

	.leco-visual-hero__title {
		font-size: 3rem;
	}

	.leco-visual-hero__caps {
		flex-wrap: wrap;
	}

	form.checkout.woocommerce-checkout {
		grid-template-columns: 1fr;
		overflow-x: clip;
	}

	.leco-checkout-mode__options {
		grid-template-columns: 1fr;
	}

	.woocommerce-account .leco-page__content > .woocommerce {
		grid-template-columns: 1fr;
	}

	.woocommerce-account .woocommerce-Addresses {
		grid-template-columns: 1fr;
	}

	form.checkout.woocommerce-checkout #customer_details,
	form.checkout.woocommerce-checkout #order_review_heading,
	form.checkout.woocommerce-checkout #order_review {
		grid-column: 1;
		grid-row: auto;
		min-width: 0;
		max-width: 100%;
	}

	form.checkout.woocommerce-checkout #order_review {
		position: static;
	}

	form.checkout.woocommerce-checkout > .leco-group-help {
		grid-column: 1;
		grid-row: auto;
	}

	.checkout_coupon.woocommerce-form-coupon {
		grid-template-columns: 1fr;
	}

	.woocommerce-order-overview.woocommerce-thankyou-order-details {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 640px) {
	.leco-visual-hero {
		padding: 3.75rem 0 3.25rem;
	}

	.leco-visual-hero__title {
		font-size: 2.28rem;
		line-height: 1.05;
	}

	.leco-visual-hero__lead {
		font-size: 1rem;
	}

	.leco-visual-hero__ctas .leco-btn {
		justify-content: center;
		width: 100%;
	}

	.leco-visual-hero__media {
		aspect-ratio: 16 / 11;
		border-radius: var(--r-lg);
	}

	.woocommerce-cart-form table.shop_table.cart thead {
		display: none;
	}

	.woocommerce-cart-form table.shop_table.cart tbody,
	.woocommerce-cart-form table.shop_table.cart tr,
	.woocommerce-cart-form table.shop_table.cart td {
		display: block;
		width: 100%;
	}

	.woocommerce-cart-form table.shop_table.cart tr.cart_item {
		display: grid;
		grid-template-columns: 28px 84px minmax(0, 1fr);
		gap: .75rem;
		padding: .75rem 0;
		border-bottom: 1px solid var(--border);
	}

	.woocommerce-cart-form table.shop_table.cart tr.cart_item td {
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
	}

	.woocommerce-cart-form table.shop_table.cart td.product-remove {
		grid-column: 1;
		grid-row: 1;
		align-self: center;
	}

	.woocommerce-cart-form table.shop_table.cart td.product-thumbnail {
		grid-column: 2;
		grid-row: 1 / span 3;
	}

	.woocommerce-cart-form table.shop_table.cart td.product-name,
	.woocommerce-cart-form table.shop_table.cart td.product-price,
	.woocommerce-cart-form table.shop_table.cart td.product-quantity,
	.woocommerce-cart-form table.shop_table.cart td.product-subtotal {
		grid-column: 3;
	}

	.woocommerce-cart-form table.shop_table.cart td.product-name {
		grid-row: 1;
	}

	.woocommerce-cart-form table.shop_table.cart td.product-price {
		grid-row: 2;
	}

	.woocommerce-cart-form table.shop_table.cart td.product-quantity,
	.woocommerce-cart-form table.shop_table.cart td.product-subtotal {
		grid-row: 3;
	}

	.woocommerce-cart-form table.shop_table.cart td.product-quantity {
		justify-self: start;
	}

	.woocommerce-cart-form table.shop_table.cart td.product-subtotal {
		justify-self: end;
		text-align: right;
	}

	.woocommerce-cart-form .coupon {
		grid-template-columns: 1fr;
	}

	.woocommerce-cart-form .coupon button[name="apply_coupon"] {
		width: 100%;
	}

	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-additional-fields__field-wrapper {
		grid-template-columns: 1fr;
	}

	form.checkout.woocommerce-checkout .form-row-first,
	form.checkout.woocommerce-checkout .form-row-last {
		grid-column: 1;
	}

	.woocommerce-order {
		gap: 1rem;
	}

	.woocommerce-order-overview.woocommerce-thankyou-order-details {
		grid-template-columns: 1fr;
	}

	.woocommerce-bacs-bank-details,
	.woocommerce-order-details,
	.woocommerce-customer-details {
		padding: 1rem;
		border-radius: var(--r-md);
	}

	.woocommerce-order table.shop_table,
	.woocommerce-order table.shop_table thead,
	.woocommerce-order table.shop_table tbody,
	.woocommerce-order table.shop_table tfoot,
	.woocommerce-order table.shop_table tr,
	.woocommerce-order table.shop_table th,
	.woocommerce-order table.shop_table td {
		display: block;
		width: 100%;
	}

	.woocommerce-order table.shop_table thead {
		display: none;
	}

	.woocommerce-order table.shop_table .product-name,
	.woocommerce-order table.shop_table .product-total,
	.woocommerce-order table.shop_table tfoot th,
	.woocommerce-order table.shop_table tfoot td,
	.woocommerce-order table.shop_table.custom-fields th,
	.woocommerce-order table.shop_table.custom-fields td {
		width: 100%;
		padding-right: 0 !important;
		text-align: left;
		white-space: normal;
	}

	.woocommerce-order table.shop_table .product-total,
	.woocommerce-order table.shop_table tfoot td,
	.woocommerce-order table.shop_table.custom-fields td {
		padding-top: .25rem !important;
		color: var(--fg-0);
		font-weight: 800;
	}
}
/* CF7 genera este wrapper desde la base de datos, por eso vive fuera de
   @layer: Tailwind purga las clases que no aparecen en archivos PHP/JS. */
.leco-form-panel .leco-cf7-grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1rem;
}
.leco-form-panel .leco-cf7-grid > p {
	display: contents !important;
}
.leco-form-panel .leco-cf7-grid br {
	display: none !important;
}
@media (min-width: 640px) {
	.leco-form-panel .leco-cf7-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
