/* ════════════════════════════════════════════════════════════════════
   EDITORIAL-INDUSTRIAL · JC Palets · 2026 · NARANJA DOMINANTE
   ────────────────────────────────────────────────────────────────────
   Tipografía editorial (Fraunces) + sans neutro (Geist) + mono técnico.
   Paleta naranja-tinta-papel: el naranja es protagonista de la marca.
   ════════════════════════════════════════════════════════════════════ */

:root {
  /* Paleta editorial-industrial */
  --paper: #F5F1E8;
  --paper-deep: #ECE6D7;
  --paper-light: #FAF7EE;
  --ink: #1a1a1a;
  --ink-soft: #2a2a2a;
  --cement: #6b6b6b;
  --cement-light: #9a9a9a;
  --bark: #3d2412;
  --rust: #7A3200;
  --ember: #C05000;
  --amber: #EF9F27;
  --cream-accent: #FAEEDA;
  --blueprint: #1f4459;
  --line: rgba(26,26,26,0.16);
  --line-soft: rgba(26,26,26,0.08);
  --line-strong: rgba(26,26,26,0.4);

  --serif: 'Fraunces', 'Times New Roman', serif;
  --sans: 'Geist', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --mono: 'Geist Mono', 'JetBrains Mono', 'Menlo', monospace;
}

/* ──── Base ──── */
body {
  font-family: var(--sans);
  background: var(--paper);
  color: var(--ink);
  font-feature-settings: 'ss01', 'cv11';
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  letter-spacing: -0.005em;
  font-size: 17px;
  line-height: 1.6;
}

img { max-width: 100%; height: auto; }

/* ──── Tipografías de marca ──── */
.ed-kicker {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ember);
  display: inline-block;
}
.ed-kicker.ink { color: var(--ink); }
.ed-kicker.cement { color: var(--cement); }

.ed-mono { font-family: var(--mono); letter-spacing: -0.01em; }

.ed-h2 {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(38px, 5.5vw, 82px);
  line-height: 0.98;
  letter-spacing: -0.028em;
  color: var(--ink);
  font-variation-settings: 'opsz' 96, 'SOFT' 30, 'WONK' 0;
  max-width: 18ch;
}
.ed-h2 em {
  font-style: italic;
  font-weight: 400;
  color: var(--ember);
  font-variation-settings: 'opsz' 144, 'SOFT' 80, 'WONK' 1;
}

/* ════════════════════════════════════════
   1 ·  HERO EDITORIAL
   ════════════════════════════════════════ */
.ed-hero {
  position: relative;
  min-height: 100vh;
  background: var(--paper);
  padding: 9rem 6vw 6rem;
  overflow: hidden;
  border-bottom: 1px solid var(--ink);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Línea técnica decorativa */
.ed-hero::before {
  content: '';
  position: absolute;
  top: 6.5rem;
  left: 6vw;
  right: 6vw;
  height: 1px;
  background: var(--line);
}

/* Esquinas blueprint */
.ed-hero-corner {
  position: absolute;
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--ink);
  z-index: 5;
}
.ed-hero-corner.tl { top: 5.4rem; left: calc(6vw - 9px); border-right: 0; border-bottom: 0; }
.ed-hero-corner.tr { top: 5.4rem; right: calc(6vw - 9px); border-left: 0; border-bottom: 0; }

/* Imagen del patio: floating, oblicua, multiply para que se integre */
.ed-hero-image {
  position: absolute;
  top: 8rem;
  right: 6vw;
  width: 38vw;
  max-width: 620px;
  height: 64vh;
  max-height: 720px;
  z-index: 1;
  overflow: hidden;
  filter: contrast(1.04);
}
.ed-hero-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(245,241,232,0) 30%, rgba(245,241,232,0.4) 80%, var(--paper) 100%);
  pointer-events: none;
}
.ed-hero-image img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  mix-blend-mode: multiply;
}

/* Contenido del hero — z-index encima de imagen */
.ed-hero-content { position: relative; z-index: 3; max-width: 1400px; margin: 0 auto; width: 100%; }

.ed-hero-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: clamp(3rem, 6vw, 5.5rem);
  flex-wrap: wrap;
  gap: 1rem;
}
.ed-hero-meta .ed-kicker { color: var(--ink); font-size: 12px; }
.ed-hero-meta .nima-spec {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.ed-hero-meta .nima-spec strong { color: var(--ember); font-weight: 600; margin-left: 0.5rem; }

/* Titular gigante */
.ed-hero-title {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(54px, 10.5vw, 168px);
  line-height: 0.86;
  letter-spacing: -0.045em;
  color: var(--ink);
  font-variation-settings: 'opsz' 144, 'SOFT' 25, 'WONK' 0;
  margin: 0 0 clamp(2.5rem, 5vw, 4.5rem);
  max-width: 16ch;
  text-wrap: balance;
}
.ed-hero-title em {
  font-style: italic;
  font-weight: 400;
  color: var(--ember);
  font-variation-settings: 'opsz' 144, 'SOFT' 100, 'WONK' 1;
}
.ed-hero-title .line { display: block; }
.ed-hero-title .line.indent { padding-left: clamp(40px, 6vw, 110px); }

/* Bloque inferior: CTA + teléfono */
.ed-hero-footer {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3rem;
  align-items: end;
  max-width: 1400px;
  margin: 0 auto;
  width: 100%;
}
.ed-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

/* Botones industriales */
.btn-ember {
  display: inline-flex; align-items: center; gap: 12px;
  background: var(--ink); color: var(--paper);
  padding: 18px 28px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--ink);
  border-radius: 0;
  transition: all 0.35s cubic-bezier(.2,.7,.3,1);
  position: relative;
  overflow: hidden;
}
.btn-ember::after {
  content: ''; position: absolute; inset: 0;
  background: var(--ember);
  transform: translateY(101%);
  transition: transform 0.35s cubic-bezier(.2,.7,.3,1);
  z-index: -1;
}
.btn-ember:hover { transform: translateY(-2px); border-color: var(--ember); }
.btn-ember:hover::after { transform: translateY(0); }
.btn-ember .arrow { transition: transform 0.3s ease; }
.btn-ember:hover .arrow { transform: translateX(4px); }

.btn-ghost {
  display: inline-flex; align-items: center; gap: 12px;
  background: transparent; color: var(--ink);
  padding: 18px 28px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--ink);
  transition: all 0.35s cubic-bezier(.2,.7,.3,1);
}
.btn-ghost:hover { background: var(--ink); color: var(--paper); transform: translateY(-2px); }

/* Bloque del teléfono — clave */
.ed-hero-call {
  text-align: right;
  font-family: var(--mono);
  border-left: 1px solid var(--line);
  padding-left: 2.5rem;
}
.ed-hero-call .ed-kicker { display: block; margin-bottom: 0.6rem; text-align: right; color: var(--cement); }
.ed-phone {
  display: block;
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(22px, 2.4vw, 36px);
  font-variation-settings: 'opsz' 96, 'SOFT' 20;
  color: var(--ink);
  text-decoration: none;
  letter-spacing: -0.025em;
  line-height: 1;
  margin-bottom: 0.7rem;
  transition: color 0.2s ease;
}
.ed-phone:hover { color: var(--ember); }
.ed-mail {
  display: block;
  font-size: 13px;
  color: var(--cement);
  text-decoration: none;
  letter-spacing: 0.03em;
}
.ed-mail:hover { color: var(--ink); }

/* Ticker industrial al fondo */
.ed-hero-ticker {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 14px 0;
  display: flex;
  gap: 0;
  white-space: nowrap;
  overflow: hidden;
}
.ed-hero-ticker-track {
  display: flex;
  gap: 3.5rem;
  animation: ed-tape 36s linear infinite;
  flex-shrink: 0;
  padding-left: 3.5rem;
}
.ed-hero-ticker-track span::before { content: '·'; color: var(--ember); padding-right: 1rem; opacity: 0.9; }
@keyframes ed-tape { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ════════════════════════════════════════
   2 ·  SERVICIOS — manifiesto numerado
   ════════════════════════════════════════ */
.ed-services {
  background: var(--paper);
  padding: clamp(5rem, 9vw, 9rem) 6vw;
  border-bottom: 1px solid var(--ink);
  position: relative;
}

.ed-section-head {
  max-width: 1400px; margin: 0 auto clamp(3.5rem, 6vw, 6rem);
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 3rem;
  align-items: end;
}
.ed-section-head .head-meta { padding-top: 0.4rem; }
.ed-section-head .head-meta .ed-kicker { display: block; margin-bottom: 0.8rem; }
.ed-section-head .head-meta .index {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--cement);
  letter-spacing: 0.08em;
  margin-bottom: 0.4rem;
}

.ed-services-grid {
  max-width: 1400px; margin: 0 auto;
  list-style: none; padding: 0;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 0;
  border-top: 1px solid var(--ink);
}
.ed-service {
  grid-column: span 4;
  padding: 2.5rem 2.5rem 3rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  position: relative;
  background: var(--paper);
  transition: background 0.4s ease;
  display: flex;
  flex-direction: column;
  min-height: 320px;
}
.ed-services-grid > li:nth-child(3n) { border-right: 0; }
.ed-services-grid > li:nth-last-child(-n+3) { border-bottom: 0; }

/* Algunas cards más altas (asimetría intencional) */
.ed-service.tall { min-height: 460px; }

/* Servicio destacado */
.ed-service.featured {
  grid-column: span 8;
  background: var(--ink);
  color: var(--paper);
}
.ed-service.featured .ed-num { color: var(--amber); }
.ed-service.featured h3 { color: var(--paper); }
.ed-service.featured p { color: rgba(245,241,232,0.78); }
.ed-service.featured .ed-arrow-link { color: var(--amber); border-color: var(--amber); }

.ed-service:hover { background: var(--paper-deep); }
.ed-service.featured:hover { background: var(--bark); }

.ed-service .ed-num {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--ember);
  letter-spacing: 0.1em;
  margin-bottom: 2rem;
  display: block;
}

.ed-service h3 {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(26px, 2.6vw, 38px);
  line-height: 1.02;
  letter-spacing: -0.022em;
  color: var(--ink);
  font-variation-settings: 'opsz' 72, 'SOFT' 30;
  margin: 0 0 1rem;
  max-width: 14ch;
}
.ed-service p {
  font-size: 15px;
  line-height: 1.55;
  color: var(--cement);
  margin: 0 0 auto;
  max-width: 38ch;
}
.ed-arrow-link {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--ink);
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: padding 0.3s ease;
}
.ed-arrow-link:hover { padding-right: 4px; }
.ed-arrow-link .ar { transition: transform 0.3s ease; }
.ed-arrow-link:hover .ar { transform: translateX(6px); }

/* ════════════════════════════════════════
   3 ·  DATOS · números enormes (Por qué)
   ════════════════════════════════════════ */
.ed-stats {
  background: var(--paper);
  padding: clamp(5rem, 9vw, 9rem) 6vw;
  border-bottom: 1px solid var(--ink);
  position: relative;
}
.ed-stats-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.ed-stat {
  grid-column: span 3;
  padding: 3rem 1.75rem 2.5rem;
  border-right: 1px solid var(--line);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 340px;
  overflow: hidden;
}
.ed-stats-grid > .ed-stat:last-child { border-right: 0; }

.ed-stat .ed-num-tag {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--cement);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}
.ed-stat .big {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(56px, 6.5vw, 104px);
  line-height: 0.86;
  letter-spacing: -0.04em;
  color: var(--ink);
  font-variation-settings: 'opsz' 144, 'SOFT' 25, 'WONK' 0;
  margin: 1.5rem 0;
  display: block;
  word-break: break-word;
  hyphens: none;
}
.ed-stat .big.italic { font-style: italic; color: var(--ember); font-variation-settings: 'opsz' 144, 'SOFT' 80, 'WONK' 1; font-size: clamp(64px, 7.5vw, 120px); }
.ed-stat .big.mono {
  font-family: var(--mono);
  font-size: clamp(22px, 2.4vw, 32px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin-top: 2.2rem;
  word-break: break-all;
}
/* Número con muchos dígitos como 124.350 → un punto más pequeño */
.ed-stat .big.num-long { font-size: clamp(40px, 5vw, 80px); }
.ed-stat .caption {
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.4;
  color: var(--cement);
  max-width: 26ch;
}
.ed-stat .caption strong { color: var(--ink); font-weight: 500; }

/* Headline editorial encima de stats */
.ed-stats-head {
  max-width: 1400px; margin: 0 auto clamp(3.5rem, 6vw, 5.5rem);
  display: grid; grid-template-columns: 1fr 1.6fr;
  gap: 3rem; align-items: end;
}
.ed-stats-head .lead {
  font-family: var(--serif); font-style: italic;
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.45;
  color: var(--cement);
  max-width: 38ch;
}

/* ════════════════════════════════════════
   4 ·  Override de #nosotros (sobre)
   ════════════════════════════════════════ */
#nosotros {
  background: var(--paper-deep);
  padding: clamp(5rem, 9vw, 9rem) 6vw !important;
  border-bottom: 1px solid var(--ink);
}
#nosotros .container { max-width: 1400px; }
#nosotros .section-label { display: none; }
#nosotros .about-grid { grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 5vw, 5rem); align-items: start; }
#nosotros .section-title {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(38px, 5vw, 72px);
  line-height: 0.98;
  letter-spacing: -0.025em;
  color: var(--ink);
  font-variation-settings: 'opsz' 96, 'SOFT' 30, 'WONK' 0;
  margin-bottom: 2rem;
  max-width: 14ch;
}
#nosotros .about-text p {
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin-bottom: 1.1rem;
}
#nosotros .about-text p strong { color: var(--ink); font-weight: 600; }
#nosotros .btn-primary {
  background: var(--ink); color: var(--paper);
  padding: 16px 26px;
  font-family: var(--mono);
  font-size: 12px; font-weight: 500;
  letter-spacing: 0.1em; text-transform: uppercase;
  border-radius: 0;
  border: 1px solid var(--ink);
  margin-top: 1.5rem !important;
}
#nosotros .btn-primary:hover { background: var(--ember); border-color: var(--ember); transform: translateY(-2px); }
#nosotros .about-stats {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0;
  margin-top: 2.5rem !important;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
#nosotros .stat-card {
  background: transparent !important;
  border-radius: 0 !important;
  border: 0 !important;
  border-right: 1px solid var(--line) !important;
  border-bottom: 1px solid var(--line) !important;
  padding: 1.75rem 1.5rem !important;
  text-align: left !important;
}
#nosotros .stat-card:hover { background: var(--paper) !important; transform: none !important; box-shadow: none !important; }
#nosotros .stat-num {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(40px, 4vw, 56px) !important;
  color: var(--ink) !important;
  letter-spacing: -0.03em !important;
  font-variation-settings: 'opsz' 96, 'SOFT' 30 !important;
}
#nosotros .stat-label {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  color: var(--cement) !important;
  margin-top: 0.65rem !important;
}
#nosotros .about-media img { border-radius: 0; box-shadow: none; border: 1px solid var(--line); filter: contrast(1.02); }

/* ════════════════════════════════════════
   5 ·  Override certificaciones
   ════════════════════════════════════════ */
.cert-section {
  background: var(--ink) !important;
  padding: clamp(5rem, 9vw, 9rem) 6vw !important;
  border-bottom: 1px solid var(--ink);
  color: var(--paper);
}
.cert-section .container { max-width: 1400px; }
.cert-section .section-label { font-family: var(--mono) !important; font-size: 11px !important; letter-spacing: 0.14em !important; color: var(--amber) !important; }
.cert-section .section-label::before { background: var(--amber) !important; }
.cert-section .section-title {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(38px, 5vw, 72px) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.025em !important;
  color: var(--paper) !important;
  font-variation-settings: 'opsz' 96, 'SOFT' 30 !important;
  max-width: 16ch;
}
.cert-section .section-sub { color: rgba(245,241,232,0.7) !important; font-size: 17px !important; font-family: var(--sans) !important; }
.cert-grid { grid-template-columns: repeat(3, 1fr) !important; gap: 0 !important; border-top: 1px solid rgba(245,241,232,0.18); border-left: 1px solid rgba(245,241,232,0.18); margin-top: 2.5rem; }
.cert-card {
  background: transparent !important;
  border-radius: 0 !important;
  border: 0 !important;
  border-right: 1px solid rgba(245,241,232,0.18) !important;
  border-bottom: 1px solid rgba(245,241,232,0.18) !important;
  padding: 2.25rem 2rem 2.5rem !important;
  backdrop-filter: none !important;
}
.cert-card:hover { background: rgba(192,80,0,0.08) !important; transform: none !important; border-color: rgba(245,241,232,0.18) !important; }
.cert-card .cert-tag {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  color: var(--amber) !important;
}
.cert-card .cert-code {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(28px, 2.6vw, 36px) !important;
  font-variation-settings: 'opsz' 72 !important;
  letter-spacing: -0.02em !important;
  color: var(--paper) !important;
}
.cert-card p { color: rgba(245,241,232,0.7) !important; font-family: var(--sans) !important; font-size: 14.5px !important; line-height: 1.55 !important; }
.cert-card-icon { display: none; }

.cert-images { grid-template-columns: repeat(3, 1fr) !important; gap: 0 !important; margin-top: 0 !important; border-bottom: 1px solid rgba(245,241,232,0.18); border-left: 1px solid rgba(245,241,232,0.18); }
.cert-image-card { border-radius: 0 !important; aspect-ratio: 4/3; border-right: 1px solid rgba(245,241,232,0.18); }
.cert-image-card:hover { transform: none !important; }
.cert-image-card .cap { background: linear-gradient(to top, rgba(0,0,0,0.85), transparent) !important; font-family: var(--mono) !important; font-size: 11px !important; letter-spacing: 0.14em !important; }

/* ════════════════════════════════════════
   6 ·  Override #contador (palets vendidos)
   ════════════════════════════════════════ */
#contador {
  background: var(--ember) !important;
  background: linear-gradient(180deg, var(--ember) 0%, var(--rust) 100%) !important;
  padding: clamp(5rem, 8vw, 8rem) 6vw !important;
  position: relative;
  border-bottom: 1px solid var(--ink);
}
#contador > div { max-width: 1400px !important; }
#contador h2 {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(40px, 6vw, 88px) !important;
  line-height: 0.96 !important;
  letter-spacing: -0.025em !important;
  font-variation-settings: 'opsz' 144, 'SOFT' 25 !important;
  margin-bottom: 0.6rem !important;
}
#contador h2 em { font-style: italic; color: var(--paper); font-variation-settings: 'opsz' 144, 'SOFT' 80, 'WONK' 1; }
#contador p { font-family: var(--sans) !important; font-size: 17px !important; opacity: 0.85; }
#contador > div > div[style*="font-size: 11px"] { font-family: var(--mono) !important; letter-spacing: 0.16em !important; color: rgba(245,241,232,0.85) !important; }
#contador > div > div[style*="display: flex"] { gap: 0 !important; margin-top: 3rem; border-top: 1px solid rgba(245,241,232,0.25); }
#contador > div > div > div[style*="background: rgba"] {
  background: transparent !important;
  border: 0 !important;
  border-right: 1px solid rgba(245,241,232,0.25) !important;
  border-radius: 0 !important;
  padding: 2.5rem 2rem !important;
  min-width: 0 !important;
  flex: 1;
  text-align: left !important;
}
#contador > div > div > div[style*="background: rgba"]:last-child { border-right: 0 !important; }
#contador > div > div > div > div[style*="font-size: 12px"] { color: rgba(245,241,232,0.7) !important; font-family: var(--mono) !important; letter-spacing: 0.14em !important; }
#contador > div > div > div > div[id^="contador-"] {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(64px, 9vw, 130px) !important;
  letter-spacing: -0.04em !important;
  line-height: 0.85 !important;
  font-variation-settings: 'opsz' 144, 'SOFT' 25 !important;
}
#contador > div > p[style*="font-size: 12px"] { font-family: var(--mono) !important; opacity: 0.6; }

/* ════════════════════════════════════════
   7 ·  Override #galeria
   ════════════════════════════════════════ */
#galeria { background: var(--paper-deep) !important; padding: clamp(5rem, 9vw, 9rem) 6vw !important; }
#galeria .container { max-width: 1400px; }
#galeria .section-label { font-family: var(--mono) !important; font-size: 11px !important; letter-spacing: 0.14em !important; }
#galeria .section-title {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(38px, 5vw, 72px) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.025em !important;
  font-variation-settings: 'opsz' 96, 'SOFT' 30 !important;
}
#galeria .section-sub { font-family: var(--sans) !important; font-size: 17px !important; color: var(--cement) !important; }
.galeria-grid { gap: 4px !important; }
.galeria-item { border-radius: 0 !important; box-shadow: none !important; border: 1px solid var(--line); }
.galeria-item:hover { transform: scale(1.04) !important; z-index: 3; }

/* ════════════════════════════════════════
   8 ·  Override #contacto
   ════════════════════════════════════════ */
#contacto { background: var(--paper) !important; padding: clamp(5rem, 9vw, 9rem) 6vw !important; border-bottom: 1px solid var(--ink); }
#contacto .container { max-width: 1400px; }
#contacto .section-label { font-family: var(--mono) !important; }
#contacto .section-title {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(38px, 5vw, 72px) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.025em !important;
  font-variation-settings: 'opsz' 96, 'SOFT' 30 !important;
}
#contacto .section-sub { font-family: var(--sans) !important; }
.contact-grid { grid-template-columns: 1fr 1fr !important; gap: 0 !important; border-top: 1px solid var(--ink); }
.contact-info { padding: 3rem 2.5rem 3rem 0; border-right: 1px solid var(--line); }
.contact-info h3, .form-wrap h3 {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(24px, 2.4vw, 32px) !important;
  letter-spacing: -0.02em !important;
  font-variation-settings: 'opsz' 72, 'SOFT' 30 !important;
}
.contact-icon { display: none; }
.contact-item { border-bottom: 1px solid var(--line-soft); padding: 1.25rem 0 !important; margin: 0 !important; }
.contact-item:last-of-type { border-bottom: 0; }
.contact-item strong { font-family: var(--mono) !important; font-size: 11px !important; letter-spacing: 0.14em !important; text-transform: uppercase; color: var(--cement); }
.contact-item p, .contact-item a { font-family: var(--sans) !important; font-size: 16px !important; color: var(--ink); }
.form-wrap { background: transparent !important; padding: 3rem 0 3rem 2.5rem !important; border-radius: 0 !important; border: 0 !important; box-shadow: none !important; }
.form-row label { font-family: var(--mono) !important; font-size: 11px !important; letter-spacing: 0.14em !important; text-transform: uppercase; color: var(--cement) !important; }
.form-row input, .form-row textarea, .form-row select { background: var(--paper-light); border: 1px solid var(--line) !important; border-radius: 0 !important; font-family: var(--sans) !important; }
.form-row input:focus, .form-row textarea:focus, .form-row select:focus { border-color: var(--ink) !important; box-shadow: none !important; }
.form-submit {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-radius: 0 !important;
  padding: 18px 32px !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  border: 1px solid var(--ink) !important;
}
.form-submit:hover { background: var(--ember) !important; border-color: var(--ember) !important; transform: translateY(-2px) !important; box-shadow: none !important; }
.map-wrap { border-radius: 0 !important; border: 1px solid var(--line) !important; box-shadow: none !important; }
.map-cta { background: var(--ink) !important; font-family: var(--mono) !important; letter-spacing: 0.1em !important; }
.nima-badge { background: transparent !important; border: 1px solid var(--ink) !important; border-radius: 0 !important; font-family: var(--mono) !important; font-size: 11px !important; letter-spacing: 0.14em !important; text-transform: uppercase; }

/* ════════════════════════════════════════
   9 ·  Override footer industrial
   ════════════════════════════════════════ */
footer {
  background: var(--ink) !important;
  color: rgba(245,241,232,0.55) !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.08em !important;
  padding: 4rem 6vw 2rem !important;
}
footer p { font-family: var(--mono); }
footer .footer-nima { background: rgba(239,159,39,0.1) !important; border: 1px solid rgba(239,159,39,0.4) !important; border-radius: 0 !important; font-family: var(--mono); }
.footer-links a { font-family: var(--mono) !important; font-size: 11px !important; letter-spacing: 0.14em !important; text-transform: uppercase; }

/* ════════════════════════════════════════
   10 ·  Nav override (mantenemos pero refinamos)
   ════════════════════════════════════════ */
nav { background: var(--ink) !important; height: 72px !important; }
.nav-links a { font-family: var(--mono) !important; font-size: 11px !important; letter-spacing: 0.14em !important; text-transform: uppercase; color: rgba(245,241,232,0.7) !important; }
.nav-links a:hover { color: var(--amber) !important; }
.btn-nav { background: var(--paper) !important; color: var(--ink) !important; border-radius: 0 !important; font-family: var(--mono) !important; font-size: 11px !important; letter-spacing: 0.1em !important; }
.btn-nav:hover { background: var(--amber) !important; }

/* ════════════════════════════════════════
   11 ·  Section labels uniformes (override refresh)
   ════════════════════════════════════════ */
.section-label {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  color: var(--ember) !important;
  font-weight: 500 !important;
}
.section-label::before { background: var(--ember) !important; width: 32px !important; height: 1.5px !important; }
.section-title {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  letter-spacing: -0.025em !important;
  font-variation-settings: 'opsz' 96, 'SOFT' 30 !important;
}
.section-sub { font-family: var(--sans) !important; }

/* ════════════════════════════════════════
   12 ·  Animaciones de entrada (staggered)
   ════════════════════════════════════════ */
@media (prefers-reduced-motion: no-preference) {
  .ed-hero-title .line { animation: ed-rise 1.1s cubic-bezier(.2,.7,.3,1) both; }
  .ed-hero-title .line:nth-child(1) { animation-delay: 0.08s; }
  .ed-hero-title .line:nth-child(2) { animation-delay: 0.22s; }
  .ed-hero-title .line:nth-child(3) { animation-delay: 0.36s; }
  .ed-hero-title .line:nth-child(4) { animation-delay: 0.5s; }
  .ed-hero-meta, .ed-hero-footer { animation: ed-fade 1s ease 0.7s both; }
  .ed-hero-image { animation: ed-fade-img 1.4s ease 0.2s both; }

  @keyframes ed-rise {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
  }
  @keyframes ed-fade {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
  }
  @keyframes ed-fade-img {
    from { opacity: 0; transform: scale(1.04); }
    to { opacity: 1; transform: scale(1); }
  }
}

/* ════════════════════════════════════════════════════════════
   14 ·  NARANJA DOMINANTE · más presencia de marca
   ════════════════════════════════════════════════════════════ */

/* Hero con franja superior naranja y borde inferior naranja */
.ed-hero {
  background: linear-gradient(180deg, var(--paper) 0%, var(--paper) 78%, var(--cream-accent) 100%);
  border-top: 6px solid var(--ember);
  border-bottom: 1px solid var(--ember);
}
.ed-hero::before { background: var(--ember); height: 1.5px; opacity: 0.5; }
.ed-hero-corner { border-color: var(--ember) !important; }
.ed-hero-meta .ed-kicker { color: var(--ember); }
.ed-hero-meta .nima-spec { color: var(--ink); border-left: 2px solid var(--ember); padding-left: 1rem; }
.ed-hero-meta .nima-spec strong { color: var(--ember); }

/* Ticker en naranja vivo en vez de tinta */
.ed-hero-ticker { background: var(--ember); color: var(--paper); }
.ed-hero-ticker-track span::before { color: var(--paper); }

/* Línea de stat (bordes naranjas) */
.ed-stats-grid { border-color: var(--ember); }
.ed-stat { border-right-color: rgba(192,80,0,0.25); }
.ed-stat .ed-num-tag { color: var(--ember); font-weight: 600; }
.ed-stat .big { color: var(--rust); }
.ed-stat .big.italic { color: var(--ember); }
.ed-stat .big.mono { color: var(--ember); }

/* Secciones con bordes naranjas separadoras */
.ed-services { border-bottom: 2px solid var(--ember); }
.ed-services::before {
  content: '';
  display: block;
  width: 80px;
  height: 4px;
  background: var(--ember);
  margin: 0 auto 3rem;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
.ed-services-grid { border-top-color: var(--ember); border-top-width: 2px; }
.ed-service { border-right-color: rgba(192,80,0,0.18); border-bottom-color: rgba(192,80,0,0.18); }
.ed-service .ed-num { color: var(--ember); font-weight: 600; }

/* Featured: ahora NARANJA en vez de tinta */
.ed-service.featured {
  background: linear-gradient(135deg, var(--ember) 0%, var(--rust) 100%) !important;
  color: var(--paper) !important;
}
.ed-service.featured .ed-num { color: var(--amber) !important; }
.ed-service.featured h3 { color: var(--paper) !important; }
.ed-service.featured p { color: rgba(245,241,232,0.88) !important; }
.ed-service.featured .ed-arrow-link { color: var(--amber) !important; border-color: var(--amber) !important; }
.ed-service.featured:hover { background: linear-gradient(135deg, var(--rust) 0%, var(--bark) 100%) !important; }

/* Service cards hover: naranja muy sutil */
.ed-service:not(.featured):hover { background: var(--cream-accent); }
.ed-service:not(.featured):hover .ed-num { color: var(--rust); }

/* Datos section: fondo crema-naranja sutil */
.ed-stats { background: linear-gradient(180deg, var(--paper) 0%, var(--cream-accent) 100%); border-top: 2px solid var(--ember); border-bottom: 2px solid var(--ember); }

/* Headers de sección con kicker naranja más visible */
.ed-h2 em, .section-title em { color: var(--ember) !important; font-style: italic; }

/* ─── Sección NOSOTROS con acento naranja ─── */
#nosotros { background: var(--cream-accent) !important; border-top: 2px solid var(--ember); border-bottom: 2px solid var(--ember); }
#nosotros .stat-num { color: var(--ember) !important; }
#nosotros .about-stats { border-top-color: var(--ember) !important; border-left-color: var(--ember) !important; }
#nosotros .stat-card { border-right-color: rgba(192,80,0,0.2) !important; border-bottom-color: rgba(192,80,0,0.2) !important; }
#nosotros .stat-card:hover { background: var(--paper) !important; }

/* ─── Sección CERTIFICACIONES: deja la sección dark pero refuerza acentos naranjas ─── */
.cert-section { border-top: 4px solid var(--ember); border-bottom: 4px solid var(--ember); }
.cert-section .section-title em { color: var(--amber) !important; }
.cert-card:hover { background: rgba(192,80,0,0.12) !important; }

/* ─── Galería con borde superior naranja ─── */
#galeria { border-top: 2px solid var(--ember); border-bottom: 2px solid var(--ember); }

/* ─── Contacto: bordes naranjas, submit naranja ─── */
#contacto { border-top: 2px solid var(--ember); border-bottom: 2px solid var(--ember); }
#contacto .contact-grid { border-top-color: var(--ember) !important; }
#contacto .section-title em { color: var(--ember) !important; }
.form-submit { background: var(--ember) !important; border-color: var(--ember) !important; }
.form-submit:hover { background: var(--rust) !important; border-color: var(--rust) !important; }

/* ─── Botón ember ahora ARRANCA naranja en lugar de tinta (más naranja desde el inicio) ─── */
.btn-ember { background: var(--ember); border-color: var(--ember); color: var(--paper); }
.btn-ember::after { background: var(--rust); }
.btn-ember:hover { border-color: var(--rust); color: var(--paper); }

/* ─── Nav: layout uniforme idéntico a la home en TODAS las páginas ─── */
nav {
  background: var(--ink) !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 0 2.5rem !important;
  height: 72px !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 100 !important;
  box-shadow: 0 2px 12px rgba(0,0,0,.25) !important;
  border-bottom: 2px solid var(--ember) !important;
}
nav > a { display: inline-flex; align-items: center; }
nav a img { height: 52px !important; width: auto !important; }
.nav-links {
  display: flex !important;
  gap: 2rem !important;
  list-style: none !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
  background: transparent !important;
  flex-direction: row !important;
  max-height: none !important;
  overflow: visible !important;
}
.nav-links li { padding: 0 !important; border: 0 !important; }
.nav-links li.has-dropdown { position: relative !important; }
.btn-nav {
  background: var(--ember) !important;
  color: var(--paper) !important;
  padding: 10px 22px !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  border: 1px solid var(--ember) !important;
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
}
.btn-nav:hover { background: var(--amber) !important; color: var(--ink) !important; border-color: var(--amber) !important; }
/* Hamburguesa: SOLO en mobile */
.nav-toggle {
  display: none !important;
  background: none !important;
  border: 0 !important;
  color: #fff !important;
  font-size: 26px !important;
  cursor: pointer !important;
  padding: 0 !important;
  line-height: 1 !important;
}
@media (max-width: 1024px) {
  nav { padding: 0 1.25rem !important; height: 64px !important; }
  nav a img { height: 44px !important; }
  .nav-links {
    position: absolute !important;
    top: 64px !important;
    left: 0 !important;
    right: 0 !important;
    background: var(--ink) !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 0.5rem 1.25rem 1rem !important;
    border-top: 1px solid rgba(245,241,232,0.1) !important;
    display: none !important;
    max-height: calc(100vh - 64px) !important;
    overflow-y: auto !important;
    align-items: stretch !important;
  }
  .nav-links.open { display: flex !important; }
  .nav-links li { padding: 0.4rem 0 !important; border-bottom: 1px solid rgba(245,241,232,0.06) !important; width: 100% !important; }
  .nav-links li:last-child { border-bottom: 0 !important; }
  .nav-toggle { display: flex !important; align-items: center !important; justify-content: center !important; min-width: 44px !important; min-height: 44px !important; }
  .btn-nav { display: none !important; }
  /* Dropdown en mobile: siempre desplegado debajo */
  .has-dropdown .dropdown-menu { position: static !important; box-shadow: none !important; padding: 0.25rem 0 0.5rem 1rem !important; }
}

/* ════════════════════════════════════════════════════════════
   Dropdown menus UNIFORMES en TODAS las páginas
   Lógica completa: posición, mostrar/ocultar + estilo + a11y
   Todas las reglas con !important para sobreescribir inline CSS
   ════════════════════════════════════════════════════════════ */

/* Posición y comportamiento por defecto en desktop */
.nav-links li.has-dropdown { position: relative !important; }
.has-dropdown > a.dropdown-toggle { cursor: pointer !important; display: inline-flex !important; align-items: center !important; gap: 6px !important; }
.has-dropdown > a.dropdown-toggle::after,
.dropdown-toggle::after { content: "▾" !important; font-size: 10px !important; opacity: 0.85 !important; color: var(--amber) !important; }

/* Estado oculto / visible (controlado por hover + .open de JS) */
.dropdown-menu {
  display: none !important;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  list-style: none !important;
  margin: 0 !important;
  background: var(--ink) !important;
  border: 1px solid var(--ember) !important;
  border-top: 2px solid var(--ember) !important;
  border-radius: 0 !important;
  box-shadow: 0 14px 36px rgba(0,0,0,0.35) !important;
  padding: 0.4rem 0 !important;
  min-width: 250px !important;
  z-index: 200 !important;
  animation: jcpDropFade .18s ease-out !important;
}
.has-dropdown:hover > .dropdown-menu,
.has-dropdown:focus-within > .dropdown-menu,
.has-dropdown.open > .dropdown-menu { display: block !important; }
@keyframes jcpDropFade {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Items dentro del dropdown */
.dropdown-menu li { border: 0 !important; padding: 0 !important; margin: 0 !important; display: block !important; width: 100% !important; }
.dropdown-menu a {
  display: block !important;
  padding: 12px 20px !important;
  color: var(--paper) !important;
  background: transparent !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  border-left: 2px solid transparent !important;
  white-space: nowrap !important;
  transition: padding-left .2s ease, background .2s ease, color .2s ease !important;
}
.dropdown-menu a:hover,
.dropdown-menu a:focus,
.dropdown-menu a.active {
  background: var(--ember) !important;
  color: var(--paper) !important;
  border-left-color: var(--amber) !important;
  padding-left: 26px !important;
}

/* Móvil: dropdowns desplegados dentro de la nav abierta */
@media (max-width: 1024px) {
  .has-dropdown { width: 100% !important; }
  .has-dropdown > a.dropdown-toggle { width: 100% !important; justify-content: space-between !important; }
  .nav-links .dropdown-menu {
    position: static !important;
    display: none !important;
    border: 0 !important;
    border-top: 1px solid rgba(245,241,232,0.08) !important;
    box-shadow: none !important;
    background: rgba(0,0,0,0.3) !important;
    padding: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
    animation: none !important;
  }
  .has-dropdown.open > .dropdown-menu { display: block !important; }
  .nav-links .dropdown-menu a { padding-left: 32px !important; font-size: 13px !important; }
  /* En móvil el :hover no se usa; gana .open de JS */
  .has-dropdown:hover > .dropdown-menu { display: none !important; }
  .has-dropdown.open:hover > .dropdown-menu,
  .has-dropdown.open > .dropdown-menu { display: block !important; }
}

/* ─── Footer: línea naranja superior ─── */
footer { border-top: 4px solid var(--ember) !important; }

/* ─── Section labels más visibles (naranja brand) ─── */
.section-label { color: var(--ember) !important; font-weight: 600 !important; }
.section-label::before { background: var(--ember) !important; }
.ed-kicker { color: var(--ember); }

/* ════════════════════════════════════════════════════════════
   HERO ROTATOR · titular del hero rota entre 3 frases (30s)
   ════════════════════════════════════════════════════════════ */
.ed-hero-rotator {
  position: relative;
  display: grid;
  margin: 0 0 clamp(2.5rem, 5vw, 4.5rem);
}
.ed-hr-slide {
  grid-area: 1 / 1;
  margin: 0 !important;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 1s cubic-bezier(.2,.7,.3,1), transform 1s cubic-bezier(.2,.7,.3,1);
  pointer-events: none;
}
.ed-hr-slide.active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
/* Desactivar la animación per-line de entrada en los slides NO iniciales
   (ya tenían un fadeInUp que solo queremos para el primero al load) */
.ed-hr-slide:not([data-idx="0"]) .line { animation: none !important; }

/* Dots del hero — pequeños y discretos abajo del título */
.ed-hero-dots {
  display: flex;
  gap: 10px;
  margin-top: 1.5rem;
  grid-area: 2 / 1;
  justify-self: start;
}
.ed-hero-dot {
  width: 44px;
  height: 3px;
  border: 0;
  background: rgba(26,26,26,0.18);
  padding: 0;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  border-radius: 0;
  transition: background 0.25s ease;
}
.ed-hero-dot:hover { background: rgba(26,26,26,0.32); }
.ed-hero-dot .dot-fill {
  display: block;
  height: 100%;
  width: 0;
  background: var(--ember);
}
.ed-hero-dot.active { background: rgba(26,26,26,0.1); }
.ed-hero-dot.active .dot-fill {
  width: 100%;
  animation: ed-hero-progress 30s linear forwards;
}
@keyframes ed-hero-progress {
  from { width: 0; }
  to { width: 100%; }
}

@media (max-width: 640px) {
  .ed-hero-dot { width: 32px; height: 2px; }
}

/* ════════════════════════════════════════════════════════════
   MANIFIESTO · carrusel editorial de citas (rota cada 30s) [obsoleto]
   ════════════════════════════════════════════════════════════ */
.ed-manifest {
  background: var(--ink);
  color: var(--paper);
  padding: clamp(5rem, 9vw, 9rem) 6vw;
  border-top: 4px solid var(--ember);
  border-bottom: 4px solid var(--ember);
  position: relative;
  overflow: hidden;
}
.ed-manifest::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(192,80,0,0.10) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(239,159,39,0.06) 0%, transparent 50%);
  pointer-events: none;
}
.ed-manifest-inner {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  text-align: center;
}
.ed-manifest .ed-kicker {
  color: var(--amber) !important;
  margin-bottom: clamp(3rem, 5vw, 4rem);
  display: block;
}
.ed-manifest-stage {
  position: relative;
  min-height: clamp(220px, 26vw, 380px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ed-quote {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.9s cubic-bezier(.2,.7,.3,1), transform 0.9s cubic-bezier(.2,.7,.3,1);
  pointer-events: none;
  margin: 0;
  padding: 0 1rem;
}
.ed-quote.active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.ed-quote .quote-mark {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(80px, 11vw, 160px);
  line-height: 0.6;
  color: var(--ember);
  display: block;
  margin-bottom: 0.5rem;
  font-variation-settings: 'opsz' 144, 'SOFT' 100, 'WONK' 1;
}
.ed-quote-text {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(28px, 4.5vw, 68px);
  line-height: 1.12;
  letter-spacing: -0.025em;
  color: var(--paper);
  max-width: 22ch;
  margin: 0;
  font-variation-settings: 'opsz' 144, 'SOFT' 30, 'WONK' 0;
  text-wrap: balance;
}
.ed-quote-text em {
  font-style: italic;
  color: var(--amber);
  font-variation-settings: 'opsz' 144, 'SOFT' 80, 'WONK' 1;
}

.ed-manifest-dots {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: clamp(2.5rem, 4vw, 3.5rem);
}
.ed-dot {
  width: 56px;
  height: 4px;
  border: 0;
  background: rgba(245,241,232,0.25);
  padding: 0;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  border-radius: 0;
  transition: background 0.25s ease;
}
.ed-dot:hover { background: rgba(245,241,232,0.45); }
.ed-dot-fill {
  display: block;
  height: 100%;
  width: 0;
  background: var(--ember);
  transition: none;
}
.ed-dot.active { background: rgba(245,241,232,0.15); }
.ed-dot.active .ed-dot-fill {
  width: 100%;
  animation: ed-dot-progress 30s linear forwards;
}
@keyframes ed-dot-progress {
  from { width: 0; }
  to { width: 100%; }
}

/* Responsive */
@media (max-width: 640px) {
  .ed-manifest { padding: 4rem 1.5rem; }
  .ed-manifest-stage { min-height: 200px; }
  .ed-quote-text { font-size: clamp(22px, 7vw, 30px); max-width: 100%; }
  .ed-dot { width: 36px; height: 3px; }
}

/* ════════════════════════════════════════════════════════════
   BOTONES GLOBALES · contraste garantizado en TODA la web
   ════════════════════════════════════════════════════════════ */

/* .btn-primary: naranja brand con texto cream — siempre visible */
.btn-primary, a.btn-primary, button.btn-primary, .btn:not(.btn-outline):not(.btn-ghost):not(.btn-ember):not(.btn-nav) {
  background: var(--ember) !important;
  color: var(--paper) !important;
  border: 1px solid var(--ember) !important;
  border-radius: 0 !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 16px 28px !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  cursor: pointer;
  transition: all 0.25s ease !important;
  box-shadow: 0 4px 14px rgba(192,80,0,0.25);
}
.btn-primary:hover, a.btn-primary:hover, button.btn-primary:hover, .btn:hover {
  background: var(--rust) !important;
  border-color: var(--rust) !important;
  color: var(--paper) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(192,80,0,0.4);
}

/* .btn-outline: borde brand con texto brand — siempre visible */
.btn-outline, a.btn-outline {
  background: transparent !important;
  color: var(--ember) !important;
  border: 1.5px solid var(--ember) !important;
  border-radius: 0 !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 14.5px 26px !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  transition: all 0.25s ease !important;
}
.btn-outline:hover, a.btn-outline:hover {
  background: var(--ember) !important;
  color: var(--paper) !important;
  transform: translateY(-2px);
}

/* Excepción: dentro del hero (fondo naranja) el btn-outline va en cream */
.hero-page .btn-outline, .hero-art .btn-outline, section.hero .btn-outline, .ed-hero .btn-outline {
  color: var(--paper) !important;
  border-color: rgba(245,241,232,0.6) !important;
}
.hero-page .btn-outline:hover, .hero-art .btn-outline:hover, section.hero .btn-outline:hover, .ed-hero .btn-outline:hover {
  background: var(--paper) !important;
  color: var(--ember) !important;
  border-color: var(--paper) !important;
}

/* Excepción: dentro del hero, el btn-primary va en tinta para contraste */
.hero-page .btn-primary, .hero-art .btn-primary, section.hero .btn-primary, .ed-hero .btn-primary {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--paper) !important;
}
.hero-page .btn-primary:hover, .hero-art .btn-primary:hover, section.hero .btn-primary:hover {
  background: var(--paper) !important;
  color: var(--ink) !important;
  border-color: var(--paper) !important;
}

/* ════════════════════════════════════════════════════════════
   15 ·  FALLBACKS LEGACY · para páginas que NO tienen .ed-*
        (servicios, zonas, blog, sectores)
   ════════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────────────
   Hero legacy COMPLETO: cubre TODAS las variantes reales
   .hero-page (datos, glosario, etc.)
   .hero-page.hero-with-img (servicios)
   .hero-art (blog posts)
   ───────────────────────────────────────────────── */
.hero-page, .hero-art {
  background: linear-gradient(135deg, var(--ember) 0%, var(--rust) 100%) !important;
  background-color: var(--ember) !important;
  color: var(--paper) !important;
  padding: clamp(6rem, 11vw, 11rem) 6vw clamp(4rem, 8vw, 6rem) !important;
  border-top: 6px solid var(--rust);
  border-bottom: 2px solid var(--ink);
  position: relative;
  overflow: hidden;
  text-align: left !important;
}
.hero-page::before, .hero-art::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0;
  height: 4px; background: var(--amber);
  z-index: 2;
}
.hero-page .container, .hero-art .container { max-width: 1280px !important; }
.hero-page.hero-with-img .container {
  display: grid !important;
  grid-template-columns: 1.3fr 1fr !important;
  gap: clamp(2rem, 5vw, 5rem) !important;
  align-items: center !important;
}
.hero-page .hero-text { color: var(--paper); }
.hero-page .badge, .hero-art .pillar {
  display: inline-block !important;
  background: rgba(245,241,232,0.12) !important;
  border: 1px solid rgba(245,241,232,0.35) !important;
  color: var(--amber) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
  border-radius: 0 !important;
  padding: 8px 16px !important;
  margin-bottom: 1.5rem;
}
.hero-page h1, .hero-art h1 {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(38px, 7vw, 88px) !important;
  line-height: 0.95 !important;
  letter-spacing: -0.035em !important;
  font-variation-settings: 'opsz' 144, 'SOFT' 25 !important;
  color: var(--paper) !important;
  max-width: 18ch;
  margin: 0 0 1.5rem !important;
  text-shadow: 0 2px 30px rgba(0,0,0,0.25);
}
.hero-page h1 em, .hero-art h1 em { color: var(--amber) !important; font-style: italic !important; font-variation-settings: 'opsz' 144, 'SOFT' 80, 'WONK' 1 !important; }
.hero-page p, .hero-art p {
  font-family: var(--sans) !important;
  font-size: clamp(16px, 1.3vw, 19px) !important;
  line-height: 1.65 !important;
  color: rgba(245,241,232,0.92) !important;
  max-width: 56ch !important;
  margin-bottom: 1.5rem !important;
}
.hero-art .meta {
  font-family: var(--mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  color: rgba(245,241,232,0.7) !important;
  margin-top: 2rem !important;
}
.hero-art .meta span, .hero-art .meta time { color: rgba(245,241,232,0.7) !important; }

.hero-page .btn, .hero-page .btn-primary, .hero-page a.btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  background: var(--ink) !important;
  color: var(--paper) !important;
  border: 1px solid var(--ink) !important;
  border-radius: 0 !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 16px 28px !important;
  text-decoration: none !important;
  transition: all 0.3s ease;
}
.hero-page .btn:hover, .hero-page a.btn:hover { background: var(--paper) !important; color: var(--ink) !important; transform: translateY(-2px); }

.hero-page .hero-img {
  border: 1px solid rgba(245,241,232,0.3);
  overflow: hidden;
  aspect-ratio: 4/5;
  box-shadow: 0 20px 50px rgba(0,0,0,0.35);
}
.hero-page .hero-img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: contrast(1.04);
}

/* Original .hero también (no romper home) */
section.hero, .page-hero, .hero:not(.ed-hero) {
  background: linear-gradient(135deg, var(--ember) 0%, var(--rust) 100%) !important;
  background-color: var(--ember) !important;
  color: var(--paper) !important;
  padding: clamp(6rem, 11vw, 11rem) 6vw clamp(4rem, 8vw, 6rem) !important;
  border-top: 6px solid var(--rust);
  border-bottom: 1px solid var(--ink);
  position: relative;
  overflow: hidden;
  min-height: auto;
  text-align: left !important;
}
section.hero::before, .page-hero::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0;
  height: 4px; background: var(--amber);
  z-index: 2;
}
section.hero h1, .page-hero h1, .hero:not(.ed-hero) h1 {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(40px, 8vw, 100px) !important;
  line-height: 0.92 !important;
  letter-spacing: -0.035em !important;
  font-variation-settings: 'opsz' 144, 'SOFT' 25 !important;
  color: var(--paper) !important;
  max-width: 18ch;
  text-shadow: 0 2px 30px rgba(0,0,0,0.25);
}
section.hero h1 span, .page-hero h1 span { color: var(--amber) !important; font-style: italic; font-variation-settings: 'opsz' 144, 'SOFT' 80, 'WONK' 1 !important; }
section.hero p, .page-hero p, .hero:not(.ed-hero) p {
  font-family: var(--sans) !important;
  font-size: clamp(17px, 1.4vw, 20px) !important;
  line-height: 1.6 !important;
  color: rgba(245,241,232,0.92) !important;
  max-width: 60ch !important;
}
section.hero .hero-content, .page-hero .hero-content { max-width: 1100px !important; margin: 0 auto !important; text-align: left !important; }
section.hero .hero-badge, .page-hero .hero-badge {
  background: rgba(245,241,232,0.12) !important;
  border: 1px solid rgba(245,241,232,0.35) !important;
  color: var(--amber) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  border-radius: 0 !important;
  padding: 8px 16px !important;
}
section.hero .hero-stats, .page-hero .hero-stats { border-color: rgba(245,241,232,0.2) !important; gap: 3rem !important; margin-top: 3rem !important; }
section.hero .hero-stat-num { font-family: var(--serif) !important; font-weight: 500 !important; font-size: clamp(28px, 3vw, 44px) !important; color: var(--amber) !important; font-variation-settings: 'opsz' 144, 'SOFT' 25 !important; }
section.hero .hero-stat-label { font-family: var(--mono) !important; font-size: 10px !important; letter-spacing: 0.16em !important; }

/* Botones del hero legacy */
section.hero .btn-primary, .page-hero .btn-primary {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border: 1px solid var(--ink) !important;
  border-radius: 0 !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  padding: 16px 28px !important;
}
section.hero .btn-primary:hover { background: var(--paper) !important; color: var(--ink) !important; }
section.hero .btn-outline, .page-hero .btn-outline {
  background: transparent !important;
  color: var(--paper) !important;
  border: 1px solid rgba(245,241,232,0.5) !important;
  border-radius: 0 !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  padding: 16px 28px !important;
}
section.hero .btn-outline:hover { background: var(--paper) !important; color: var(--ink) !important; border-color: var(--paper) !important; }

/* Service cards legacy (en home y otras páginas) */
.service-card {
  border-radius: 0 !important;
  border: 1px solid rgba(26,26,26,0.12) !important;
  padding: 2.25rem 2rem !important;
  background: var(--paper) !important;
  position: relative;
  overflow: hidden;
}
.service-card::after { background: var(--ember) !important; }
.service-card:hover { background: var(--cream-accent) !important; border-color: var(--ember) !important; transform: translateY(-4px) !important; box-shadow: 0 14px 36px -10px rgba(192,80,0,0.25) !important; }
.service-card h3 {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(22px, 2vw, 30px) !important;
  letter-spacing: -0.02em !important;
  color: var(--ink) !important;
  font-variation-settings: 'opsz' 72, 'SOFT' 30 !important;
}
.service-card p { font-family: var(--sans) !important; font-size: 15px !important; line-height: 1.6 !important; color: var(--cement) !important; }
.service-card .service-icon { background: linear-gradient(135deg, var(--cream-accent) 0%, var(--amber) 100%) !important; border-radius: 0 !important; }
.service-card a { color: var(--ember) !important; font-family: var(--mono) !important; font-size: 12px !important; letter-spacing: 0.1em !important; text-transform: uppercase; font-weight: 600 !important; }

/* Article/blog cards */
.article-card {
  border-radius: 0 !important;
  border: 1px solid rgba(26,26,26,0.12) !important;
  background: var(--paper) !important;
}
.article-card::after { background: var(--ember) !important; }
.article-card:hover { background: var(--cream-accent) !important; border-color: var(--ember) !important; }
.article-card h3 {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  letter-spacing: -0.02em !important;
  font-variation-settings: 'opsz' 72, 'SOFT' 30 !important;
}
.article-card time { font-family: var(--mono) !important; color: var(--ember) !important; }

/* Body background legacy → siempre crema */
body { background: var(--paper) !important; color: var(--ink) !important; }
main { background: var(--paper); }

/* Listas y contenido editorial en páginas internas */
h1, h2, h3, h4 { font-family: var(--serif); }
h1 em, h2 em, h3 em { color: var(--ember); font-style: italic; }
h2 { font-family: var(--serif) !important; font-weight: 500 !important; letter-spacing: -0.025em !important; }
h3 { font-family: var(--serif) !important; font-weight: 500 !important; letter-spacing: -0.02em !important; }

/* Links de texto en CONTENIDO (no en botones tipo CTA) */
article a, .article-content a, .tldr a, p > a, li > a, td a,
.section-sub a, .legal-content a, .glosario a, .faq-content a {
  color: var(--ember);
}
article a:hover, .article-content a:hover, .tldr a:hover, p > a:hover, li > a:hover, td a:hover {
  color: var(--rust);
}

/* CTAs comunes (botones-link sin clase específica) → garantizar contraste */
.cta-google a, .cta-final a, .cta a,
[class*="cta-"] a:not(.btn-outline),
section[class*="cta"] > a {
  background: var(--ember) !important;
  color: var(--paper) !important;
  border: 1px solid var(--ember) !important;
  border-radius: 0 !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 16px 28px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  text-decoration: none !important;
  transition: all 0.25s ease !important;
  box-shadow: 0 4px 14px rgba(192,80,0,0.25);
}
.cta-google a:hover, .cta-final a:hover, .cta a:hover,
[class*="cta-"] a:not(.btn-outline):hover {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--paper) !important;
  transform: translateY(-2px);
}

/* La sección .cta-final tiene fondo oscuro → el botón debe ser cream/blanco para destacar */
.cta-final {
  background: linear-gradient(135deg, var(--rust) 0%, var(--ink) 100%) !important;
  color: var(--paper) !important;
  border-top: 4px solid var(--ember);
  border-bottom: 4px solid var(--ember);
}
.cta-final h2, .cta-final h3 {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  font-size: clamp(28px, 3.5vw, 48px) !important;
  letter-spacing: -0.025em !important;
  font-variation-settings: 'opsz' 96, 'SOFT' 30 !important;
  color: var(--paper) !important;
}
.cta-final p { color: rgba(245,241,232,0.85) !important; font-family: var(--sans) !important; }
.cta-final a {
  background: var(--amber) !important;
  border-color: var(--amber) !important;
  color: var(--ink) !important;
}
.cta-final a:hover {
  background: var(--paper) !important;
  border-color: var(--paper) !important;
  color: var(--ink) !important;
}

/* .cta-google: caja sobre fondo cream */
.cta-google {
  background: var(--cream-accent) !important;
  border-radius: 0 !important;
  border: 1px solid rgba(192,80,0,0.25);
  border-left: 4px solid var(--ember);
}
.cta-google h3 {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  font-variation-settings: 'opsz' 72 !important;
  letter-spacing: -0.02em !important;
}
.cta-google p { font-family: var(--sans) !important; color: var(--cement) !important; }

/* Forzar Geist en body */
body, p, li, td, label, input, textarea, select { font-family: var(--sans); }

/* ════════════════════════════════════════
   13 ·  RESPONSIVE (original)
   ════════════════════════════════════════ */
@media (max-width: 1024px) {
  .ed-hero { min-height: auto; padding: 7rem 5vw 5rem; }
  .ed-hero-image { width: 50vw; height: 50vh; opacity: 0.5; }
  .ed-hero-title { font-size: clamp(48px, 10vw, 92px); max-width: 100%; }
  .ed-hero-footer { grid-template-columns: 1fr; gap: 2rem; }
  .ed-hero-call { text-align: left; border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 1.5rem; }
  .ed-hero-call .ed-kicker { text-align: left; }
  .ed-section-head { grid-template-columns: 1fr; gap: 1.5rem; }
  .ed-services-grid { grid-template-columns: repeat(2, 1fr); }
  .ed-service { grid-column: span 1; min-height: 280px; }
  .ed-service.featured { grid-column: span 2; }
  .ed-services-grid > li:nth-child(3n) { border-right: 1px solid var(--line); }
  .ed-services-grid > li:nth-child(2n) { border-right: 0; }
  .ed-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .ed-stat { grid-column: span 1; min-height: 260px; }
  .ed-stats-grid > .ed-stat:nth-child(2n) { border-right: 0; }
  .ed-stats-grid > .ed-stat:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 640px) {
  .ed-hero { padding: 6rem 1.5rem 5rem; }
  .ed-hero::before { left: 1.5rem; right: 1.5rem; }
  .ed-hero-corner.tl { left: 1.1rem; }
  .ed-hero-corner.tr { right: 1.1rem; }
  .ed-hero-image { display: none; }
  .ed-hero-title { font-size: clamp(42px, 11vw, 56px); max-width: 100%; }
  .ed-hero-title .line.indent { padding-left: 24px; }
  .ed-hero-meta { gap: 0.6rem; flex-direction: column; align-items: flex-start; margin-bottom: 2.5rem; }
  .ed-hero-meta .nima-spec { font-size: 10px; }
  .ed-hero-ticker { padding: 12px 0; font-size: 10px; }
  .btn-ember, .btn-ghost { padding: 14px 22px; font-size: 11px; }
  .ed-phone { font-size: 24px; }
  .ed-services, .ed-stats, #nosotros, .cert-section, #galeria, #contacto { padding: 4rem 1.5rem !important; }
  .ed-services-grid, .cert-grid, .cert-images { grid-template-columns: 1fr !important; }
  .ed-service, .cert-card { grid-column: span 1; border-right: 0 !important; min-height: 240px; }
  .ed-service.featured { grid-column: span 1; }
  .ed-stats-grid { grid-template-columns: 1fr; }
  .ed-stat { grid-column: span 1; border-right: 0; min-height: 220px; }
  .ed-stats-grid > .ed-stat { border-bottom: 1px solid var(--line); }
  .ed-stats-grid > .ed-stat:last-child { border-bottom: 0; }
  .ed-stats-head { grid-template-columns: 1fr; }
  #nosotros .about-grid { grid-template-columns: 1fr !important; }
  .contact-grid { grid-template-columns: 1fr !important; }
  .contact-info { padding: 2rem 0 !important; border-right: 0 !important; border-bottom: 1px solid var(--line); }
  .form-wrap { padding: 2rem 0 !important; }
  #contador > div > div[style*="display: flex"] { flex-direction: column; }
}

/* ──────────────────────────────────────────────────────────
   FIX MÓVIL: dropdowns dentro del menú nunca se desbordan.
   Regla blindada con máxima especificidad, al final del archivo.
   ────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  nav .nav-links li.has-dropdown > ul.dropdown-menu,
  .nav-links li.has-dropdown > .dropdown-menu {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    animation: none !important;
  }
  nav .nav-links li.has-dropdown > ul.dropdown-menu a,
  .nav-links li.has-dropdown > .dropdown-menu a {
    white-space: normal !important;
    word-break: break-word !important;
    padding: 12px 20px 12px 32px !important;
    border-left: 0 !important;
  }
}
