/* source: /assets/css/fonts.css */
/* Self-hosted Fraunces + Source Sans 3 (latin / latin-ext) */

@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url("/assets/fonts/fraunces-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url("/assets/fonts/fraunces-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/fonts/source-sans-3-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/fonts/source-sans-3-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* source: /assets/css/site.css */
:root {
  --brand: #c8001a;
  --brand-dark: #9a0014;
  --brand-bright: #ff2a3d;
  --ink: #0c0f14;
  --ink-soft: #2f3746;
  --paper: #f3f0ea;
  --paper-2: #e5e0d6;
  --line: rgba(12, 15, 20, 0.16);
  --white: #ffffff;
  --on-dark: rgba(255, 255, 255, 0.92);
  --on-dark-soft: rgba(255, 255, 255, 0.82);
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body: "Source Sans 3", "Segoe UI", sans-serif;
  --max: 1140px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-body);
  font-size: 1.125rem;
  line-height: 1.6;
  font-weight: 400;
  text-rendering: optimizeLegibility;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: var(--brand);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

a:hover {
  color: var(--brand-dark);
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--ink);
  color: var(--white);
  padding: 0.75rem 1rem;
  z-index: 1000;
}

.skip-link:focus {
  left: 1rem;
  top: 1rem;
}

.wrap {
  width: min(100% - 2.5rem, var(--max));
  margin-inline: auto;
}

/* —— Top —— */
.top {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  padding: 1.1rem 0;
  overflow: visible;
  transition: background 0.3s var(--ease), padding 0.3s var(--ease), box-shadow 0.3s var(--ease), transform 0.35s var(--ease);
}

.top.is-solid {
  background: rgba(18, 21, 28, 0.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 0.65rem 0;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06);
  /* evita que mix-blend del logo se mezcle con el contenido bajo el header fijo */
  isolation: isolate;
}

.top-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  color: var(--white);
  text-decoration: none;
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: 0.08em;
  font-size: 0.92rem;
  text-transform: uppercase;
}

.brand {
  overflow: visible;
}

.brand--logo {
  gap: 0;
}

.brand img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  object-position: center center;
  flex-shrink: 0;
  padding: 0;
  overflow: visible;
  border-radius: 0;
  background: transparent;
  /* en header oscuro/transparente, anula el negro del PNG */
  mix-blend-mode: lighten;
}

/* header sólido: containment vía .top.is-solid { isolation }; R roja estable */
.top.is-solid .brand img {
  mix-blend-mode: lighten;
  filter: saturate(1.15) brightness(1.06);
}

.brand-sec {
  font-style: normal;
  color: #ff0000;
  -webkit-text-fill-color: #ff0000;
  opacity: 1;
}

.top-nav {
  display: flex;
  gap: 1.25rem;
  align-items: center;
}

.top-nav a {
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
}

.top-nav a:hover {
  color: var(--white);
}

.top-nav .btn-nav {
  background: var(--brand);
  color: var(--white);
  padding: 0.55rem 1rem;
}

.top-nav .btn-nav:hover {
  background: var(--brand-dark);
  color: var(--white);
}

.top-nav .nav-account {
  border: 1px solid rgba(255, 255, 255, 0.45);
  padding: 0.5rem 0.9rem;
}

.top-nav .nav-account:hover {
  border-color: #fff;
  color: #fff;
}

.nav-toggle {
  display: none;
  position: relative;
  z-index: 60;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(12, 15, 20, 0.35);
  color: var(--white);
  cursor: pointer;
}

.nav-toggle__bars {
  position: relative;
  display: block;
  width: 1.2rem;
  height: 2px;
  margin: 0 auto;
  background: currentColor;
  transition: background 0.2s ease;
}

.nav-toggle__bars::before,
.nav-toggle__bars::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background: currentColor;
  transition: transform 0.25s var(--ease);
}

.nav-toggle__bars::before {
  transform: translateY(-7px);
}

.nav-toggle__bars::after {
  transform: translateY(7px);
}

.top.is-nav-open .nav-toggle__bars {
  background: transparent;
}

.top.is-nav-open .nav-toggle__bars::before {
  transform: rotate(45deg);
}

.top.is-nav-open .nav-toggle__bars::after {
  transform: rotate(-45deg);
}

.nav-backdrop {
  display: none;
}

.top--legal {
  position: relative;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}

.top--legal .brand {
  color: var(--ink);
}

.top--legal .brand-sec {
  color: var(--brand);
}

.top--legal .brand img {
  background: transparent;
  border-radius: 0;
  padding: 0;
  /* sobre fondo claro: el negro residual se funde; la R roja se mantiene */
  mix-blend-mode: darken;
  filter: brightness(0.95) saturate(1.5);
}

.top--legal .top-nav a {
  color: var(--ink-soft);
}

.top--legal .top-nav .btn-nav {
  color: var(--white);
}

/* — REF direction: menú minimalista, submenú, panel Contacto y headroom — */
.top.is-headroom-hidden { transform: translateY(-110%); }
.top.is-panel-open { background: rgba(18,21,28,.94); }
.panel-toggle, .nav-subtoggle { font: inherit; }
button.btn-nav { border: 0; cursor: pointer; font-weight: 700; }
.nav-item { position: relative; }
.nav-subtoggle { background: none; border: 0; color: rgba(255,255,255,.88); font-weight: 600; cursor: pointer; display: inline-flex; gap: .35rem; align-items: center; padding: 0; }
.nav-subtoggle:hover { color: var(--white); }
.nav-submenu, .action-panel { animation: panelIn .28s var(--ease) both; }
.nav-submenu[hidden], .action-panel[hidden] { display: none !important; }
.nav-submenu { position: absolute; top: calc(100% + .85rem); left: 0; min-width: 21rem; padding: .55rem; background: #0d1117; border: 1px solid rgba(255,255,255,.13); box-shadow: 0 22px 50px rgba(0,0,0,.38); z-index: 75; }
.nav-submenu a { display: block; padding: .68rem .75rem; }
.nav-submenu a:hover { background: rgba(255,255,255,.06); }
.nav-submenu strong { display: block; color: var(--white); font-size: .98rem; }
.nav-submenu span { display: block; margin-top: .15rem; color: var(--on-dark-soft); font-size: .86rem; font-weight: 400; line-height: 1.35; }
.action-panel { position: absolute; top: calc(100% + .55rem); left: 0; right: 0; width: min(100% - 2.5rem, var(--max)); margin-inline: auto; padding: 1.15rem; background: linear-gradient(145deg, rgba(255,255,255,.06), rgba(255,255,255,0) 55%), #0b0f16; color: var(--on-dark); border: 1px solid rgba(255,255,255,.14); box-shadow: 0 26px 60px rgba(0,0,0,.42); z-index: 80; }
.action-panel__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.action-card { display: block; padding: 1.05rem 1.1rem; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.04); color: inherit; text-decoration: none; transition: transform .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease); }
.action-card:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.07); color: inherit; }
.action-card__kicker { display: block; font-size: .74rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--brand-bright); margin-bottom: .45rem; }
.action-card strong { display: block; font-family: var(--font-display); font-size: 1.45rem; line-height: 1.1; color: var(--white); margin-bottom: .4rem; }
.action-card span:last-child { font-size: .92rem; line-height: 1.4; }
.action-panel__row { display: flex; flex-wrap: wrap; gap: .65rem 1.3rem; align-items: center; margin-top: 1rem; padding-top: .9rem; border-top: 1px solid rgba(255,255,255,.13); font-size: .92rem; }
.action-panel__row a { color: inherit; }
.action-panel__row a:hover { color: var(--white); }
.copy-btn { border: 1px solid rgba(255,255,255,.35); background: transparent; color: var(--white); padding: .22rem .55rem; font: inherit; font-size: .8rem; font-weight: 700; cursor: pointer; }
.copy-btn:hover { border-color: var(--white); }
.copy-status { color: #7ee2a0; font-weight: 700; font-size: .84rem; }
.top-nav a:focus-visible, .nav-subtoggle:focus-visible, .panel-toggle:focus-visible, .copy-btn:focus-visible, .action-card:focus-visible, .brand:focus-visible { outline: 2px solid var(--brand-bright); outline-offset: 3px; }
/* Legal/minimal header en el resto de páginas */
.top--legal { padding: .68rem 0; }
.top--legal .brand img { width: 44px; height: 44px; }
.top--legal .top-nav { gap: 1rem; }
/* Hero: revelación por líneas (solo transform/opacity) */
.hero-line { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.hero-line > span { display: inline-block; transform: translateY(110%); animation: heroLineReveal .95s var(--ease) forwards; }
.hero-line:nth-child(2) > span { animation-delay: .14s; }
@keyframes heroLineReveal { to { transform: translateY(0); opacity: 1; } }
@keyframes panelIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 960px) {
  .action-panel { position: fixed; top: 4.6rem; left: 1rem; right: 1rem; width: auto; max-height: calc(100dvh - 5.8rem); overflow-y: auto; }
  .action-panel__grid { grid-template-columns: 1fr; }
  .nav-item { width: 100%; }
  .nav-subtoggle { width: 100%; justify-content: space-between; padding: .95rem .85rem; font-size: 1.08rem; border-bottom: 1px solid rgba(255,255,255,.1); color: var(--white); }
  .nav-submenu { position: static; min-width: 0; padding: .25rem .5rem .6rem; background: transparent; border: 0; box-shadow: none; animation: none; }
  .top--legal .top-inner { flex-wrap: wrap; }
}


/* —— Hero ——
   Patrón Bridewell / Evalian / DPO Centre:
   alto contenido (~68vh), no pantalla completa vacía. */
.hero {
  position: relative;
  min-height: clamp(420px, 68svh, 640px);
  display: grid;
  align-items: center;
  color: var(--white);
  overflow: hidden;
}

.hero-media {
  position: absolute;
  inset: 0;
}

.hero-media picture,
.hero-media img {
  width: 100%;
  height: 100%;
  display: block;
}

.hero-media img {
  object-fit: cover;
  object-position: center 40%;
  transform: scale(1.1);
  animation: heroDrift 38s ease-in-out infinite alternate;
  will-change: transform;
}

.hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(105deg, rgba(10, 12, 16, 0.68) 0%, rgba(10, 12, 16, 0.32) 46%, rgba(10, 12, 16, 0.12) 100%),
    linear-gradient(180deg, rgba(10, 12, 16, 0.22) 0%, transparent 42%, rgba(10, 12, 16, 0.5) 100%);
}

.hero-fx {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(ellipse 45% 55% at 78% 35%, rgba(200, 0, 26, 0.22), transparent 60%),
    radial-gradient(ellipse 30% 40% at 12% 70%, rgba(255, 255, 255, 0.08), transparent 55%);
  animation: heroGlow 12s ease-in-out infinite alternate;
}

.hero-fx::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18%;
  width: 3px;
  height: 42%;
  background: linear-gradient(180deg, transparent, var(--brand), transparent);
  opacity: 0.7;
  animation: heroLine 9s ease-in-out infinite alternate;
}

.hero-content {
  position: relative;
  z-index: 3;
  padding: 5.25rem 0 2.75rem;
  width: min(100% - 2.5rem, var(--max));
  margin-inline: auto;
}

.hero-brand {
  margin: 0 0 0.85rem;
  font-family: var(--font-display);
  font-size: clamp(2rem, 5.2vw, 3.6rem);
  font-weight: 700;
  font-optical-sizing: auto;
  letter-spacing: -0.02em;
  line-height: 1.06;
  max-width: 14ch;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
  animation: fadeIn 1s var(--ease) forwards;
}

.hero-brand-line {
  display: inline-block;
}

.hero-brand em {
  font-style: normal;
  color: #ff0000;
  display: inline-block;
  position: relative;
  -webkit-text-fill-color: #ff0000;
  background: none;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.35);
  filter: none;
}

.hero-brand em::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.08em;
  width: 100%;
  height: 2px;
  background: #ff0000;
  transform: scaleX(0.35);
  transform-origin: left;
  opacity: 0.9;
  animation: underlineBreath 6s ease-in-out 1.2s infinite alternate;
}

.hero-title {
  margin: 0 0 0.65rem;
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.2;
  max-width: 26ch;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.4);
  animation: fadeIn 1s var(--ease) 0.12s both, titleFloat 8.5s ease-in-out 0.35s infinite alternate;
}

.hero-lead {
  margin: 0 0 1.35rem;
  max-width: 52ch;
  font-size: 1.08rem;
  color: #fff;
  font-weight: 400;
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.45);
  animation: fadeIn 1s var(--ease) 0.28s both;
}

.hero-normas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 0.85rem;
  margin: 0 0 1rem;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--on-dark);
  animation: fadeIn 1s var(--ease) 0.2s both;
}

.hero-normas span {
  position: relative;
  padding-left: 0.85rem;
}

.hero-normas span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 1px;
  background: var(--brand);
  transform: translateY(-50%);
  animation: dotPulse 4.5s ease-in-out infinite;
}

.hero-normas span:nth-child(2)::before {
  animation-delay: 0.6s;
}

.hero-normas span:nth-child(3)::before {
  animation-delay: 1.2s;
}

.hero-normas span:nth-child(4)::before {
  animation-delay: 1.8s;
}

.hero .cta-row {
  animation: fadeIn 1s var(--ease) 0.36s both;
}

.cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.05rem;
  padding: 0.75rem 1.3rem;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.98rem;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform 0.25s var(--ease), background 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease);
}

.btn:hover {
  transform: translateY(-2px);
}

.btn-primary {
  background: var(--brand);
  color: var(--white);
}

.btn-primary:hover {
  background: var(--brand-dark);
  color: var(--white);
}

.btn-ghost {
  background: transparent;
  color: var(--white);
  border-color: rgba(255, 255, 255, 0.5);
}

.btn-ghost:hover {
  border-color: var(--white);
  color: var(--white);
}

.btn-dark {
  background: var(--ink);
  color: var(--white);
}

.btn-dark:hover {
  background: #000;
  color: var(--white);
}

.btn-light {
  background: var(--white);
  color: var(--ink);
}

.btn-light:hover {
  background: var(--paper);
  color: var(--ink);
}

/* Trust strip */
.trust-strip {
  background: var(--ink);
  color: var(--white);
  padding: 1.35rem 0;
  border-bottom: 3px solid var(--brand);
}

.trust-strip-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 2rem;
}

.trust-years {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 600;
  letter-spacing: -0.01em;
}

.trust-years strong {
  color: #ff0000;
  font-weight: 800;
  -webkit-text-fill-color: #ff0000;
  text-shadow: none;
  filter: none;
}

.trust-meta {
  margin: 0;
  font-size: 0.95rem;
  color: var(--on-dark);
}

/* Sections */
.section {
  padding: clamp(4rem, 8vw, 6.5rem) 0;
  background: var(--paper);
  color: var(--ink);
}

.section-head {
  max-width: 38rem;
  margin-bottom: 2.5rem;
}

.section-kicker {
  margin: 0 0 0.6rem;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand);
}

.section h2 {
  margin: 0 0 0.8rem;
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 3.4vw, 2.75rem);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.02em;
}

.section-head p {
  margin: 0;
  color: var(--ink-soft);
}

/* Problem pillars */
.pillars-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.pillar {
  display: block;
  padding: 1.5rem 1.4rem;
  background: var(--white);
  border: 1px solid var(--line);
  border-left: 3px solid rgba(200, 0, 26, 0.22);
  box-shadow: 0 1px 0 rgba(12, 15, 20, 0.04);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.25s var(--ease), transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}

.pillar:hover {
  border-left-color: var(--brand);
  transform: translateY(-3px);
  color: inherit;
  box-shadow: 0 10px 28px rgba(12, 15, 20, 0.08);
}

.pillar-q {
  margin: 0 0 0.5rem;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.2;
  color: var(--ink);
}

.pillar p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 1.02rem;
}

.pillar-links { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; }
.pillar-go {
  display: inline-block;
  margin-top: 0.9rem;
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--brand);
}

/* Method */
.method {
  background: var(--paper-2);
  border-block: 1px solid var(--line);
  color: var(--ink);
}

.steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  counter-reset: step;
}

.step {
  padding: 1.75rem 1.5rem 1.75rem 0;
  border-right: 1px solid var(--line);
  padding-right: 1.75rem;
  padding-left: 1.25rem;
}

.step:last-child {
  border-right: 0;
}

.step::before {
  counter-increment: step;
  content: "0" counter(step);
  display: block;
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  color: var(--brand);
  line-height: 1;
  margin-bottom: 0.85rem;
}

.step h3 {
  margin: 0 0 0.45rem;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 600;
}

.step p {
  margin: 0;
  color: var(--ink-soft);
}

/* Split */
.section--split {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  min-height: 520px;
}

.split-media {
  min-height: 380px;
  overflow: hidden;
}

.split-media picture {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 380px;
}

.split-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.split-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2.25rem, 5vw, 4rem);
  background: var(--ink);
  color: var(--white);
}

.split-copy .section-kicker {
  color: var(--brand-bright);
}

.split-copy p {
  color: var(--on-dark);
  margin: 0 0 1.4rem;
}

.split-copy h2 {
  margin: 0 0 0.9rem;
  color: var(--white);
}

.split-list {
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}

.split-list li {
  padding: 0.7rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.22);
  font-weight: 600;
  color: var(--white);
}

/* Sectors — banda clara entre Enfoque (oscuro) y Dakoku */
.section--sectors {
  background: var(--white);
  color: var(--ink);
  border-block: 1px solid var(--line);
}

.section--sectors .section-kicker {
  color: var(--brand);
}

.section--sectors .section-head p {
  color: var(--ink-soft);
}

.section--sectors h2 {
  color: var(--ink);
}

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

.sector-item {
  display: block;
  padding: 1.45rem 1.35rem;
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 3px solid var(--brand);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s var(--ease), background-color 0.2s var(--ease);
}

a.sector-item:hover,
a.sector-item:focus-visible {
  background: var(--paper-2);
  border-top-color: var(--brand-dark);
  outline: none;
}

.sector-item:nth-child(3n) {
  border-right: 1px solid var(--line);
}

.sector-item h3 {
  margin: 0 0 0.4rem;
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--ink);
}

.sector-item p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 1.02rem;
}

.sectors-more {
  margin: 1.5rem 0 0;
  text-align: center;
  font-size: 1.05rem;
}

.sectors-more a {
  color: var(--brand);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.sectors-more a:hover,
.sectors-more a:focus-visible {
  color: var(--brand-dark);
}

.sectors-cta {
  margin: 1.75rem 0 0;
  display: flex;
  justify-content: center;
}

.sectors--hub {
  margin: 1.75rem 0 0;
}

.sectors-group {
  margin: 2.35rem 0 0;
}

.sectors-group h2 {
  margin: 0 0 0.85rem;
  font-family: var(--font-display);
  font-size: 1.28rem;
  font-weight: 600;
  color: var(--ink);
}

.sectors-group .sectors--hub {
  margin: 0;
}

/* Dakoku — bloque accesible con texto y enlace bajo Sectores */
.dakoku-promo { background: #000; padding: clamp(2rem, 5vw, 4rem) 0; color: var(--white); }
.dakoku-promo__wrap { width: min(100% - 2rem, 1200px); margin-inline: auto; display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(1.75rem, 4vw, 3.5rem); align-items: center; }
.dakoku-promo__kicker { margin: 0 0 0.6rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--brand-bright); font-size: 0.85rem; }
.dakoku-promo__copy h2 { margin: 0 0 0.9rem; color: var(--white); font-family: var(--font-display); line-height: 1.15; }
.dakoku-promo__copy p { color: var(--on-dark); }
/* Dakoku premium visual (CSS, sin imagen con texto quemado) */
.dakoku-promo { background: radial-gradient(60rem 28rem at 88% -10%, rgba(200,0,26,.28), transparent 60%), radial-gradient(50rem 26rem at 8% 115%, rgba(0,90,255,.22), transparent 60%), #05070d; padding: clamp(2.75rem, 6vw, 4.75rem) 0; }
.dakoku-promo__copy h2 { font-size: clamp(1.95rem, 3.6vw, 2.85rem); letter-spacing: -0.02em; }
.dakoku-lead { font-size: 1.08rem; line-height: 1.55; color: var(--white) !important; }
.dakoku-question { display: block; margin-bottom: .35rem; font-family: var(--font-display); font-size: clamp(1.35rem, 2.4vw, 1.8rem); font-weight: 600; line-height: 1.2; color: var(--white); }
.dakoku-visual { min-height: 340px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.14); border-radius: 20px; background: radial-gradient(circle at 88% 12%, rgba(255,0,50,.5), transparent 42%), radial-gradient(circle at 12% 92%, rgba(0,100,255,.55), transparent 46%), linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,0) 55%), #070b16; box-shadow: 0 24px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.12); overflow: hidden; }
.dakoku-visual__inner { display: grid; justify-items: center; gap: 1.1rem; padding: 2rem; text-align: center; }
.dakoku-visual__word { font-family: var(--font-display); font-size: clamp(2.7rem, 6vw, 4.6rem); font-weight: 700; letter-spacing: .02em; line-height: 1; color: #2f7bff; }
.dakoku-visual__word em { font-style: normal; color: #ff1e3c; }
.dakoku-visual__rule { width: 72px; height: 3px; background: linear-gradient(90deg, #2f7bff, #ff1e3c); }
.dakoku-visual__tags { display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem; }
.dakoku-visual__tags span { padding: .42rem .75rem; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: rgba(255,255,255,.88); }
@media (max-width: 960px) { .dakoku-visual { min-height: 250px; } }


.dakoku-promo__media {
  display: block;
  /* Asset nativo 1024px: no ampliar por encima (evita letras borrosas) */
  width: min(100%, 1024px);
  border-radius: 2px;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);
}

.dakoku-promo__img {
  width: 100%;
  height: auto;
  display: block;
  image-rendering: -webkit-optimize-contrast;
}

@media (max-width: 960px) {
  .dakoku-promo {
    padding: 0.75rem 0 1.5rem;
  }

  .dakoku-promo__wrap { width: min(100% - 2rem, 1200px); grid-template-columns: 1fr; }

  .dakoku-promo__media {
    width: 100%;
    border-radius: 0;
    box-shadow: none;
  }

  .dakoku-promo__img {
    width: 100%;
    max-height: none;
  }
}

/* Awards */
.awards {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 1.25rem;
  align-items: stretch;
}

#confianza {
  background: var(--paper);
}

.trust-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0 0 2rem;
  background: var(--line);
  border: 1px solid var(--line);
}

.trust-stat {
  display: grid;
  gap: 0.25rem;
  padding: 1.25rem 1.1rem;
  background: var(--white);
  text-align: center;
}

.trust-stat strong {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3.2vw, 2.35rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--brand);
  line-height: 1;
}

.trust-stat span {
  font-size: 0.95rem;
  color: var(--ink-soft);
  font-weight: 600;
}

.clients-label {
  margin: 2.5rem 0 1rem;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand);
}

.award {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 1.5rem;
  align-items: center;
  padding: 1.5rem 1.6rem;
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: 0 1px 0 rgba(12, 15, 20, 0.04);
}

.award--text {
  grid-template-columns: 1fr;
  align-content: center;
  background:
    linear-gradient(135deg, rgba(200, 0, 26, 0.06), transparent 55%),
    var(--white);
}

.award-media {
  display: grid;
  place-items: center;
}

.award-media img {
  width: 180px;
  height: 180px;
  object-fit: contain;
}

.award-year {
  margin: 0 0 0.35rem;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand);
}

.award h3 {
  margin: 0 0 0.45rem;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.2;
}

.award p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 1.02rem;
}

.award p strong {
  color: var(--ink);
  font-weight: 700;
}

.marquee {
  overflow: hidden;
  border-block: 1px solid var(--line);
  background: var(--white);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.marquee-track {
  display: flex;
  align-items: center;
  gap: 2.75rem;
  width: max-content;
  padding: 1.6rem 1.25rem;
  animation: marquee 55s linear infinite;
}

.marquee-track img {
  height: 56px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.92;
  transition: filter 0.25s var(--ease), opacity 0.25s var(--ease);
}

.marquee-track img:hover {
  filter: none;
  opacity: 1;
}

/* Contact */
#contacto {
  background: var(--paper-2);
  border-top: 1px solid var(--line);
  padding-top: 2rem;
}

.contact-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 2rem;
  align-items: stretch;
}

.contact-panel {
  background: var(--ink);
  color: var(--white);
  padding: clamp(1.5rem, 3vw, 2rem);
}

.contact-panel .section-kicker {
  color: var(--brand-bright);
}

.contact-title {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 2.8vw, 2.25rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  font-weight: 600;
  color: var(--white);
}

.contact-aside {
  margin: 0 0 1.25rem;
  color: var(--on-dark);
}

.contact-meta {
  display: grid;
  gap: 1.15rem;
}

.contact-meta a {
  color: inherit;
  text-decoration: none;
}

.contact-meta a:hover {
  color: var(--brand-bright);
}

.contact-meta strong {
  display: block;
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand-bright);
  margin-bottom: 0.25rem;
}

.contact-trust {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  font-size: 0.98rem;
  color: var(--on-dark);
}

.contact-trust--link {
  margin-top: 0.85rem;
  padding-top: 0;
  border: 0;
}

.form {
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: 0 12px 36px rgba(12, 15, 20, 0.06);
  padding: clamp(1.35rem, 3vw, 1.85rem);
}

.form-row {
  display: grid;
  gap: 0.3rem;
  margin-bottom: 0.95rem;
}

.form-row label {
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 700;
}

.form-row input,
.form-row select,
.form-row textarea {
  width: 100%;
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 0.8rem 0.9rem;
  font: inherit;
  color: var(--ink);
}

.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus {
  outline: 2px solid rgba(200, 0, 26, 0.3);
  border-color: var(--brand);
  background: var(--white);
}

.form-row textarea {
  min-height: 130px;
  resize: vertical;
}

.hp {
  position: absolute;
  left: -9999px;
  opacity: 0;
  height: 0;
  overflow: hidden;
}

.form-check {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  margin: 0 0 1rem;
  font-size: 0.95rem;
  color: var(--ink-soft);
}

.form-check input {
  margin-top: 0.3rem;
}

.form-captcha {
  margin: 0 0 1rem;
  min-height: 78px;
}

.form-status {
  margin: 0 0 1rem;
  padding: 0.75rem 0.9rem;
  font-size: 0.98rem;
}

.form-status[data-type="ok"] {
  background: #e8f6ec;
  color: #14532d;
}

.form-status[data-type="err"] {
  background: #fde8eb;
  color: #7f1d1d;
}

.form-status[hidden] {
  display: none;
}

/* Contact thank-you modal */
.contact-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  place-items: center;
  padding: 1.25rem;
}

.contact-modal[hidden] {
  display: none !important;
}

.contact-modal.is-open {
  display: grid !important;
}

.contact-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 15, 20, 0.62);
  border: 0;
  cursor: pointer;
}

.contact-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 28rem);
  background: var(--white);
  border: 1px solid var(--line);
  border-top: 3px solid var(--brand);
  box-shadow: 0 22px 56px rgba(12, 15, 20, 0.22);
  padding: clamp(1.5rem, 4vw, 2rem);
  text-align: left;
  opacity: 1;
  animation: contact-modal-in 0.28s var(--ease);
}

.contact-modal__kicker {
  margin: 0 0 0.45rem;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brand);
}

.contact-modal__title {
  margin: 0 0 0.65rem;
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 3.2vw, 1.9rem);
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--ink);
}

.contact-modal__text {
  margin: 0 0 1.35rem;
  color: var(--ink-soft);
  font-size: 1.05rem;
  line-height: 1.55;
}

.contact-modal__close {
  width: 100%;
}

@keyframes contact-modal-in {
  from {
    opacity: 0;
    transform: translateY(0.55rem) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

body.is-contact-modal-open {
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .contact-modal__dialog {
    animation: none;
  }
}

/* Legal */
.legal-page {
  padding-top: 0.5rem;
}

.legal-hero {
  padding: 3.25rem 0 1.25rem;
  border-bottom: 1px solid var(--line);
  margin-bottom: 0.5rem;
}

.legal-hero .section-kicker {
  margin-bottom: 0.55rem;
}

.legal-hero h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 2.8rem);
  letter-spacing: -0.02em;
}

.legal-meta {
  margin: 0.85rem 0 0;
  color: var(--ink-soft);
  font-size: 0.95rem;
}

.legal {
  padding: 1.5rem 0 4.5rem;
  max-width: 48rem;
}

.legal h2 {
  margin: 2.4rem 0 0.8rem;
  font-family: var(--font-display);
  font-size: 1.28rem;
  letter-spacing: -0.015em;
}

.legal h3 {
  margin: 1.6rem 0 0.55rem;
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
}

.legal p,
.legal li {
  color: var(--ink-soft);
}

.legal p {
  margin: 0 0 1rem;
}

.legal ul {
  margin: 0 0 1.15rem;
  padding-left: 1.2rem;
}

.legal li + li {
  margin-top: 0.35rem;
}

.legal a {
  text-underline-offset: 0.15em;
}

.legal-lang-sep {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 2.75rem 0;
}

.legal-related {
  margin-top: 2.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
  font-size: 0.98rem;
}

.service-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin: 2rem 0 0;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
}

/* Footer — compacto, modelo Dakoku adaptado */
.footer { padding: 1.6rem 0 0.9rem; background: var(--ink); color: var(--on-dark-soft); border-top: 3px solid var(--brand); font-size: 0.92rem; }
.footer-grid { display: grid; grid-template-columns: 1.35fr repeat(3, 0.85fr); gap: 1.25rem 2rem; }
.footer-brand strong { display: block; color: var(--white); margin: 0; font-size: 1rem; }
.footer-brand p { margin: 0.45rem 0 0; max-width: 34ch; line-height: 1.45; }
.footer-group { margin: 0; }
.footer-group > summary { list-style: none; font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.6); font-weight: 700; cursor: default; }
.footer-group > summary::-webkit-details-marker { display: none; }
.footer-group ul { display: grid; gap: 0.4rem; font-size: 0.9rem; margin: 0.7rem 0 0; padding: 0; list-style: none; }
.footer-group li { overflow-wrap: anywhere; }
.footer a { color: inherit; text-decoration: none; }
.footer a:hover { color: var(--brand-bright); }
.footer-bottom { margin-top: 1.25rem; padding-top: 0.85rem; border-top: 1px solid rgba(255,255,255,0.14); font-size: 0.82rem; }
.footer-bottom p { margin: 0; }
@media (min-width: 961px) {
  .footer-group > summary { pointer-events: none; }
  .footer-group ul { display: grid !important; }
}
@media (max-width: 960px) {
  .footer { padding-top: 1.25rem; }
  .footer-grid { grid-template-columns: 1fr; gap: 0.25rem; }
  .footer-brand { margin-bottom: 0.75rem; }
  .footer-group { border-top: 1px solid rgba(255,255,255,0.12); }
  .footer-group > summary { display: flex; align-items: center; justify-content: space-between; padding: 0.7rem 0; cursor: pointer; pointer-events: auto; }
  .footer-group > summary::after { content: ""; width: 0.55rem; height: 0.55rem; border-right: 2px solid rgba(255,255,255,0.6); border-bottom: 2px solid rgba(255,255,255,0.6); transform: rotate(45deg); flex: none; }
  .footer-group[open] > summary::after { transform: rotate(225deg); }
  .footer-group ul { display: none; margin: 0 0 0.85rem; }
  .footer-group[open] ul { display: grid; }
  .footer-bottom { margin-top: 0.9rem; }
}
@media (prefers-reduced-motion: reduce) { .footer-group > summary::after { transition: none; } }

/* Motion */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
}

.reveal.is-in {
  opacity: 1;
  transform: none;
}

.hero-brand,
.hero-title,
.hero-normas,
.hero-lead,
.hero .cta-row {
  opacity: 0;
}

@keyframes riseIn {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes heroDrift {
  from {
    transform: scale(1.08) translate3d(0, 0, 0);
  }
  to {
    transform: scale(1.18) translate3d(-2.2%, -1.4%, 0);
  }
}

@keyframes titleFloat {
  from {
    transform: translateY(4px);
  }
  to {
    transform: translateY(-2px);
  }
}

@keyframes underlineBreath {
  from {
    transform: scaleX(0.35);
    opacity: 0.55;
  }
  to {
    transform: scaleX(1);
    opacity: 1;
  }
}

@keyframes heroGlow {
  from {
    opacity: 0.55;
  }
  to {
    opacity: 1;
  }
}

@keyframes heroLine {
  from {
    transform: translateY(0) scaleY(0.85);
    opacity: 0.35;
  }
  to {
    transform: translateY(12px) scaleY(1);
    opacity: 0.9;
  }
}

@keyframes dotPulse {
  0%,
  100% {
    opacity: 0.45;
    transform: translateY(-50%) scale(0.85);
  }
  50% {
    opacity: 1;
    transform: translateY(-50%) scale(1.15);
  }
}

@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .hero-media img,
  .hero-fx,
  .hero-fx::before,
  .hero-brand,
  .hero-brand em::after,
  .hero-title,
  .hero-line > span,
  .nav-submenu,
  .action-panel,
  .action-card,
  .top,
  .hero-normas,
  .hero-normas span::before,
  .hero-lead,
  .hero .cta-row,
  .reveal,
  .btn,
  .marquee-track {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

@media (max-width: 960px) {
  .pillars-grid,
  .steps,
  .section--split,
  .contact-grid,
  .sectors,
  .awards,
  .award {
    grid-template-columns: 1fr;
  }

  /* Confianza: cifras en fila también en móvil */
  .trust-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .trust-stat {
    padding: 1rem 0.45rem;
  }

  .trust-stat strong {
    font-size: clamp(1.35rem, 5.5vw, 1.7rem);
  }

  .trust-stat span {
    font-size: 0.78rem;
    line-height: 1.25;
  }

  .clients-label {
    margin: 2rem 0 0.85rem;
  }

  .marquee-track {
    gap: 2rem;
    padding: 1.35rem 1rem;
    animation-duration: 42s;
  }

  .marquee-track img {
    height: 48px;
    max-width: 120px;
  }

  .award-media img {
    width: 200px;
    height: 200px;
  }

  .step {
    border-right: 0;
    border-bottom: 1px solid var(--line);
    padding-left: 0;
    padding-right: 0;
  }

  .sector-item {
    border-right: 1px solid var(--line);
  }

  .nav-toggle {
    display: inline-grid;
    place-items: center;
  }

  .top-inner {
    position: relative;
    z-index: 55;
  }

  .top-nav {
    position: fixed;
    inset: 0 0 auto;
    top: 0;
    right: 0;
    left: auto;
    z-index: 55;
    width: min(20.5rem, 86vw);
    height: 100dvh;
    margin: 0;
    padding: 5.25rem 1.35rem 1.75rem;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
    background: rgba(12, 15, 20, 0.97);
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: -18px 0 48px rgba(0, 0, 0, 0.35);
    transform: translateX(104%);
    visibility: hidden;
    transition: transform 0.3s var(--ease), visibility 0.3s;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .top.is-nav-open {
    background: rgba(12, 15, 20, 0.96);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  .top.is-nav-open .top-nav {
    transform: translateX(0);
    visibility: visible;
  }

  .nav-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 45;
    border: 0;
    padding: 0;
    margin: 0;
    background: rgba(0, 0, 0, 0.45);
    cursor: pointer;
  }

  .top.is-nav-open .nav-backdrop {
    display: block;
  }

  .top-nav a {
    display: block;
    padding: 0.95rem 0.85rem;
    font-size: 1.08rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }

  .top-nav .nav-account,
  .top-nav .btn-nav {
    margin-top: 0.55rem;
    text-align: center;
    border-bottom: 0;
  }

  .top-nav .btn-nav {
    margin-top: 0.35rem;
  }

  body.is-nav-open {
    overflow: hidden;
  }

  .hero {
    min-height: clamp(380px, 62svh, 520px);
  }

  .hero-content {
    padding: 4.75rem 0 2.25rem;
  }

  .cta-row {
    flex-direction: column;
    align-items: stretch;
  }

  .cta-row .btn {
    width: 100%;
  }

  .trust-strip-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
  }

  .section {
    padding: clamp(3rem, 10vw, 4.5rem) 0;
  }

  .contact-panel,
  .form {
    padding: 1.35rem 1.15rem;
  }

  .footer-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.1rem;
  }

  .footer nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1.1rem;
  }
}

@media (min-width: 961px) {
  .nav-toggle,
  .nav-backdrop {
    display: none !important;
  }

  body.is-nav-open {
    overflow: auto;
  }
}

@media (max-height: 520px), (orientation: landscape) and (max-height: 560px) {
  .top {
    padding: 0.4rem 0;
  }

  .brand img {
    width: 32px;
    height: 32px;
  }

  .hero {
    min-height: auto;
    overflow: visible;
  }

  .hero-content {
    padding: 3.75rem 0 1.35rem;
  }

  .hero-brand {
    font-size: clamp(1.55rem, 5vw, 2.4rem);
    margin-bottom: 0.5rem;
  }

  .hero-title {
    font-size: clamp(1.15rem, 2.5vw, 1.55rem);
    max-width: none;
  }

  .hero-fx::before {
    display: none;
  }

  .hero-lead {
    font-size: 0.98rem;
    margin-bottom: 0.85rem;
  }

  .hero-normas {
    margin-bottom: 0.55rem;
  }

  .btn {
    min-height: 2.6rem;
    padding: 0.5rem 1rem;
  }
}

/* source: /assets/css/editorial.css */
/* RNOVA editorial direction — scoped to the home page. */
.rnova-editorial{--paper:#f7f7f2;--paper-2:#edede7;--ink:#20211f;--ink-soft:#575951;--brand:#c60024;--font-display:Arial,Helvetica,sans-serif;--font-body:Arial,Helvetica,sans-serif;--max:1320px;background:var(--paper);font-size:16px;line-height:1.55}
.rnova-editorial h1,.rnova-editorial h2,.rnova-editorial h3{font-family:var(--font-display);letter-spacing:-.045em;font-weight:500}
.rnova-editorial .wrap{width:min(100% - 80px,var(--max))}
.ticker{height:34px;overflow:hidden;background:#e9e9e2;position:relative;font-size:10px;letter-spacing:.08em;border-bottom:1px solid #d7d7cf}
.ticker-track{display:flex;width:max-content;animation:marquee 42s linear infinite;align-items:center;height:100%}
.ticker-track span{white-space:nowrap;padding-right:32px;display:flex;align-items:center;gap:32px}.ticker-track b{color:var(--brand);font-size:16px;font-weight:400}
.ticker-pause{position:absolute;right:0;top:0;width:42px;height:34px;border:0;border-left:1px solid #c9c9c0;background:#e9e9e2;cursor:pointer;color:var(--ink)}
.ticker.is-paused .ticker-track,.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-25%)}}
.rnova-editorial .top,.rnova-editorial .top.is-solid{position:relative;inset:auto;padding:23px 0;background:var(--paper);box-shadow:none;backdrop-filter:none;transform:none;border-bottom:1px solid var(--line)}
.editorial-logo{font:700 39px/.8 Arial;letter-spacing:-6px}.editorial-logo>span{font-size:27px;color:var(--brand);letter-spacing:0}.editorial-wordmark{font:700 14px/1 Arial;letter-spacing:.04em;margin-left:14px}.editorial-wordmark small{display:block;font-size:8px;letter-spacing:.2em;margin-top:5px}
.rnova-editorial .brand,.rnova-editorial .top-nav a,.rnova-editorial .nav-subtoggle{color:var(--ink)}
.rnova-editorial .top-nav{gap:26px;font-size:12px;font-weight:400}.rnova-editorial .top-nav a,.rnova-editorial .nav-subtoggle{font:inherit}.rnova-editorial .top-nav a:hover{color:var(--brand)}
.rnova-editorial .top-nav .nav-account{border:0;padding:0}.rnova-editorial .top-nav .btn-nav{border:1px solid var(--ink);background:transparent;color:var(--ink);padding:10px 20px;font-size:12px}.rnova-editorial .top-nav .btn-nav:hover{background:var(--ink);color:white}
.rnova-editorial .nav-submenu{background:var(--paper);border:1px solid var(--line)}.rnova-editorial .nav-submenu a,.rnova-editorial .nav-submenu a span{color:var(--ink)}
.editorial-hero{padding:34px 40px 70px;max-width:1400px;margin:auto}.hero-eyebrow{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.09em}
.editorial-masthead{font:500 clamp(110px,22.3vw,320px)/.95 Arial,Helvetica,sans-serif;letter-spacing:-.075em;margin:28px 0 40px;position:relative;white-space:nowrap}.brand-dot{font-size:.1em;vertical-align:top;display:inline-block;margin:22px 0 0 18px;letter-spacing:0}
.editorial-intro{display:grid;grid-template-columns:1fr 1.3fr;border-top:1px solid var(--line);padding-top:32px}.intro-marker{font:400 70px/1 Arial;color:var(--brand)}
.editorial-intro h1{font-size:clamp(32px,3.4vw,48px);line-height:1.06;margin:0 0 20px}.editorial-intro p{max-width:450px;color:#575951;font-size:15px;line-height:1.65;margin:0 0 25px}
.editorial-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.editorial-button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;background:var(--ink);color:white;padding:15px 20px;font-size:12px;text-decoration:none;border:1px solid var(--ink)}.editorial-button:hover{background:var(--brand);color:white;border-color:var(--brand)}.editorial-textlink{color:var(--ink);font-size:12px;text-decoration:none;border-bottom:1px solid #aaa;padding:6px 0}
.digital-feature{display:grid;grid-template-columns:.85fr 1.3fr;gap:30px;background:#e5e6dc;margin:0 24px;padding:64px 55px;border-radius:4px}.feature-copy{display:flex;flex-direction:column;align-items:flex-start}.feature-copy h2{font-size:clamp(38px,4.5vw,65px);line-height:1.02;margin:35px 0 25px}.feature-copy h2 span{color:var(--brand)}.feature-copy>p:not(.section-kicker){max-width:320px;font-size:14px;color:#50534a}.feature-link{display:flex;justify-content:space-between;gap:65px;border-bottom:1px solid #8d9085;color:var(--ink);padding:12px 0;text-decoration:none;font-size:14px;margin-top:18px}.feature-note{font-size:9px;letter-spacing:.08em;margin-top:auto;padding-top:40px}
.design-stage{align-self:center;min-width:0;padding:25px 0 0 10px}.design-browser{background:#f8f5ed;box-shadow:0 24px 48px #282d2024;transform:rotate(-3deg);border:1px solid #b8b9ad;border-radius:8px;overflow:hidden;transition:transform .6s}.design-browser:hover{transform:rotate(0)}.browser-chrome{display:flex;justify-content:space-between;background:#f2f0e8;border-bottom:1px solid #ddd9d0;padding:9px 14px;font-size:8px;color:#777}.concept-page{padding:24px}.concept-nav{display:flex;align-items:center;justify-content:space-between;font-size:8px}.concept-nav strong{font-size:25px;letter-spacing:-2px}.concept-title{font-size:clamp(32px,4vw,62px);letter-spacing:-.07em;line-height:.99;margin:30px 0 20px}.concept-title>span{color:#c65232}.concept-art{height:225px;background:#c95134;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:20px;color:#f6e6ca;font-size:9px;letter-spacing:.1em}.art-ring{position:absolute;width:230px;height:230px;border:45px solid #eddfbe;border-radius:50%;transform:rotate(-32deg) skew(-12deg);box-shadow:15px 12px 0 #98351f}.ring-one{right:65px;top:-60px}.ring-two{right:-45px;top:65px}.concept-bottom{display:flex;justify-content:space-between;font-size:8px;padding-top:20px}.design-caption{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.07em;margin-top:34px;gap:15px}
.rnova-editorial .trust-strip{background:transparent;color:var(--ink);border-bottom:1px solid var(--line);padding:30px 0;margin:0 40px}.rnova-editorial .trust-strip .wrap{width:100%}.rnova-editorial .trust-years{font-family:var(--font-body);font-size:14px}.rnova-editorial .trust-meta{font-size:11px;color:#64665e}.rnova-editorial .trust-years strong{color:var(--ink)}
.rnova-editorial .section{padding:90px 0}.rnova-editorial .section-head h2{font-size:clamp(32px,4vw,54px);max-width:850px}.rnova-editorial .section-head p{max-width:650px}.rnova-editorial .section-kicker{font-size:10px;letter-spacing:.12em;color:#5e6158}.rnova-editorial .pillar{background:transparent;border:0;border-top:1px solid #aaa;padding:25px 0;box-shadow:none}.rnova-editorial .pillar-q{font-family:var(--font-body);font-size:26px;font-weight:400;letter-spacing:-.04em}.rnova-editorial .pillar p:not(.pillar-q){font-size:14px}.rnova-editorial .pillars-grid{gap:40px}.rnova-editorial .method{background:#eeeee7}.rnova-editorial .step{background:transparent;box-shadow:none;border:0;border-top:1px solid #bbb}.rnova-editorial .sector-item{background:transparent;box-shadow:none}.rnova-editorial .reveal{opacity:1;transform:none}.rnova-editorial .footer{padding-bottom:120px}
.floating-dock{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:45;display:flex;align-items:center;gap:4px;padding:6px;background:#242622f2;border:1px solid #66695e;border-radius:12px;box-shadow:0 8px 28px #0003;backdrop-filter:blur(14px);max-width:calc(100% - 24px)}.floating-dock a{color:#e8e9e2;text-decoration:none;white-space:nowrap;padding:13px 15px;font-size:11px;border-radius:6px}.floating-dock a:hover{background:#45483f;color:white}.floating-dock .dock-brand{font-size:23px;font-weight:700;padding:5px 14px;letter-spacing:-2px;border-right:1px solid #53564e;border-radius:0}.dock-brand span{color:#ff4c65;font-size:17px}.floating-dock .dock-cta{background:#e2edbb;color:#20251a;padding:14px 18px}.dock-cta span{margin-left:12px}.floating-dock .dock-cta:hover{background:#f1ffd0;color:#20251a}
.rnova-editorial :focus-visible{outline:2px solid var(--brand);outline-offset:5px}.rnova-editorial [id]{scroll-margin-top:25px}.rnova-editorial .action-panel{top:100%;z-index:55}.rnova-editorial .action-panel a{color:#fff}.rnova-editorial .action-panel .action-card__kicker{color:#ff6b7d}
@media(max-width:960px){.rnova-editorial .top-nav{background:var(--paper);padding:25px;gap:20px}.rnova-editorial .top-nav a,.rnova-editorial .nav-subtoggle{color:var(--ink)}.rnova-editorial .nav-toggle{display:block;background:transparent;color:var(--ink);border-color:#aaa}.rnova-editorial .top.is-nav-open{background:var(--paper)}.rnova-editorial .top.is-nav-open .top-nav{position:absolute;top:100%;height:auto;max-height:70vh;overflow:auto;bottom:auto;border-bottom:1px solid #aaa}.digital-feature{padding:40px 28px;gap:20px}.concept-art{height:185px}.rnova-editorial .top-nav .btn-nav{width:auto}.rnova-editorial .brand{color:var(--ink)}}
@media(max-width:640px){.rnova-editorial .wrap{width:calc(100% - 40px)}.rnova-editorial .top{padding:18px 0}.editorial-hero{padding:24px 20px 45px}.hero-eyebrow{font-size:8px}.editorial-masthead{font-size:23vw;margin:35px 0 28px}.brand-dot{margin:9px 0 0 7px}.editorial-intro{grid-template-columns:35px 1fr;gap:15px;padding-top:25px}.intro-marker{font-size:32px}.editorial-intro h1{font-size:30px}.editorial-intro p{font-size:13px}.editorial-actions{gap:15px}.editorial-button{padding:13px;font-size:11px;gap:20px}.digital-feature{grid-template-columns:1fr;margin:0 12px;padding:30px 24px;gap:25px}.feature-copy h2{font-size:44px;margin:20px 0}.feature-note{padding-top:25px}.design-stage{padding:10px 0}.concept-title{font-size:42px}.concept-art{height:180px}.design-caption{font-size:7px}.rnova-editorial .trust-strip{margin:0 20px;padding:25px 0}.rnova-editorial .trust-strip-inner{align-items:flex-start;gap:10px}.rnova-editorial .section{padding:60px 0}.floating-dock{bottom:12px;gap:1px;padding:5px;width:max-content}.floating-dock a{padding:12px 9px;font-size:10px}.floating-dock .dock-brand{padding:5px 10px}.floating-dock .dock-cta{padding:12px 10px}.dock-cta span{margin-left:5px}.rnova-editorial .footer{padding-bottom:110px}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}.design-browser{transition:none;transform:none}html{scroll-behavior:auto}}
.rnova-editorial .brand img,.rnova-editorial .top.is-solid .brand img{width:40px;height:40px;mix-blend-mode:multiply;filter:none}.brand-dot{color:var(--brand)}
.web-intro{padding-block:75px 85px}.web-intro h1{font-size:clamp(45px,6.5vw,92px);line-height:1.03;margin:35px 0 45px}.web-intro h1 span{color:#777c70}.web-intro-bottom{display:flex;align-items:center;justify-content:space-between;gap:35px;border-top:1px solid var(--line);padding-top:30px}.web-intro-bottom p{max-width:540px;color:var(--ink-soft)}.web-deliverables{padding-block:60px 90px;border-top:1px solid var(--line)}.web-section-label{display:flex;justify-content:space-between;gap:40px}.web-section-label h2{font-size:48px;line-height:1.1;margin:0 0 60px}.web-deliverables-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:35px}.web-deliverables-grid article{border-top:1px solid #a8aca1;padding-top:20px}.web-deliverables-grid article>span{font-size:12px;color:var(--brand)}.web-deliverables-grid h3{font-size:25px;line-height:1.15;margin-top:35px}.web-deliverables-grid p{font-size:14px;color:var(--ink-soft)}.web-pricing{background:#e6e8de;padding:75px 0}.web-pricing h2{font-size:clamp(32px,4vw,54px);line-height:1.1}.web-pricing>.wrap>p:not(.section-kicker){max-width:600px;color:#55594f}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:45px}.pricing-grid article{padding:25px 30px 25px 0;border-top:1px solid #a8aca1;display:flex;flex-direction:column;align-items:flex-start}.pricing-grid article+article{border-left:1px solid #b8bcb0;padding-left:30px}.pricing-grid h3{font-size:29px;margin:15px 0}.pricing-grid .price{font-size:38px;letter-spacing:-.04em;margin:15px 0}.price small{font-size:12px;letter-spacing:0}.pricing-grid p:not(.price){font-size:14px}.pricing-grid a{margin-top:auto;padding-top:25px;color:var(--ink);font-size:13px}.maintenance{border-top:1px solid #a8aca1;margin-top:30px;padding-top:30px;display:grid;grid-template-columns:1fr 2fr;gap:30px}.maintenance h3{font-size:28px;margin:0}.maintenance p{max-width:650px;margin:0;font-size:14px}.web-closing{padding-block:100px}.web-closing h2{font-size:clamp(42px,6vw,85px);line-height:1.05;margin:40px 0}.web-closing h2 span{color:var(--brand);margin-left:20px}.web-closing>p{max-width:500px}.web-closing .editorial-button{margin-top:20px}
@media(max-width:960px){.web-deliverables-grid{grid-template-columns:1fr 1fr}.web-section-label{display:block}.web-section-label h2{font-size:38px;margin-top:25px}.pricing-grid article{padding-right:15px}.pricing-grid article+article{padding-left:15px}.pricing-grid h3{font-size:23px}}
@media(max-width:640px){.web-intro{padding-block:45px}.web-intro h1{font-size:44px;letter-spacing:-.055em}.web-intro-bottom{display:block}.web-intro-bottom p{font-size:14px}.web-intro-bottom a{margin-top:15px}.web-deliverables{padding-block:40px}.web-deliverables-grid{grid-template-columns:1fr}.web-deliverables-grid h3{margin-top:18px}.web-section-label h2{font-size:34px;margin-bottom:35px}.web-pricing{padding-block:45px}.pricing-grid{grid-template-columns:1fr}.pricing-grid article,.pricing-grid article+article{border-left:0;padding:25px 0}.pricing-grid h3{font-size:28px}.maintenance{grid-template-columns:1fr;gap:15px}.web-closing{padding-block:55px}}

/* Partner positioning: four equal service areas. */
.partner-pillars{grid-template-columns:repeat(4,minmax(0,1fr))}.custom-software{padding-block:70px;border-top:1px solid var(--line)}.custom-software h2{font-size:clamp(34px,4vw,56px);line-height:1.1}.custom-software p{max-width:760px}.custom-software .editorial-button{margin-top:20px}.rnova-editorial .editorial-intro p{max-width:570px}
@media(max-width:1100px){.partner-pillars{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.partner-pillars{grid-template-columns:1fr}.custom-software{padding-block:45px}}

/* Home page: calm, consistent lower sections and static client references. */
.rnova-editorial .method .steps{gap:28px}.rnova-editorial .method .step{padding:24px 0}.rnova-editorial .step h3{font-size:23px;font-weight:400}.rnova-editorial .step p{font-size:14px}
.rnova-editorial .section--split{margin:0 24px;min-height:0}.rnova-editorial .split-copy{background:#282c26;padding:48px}.rnova-editorial .split-copy h2{font-size:clamp(30px,3vw,44px);line-height:1.12}.rnova-editorial .split-copy p,.rnova-editorial .split-list li{font-size:14px;font-weight:400}.rnova-editorial .split-copy .section-kicker{color:#d6dfc0}.rnova-editorial .split-media img{object-position:center}
.rnova-editorial .section--sectors{background:var(--paper);border:0}.rnova-editorial .sector-item{border:0;border-top:1px solid #b7baaf;padding:24px 0}.rnova-editorial .sector-item:nth-child(3n){border-right:0}.rnova-editorial .sectors{gap:18px 36px}.rnova-editorial .sector-item h3{font-size:22px;font-weight:400}.rnova-editorial .sector-item p{font-size:14px}.rnova-editorial .sectors-cta .btn{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.rnova-editorial .dakoku-promo{padding:55px 0;background:#e6e8de;color:var(--ink);border:0}.rnova-editorial .dakoku-promo h2{color:var(--ink);font-size:clamp(30px,3.4vw,48px);line-height:1.12}.rnova-editorial .dakoku-promo p{color:#4a5045;font-size:14px}.rnova-editorial .dakoku-visual{background:transparent;min-height:260px;border:1px solid #b9bfb0}.rnova-editorial .dakoku-visual__word{color:#252d23}.rnova-editorial .dakoku-visual__tags{color:#3d4736}.rnova-editorial .dakoku-visual__word em{color:#647d41}
.rnova-editorial .awards{gap:30px}.rnova-editorial .award{background:transparent;box-shadow:none;border:0;border-top:1px solid #bbb;padding:25px 0}.rnova-editorial .award-media{max-width:120px}.rnova-editorial .award h3{font-size:25px}.rnova-editorial .award p{font-size:14px}.rnova-editorial .award--text{padding:25px 0}
.rnova-editorial .clients-static{overflow:visible;border:0;margin:auto;width:min(100% - 80px,1320px)}.rnova-editorial .clients-static .marquee-track{animation:none;transform:none;width:100%;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:25px;padding:20px 0}.rnova-editorial .clients-static img{width:100%;height:45px;object-fit:contain}
.home-faq{border-top:1px solid var(--line)}.faq-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px}.home-faq h2{font-size:clamp(32px,3.5vw,48px);line-height:1.1;max-width:400px;margin:20px 0}.faq-items details{border-bottom:1px solid var(--line)}.faq-items summary{cursor:pointer;padding:22px 30px 22px 0;font-size:17px;list-style:none;position:relative}.faq-items summary::-webkit-details-marker{display:none}.faq-items summary::after{content:'+';position:absolute;right:0}.faq-items details[open] summary::after{content:'−'}.faq-items p{font-size:14px;color:var(--ink-soft);margin:0 0 24px;max-width:600px}
.rnova-editorial #contacto{padding:70px 0;background:#eeeee7}.rnova-editorial .contact-panel{background:transparent;color:var(--ink);padding:0 30px 0 0}.rnova-editorial .contact-title{color:var(--ink);font-size:clamp(35px,3.5vw,50px);font-weight:400}.rnova-editorial .contact-aside,.rnova-editorial .contact-trust{color:#50564b;font-size:14px}.rnova-editorial .contact-meta strong{color:#646d59}.rnova-editorial .contact-meta{font-size:15px}.rnova-editorial .contact-meta a{overflow-wrap:anywhere}.rnova-editorial .form{background:transparent;box-shadow:none;border:0;border-left:1px solid #c6c9bf;padding:0 0 0 40px}.rnova-editorial .form-row input,.rnova-editorial .form-row select,.rnova-editorial .form-row textarea{background:var(--paper);border-radius:0}.rnova-editorial .contact-trust{border-color:#c6c9bf}.rnova-editorial .contact-panel .section-kicker{color:#5e6158}
@media(max-width:960px){.rnova-editorial .clients-static .marquee-track{grid-template-columns:repeat(5,minmax(0,1fr))}.faq-layout{gap:30px}}
@media(max-width:640px){.rnova-editorial .section--split{margin:0 12px}.rnova-editorial .split-media,.rnova-editorial .split-media picture{min-height:0;height:230px}.rnova-editorial .split-copy{padding:30px 24px}.rnova-editorial .section{padding-block:48px}.rnova-editorial .step{padding:18px 0}.rnova-editorial .sectors{gap:0}.rnova-editorial .sector-item{padding:20px 0}.rnova-editorial .dakoku-promo{padding:40px 0}.rnova-editorial .dakoku-visual{min-height:180px}.rnova-editorial .clients-static{width:calc(100% - 40px)}.rnova-editorial .clients-static .marquee-track{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.faq-layout{grid-template-columns:1fr;gap:15px}.faq-items summary{font-size:16px}.rnova-editorial #contacto{padding-block:45px}.rnova-editorial .contact-panel{padding:0}.rnova-editorial .form{border-left:0;border-top:1px solid #c6c9bf;padding:30px 0 0}.rnova-editorial .contact-grid{gap:25px}}

/* SECURITY: mismo recorrido en 18 s; sólo transform, sin recalcular left. */
.masthead-lockup{position:relative;container-type:inline-size;padding-bottom:16px;margin-bottom:40px}
.masthead-lockup .editorial-masthead{margin-bottom:0}
.masthead-security{position:relative;width:max-content;left:96%;margin:8px 0 0;font:400 clamp(23px,3.8vw,55px)/1.2 Arial,Helvetica,sans-serif;letter-spacing:.22em;color:var(--brand);transform:translateX(-100%)}
@supports (width:1cqw){.masthead-security{animation:security-from-center 18s ease-out 1 forwards;will-change:transform}}
@keyframes security-from-center{from{transform:translateX(calc(-46cqw - 50%))}to{transform:translateX(-100%)}}
body:has(.ticker.is-paused) .masthead-security{animation-play-state:paused}
@media(max-width:640px){.masthead-lockup{margin-bottom:28px;padding-bottom:8px}.masthead-security{margin-top:12px;font-size:25px;letter-spacing:.2em}}
@media(prefers-reduced-motion:reduce){.masthead-security{animation:none;transform:translateX(-100%);will-change:auto}}

/* Contraste sobre los fondos claros editoriales. */
.rnova-editorial .trust-years strong{color:var(--ink);-webkit-text-fill-color:currentColor}
.rnova-editorial .browser-chrome{color:#595b53}
.rnova-editorial .dakoku-promo .dakoku-lead{color:#4a5045 !important}
.rnova-editorial .dakoku-visual__tags span{color:#3d4736;border-color:#858d7c}

/* source: /assets/css/footer.css */
/* Shared footer: real headings and always-visible links, without disclosure controls. */
.footer-complete{background:#232620;color:#d4d8ce;border-top:0;padding:55px 0 115px!important;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.65}
.footer-complete .wrap{width:min(100% - 80px,1320px);margin-inline:auto}.footer-intro{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:35px;border-bottom:1px solid #ffffff26;margin-bottom:40px}.footer-complete .footer-name{font-size:24px;letter-spacing:-.04em;color:#fff;font-weight:500}.footer-intro p{margin:8px 0 0;max-width:450px}.footer-complete .footer-talk{border:1px solid #aeb9a0;padding:12px 18px;color:#e6edda;white-space:nowrap}.footer-columns{display:grid;grid-template-columns:1fr 1fr 1.25fr 1fr;gap:30px}.footer-complete .footer-columns h2{font:500 12px/1.5 Arial,Helvetica,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:#a8b69a;margin:0 0 20px}.footer-columns ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}.footer-columns li{overflow-wrap:anywhere}.footer-complete a{color:#e9ece4;text-decoration:none;display:inline-block}.footer-complete a:hover{text-decoration:underline;text-underline-offset:4px;color:#fff}.footer-complete a:focus-visible{outline:2px solid #ddebbe;outline-offset:4px}.footer-complete .footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px 30px;margin-top:42px;padding-top:22px;border-top:1px solid #ffffff26;font-size:11px;color:#bcc4b3}.footer-bottom p{margin:0}
@media(max-width:1000px){.footer-columns{grid-template-columns:1fr 1fr;gap:35px}}
@media(max-width:600px){.footer-complete{padding-top:35px!important}.footer-complete .wrap{width:calc(100% - 40px)}.footer-intro{display:block;padding-bottom:28px;margin-bottom:30px}.footer-complete .footer-talk{margin-top:20px}.footer-columns{grid-template-columns:1fr;gap:28px}.footer-complete .footer-columns h2{margin-bottom:12px}.footer-columns ul{gap:8px}.footer-complete .footer-bottom{display:block;margin-top:30px}.footer-complete .footer-bottom p{margin-bottom:10px}.footer-complete .footer-bottom>a{padding:10px 0}}

/* source: /assets/css/visual.css */
/* Editorial imagery and quiet interactions, shared across RNOVA. */
.course-cover{overflow:hidden;border-radius:5px;margin-bottom:22px;background:#e8e8e1;aspect-ratio:2/1}.course-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.course-card:hover .course-cover img{transform:scale(1.025)}
.project-gallery{padding-block:70px}.project-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:60px;margin-bottom:40px}.project-heading h2{font:400 clamp(38px,5vw,70px)/1.03 Arial,sans-serif;letter-spacing:-.055em;margin:20px 0 0}.project-heading>p{font-size:17px;line-height:1.7;max-width:430px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.project-preview{display:block;position:relative;overflow:hidden;background:#e4e5de;border-radius:6px;aspect-ratio:1.44}.project-preview img{width:100%;height:100%;display:block;object-fit:cover;object-position:top;transition:transform .5s ease}.project-preview>span{position:absolute;bottom:18px;right:18px;background:var(--ink);color:white;font-size:12px;padding:13px 18px;border-radius:30px;transition:background .2s}.project-preview:hover img{transform:scale(1.025)}.project-preview:hover>span{background:var(--brand)}.project-meta{display:flex;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:.04em;padding:22px 0 14px;border-bottom:1px solid #bfc3b8}.project-card h3{font-size:32px;font-weight:400;letter-spacing:-.04em;margin:20px 0 12px}.project-card>p{font-size:15px;line-height:1.7;max-width:520px}
.trajectory-grid{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid #b6bbae;margin:40px 0;border-radius:6px;overflow:hidden}.trajectory-grid>div+div{border-left:1px solid #b6bbae}.trajectory-grid dt{font-size:11px;text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid #b6bbae;padding:16px 24px}.trajectory-grid dd{margin:0;padding:25px 24px;font-size:16px;line-height:1.4}.trajectory-grid strong{font-size:clamp(30px,3vw,44px);font-weight:400;letter-spacing:-.045em;color:var(--brand)}.trajectory-grid dd span{display:block;font-size:14px}.trajectory-grid>div:last-child dd{font-size:30px;letter-spacing:-.03em}
.rnova-editorial .feature-link span,.rnova-editorial .editorial-button span,.course-card>a span,.school-categories span,.dock-cta span{display:inline-block;transition:transform .22s ease}.rnova-editorial .feature-link:hover span,.course-card>a:hover span,.school-categories a:hover span,.dock-cta:hover span{transform:translate(3px,-3px)}.rnova-editorial .top-nav a,.rnova-editorial .footer a,.rnova-editorial .editorial-button{transition:color .2s ease,background-color .2s ease}.rnova-editorial .top-nav a[aria-current=page]{color:var(--brand)}.project-preview:focus-visible{outline:3px solid var(--brand);outline-offset:5px}
@media(max-width:640px){.project-gallery{padding-block:45px}.project-heading{grid-template-columns:1fr;gap:15px;margin-bottom:25px}.project-heading>p{font-size:15px}.project-grid{grid-template-columns:1fr;gap:35px}.project-card h3{font-size:28px}.project-preview>span{bottom:12px;right:12px;font-size:11px}.trajectory-grid{grid-template-columns:1fr}.trajectory-grid>div+div{border-left:0;border-top:1px solid #b6bbae}.trajectory-grid>div{display:grid;grid-template-columns:110px 1fr}.trajectory-grid dt{border-bottom:0;border-right:1px solid #b6bbae;padding:20px 14px;align-content:center;font-size:10px}.trajectory-grid dd{padding:18px 16px;font-size:13px}.trajectory-grid strong{font-size:32px}.trajectory-grid>div:last-child dd{font-size:25px}}
@media(prefers-reduced-motion:reduce){.course-cover img,.project-preview img,.project-preview>span,.rnova-editorial .feature-link span,.rnova-editorial .editorial-button span,.course-card>a span,.school-categories span,.dock-cta span,.rnova-editorial .top-nav a,.rnova-editorial .footer a,.rnova-editorial .editorial-button{transition:none!important;transform:none!important}}

/* source: /assets/css/clients.css */
.clients-carousel{width:min(calc(100% - 80px),1320px);margin:0 auto}.clients-pause{display:flex;justify-content:flex-end;align-items:center;gap:9px;font-size:12px;margin:0 0 14px;cursor:pointer}.clients-pause input{accent-color:var(--brand);width:16px;height:16px}.clients-window{overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent)}.clients-belt{display:flex;width:max-content;animation:clients-glide 75s linear infinite}.clients-belt+ .clients-belt{animation-direction:reverse}.clients-group{display:flex;align-items:center;gap:24px;padding:22px 24px 22px 0;flex-shrink:0}.clients-group img{display:block;width:150px;height:76px;object-fit:contain;flex-shrink:0;filter:grayscale(1);opacity:.85;transition:filter .25s,opacity .25s}.clients-group img:hover{filter:none;opacity:1}.clients-carousel:has(input:checked) .clients-belt,body:has(.ticker.is-paused) .clients-belt{animation-play-state:paused}@media(hover:hover){.clients-window:hover .clients-belt{animation-play-state:paused}}@keyframes clients-glide{to{transform:translateX(-50%)}}@media(max-width:640px){.clients-carousel{width:calc(100% - 40px)}.clients-group{gap:20px;padding:18px 20px 18px 0}.clients-group img{width:130px;height:68px}.clients-belt{animation-duration:80s}}
@media(prefers-reduced-motion:reduce){.clients-belt{animation:none;display:block;width:100%;transform:none}.clients-copy{display:none}.clients-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));padding:16px 0;gap:24px}.clients-group img{width:100%;transition:none}.clients-window{mask-image:none}.clients-pause{display:none}}
