/* ==========================================================================
   Construcción Eólica · portada
   Conversión fiel del sistema de diseño "Eólica México Design System".
   Los tokens van tal cual salieron del sistema. Los componentes pasaron de
   estilos en línea de React a clases CSS, mismos valores.
   ========================================================================== */

/* ---------- Tipografías autoalojadas (el sistema pedía Google Fonts) ------ */
@font-face{font-family:"Sora";src:url("fonts/sora-400.woff2") format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:"Manrope";src:url("fonts/manrope-400.woff2") format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("fonts/ibmplexmono-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("fonts/ibmplexmono-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("fonts/ibmplexmono-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

/* ---------- Tokens: color ------------------------------------------------ */
.ce{
  --blue-950:#04193A; --blue-900:#062A5C; --blue-800:#0A3C7E; --blue-700:#0F52A8;
  --blue-600:#1671DC; --blue-500:#2E8AF0; --blue-400:#6FB2F6; --blue-300:#A8D0F9;
  --blue-200:#D2E6FB; --blue-100:#E6F1FC; --blue-50:#F2F8FD;
  --green-700:#0E7A47; --green-500:#17B26A; --green-400:#3ECF8E; --green-100:#DCF5E9;
  --white:#FFFFFF; --gray-50:#F7F9FB; --gray-100:#EDF1F6; --gray-200:#DDE4EC;
  --gray-300:#C2CCD9; --gray-400:#9AA7B8; --gray-500:#6C7A8D; --gray-600:#4A5568; --gray-900:#10182B;
  --amber-500:#E8A33D; --red-500:#D6483B;

  --surface-page:var(--white);
  --surface-deep:var(--blue-900);
  --surface-deepest:var(--blue-950);
  --surface-ice:var(--blue-100);
  --surface-ice-soft:var(--blue-50);
  --surface-card:var(--white);
  --surface-card-blue:var(--blue-600);
  --surface-card-deep:var(--blue-800);
  --surface-panel:var(--blue-50);
  --surface-inverse-hairline:rgba(255,255,255,.14);

  --text-strong:var(--blue-950);
  --text-body:var(--gray-600);
  --text-muted:var(--gray-500);
  --text-on-deep:var(--white);
  --text-on-deep-muted:rgba(255,255,255,.70);
  --text-accent:var(--blue-600);
  --text-link:var(--blue-700);
  --text-link-hover:var(--blue-600);

  --border-subtle:var(--gray-200);
  --border-strong:var(--gray-300);
  --border-accent:var(--blue-600);
  --border-on-deep:rgba(255,255,255,.18);

  --action-primary-bg:var(--blue-950);
  --action-primary-bg-hover:var(--blue-800);
  --action-primary-fg:var(--white);
  --action-accent-bg:var(--blue-600);
  --action-accent-bg-hover:var(--blue-700);
  --action-accent-fg:var(--white);
  --action-light-bg:var(--white);
  --action-light-fg:var(--blue-950);
  --focus-ring:var(--blue-500);

  --overlay-photo:linear-gradient(180deg,rgba(4,25,58,0) 30%,rgba(4,25,58,.55) 72%,rgba(4,25,58,.88) 100%);
  --overlay-photo-tint:rgba(6,42,92,.28);
  --overlay-scrim:rgba(4,25,58,.72);

  /* ---------- Tokens: tipografía ---------- */
  --font-display:"Sora","Segoe UI",Helvetica,sans-serif;
  --font-text:"Manrope","Segoe UI",Helvetica,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;

  --size-hero:150px; --size-display:72px; --size-h1:56px; --size-h2:44px;
  --size-h3:32px; --size-h4:24px; --size-h5:20px; --size-body-lg:18px;
  --size-body:16px; --size-body-sm:14px; --size-caption:13px; --size-label:11px;

  --leading-hero:.90; --leading-display:1.02; --leading-heading:1.08;
  --leading-snug:1.28; --leading-body:1.6;
  --tracking-hero:-.045em; --tracking-display:-.03em; --tracking-heading:-.02em; --tracking-label:.14em;
  --weight-regular:400; --weight-medium:500; --weight-semibold:600; --weight-bold:700; --weight-extrabold:800;

  --type-hero:var(--weight-bold) var(--size-hero)/var(--leading-hero) var(--font-display);
  --type-display:var(--weight-bold) var(--size-display)/var(--leading-display) var(--font-display);
  --type-h1:var(--weight-bold) var(--size-h1)/var(--leading-heading) var(--font-display);
  --type-h2:var(--weight-bold) var(--size-h2)/var(--leading-heading) var(--font-display);
  --type-h3:var(--weight-semibold) var(--size-h3)/var(--leading-snug) var(--font-display);
  --type-h4:var(--weight-semibold) var(--size-h4)/var(--leading-snug) var(--font-display);
  --type-h5:var(--weight-semibold) var(--size-h5)/var(--leading-snug) var(--font-display);
  --type-body-lg:var(--weight-regular) var(--size-body-lg)/var(--leading-body) var(--font-text);
  --type-body:var(--weight-regular) var(--size-body)/var(--leading-body) var(--font-text);
  --type-body-sm:var(--weight-regular) var(--size-body-sm)/var(--leading-body) var(--font-text);
  --type-ui:var(--weight-semibold) var(--size-body-sm)/1.2 var(--font-text);
  --type-metric:var(--weight-bold) var(--size-display)/1 var(--font-display);
  --type-label:var(--weight-semibold) var(--size-label)/1.1 var(--font-mono);
  --type-data:var(--weight-medium) var(--size-caption)/1.3 var(--font-mono);

  /* ---------- Tokens: espacio, radios, sombra, motion ---------- */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px;
  --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px;
  --space-20:80px; --space-24:96px; --space-32:128px; --space-40:160px;
  --page-width:1440px; --content-width:1280px; --gutter:48px; --gutter-tight:24px;
  --section-y:112px; --section-y-tight:72px; --card-pad:32px; --card-pad-sm:20px;
  --grid-gap:24px;

  --radius-xs:2px; --radius-card:4px; --radius-panel:12px; --radius-field:6px; --radius-pill:999px;

  --shadow-hairline:0 0 0 1px rgba(4,25,58,.06);
  --shadow-sm:0 1px 2px rgba(4,25,58,.06),0 2px 8px rgba(4,25,58,.05);
  --shadow-card:0 2px 6px rgba(4,25,58,.06),0 14px 34px rgba(4,25,58,.09);
  --shadow-float:0 8px 18px rgba(4,25,58,.12),0 28px 64px rgba(4,25,58,.18);
  --shadow-cta:0 10px 24px rgba(22,113,220,.34);
  --shadow-cta-hover:0 14px 32px rgba(22,113,220,.44);
  --blur-glass:14px; --glass-deep:rgba(6,42,92,.72);

  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-standard:cubic-bezier(.4,0,.2,1);
  --dur-fast:140ms; --dur-hover:200ms; --dur-enter:620ms; --dur-slow:900ms;
  --reveal-shift:24px; --hover-lift:-2px; --press-scale:.985;
}

/* ---------- Base ---------- */
.ce,.ce *,.ce *::before,.ce *::after{box-sizing:border-box}
.ce{font:var(--type-body);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-wrap:pretty}
.ce :where(h1,h2,h3,h4,h5){margin:0;color:var(--text-strong);font-family:var(--font-display);letter-spacing:var(--tracking-heading)}
.ce :where(p){margin:0}
.ce a{color:var(--text-link);text-decoration:none;transition:color var(--dur-hover) var(--ease-standard)}
.ce a:hover{color:var(--text-link-hover)}
.ce ::selection{background:var(--blue-200);color:var(--blue-950)}
.ce :focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.ce img{max-width:100%;height:auto;display:block}
.ce button{font-family:inherit}
.ce-i{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:currentColor}
.ce-i svg{width:100%;height:100%;display:block}

/* ---------- Layout ---------- */
.ce-container{width:100%;max-width:var(--content-width);margin:0 auto;padding:0 var(--gutter)}
.ce-container--wide{max-width:var(--page-width)}
.ce-section{padding:var(--section-y) 0;position:relative}
.ce-section--white{background:var(--surface-page)}
.ce-section--ice{background:var(--surface-ice)}
.ce-section--ice-soft{background:var(--surface-ice-soft)}
.ce-section--deep{background:var(--surface-deep)}
.ce-section--deepest{background:var(--surface-deepest)}

/* ---------- Reveal ---------- */
.ce-reveal{opacity:0;transform:translateY(var(--reveal-shift));transition:opacity var(--dur-enter) var(--ease-out),transform var(--dur-enter) var(--ease-out)}
.ce-reveal.is-in{opacity:1;transform:none}
/* Sin JS todo se ve: la clase que oculta solo se aplica si el script corre. */
html:not(.ce-js) .ce-reveal{opacity:1;transform:none}

/* ---------- Eyebrow ---------- */
.ce-eyebrow{display:inline-flex;align-items:center;gap:8px;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap;color:var(--blue-600)}
.ce-eyebrow--on-deep{color:rgba(255,255,255,.82)}

/* ---------- Botones ---------- */
.ce-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 22px;height:46px;font-size:14px;font-family:var(--font-text);font-weight:var(--weight-semibold);letter-spacing:-.01em;border-radius:var(--radius-pill);cursor:pointer;text-decoration:none;white-space:nowrap;border:1px solid transparent;transition:background var(--dur-hover) var(--ease-standard),border-color var(--dur-hover) var(--ease-standard),transform var(--dur-fast) var(--ease-standard),box-shadow var(--dur-hover) var(--ease-standard)}
.ce-btn--sm{padding:0 16px;height:36px;font-size:13px}
.ce-btn--lg{padding:0 28px;height:54px;font-size:15px}
.ce-btn--primary{background:var(--action-primary-bg);color:var(--action-primary-fg)}
.ce-btn--primary:hover{background:var(--action-primary-bg-hover);color:var(--action-primary-fg)}
.ce-btn--accent{background:var(--action-accent-bg);color:var(--action-accent-fg)}
.ce-btn--accent:hover{background:var(--action-accent-bg-hover);color:var(--action-accent-fg)}
.ce-btn--light{background:var(--action-light-bg);color:var(--action-light-fg)}
.ce-btn--light:hover{background:var(--blue-50);color:var(--action-light-fg)}
.ce-btn--outline{background:transparent;color:var(--text-strong);border-color:var(--border-strong)}
.ce-btn--outline:hover{border-color:var(--blue-950);background:var(--gray-50);color:var(--text-strong)}
.ce-btn--ghost{background:transparent;color:var(--text-accent)}
.ce-btn--ghost:hover{background:var(--blue-50);color:var(--text-accent)}
.ce-btn--full{display:flex;width:100%}
.ce-btn:active{transform:scale(var(--press-scale))}
.ce-btn .ce-i:last-child{transition:transform var(--dur-hover) var(--ease-out)}
.ce-btn:hover .ce-i:last-child{transform:translateX(3px)}

/* ---------- Botón de icono ---------- */
.ce-ibtn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:var(--radius-pill);cursor:pointer;transition:transform var(--dur-hover) var(--ease-out),filter var(--dur-hover) var(--ease-standard);background:var(--blue-600);color:#fff}
.ce-ibtn:hover{transform:translateY(var(--hover-lift));filter:brightness(1.08)}
.ce-ibtn--navy{background:var(--blue-950);color:#fff}
.ce-ibtn--on-deep{background:rgba(255,255,255,.10);color:#fff;box-shadow:inset 0 0 0 1px var(--border-on-deep)}
.ce-ibtn--38{width:38px;height:38px}

/* ---------- Badge ---------- */
.ce-badge{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 14px;border-radius:var(--radius-pill);font:var(--type-ui);font-size:12px;white-space:nowrap;background:var(--white);color:var(--blue-950);border:1px solid var(--border-subtle)}
.ce-badge--ice{background:var(--blue-100);color:var(--blue-800);border-color:transparent}
.ce-badge--on-deep{background:rgba(255,255,255,.12);color:#fff;border-color:var(--border-on-deep)}

/* ---------- Card ---------- */
.ce-card{position:relative;padding:var(--card-pad);border-radius:var(--radius-card);background:var(--surface-card);color:var(--text-body);transition:transform var(--dur-hover) var(--ease-out),box-shadow var(--dur-hover) var(--ease-standard)}
.ce-card--blue{background:var(--surface-card-blue);color:#fff}
.ce-card--panel{background:var(--surface-panel);color:var(--blue-800);border-radius:var(--radius-panel)}
.ce-card--glass{background:var(--glass-deep);color:#fff;backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border:1px solid var(--border-on-deep)}
.ce-card--sm{box-shadow:var(--shadow-sm)}
.ce-card--elev{box-shadow:var(--shadow-card)}
.ce-card--float{box-shadow:var(--shadow-float)}
.ce-card--hover:hover{box-shadow:var(--shadow-float);transform:translateY(var(--hover-lift))}

/* ---------- Photo (marco documentado, sin foto todavía) ---------- */
.ce-photo{position:relative;overflow:hidden;border-radius:var(--radius-card);background:linear-gradient(148deg,#0A3C7E,#062A5C 58%,#04193A)}
.ce-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,113,220,.16),rgba(6,42,92,.32));pointer-events:none}
.ce-photo::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 2px,transparent 2px 11px);pointer-events:none}
.ce-photo--radius-0{border-radius:0}
.ce-photo__nota{position:absolute;left:16px;right:16px;top:16px;font:var(--type-data);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.55);pointer-events:none;z-index:1}
.ce-photo__nota--bottom{top:auto;bottom:14px;text-align:center}
.ce-photo__scrim{position:absolute;inset:0;background:var(--overlay-photo);pointer-events:none}
.ce-photo__contenido{position:absolute;left:22px;right:22px;bottom:22px;z-index:2}
.ce-photo--has-src::after{display:none}
.ce-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- Metric ---------- */
.ce-metric{display:flex;flex-direction:column;gap:10px}
.ce-metric__valor{display:flex;align-items:baseline;gap:6px;color:var(--blue-600);font-family:var(--font-display);font-weight:var(--weight-bold);letter-spacing:var(--tracking-display);line-height:1;font-size:var(--size-display)}
.ce-metric--md .ce-metric__valor{font-size:var(--size-h2)}
.ce-metric--on-deep .ce-metric__valor{color:#fff}
.ce-metric__unidad{font-size:.42em;font-family:var(--font-mono);font-weight:500;letter-spacing:0}
.ce-metric__etiqueta{font:var(--type-body-sm);color:var(--text-muted);max-width:220px}
.ce-metric--on-deep .ce-metric__etiqueta{color:var(--text-on-deep-muted)}

/* ---------- FeatureRow ---------- */
.ce-feature{display:flex;gap:18px;align-items:flex-start}
.ce-feature__icono{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:46px;height:46px;border-radius:var(--radius-pill);background:var(--white);box-shadow:var(--shadow-sm);color:var(--blue-600)}
.ce-feature__cuerpo{display:flex;flex-direction:column;gap:6px;padding-top:4px}
.ce-feature__titulo{font:var(--type-h5);font-size:17px;color:var(--text-strong)}
.ce-feature__texto{font:var(--type-body-sm);color:var(--text-muted);max-width:300px}

/* ---------- ProjectRow ---------- */
.ce-prow{display:flex;align-items:center;gap:16px;padding:12px;background:var(--white);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);transition:transform var(--dur-hover) var(--ease-out),box-shadow var(--dur-hover) var(--ease-standard);cursor:pointer;width:100%;text-align:left;border:none;font-family:inherit}
.ce-prow:hover,.ce-prow.is-active{box-shadow:var(--shadow-card);transform:translateY(var(--hover-lift))}
.ce-prow__thumb{width:64px;height:56px;flex:0 0 auto;border-radius:var(--radius-xs)}
.ce-prow__cuerpo{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.ce-prow__nombre{font:var(--type-h5);font-size:16px;color:var(--text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ce-prow__meta{font:var(--type-body-sm);font-size:13px;color:var(--text-muted)}
.ce-prow .ce-ibtn{background:var(--blue-950)}
.ce-prow:hover .ce-ibtn,.ce-prow.is-active .ce-ibtn{background:var(--blue-600)}

/* ---------- ProgressRow ---------- */
.ce-prog{display:flex;flex-direction:column;gap:10px;padding:14px 0;border-bottom:1px solid var(--blue-200)}
.ce-prog:last-of-type{border-bottom:none;padding-bottom:4px}
.ce-prog__fila{display:flex;align-items:center;gap:10px}
.ce-prog__icono{color:var(--blue-600);display:inline-flex}
.ce-prog__label{font:var(--type-ui);color:var(--blue-900);flex:1}
.ce-prog__estado{font:var(--type-data);color:var(--text-muted)}
.ce-prog__pista{height:5px;border-radius:var(--radius-pill);background:var(--blue-200);overflow:hidden}
.ce-prog__barra{width:0;height:100%;border-radius:var(--radius-pill);background:var(--blue-600);transition:width var(--dur-slow) var(--ease-out)}
.ce-prog__barra--full{background:var(--green-500)}

/* ---------- CircleCTA ---------- */
.ce-circle{position:relative;width:96px;height:96px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;border:2px solid rgba(255,255,255,.35);border-radius:var(--radius-pill);background:var(--blue-600);color:#fff;cursor:pointer;box-shadow:var(--shadow-cta);transition:transform var(--dur-hover) var(--ease-out),box-shadow var(--dur-hover) var(--ease-standard);text-decoration:none}
.ce-circle:hover{transform:translateY(-3px);box-shadow:var(--shadow-cta-hover);color:#fff}
.ce-circle__anillo{position:absolute;inset:-2px;border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.5);animation:ce-pulse 2.6s var(--ease-out) infinite;pointer-events:none}
.ce-circle__label{font:var(--type-label);letter-spacing:.08em;text-transform:uppercase;text-align:center;line-height:1.25;max-width:72px}
@keyframes ce-pulse{0%{transform:scale(1);opacity:.5}70%,100%{transform:scale(1.5);opacity:0}}

/* ---------- Wordmark ---------- */
.ce-wordmark{display:inline-flex;align-items:center;gap:9px;color:#fff;text-decoration:none}
.ce-wordmark:hover{color:#fff}
.ce-wordmark__texto{display:flex;flex-direction:column;line-height:1}
.ce-wordmark__nombre{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:21px;letter-spacing:-.03em;white-space:nowrap}
.ce-wordmark__kicker{font-family:var(--font-mono);font-weight:500;font-size:8.4px;letter-spacing:.18em;text-transform:uppercase;opacity:.62;margin-top:3.4px;white-space:nowrap}
.ce-wordmark--lg .ce-wordmark__nombre{font-size:24px}
.ce-wordmark--lg .ce-wordmark__kicker{font-size:9.6px;margin-top:3.8px}

/* ==========================================================================
   SECCIONES
   ========================================================================== */

/* ---------- Header ---------- */
.ce-header{position:sticky;top:0;z-index:40;background:transparent;border-bottom:1px solid transparent;transition:background var(--dur-hover) var(--ease-standard),border-color var(--dur-hover) var(--ease-standard)}
.ce-header.is-solid{background:rgba(6,42,92,.86);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border-bottom-color:var(--surface-inverse-hairline)}
.ce-header__inner{height:84px;display:flex;align-items:center;gap:32px}
.ce-nav{display:flex;gap:30px;margin-left:24px;flex:1}
.ce-nav a{font:var(--type-ui);color:rgba(255,255,255,.74);padding-bottom:4px;border-bottom:1.5px solid transparent}
.ce-nav a:hover,.ce-nav a[aria-current="page"]{color:#fff}
.ce-nav a[aria-current="page"]{border-bottom-color:var(--blue-500)}
.ce-lang{display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:var(--radius-pill);border:1px solid var(--border-on-deep)}
.ce-lang button{border:none;cursor:pointer;padding:4px 10px;border-radius:var(--radius-pill);font:var(--type-label);letter-spacing:.08em;text-transform:uppercase;background:transparent;color:rgba(255,255,255,.72)}
.ce-lang button.is-on{background:#fff;color:var(--blue-950)}
.ce-burger{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:#fff;cursor:pointer}
.ce-menu{padding-bottom:20px}
.ce-menu[hidden]{display:none}
.ce-menu .ce-card{display:flex;gap:28px;flex-wrap:wrap;padding:18px 22px}
.ce-menu a{font:var(--type-ui);color:#fff}

/* ---------- Hero ---------- */
.ce-hero{position:relative;margin-top:-84px;min-height:880px;display:flex;flex-direction:column}
.ce-hero__foto{position:absolute;inset:0;border-radius:0}
.ce-hero__cuerpo{position:relative;flex:1;display:flex;flex-direction:column;padding-top:132px}
.ce-hero__titulo{font:var(--type-hero);font-size:112px;letter-spacing:var(--tracking-hero);color:#fff;text-shadow:0 18px 60px rgba(4,25,58,.35)}
.ce-hero__sub{font:var(--type-body-lg);color:rgba(255,255,255,.86);max-width:560px;margin:26px auto 0}
.ce-hero__medio{position:relative;flex:1}
.ce-hero__circle{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%)}
.ce-hero__pie{position:relative;padding-bottom:56px;display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.ce-hero__claim{max-width:360px}
.ce-hero__claim-t{font:var(--type-h3);font-size:30px;color:#fff;margin-top:14px;letter-spacing:-.025em}
.ce-hero__card{width:420px;display:grid;grid-template-columns:1fr 128px;overflow:hidden;padding:0}
.ce-hero__card-txt{padding:22px 22px 20px}
.ce-hero__card-t{font:var(--type-h4);font-size:21px;color:var(--text-strong)}
.ce-hero__card-p{font:var(--type-body-sm);font-size:13.5px;color:var(--text-muted);margin-top:8px}

/* ---------- Métricas ---------- */
.ce-metrics{display:grid;grid-template-columns:repeat(4,1fr)}
.ce-metrics__item{padding:0 32px;border-left:1px solid var(--surface-inverse-hairline)}
.ce-metrics__item:first-child{border-left:none;padding-left:0}

/* ---------- Proyecto destacado ---------- */
.ce-feat{display:grid;grid-template-columns:.85fr 1.5fr .9fr;gap:40px;align-items:end}
.ce-feat__izq{display:flex;flex-direction:column;gap:18px;padding-bottom:8px}
.ce-feat__izq-t{font:var(--type-h4);color:#fff;letter-spacing:-.02em}
.ce-feat__chips{display:flex;gap:8px;flex-wrap:wrap}
.ce-feat__centro{position:relative;padding-top:96px}
.ce-feat__foto-flot{position:absolute;top:0;right:24px;width:300px;height:190px;box-shadow:var(--shadow-float)}
.ce-feat__card h3{font:var(--type-h3);color:#fff;margin-top:16px;max-width:420px}
.ce-feat__card p{font:var(--type-body-sm);color:rgba(255,255,255,.82);margin-top:14px;max-width:430px}
.ce-feat__der{display:flex;flex-direction:column;gap:16px}
.ce-feat__der h4{font:var(--type-h5);color:#fff}
.ce-feat__der p{font:var(--type-body-sm);color:var(--text-on-deep-muted);margin-top:6px}

/* ---------- Banda editorial superpuesta ---------- */
.ce-edit{display:grid;grid-template-columns:230px 1fr 260px;align-items:stretch;margin-bottom:-72px}
.ce-edit__foto{height:216px;align-self:end;border-radius:var(--radius-card) 0 0 var(--radius-card)}
.ce-edit__mid{background:var(--white);padding:30px 34px;display:grid;grid-template-columns:1fr 168px;gap:24px;align-items:center}
.ce-edit__mid h3{font:var(--type-h3);color:var(--text-strong);margin-top:14px;max-width:400px}
.ce-edit__mid p{font:var(--type-body-sm);color:var(--text-muted);margin-top:12px;max-width:420px}
.ce-edit__redondo{width:168px;height:168px;border-radius:var(--radius-pill)}
.ce-edit__card{border-radius:0 var(--radius-card) var(--radius-card) 0;padding:26px;display:flex;flex-direction:column;justify-content:space-between}
.ce-edit__lista{font:var(--type-h4);color:#fff;margin-top:14px;line-height:1.2}
.ce-edit__pie{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.24);padding-top:14px;margin-top:18px;font:var(--type-data)}
.ce-edit__pie span:first-child{color:rgba(255,255,255,.82)}
.ce-edit__pie span:last-child{color:#fff}

/* ---------- Explorador ---------- */
.ce-explora{padding-top:190px;padding-bottom:var(--section-y)}
.ce-explora__grid{display:grid;grid-template-columns:.9fr 1.05fr .85fr;gap:44px;align-items:start}
.ce-explora__lista{display:flex;flex-direction:column;gap:10px}
.ce-explora h2{font:var(--type-h3);color:var(--text-strong);margin-bottom:22px}
.ce-explora__visor{box-shadow:var(--shadow-float);aspect-ratio:3/4}
.ce-explora__pie{display:flex;align-items:center;gap:12px;margin-top:18px}
.ce-explora__pie span{font:var(--type-data);color:var(--text-muted)}
.ce-explora__der h2{font:var(--type-h2);color:var(--text-strong);max-width:320px;margin-bottom:0}
.ce-explora__features{display:flex;flex-direction:column;gap:26px;margin-top:30px}

/* ---------- Infraestructura ---------- */
.ce-infra{display:grid;grid-template-columns:1fr 1.15fr;gap:64px;align-items:center}
.ce-infra h2{font:var(--type-h1);color:#fff;margin-top:20px}
.ce-infra p{font:var(--type-body-lg);color:var(--text-on-deep-muted);margin-top:20px;max-width:440px}
.ce-infra__mosaico{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:16px}
.ce-infra__alta{grid-row:span 2;aspect-ratio:4/5;box-shadow:var(--shadow-float)}
.ce-infra__mosaico .ce-photo:not(.ce-infra__alta){aspect-ratio:4/3}

/* ---------- Control ---------- */
.ce-control{display:grid;grid-template-columns:.9fr .85fr 1fr;gap:32px;align-items:center}
.ce-control__panel-t{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.ce-control__panel-t h3{font:var(--type-h5);color:var(--blue-900);white-space:nowrap}
.ce-control__vertodo{font:var(--type-data);color:var(--blue-600);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.ce-control__foto{aspect-ratio:3/4;box-shadow:var(--shadow-card)}
.ce-control__der h2{font:var(--type-h2);color:var(--text-strong);margin-top:18px}
.ce-control__der p{font:var(--type-body-lg);color:var(--text-body);margin-top:18px;max-width:420px}

/* ---------- Futuro ---------- */
.ce-titulo-sec{display:flex;flex-direction:column;gap:18px;width:100%;max-width:620px}
.ce-titulo-sec--centro{max-width:700px;text-align:center;margin:0 auto;align-items:center}
.ce-titulo-sec h2{font:var(--type-h2);line-height:1.12;color:var(--text-strong)}
.ce-titulo-sec p{font:var(--type-body-lg);color:var(--text-body)}
.ce-titulo-sec--on-deep h2{color:#fff}
.ce-titulo-sec--on-deep p{color:var(--text-on-deep-muted)}
.ce-futuro__foto{height:380px;box-shadow:var(--shadow-card);margin-top:48px}
.ce-futuro__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;margin-top:40px}
.ce-futuro__item{display:flex;flex-direction:column;gap:12px;padding-top:20px;border-top:1px solid var(--border-subtle)}
.ce-futuro__item span:last-child{font:var(--type-ui);color:var(--text-strong);line-height:1.35}
.ce-futuro__item .ce-i{color:var(--blue-600)}

/* ---------- Soluciones ---------- */
.ce-sol{padding-top:0;padding-bottom:var(--section-y)}
.ce-sol__cab{display:grid;grid-template-columns:1fr auto;align-items:end;gap:32px;margin-bottom:36px}
.ce-sol__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ce-sol__card{overflow:hidden;height:100%;padding:0;display:flex;flex-direction:column}
.ce-sol__foto{aspect-ratio:16/10;border-radius:0}
.ce-sol__txt{padding:24px 24px 26px}
.ce-sol__txt .ce-i{color:var(--blue-600)}
.ce-sol__t{font:var(--type-h4);color:var(--text-strong);margin-top:14px}
.ce-sol__p{font:var(--type-body-sm);color:var(--text-muted);margin-top:10px}

/* ---------- CTA final ---------- */
.ce-cta{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:center}
.ce-cta__foto{aspect-ratio:4/3;box-shadow:var(--shadow-float)}
.ce-cta h2{font:var(--type-h1);font-size:50px;color:var(--text-strong);margin-top:18px;max-width:520px}
.ce-cta p{font:var(--type-body-lg);color:var(--text-body);margin-top:20px;max-width:480px}
.ce-cta__botones{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}

/* ---------- Newsletter ---------- */
.ce-news{padding:var(--space-16) 0}
.ce-news__inner{display:flex;align-items:center;justify-content:space-between;gap:48px;flex-wrap:wrap}
.ce-news__txt{display:flex;flex-direction:column;gap:10px;max-width:520px}
.ce-news__t{display:flex;align-items:center;gap:12px}
.ce-news__t .ce-i{color:var(--blue-400)}
.ce-news__t h3{font:var(--type-h3);font-size:28px;color:#fff}
.ce-news p{font:var(--type-body-sm);color:var(--text-on-deep-muted)}
.ce-news__form{display:flex;align-items:center;gap:10px}
.ce-news__form input{height:48px;width:260px;padding:0 20px;font:var(--type-body);font-size:14.5px;color:#fff;background:rgba(255,255,255,.08);border:1px solid var(--border-on-deep);border-radius:var(--radius-pill);outline:none}
.ce-news__form input::placeholder{color:rgba(255,255,255,.55)}

/* ---------- Footer ---------- */
.ce-footer{background:var(--surface-deepest);border-top:1px solid var(--surface-inverse-hairline);padding:var(--space-16) 0 var(--space-10)}
.ce-footer__grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:40px}
.ce-footer__marca{display:flex;flex-direction:column;gap:16px}
.ce-footer__marca p{font:var(--type-body-sm);color:var(--text-on-deep-muted);max-width:240px}
.ce-footer__col{display:flex;flex-direction:column;gap:12px}
.ce-footer__col-t{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:rgba(255,255,255,.5)}
.ce-footer__col a{font:var(--type-body-sm);color:rgba(255,255,255,.78)}
.ce-footer__col a:hover{color:#fff}
.ce-footer__linea{height:1px;background:var(--surface-inverse-hairline);margin:var(--space-10) 0 var(--space-6)}
.ce-footer__pie{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.ce-footer__redes{display:flex;gap:10px}
.ce-footer__legal{font:var(--type-data);color:rgba(255,255,255,.5)}

/* ==========================================================================
   RESPONSIVE
   El sistema se compone a 1440px y no entregó variantes móviles. Estos cortes
   son propios: preservan el orden y la jerarquía, que es lo que importa cuando
   un comprador abre el sitio desde el celular en obra.
   ========================================================================== */

@media (max-width:1180px){
  .ce{--gutter:32px;--section-y:88px}
  .ce-hero__titulo{font-size:84px}
  .ce-feat{grid-template-columns:1fr 1fr;gap:32px}
  .ce-feat__der{grid-column:1/-1}
  .ce-edit{grid-template-columns:1fr 260px}
  .ce-edit__foto{display:none}
  .ce-edit__mid{border-radius:var(--radius-card) 0 0 var(--radius-card)}
  .ce-explora__grid{grid-template-columns:1fr 1fr;gap:32px}
  .ce-explora__der{grid-column:1/-1}
  .ce-control{grid-template-columns:1fr 1fr;gap:28px}
  .ce-control__foto{display:none}
  .ce-futuro__grid{grid-template-columns:repeat(3,1fr)}
  .ce-metrics{grid-template-columns:repeat(2,1fr);gap:32px 0}
  .ce-metrics__item:nth-child(odd){border-left:none;padding-left:0}
}

@media (max-width:860px){
  .ce{--gutter:20px;--section-y:64px;--card-pad:24px}
  .ce-nav,.ce-lang{display:none}
  .ce-header__inner{gap:16px;height:72px}
  .ce-hero{min-height:640px;margin-top:-72px}
  .ce-hero__cuerpo{padding-top:104px}
  .ce-hero__titulo{font-size:clamp(40px,11vw,62px)}
  .ce-hero__pie{flex-direction:column;align-items:stretch;gap:24px;padding-bottom:40px}
  .ce-hero__card{width:100%}
  .ce-feat,.ce-infra,.ce-control,.ce-cta,.ce-sol__grid,.ce-explora__grid{grid-template-columns:1fr}
  .ce-feat__centro{padding-top:0}
  .ce-feat__foto-flot{display:none}
  .ce-edit{grid-template-columns:1fr;margin-bottom:-48px}
  .ce-edit__mid{grid-template-columns:1fr;border-radius:var(--radius-card) var(--radius-card) 0 0}
  .ce-edit__redondo{display:none}
  .ce-edit__card{border-radius:0 0 var(--radius-card) var(--radius-card)}
  .ce-explora{padding-top:120px}
  .ce-futuro__grid{grid-template-columns:repeat(2,1fr)}
  .ce-sol__cab{grid-template-columns:1fr}
  .ce-footer__grid{grid-template-columns:1fr 1fr;gap:28px}
  .ce-news__form{width:100%}
  .ce-news__form input{flex:1;width:auto;min-width:0}
  .ce-metrics{grid-template-columns:1fr;gap:28px}
  .ce-metrics__item{border-left:none;padding-left:0}
  .ce{--size-h1:38px;--size-h2:30px;--size-h3:24px;--size-display:48px}
  .ce-cta h2{font-size:34px}
}

@media (prefers-reduced-motion:reduce){
  .ce *,.ce *::before,.ce *::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  .ce-reveal{opacity:1 !important;transform:none !important}
  .ce-circle__anillo{display:none}
}

/* ==========================================================================
   PAGINAS INTERIORES
   Directorio, servicios y contacto. Mismos tokens, mismas medidas.
   ========================================================================== */

/* ---------- Encabezado de pagina interior ---------- */
.ce-pagehead{position:relative;margin-top:-84px;padding-top:84px}
.ce-pagehead__foto{position:absolute;inset:0;border-radius:0}
.ce-pagehead__cuerpo{position:relative;padding-top:120px;padding-bottom:96px}
.ce-pagehead h1{font:var(--type-display);font-size:66px;color:#fff;margin-top:18px;max-width:760px;letter-spacing:var(--tracking-display)}
.ce-pagehead p{font:var(--type-body-lg);color:rgba(255,255,255,.84);margin-top:20px;max-width:560px}

/* ---------- Chips de filtro ---------- */
.ce-chip{height:38px;padding:0 18px;border-radius:var(--radius-pill);cursor:pointer;font:var(--type-ui);font-size:13px;border:1px solid var(--blue-200);background:transparent;color:var(--blue-800);transition:background var(--dur-hover) var(--ease-standard),color var(--dur-hover) var(--ease-standard),border-color var(--dur-hover) var(--ease-standard)}
.ce-chip:hover{border-color:var(--blue-600)}
.ce-chip.is-on{background:var(--blue-950);color:#fff;border-color:transparent}

/* ---------- Directorio ---------- */
.ce-dir__barra{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:36px;flex-wrap:wrap}
.ce-dir__filtros{display:flex;gap:8px;flex-wrap:wrap}
.ce-dir__conteo{font:var(--type-data);color:var(--text-muted)}
.ce-dir__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ce-dir__grid > .is-oculto{display:none}
.ce-dir__card{overflow:hidden;height:100%;padding:0;display:flex;flex-direction:column}
.ce-dir__foto{aspect-ratio:16/11;border-radius:0}
.ce-dir__chip{position:absolute;left:16px;bottom:16px;z-index:2}
.ce-dir__txt{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.ce-dir__cab{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ce-dir__t{font:var(--type-h4);font-size:21px;color:var(--text-strong)}
.ce-dir__dato{font:var(--type-data);color:var(--blue-600);margin-top:10px;display:block}
.ce-dir__p{font:var(--type-body-sm);color:var(--text-muted);margin-top:10px;flex:1}
.ce-dir__pie{margin-top:18px}
.ce-dir__pronto{display:inline-flex;align-items:center;gap:6px;font:var(--type-data);color:var(--text-muted)}
.ce-dir__aviso{margin-top:32px}
.ce-dir__aviso .ce-card{display:flex;flex-direction:column;gap:12px}
.ce-dir__aviso p{font:var(--type-body-sm);color:var(--text-body)}

/* ---------- Servicios ---------- */
.ce-serv__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ce-serv__card{overflow:hidden;height:100%;padding:0;display:flex;flex-direction:column;scroll-margin-top:100px}
.ce-serv__foto{aspect-ratio:16/10;border-radius:0}
.ce-serv__txt{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1}
.ce-serv__txt .ce-i{color:var(--blue-600)}
.ce-card--blue .ce-serv__txt .ce-i{color:#fff}
.ce-serv__t{font:var(--type-h3);font-size:26px;color:var(--text-strong);margin-top:14px}
.ce-card--blue .ce-serv__t{color:#fff}
.ce-serv__p{font:var(--type-body-sm);color:var(--text-muted);margin-top:12px;flex:1}
.ce-card--blue .ce-serv__p{color:rgba(255,255,255,.82)}

/* ---------- Metodologia ---------- */
.ce-etapas{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin-top:44px}
.ce-etapa{border-top:2px solid var(--blue-600);padding-top:18px}
.ce-etapa__num{font:var(--type-data);color:var(--blue-600)}
.ce-etapa__t{font:var(--type-h5);font-size:18px;color:var(--text-strong);margin-top:10px}
.ce-etapa__d{font:var(--type-body-sm);font-size:13.5px;color:var(--text-muted);margin-top:8px}

/* ---------- Cierre oscuro ---------- */
.ce-cierre{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.ce-cierre h2{font:var(--type-h2);color:#fff}
.ce-cierre__lista{display:flex;flex-direction:column;gap:24px}
.ce-feature--on-deep .ce-feature__icono{background:rgba(255,255,255,.10);box-shadow:inset 0 0 0 1px var(--border-on-deep);color:#fff}
.ce-feature--on-deep .ce-feature__titulo{color:#fff}
.ce-feature--on-deep .ce-feature__texto{color:var(--text-on-deep-muted)}

/* ---------- Contacto ---------- */
.ce-contacto{position:relative;margin-top:-84px;padding-top:84px;background:var(--surface-deep)}
.ce-contacto__cuerpo{padding-top:72px;padding-bottom:96px}
.ce-contacto__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:start}
.ce-contacto__t{font:var(--type-h1);color:#fff;margin-top:18px}
.ce-contacto__p{font:var(--type-body-lg);color:var(--text-on-deep-muted);margin-top:18px;max-width:440px}
.ce-contacto__ventajas{display:flex;flex-direction:column;gap:22px;margin-top:40px}
.ce-contacto__correo{display:inline-flex;align-items:center;gap:10px;margin-top:32px;font:var(--type-ui);font-size:15px;color:#fff}
.ce-contacto__correo:hover{color:var(--blue-300)}
.ce-contacto__foto{aspect-ratio:16/9;margin-top:40px}

/* ---------- Formulario ---------- */
.ce-form__caja{padding:32px}
.ce-form{display:flex;flex-direction:column;gap:18px}
.ce-form__par{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ce-form__trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ce-form__nota{font:var(--type-body-sm);font-size:12.5px;color:var(--text-muted)}
.ce-form__error{font:var(--type-body-sm);color:var(--red-500);background:#fdf1f0;border:1px solid var(--red-500);border-radius:var(--radius-field);padding:12px 16px;margin-bottom:18px}
.ce-campo{display:flex;flex-direction:column;gap:8px}
.ce-campo__label{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}
.ce-campo__req{color:var(--blue-600)}
.ce-campo__input{height:48px;padding:0 16px;font:var(--type-body);font-size:15px;color:var(--text-strong);background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-field);outline:none;width:100%;transition:border-color var(--dur-hover) var(--ease-standard),box-shadow var(--dur-hover) var(--ease-standard)}
.ce-campo__input:focus{border-color:var(--border-accent);box-shadow:0 0 0 3px rgba(46,138,240,.18)}
.ce-campo__area{height:auto;padding:14px 16px;line-height:1.55;resize:vertical}
.ce-campo__select{position:relative;display:flex}
.ce-campo__select select{appearance:none;-webkit-appearance:none;padding-right:44px;cursor:pointer}
.ce-campo__flecha{position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--blue-600);display:inline-flex}
.ce-form__ok{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:40px 0}
.ce-form__ok-icono{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius-pill);background:var(--green-100);color:var(--green-700)}
.ce-form__ok h2{font:var(--type-h3);color:var(--text-strong)}
.ce-form__ok p{font:var(--type-body);color:var(--text-muted);max-width:420px}
.ce-footer__correo{font:var(--type-body-sm);color:rgba(255,255,255,.78)}

/* ---------- Responsive de paginas interiores ---------- */
@media (max-width:1180px){
  .ce-dir__grid,.ce-serv__grid{grid-template-columns:repeat(2,1fr)}
  .ce-etapas{grid-template-columns:repeat(3,1fr);gap:24px}
  .ce-pagehead h1{font-size:48px}
}
@media (max-width:860px){
  .ce-pagehead{margin-top:-72px;padding-top:72px}
  .ce-pagehead__cuerpo{padding-top:80px;padding-bottom:64px}
  .ce-pagehead h1{font-size:clamp(30px,8vw,40px)}
  .ce-dir__grid,.ce-serv__grid{grid-template-columns:1fr}
  .ce-etapas{grid-template-columns:1fr;gap:20px}
  .ce-cierre{grid-template-columns:1fr;gap:40px}
  .ce-contacto{margin-top:-72px;padding-top:72px}
  .ce-contacto__grid{grid-template-columns:1fr;gap:40px}
  .ce-contacto__foto{display:none}
  .ce-form__par{grid-template-columns:1fr}
  .ce-form__caja{padding:24px}
  .ce-dir__barra{gap:16px}
}
