/* ─────────────────────────────────────────────────────────────
   Tokens
   ───────────────────────────────────────────────────────────── */
:root{
  --ink:#0e0f16;
  --ink-2:#14161f;
  --surface:#181a25;
  --surface-2:#1e2130;
  --line:rgba(232,232,238,.10);
  --line-strong:rgba(232,232,238,.18);
  --text:#e9e9ef;
  --muted:#9698ab;
  --muted-2:#6f7285;
  --accent:#c9a06a;
  --accent-soft:#e0bd8d;
  --accent-dim:rgba(201,160,106,.14);

  --serif:"Instrument Serif", Georgia, "Times New Roman", serif;
  --sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  --wrap:1180px;
  --pad:clamp(1.25rem, 5vw, 3.5rem);
  --radius:14px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--text);
  font-family:var(--sans);font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent);color:var(--ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}

/* Tipografía */
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;line-height:1.08;margin:0}
h1{font-size:clamp(2.6rem,7vw,4.6rem)}
h2{font-size:clamp(2rem,4.6vw,3.1rem)}
h3{font-size:clamp(1.3rem,2.2vw,1.6rem);line-height:1.2}
p{margin:0}
.lead{font-size:clamp(1.02rem,1.35vw,1.16rem);color:var(--muted);max-width:60ch}

.eyebrow{
  font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);display:flex;align-items:center;gap:.7rem;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--accent);opacity:.7;flex:none}

/* Botones */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;
  background:transparent;
  padding:.82rem 1.5rem;border-radius:999px;font-size:.92rem;font-weight:500;
  border:1px solid transparent;cursor:pointer;transition:all .28s var(--ease);
  font-family:var(--sans);white-space:nowrap;
}
.btn-primary{background:var(--accent);color:#191307}
.btn-primary:hover{background:var(--accent-soft);transform:translateY(-2px);box-shadow:0 10px 30px -12px rgba(201,160,106,.6)}
.btn-ghost{border-color:var(--line-strong);color:var(--text)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}
.btn svg{width:15px;height:15px;flex:none}

/* ── Nav ─────────────────────────────────────────────────── */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:100;
  transition:background .35s var(--ease),border-color .35s var(--ease),backdrop-filter .35s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{background:rgba(14,15,22,.82);backdrop-filter:blur(14px) saturate(160%);border-bottom-color:var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:70px}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:600;font-size:.95rem;letter-spacing:-.01em}
.brand-mark{
  width:31px;height:31px;border-radius:8px;flex:none;
  background:linear-gradient(140deg,var(--accent),#8d6d42);
  color:#171106;display:grid;place-items:center;
  font-family:var(--serif);font-size:.9rem;letter-spacing:.02em;
}
.nav-links{display:flex;align-items:center;gap:2rem;list-style:none;margin:0;padding:0}
.nav-links a{font-size:.9rem;color:var(--muted);transition:color .22s;position:relative}
.nav-links a:hover,.nav-links a.active{color:var(--text)}
.nav-links a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--accent)
}
.nav-cta{display:flex;align-items:center;gap:.75rem}
.nav-cta .btn{padding:.6rem 1.15rem;font-size:.86rem}

/* Selector de idioma */
.lang{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:999px;overflow:hidden}
.lang a{
  font-size:.75rem;font-weight:500;letter-spacing:.06em;padding:.4rem .62rem;color:var(--muted);
  transition:background .25s var(--ease),color .25s var(--ease);line-height:1;
}
.lang a:hover{color:var(--text)}
.lang a[aria-current="true"]{background:var(--accent);color:#191307}

.burger{display:none;background:none;border:0;padding:.5rem;cursor:pointer;color:var(--text)}
.burger span{display:block;width:20px;height:1.5px;background:currentColor;transition:.3s var(--ease)}
.burger span+span{margin-top:5px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ── Hero ────────────────────────────────────────────────── */
.hero{position:relative;padding:clamp(7.5rem,14vw,10.5rem) 0 clamp(3.5rem,7vw,5.5rem);overflow:hidden}
.hero::before{
  content:"";position:absolute;top:-22%;right:-12%;width:min(760px,88vw);aspect-ratio:1;
  background:radial-gradient(circle,rgba(201,160,106,.15),transparent 62%);
  filter:blur(28px);pointer-events:none;z-index:0;
}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2.5rem,5vw,4.5rem);align-items:center}
.hero h1{margin:1.4rem 0 0}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero .lead{margin-top:1.6rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.2rem}

.portrait{position:relative}
.portrait-frame{
  position:relative;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--line-strong);
  box-shadow:0 34px 80px -34px rgba(0,0,0,.9);
}
.portrait-frame img{width:100%;aspect-ratio:1;object-fit:cover}
.portrait-frame::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(200deg,transparent 52%,rgba(14,15,22,.72));
}
.portrait-tag{
  position:absolute;left:-14px;bottom:22px;z-index:2;
  background:rgba(24,26,37,.92);backdrop-filter:blur(10px);
  border:1px solid var(--line-strong);border-radius:11px;
  padding:.7rem 1rem;display:flex;align-items:center;gap:.65rem;
  box-shadow:0 14px 34px -14px rgba(0,0,0,.85);
}
.dot{width:7px;height:7px;border-radius:50%;background:#6dbb7f;flex:none;box-shadow:0 0 0 3px rgba(109,187,127,.16)}
.portrait-tag span{font-size:.8rem;color:var(--muted)}
.portrait-tag b{color:var(--text);font-weight:500}

/* ── Secciones ───────────────────────────────────────────── */
section{position:relative}
.sec{padding:clamp(4.5rem,9vw,7.5rem) 0}
.sec-head{max-width:62ch;margin-bottom:clamp(2.5rem,5vw,3.8rem)}
.sec-head h2{margin:1.1rem 0 0}
.sec-head .lead{margin-top:1.1rem}

/* Perfil */
.perfil-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
.perfil-text p+p{margin-top:1.1rem}
.perfil-text p{color:var(--muted);line-height:1.75}
.perfil-aside{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(1.5rem,3vw,2.1rem);
}
.perfil-aside h3{font-family:var(--sans);font-size:.74rem;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--muted-2)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.2rem;padding:0;list-style:none}
.chips li{
  font-size:.82rem;color:var(--muted);padding:.4rem .85rem;border-radius:999px;
  border:1px solid var(--line);background:var(--ink-2);transition:.25s var(--ease);
}
.chips li:hover{border-color:var(--accent);color:var(--accent-soft)}
.aside-note{margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted);line-height:1.6}

/* Servicios */
.serv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.serv{background:var(--ink);padding:clamp(1.7rem,3.2vw,2.4rem);transition:background .3s var(--ease)}
.serv:hover{background:var(--surface)}
.serv-n{font-family:var(--serif);font-size:1rem;color:var(--accent);opacity:.75}
.serv h3{margin:.85rem 0 .7rem}
.serv p{font-size:.93rem;color:var(--muted);line-height:1.7}

/* Proyectos */
.proj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.4rem,2.6vw,2rem)}
.proj{
  display:flex;flex-direction:column;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  transition:transform .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);
}
.proj:hover{transform:translateY(-5px);border-color:var(--line-strong);box-shadow:0 26px 60px -30px rgba(0,0,0,.9)}
.proj-img{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--ink-2);border-bottom:1px solid var(--line)}
.proj-img img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .7s var(--ease)}
.proj:hover .proj-img img{transform:scale(1.04)}
.proj-body{padding:clamp(1.3rem,2.4vw,1.75rem);display:flex;flex-direction:column;flex:1}
.tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.9rem}
.tag{font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;font-weight:500;
  padding:.28rem .6rem;border-radius:5px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.tag.own{background:var(--accent-dim);color:var(--accent-soft);border-color:rgba(201,160,106,.3)}
.proj h3{margin-bottom:.65rem}
.proj p{font-size:.91rem;color:var(--muted);line-height:1.68;flex:1}
.proj-link{
  display:inline-flex;align-items:center;gap:.45rem;margin-top:1.3rem;
  font-size:.87rem;font-weight:500;color:var(--accent);transition:gap .25s var(--ease)
}
.proj:hover .proj-link{gap:.8rem}

.more-wrap{display:flex;justify-content:center;margin-top:clamp(2rem,4vw,2.8rem)}
#moreBtn svg{transition:transform .35s var(--ease)}
#moreBtn[aria-expanded="true"] svg{transform:rotate(180deg)}
/* Estado oculto solo mientras no se ha pulsado "Ver más": al mostrarse deja de
   fijar transform, para que la tarjeta recupere el mismo hover que las demás. */
.proj[hidden]{display:none}
.proj.extra{transition:opacity .55s var(--ease),transform .55s var(--ease),
            border-color .4s var(--ease),box-shadow .4s var(--ease)}
.proj.extra:not(.shown){opacity:0;transform:translateY(18px)}

/* Hackathons — tarjetas horizontales, alternando el lado de la imagen */
.hack-list{display:flex;flex-direction:column;gap:clamp(1.6rem,3vw,2.4rem)}
.hack{
  display:grid;grid-template-columns:1.02fr .98fr;align-items:stretch;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;transition:border-color .4s var(--ease),box-shadow .4s var(--ease);
}
.hack:hover{border-color:var(--line-strong);box-shadow:0 26px 60px -30px rgba(0,0,0,.9)}
.hack-img{position:relative;overflow:hidden;background:var(--ink-2);min-height:230px}
.hack-img img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .7s var(--ease)}
.hack-img.left img{object-position:left top}
.hack:hover .hack-img img{transform:scale(1.03)}
.hack-body{padding:clamp(1.4rem,2.8vw,2.3rem);display:flex;flex-direction:column;justify-content:center}
.hack-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.85rem}
.hack-date{font-size:.71rem;letter-spacing:.13em;text-transform:uppercase;font-weight:500;color:var(--accent)}
.hack-org{font-size:.82rem;color:var(--muted)}
.hack-sep{color:var(--muted-2);font-size:.8rem}
.hack h3{margin-bottom:.6rem}
.hack p{font-size:.91rem;color:var(--muted);line-height:1.68}
.hack-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.05rem;list-style:none;padding:0}
.hack-tags li{font-size:.71rem;color:var(--muted);padding:.26rem .6rem;border-radius:5px;
  background:var(--surface-2);border:1px solid var(--line)}
.hack .proj-link{margin-top:1.25rem}
.hack:hover .proj-link{gap:.8rem}
.hack:nth-child(even) .hack-img{order:2}

/* Cita */
.quote{border-block:1px solid var(--line);background:var(--ink-2);text-align:center}
.quote-in{padding:clamp(4rem,8vw,6rem) 0;max-width:26ch;margin-inline:auto}
.quote blockquote{margin:0;font-family:var(--serif);font-size:clamp(1.6rem,3.4vw,2.5rem);line-height:1.24;font-style:italic}
.quote-mark{font-family:var(--serif);font-size:3.4rem;color:var(--accent);opacity:.4;line-height:.5;display:block;margin-bottom:1.4rem}
.quote cite{display:block;margin-top:1.8rem;font-style:normal;font-size:.83rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted-2)}

/* Contacto */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
.channels{list-style:none;margin:2.2rem 0 0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.channel{
  display:flex;align-items:center;gap:.95rem;padding:.95rem 1.1rem;border-radius:11px;
  border:1px solid var(--line);background:var(--surface);transition:.3s var(--ease)
}
.channel:hover{border-color:var(--accent);transform:translateX(4px)}
.channel-ico{width:34px;height:34px;border-radius:9px;background:var(--surface-2);display:grid;place-items:center;flex:none;color:var(--accent)}
.channel-ico svg{width:16px;height:16px}
.channel-txt small{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
.channel-txt span{font-size:.93rem;color:var(--text)}

.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.5rem,3.2vw,2.3rem)}
.field{margin-bottom:1.1rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
label{display:block;font-size:.79rem;font-weight:500;letter-spacing:.05em;color:var(--muted);margin-bottom:.5rem}
input,select,textarea{
  width:100%;padding:.8rem .95rem;background:var(--ink);color:var(--text);
  border:1px solid var(--line);border-radius:9px;font-family:var(--sans);font-size:.92rem;
  transition:border-color .25s var(--ease),background .25s var(--ease);
}
input::placeholder,textarea::placeholder{color:var(--muted-2)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background:var(--ink-2)}
textarea{resize:vertical;min-height:120px;line-height:1.6}
select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' stroke='%239698ab' stroke-width='1.3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .9rem center;background-size:12px;padding-right:2.4rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .btn{width:100%;justify-content:center;margin-top:.4rem}
.form-note{margin-top:.95rem;font-size:.79rem;color:var(--muted-2);line-height:1.55;text-align:center}
.form-msg{margin-top:1rem;padding:.85rem 1rem;border-radius:9px;font-size:.88rem;display:none;line-height:1.55}
.form-msg.ok{display:block;background:rgba(109,187,127,.1);border:1px solid rgba(109,187,127,.32);color:#a5d9b1}
.form-msg.err{display:block;background:rgba(214,110,110,.1);border:1px solid rgba(214,110,110,.32);color:#e3a3a3}
.btn[disabled]{opacity:.6;cursor:wait}

/* Footer */
.footer{border-top:1px solid var(--line);padding:2.8rem 0;background:var(--ink-2)}
.footer-in{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;align-items:center}
.footer p{font-size:.85rem;color:var(--muted-2)}
.footer-links{display:flex;gap:1.5rem;list-style:none;margin:0;padding:0}
.footer-links a{font-size:.85rem;color:var(--muted);transition:color .22s}
.footer-links a:hover{color:var(--accent)}

/* WhatsApp flotante */
.wa{
  position:fixed;right:clamp(1rem,3vw,1.8rem);bottom:clamp(1rem,3vw,1.8rem);z-index:90;
  width:54px;height:54px;border-radius:50%;background:#25d366;color:#fff;
  display:grid;place-items:center;box-shadow:0 12px 30px -8px rgba(37,211,102,.5);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.wa:hover{transform:scale(1.08) translateY(-2px);box-shadow:0 16px 38px -8px rgba(37,211,102,.62)}
.wa svg{width:27px;height:27px}
.wa::after{
  content:attr(data-tip);position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(6px);
  background:var(--surface);color:var(--text);border:1px solid var(--line-strong);
  padding:.5rem .85rem;border-radius:8px;font-size:.82rem;white-space:nowrap;
  opacity:0;pointer-events:none;transition:.3s var(--ease);
}
.wa:hover::after{opacity:1;transform:translateY(-50%) translateX(0)}

/* Reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.rv.in{opacity:1;transform:none}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width:1120px){
  .nav-links{gap:1.35rem}
  .nav-links a{font-size:.86rem}
}
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:3rem}
  .portrait{max-width:400px;margin-inline:auto;width:100%}
  .perfil-grid,.contact-grid{grid-template-columns:1fr}
  .proj-grid,.serv-grid{grid-template-columns:1fr}
  .hack{grid-template-columns:1fr}
  .hack:nth-child(even) .hack-img{order:0}
  .hack-img{aspect-ratio:16/10;min-height:0}
}
@media (max-width:760px){
  .nav-links{
    position:fixed;inset:70px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;
    background:rgba(14,15,22,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);
    padding:.5rem var(--pad) 1.5rem;
    display:none;
  }
  .nav-links.open{display:flex}
  .nav-links a{padding:.95rem 0;border-bottom:1px solid var(--line);font-size:1rem}
  .nav-links a.active::after{display:none}
  .burger{display:block}
  .nav-cta .btn{display:none}
  .lang a{padding:.45rem .7rem}
  .field-row{grid-template-columns:1fr;gap:0}
  .portrait-tag{left:8px}
  .wa::after{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .rv{opacity:1;transform:none}
}

/* ─────────────────────────────────────────────────────────────
   Landing de sector
   ───────────────────────────────────────────────────────────── */
.crumb{display:flex;gap:.5rem;align-items:center;font-size:.8rem;color:var(--muted-2);margin-bottom:1.3rem}
.crumb a{color:var(--muted);transition:color .22s}
.crumb a:hover{color:var(--accent)}

.sec-hero{padding:clamp(7.5rem,13vw,9.5rem) 0 clamp(2.5rem,5vw,4rem);position:relative;overflow:hidden}
.sec-hero::before{
  content:"";position:absolute;top:-30%;left:50%;transform:translateX(-50%);
  width:min(900px,95vw);aspect-ratio:1;
  background:radial-gradient(circle,rgba(201,160,106,.12),transparent 60%);
  filter:blur(30px);pointer-events:none;z-index:0;
}
.sec-hero .wrap{position:relative;z-index:1}
.sec-hero h1{font-size:clamp(2.2rem,5vw,3.5rem);margin:1.2rem 0 0;max-width:20ch}
.sec-hero .lead{margin-top:1.4rem;max-width:64ch}
.sec-hero .hero-actions{margin-top:2rem}

/* Rejilla de tres columnas para las garantías */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.grid-3 > *{background:var(--ink);padding:clamp(1.5rem,3vw,2.1rem)}
.card-ico{width:38px;height:38px;border-radius:10px;background:var(--accent-dim);
  display:grid;place-items:center;color:var(--accent);margin-bottom:1.1rem}
.card-ico svg{width:19px;height:19px}
.grid-3 h3{font-size:1.15rem;margin-bottom:.6rem}
.grid-3 p{font-size:.9rem;color:var(--muted);line-height:1.68}

/* Pruebas: proyectos reales del sector, sin imagen */
.proof{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1rem,2vw,1.4rem)}
.proof-item{
  display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:clamp(1.3rem,2.4vw,1.8rem);
  transition:transform .35s var(--ease),border-color .35s var(--ease);
}
.proof-item:hover{transform:translateY(-4px);border-color:var(--line-strong)}
.proof-item h3{font-size:1.2rem;margin-bottom:.5rem}
.proof-item p{font-size:.9rem;color:var(--muted);line-height:1.66;flex:1}
.proof-fact{
  display:inline-block;margin-bottom:.9rem;font-size:.71rem;letter-spacing:.09em;
  text-transform:uppercase;font-weight:500;color:var(--accent-soft);
  background:var(--accent-dim);border:1px solid rgba(201,160,106,.3);
  padding:.26rem .6rem;border-radius:5px;
}

/* Proceso en tres pasos */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.5vw,2rem);counter-reset:paso}
.step{position:relative;padding-top:2.6rem}
.step::before{
  counter-increment:paso;content:counter(paso,decimal-leading-zero);
  position:absolute;top:0;left:0;font-family:var(--serif);font-size:1.6rem;color:var(--accent);opacity:.8;
}
.step h3{font-size:1.1rem;margin-bottom:.55rem}
.step p{font-size:.9rem;color:var(--muted);line-height:1.68}

/* Cierre */
.cta-final{border-top:1px solid var(--line);background:var(--ink-2);text-align:center}
.cta-final-in{padding:clamp(4rem,8vw,6rem) 0;max-width:56ch;margin-inline:auto}
.cta-final h2{margin-bottom:1.1rem}
.cta-final .lead{margin-inline:auto;margin-bottom:2rem}
.cta-final .hero-actions{justify-content:center}

@media (max-width:980px){
  .grid-3,.steps,.proof{grid-template-columns:1fr}
}

/* ─────────────────────────────────────────────────────────────
   Distintivos sobre la imagen de una tarjeta de proyecto:
   precio y valoración de las apps publicadas en el marketplace.
   ───────────────────────────────────────────────────────────── */
.app-price,.app-stars{
  position:absolute;bottom:.75rem;z-index:2;
  background:rgba(14,15,22,.88);backdrop-filter:blur(8px);
  border:1px solid var(--line-strong);border-radius:999px;
  padding:.32rem .75rem;font-size:.78rem;font-weight:500;color:var(--accent-soft);
}
.app-price{right:.75rem}
.app-stars{left:.75rem;display:inline-flex;align-items:center;gap:.35rem}
.app-stars svg{width:12px;height:12px}
