/* ===================================================================
   IMPULSARTE · Home estudio creativo (GSAP/Lenis)
   =================================================================== */
:root{
  --ink:#0B0B0C; --paper:#F6F4EF; --blue:#012A9C; --blue2:#1E3AD6;
  --white:#fff; --muted:#7A7A82; --line:#E4E2DB;
}
html.imp-js{ scroll-behavior:auto; }
.imp-home{ overflow-x:clip; }
.imp-home *{ box-sizing:border-box; }

/* Full-bleed: la sección de Elementor a todo el ancho */
.imp-home #content .ast-container{ max-width:100% !important; padding-left:0 !important; padding-right:0 !important; }
.imp-home .elementor-section > .elementor-container{ max-width:100% !important; }
.imp-home .elementor-section{ padding:0 !important; }
.imp-home .elementor-widget-html,
.imp-home .elementor-widget-html .elementor-widget-container{ width:100%; }
.imp-home #primary{ padding:0 !important; }

/* Contenedor y secciones */
.imp-sec{ padding:clamp(70px,11vw,160px) 0; position:relative; }
.imp-wrap{ width:100%; max-width:1320px; margin:0 auto; padding:0 clamp(20px,5vw,72px); }
.imp-meta{ font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin:0 0 22px; }
.imp-meta.light{ color:rgba(255,255,255,.55); }

/* Tipografía protagonista */
.imp-display{ font-family:'Poppins',sans-serif; font-weight:800; font-size:clamp(44px,8.2vw,132px);
  line-height:.9; letter-spacing:-.03em; margin:0; color:var(--ink); }
.imp-h2{ font-family:'Poppins',sans-serif; font-weight:800; font-size:clamp(34px,5.4vw,88px);
  line-height:.98; letter-spacing:-.025em; margin:0; }
.imp-lead{ font-family:'Inter',sans-serif; font-size:clamp(16px,1.4vw,20px); line-height:1.55; color:var(--muted); }

/* Reveal (oculto solo si el JS arranca) */
html.imp-js [data-reveal],
html.imp-js .hero-el,
html.imp-js [data-lines] .line,
html.imp-js [data-stagger] > *{ opacity:0; }
[data-lines] .line{ display:block; overflow:hidden; padding-top:.14em; margin-top:-.14em; padding-bottom:.18em; margin-bottom:-.18em; }
[data-lines] .line > span{ display:block; }

/* ---------------- HERO ---------------- */
.imp-hero{ background:#fff; padding-top:14px; padding-bottom:56px; }
.imp-hero .imp-display{ margin:6px 0 0; }
.rot-wrap{ display:inline-block; overflow:hidden; vertical-align:bottom; padding-top:.2em; margin-top:-.2em; padding-bottom:.2em; margin-bottom:-.2em; }
.rot{ display:inline-block; color:var(--blue); }
.imp-hero-foot{ display:flex; align-items:flex-end; justify-content:space-between; gap:40px; flex-wrap:wrap; margin-top:clamp(34px,5vw,60px); }
.imp-hero-sub{ max-width:34ch; font-family:'Inter',sans-serif; font-size:16px; line-height:1.6; color:var(--muted); margin:0; }

/* Botones */
.imp-btn{ display:inline-flex; align-items:center; gap:12px; background:var(--blue); color:#fff !important;
  font-family:'Poppins',sans-serif; font-weight:600; font-size:16px; padding:18px 30px; border-radius:8px;
  text-decoration:none !important; transition:background-color 1.5s ease, color 1.5s ease; }
.imp-btn:hover,.imp-btn:focus{ background:var(--ink); color:#fff !important; text-decoration:none !important; }
.imp-btn.light{ background:#fff; color:var(--blue) !important; }
.imp-btn.light:hover,.imp-btn.light:focus{ background:var(--ink); color:#fff !important; text-decoration:none !important; }
.imp-btn .arrow{ display:inline-block; text-decoration:none !important; }

/* Enlace con flecha */
.imp-link{ display:inline-flex; align-items:center; gap:8px; font-family:'Poppins',sans-serif; font-weight:600;
  color:var(--ink); text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:3px; }
.imp-link .arrow{ transition:transform .3s cubic-bezier(.22,.61,.36,1); }
.imp-link:hover .arrow{ transform:translate(4px,-4px); }

/* ---------------- MARQUEE ---------------- */
.imp-marquee{ background:var(--ink); color:#fff; overflow:hidden; padding:26px 0; white-space:nowrap; }
.imp-marquee-track{ display:inline-flex; will-change:transform; animation:imp-marq 26s linear infinite; }
.imp-marquee-track span{ font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(22px,3.4vw,46px);
  letter-spacing:-.01em; padding-right:28px; text-transform:uppercase; }
.imp-marquee-track span em{ color:var(--blue2); font-style:normal; }
@keyframes imp-marq{ to{ transform:translateX(-50%); } }

/* ---------------- PROYECTOS (capítulo oscuro) ---------------- */
.imp-projects{ background:var(--ink); color:#fff; }
.imp-sec-head{ margin-bottom:clamp(40px,6vw,80px); }
.imp-proj-list{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(24px,3vw,54px) clamp(20px,2vw,40px); }
.imp-project{ position:relative; text-decoration:none !important; color:#fff !important; display:block; }
.imp-project-media{ position:relative; overflow:hidden; border-radius:12px; aspect-ratio:16/10; background:#0e1633; }
.imp-project-media .shot{ width:100%; height:100%; object-fit:cover; object-position:top center; display:block; transition:transform .8s cubic-bezier(.22,.61,.36,1); }
.imp-project:hover .imp-project-media .shot{ transform:scale(1.05); }
.imp-project-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,9,26,0) 42%,rgba(6,9,26,.74)); }
.imp-project-name{ position:absolute; left:20px; bottom:16px; z-index:2; font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(20px,2.1vw,30px); color:#fff; letter-spacing:-.01em; text-shadow:0 2px 14px rgba(0,0,0,.45); }
.imp-project-logo{ position:absolute; right:18px; bottom:15px; z-index:2; height:22px; width:auto; opacity:.9 }
.imp-project-meta{ margin-top:14px; font-family:'Inter',sans-serif; font-size:13px; color:rgba(255,255,255,.6); display:flex; align-items:center; justify-content:space-between; gap:14px; }
.imp-project-meta .yr{ white-space:nowrap; color:rgba(255,255,255,.82); }
.imp-project.big{ grid-column:span 7; }
.imp-project.mid{ grid-column:span 5; align-self:end; }
.imp-project.wide{ grid-column:1 / -1; }
.imp-project.wide .imp-project-media{ aspect-ratio:24/9; }

/* ---------------- SERVICIOS (panel fijo) ---------------- */
.imp-services{ background:#fff; }
.imp-services-grid{ display:grid; grid-template-columns:0.9fr 1.3fr; gap:clamp(30px,5vw,90px); align-items:start; }
.imp-services-title{ position:sticky; top:120px; }
.imp-services-title .imp-h2{ margin:10px 0 22px; }
.imp-services-list{ list-style:none; margin:0; padding:0; }
.imp-services-list li{ display:flex; align-items:center; gap:22px; padding:clamp(22px,3vw,38px) 0;
  border-top:1px solid var(--line); font-family:'Poppins',sans-serif; font-weight:700;
  font-size:clamp(24px,3.4vw,46px); letter-spacing:-.02em; color:var(--ink); transition:color .3s, padding-left .3s; cursor:default; }
.imp-services-list li:last-child{ border-bottom:1px solid var(--line); }
.imp-services-list li .num{ font-family:'Inter',sans-serif; font-weight:500; font-size:14px; letter-spacing:.15em; color:var(--muted); width:34px; flex:none; }
.imp-services-list li .arrow{ margin-left:auto; opacity:0; transform:translate(-8px,8px); transition:opacity .3s, transform .3s; color:var(--blue); }
.imp-services-list li:hover{ color:var(--blue); padding-left:12px; }
.imp-services-list li:hover .arrow{ opacity:1; transform:translate(0,0); }

/* ---------------- MANIFIESTO ---------------- */
.imp-manifesto{ background:var(--ink); color:#fff; }
.imp-manifesto-text{ font-family:'Poppins',sans-serif; font-weight:800; font-size:clamp(30px,5vw,78px);
  line-height:1.02; letter-spacing:-.025em; margin:22px 0 0; max-width:20ch; }
.imp-manifesto-text em{ color:var(--blue2); font-style:normal; }

/* ---------------- DATOS ---------------- */
.imp-stats{ background:#fff; }
.imp-stats-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(30px,4vw,60px); }
.imp-num{ display:block; font-family:'Poppins',sans-serif; font-weight:800; font-size:clamp(56px,8vw,120px);
  line-height:1; letter-spacing:-.03em; color:var(--blue); }
.imp-stats-grid p{ font-family:'Inter',sans-serif; font-size:15px; color:var(--muted); margin:14px 0 0; max-width:22ch; }

/* ---------------- PROCESO ---------------- */
.imp-process{ background:var(--paper); }
.imp-process-list{ list-style:none; margin:30px 0 0; padding:0; }
.imp-process-list li{ display:flex; align-items:baseline; gap:26px; padding:clamp(16px,2vw,26px) 0; border-top:1px solid var(--line);
  font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(22px,3vw,40px); letter-spacing:-.02em; color:var(--ink); }
.imp-process-list li .num{ font-family:'Inter',sans-serif; font-weight:500; font-size:14px; letter-spacing:.15em; color:var(--blue); }

/* ---------------- CTA ---------------- */
.imp-cta{ background:var(--blue); color:#fff; text-align:left; }
.imp-cta-text{ font-family:'Poppins',sans-serif; font-weight:800; font-size:clamp(44px,8vw,132px);
  line-height:.92; letter-spacing:-.03em; margin:0 0 clamp(34px,5vw,56px); }
.imp-cta .imp-btn{ background:#fff; color:var(--blue); }
.imp-cta .imp-btn:hover{ background:var(--ink); color:#fff; }

/* Forzar color correcto en titulares (Astra fuerza h2/h3 oscuros) */
.imp-home .imp-hero .imp-display{ color:var(--ink) !important; }
.imp-home .imp-projects .imp-h2,
.imp-home .imp-project-info h3,
.imp-home .imp-manifesto-text,
.imp-home .imp-cta-text{ color:#fff !important; }
.imp-home .imp-manifesto-text em{ color:var(--blue2) !important; }
.imp-home .imp-services .imp-h2,
.imp-home .imp-services-list li,
.imp-home .imp-process-list li{ color:var(--ink) !important; }
.imp-home .imp-stats .imp-num{ color:var(--blue) !important; }

/* ---------------- Nav: ocultar/mostrar según scroll (con transición) ---------------- */
#masthead{ transition:transform .35s cubic-bezier(.4,0,.2,1); will-change:transform; }
body.nav-hidden #masthead{ transform:translateY(-100%); }

/* ---------------- Responsive ---------------- */
@media (max-width:900px){
  .imp-services-grid{ grid-template-columns:1fr; }
  .imp-services-title{ position:static; }
  .imp-stats-grid{ grid-template-columns:1fr; }
  .imp-proj-list{ grid-template-columns:1fr; }
  .imp-project.big,.imp-project.mid,.imp-project.wide{ grid-column:1 / -1; }
  .imp-project.wide .imp-project-media{ aspect-ratio:16/10; }
  .imp-hero-foot{ flex-direction:column; align-items:flex-start; }
}
@media (prefers-reduced-motion:reduce){
  html.imp-js [data-reveal],html.imp-js .hero-el,html.imp-js [data-lines] .line,html.imp-js [data-stagger] > *{ opacity:1 !important; }
  .imp-marquee-track{ animation:none; }
  @media (pointer:fine){ .imp-home,.imp-home a,.imp-home button{ cursor:auto; } }
}
