/* ============================================================
   BASE V2 - lo que comparten TODAS las paginas rediseñadas
   Se carga DESPUES de estilos.css y ANTES del archivo de cada
   pagina. Orden en el <head>:

     tokens.css -> estilos.css -> base-v2.css -> (home|servicio).css
                                              -> (cortinas|proyectos).css

   Todo esta bajo la clase .v2 del <body>. Las paginas que aun no
   estan rediseñadas no llevan ninguna clase en el <body> y no
   cargan este archivo, asi que no pueden verse afectadas ni por
   accidente.

   Clases del <body>:
     index.html         v2 home
     renderizacion.html v2 servicio
     cortinas.html      v2 servicio cortinas
     proyectos.html     v2 servicio proyectos

   QUE ENTRA AQUI: solo las reglas que estaban IDENTICAS, caracter
   por caracter, en home.css y en el que hoy es servicio.css. Son 44.

   QUE NO ENTRA, aunque lo parezca:
   - .hero-content y .hero h1: mismo nombre, valores distintos (el
     home usa un titular mas grande y una columna mas ancha).
   - .obra: en el home es una pieza de la grilla de proyectos; en
     las paginas de servicio es una fila alternada. Mismo nombre,
     dos componentes distintos. Meterlo aqui romperia el home.
   - La regla de movil de .hero-content: su regla base se queda en
     cada archivo, y como esos archivos cargan DESPUES que este,
     la de movil perderia y el hero dejaria de ajustarse.
   ============================================================ */

/* --- Lenis (scroll suave): CSS minimo que la libreria necesita.
   No lleva la clase .v2 porque actua sobre <html>, no sobre el
   contenido. Solo lo reciben las paginas que cargan este archivo. */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

/* --- Contenedor --- */
.v2 .wrap{max-width:var(--container-max);padding-left:var(--container-padding);padding-right:var(--container-padding)}

/* --- Tipografia base --- */
.v2 h1,.v2 h2,.v2 h3{font-family:var(--font-serif);font-weight:300;letter-spacing:0}
.v2 .h-sans{font-family:var(--font-serif);font-weight:300;letter-spacing:0;line-height:var(--leading-tight)}
/* El dorado en cursiva vive solo en el H1. En H2 y H3 la cursiva se
   mantiene, pero hereda el color del texto. */
.v2 h2 em,.v2 h3 em{color:inherit;font-weight:inherit}

.v2 .label{display:block;font-family:var(--font-sans);font-weight:400;font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;line-height:1.4}

/* --- Botones: outline dorado, sin esquinas redondeadas --- */
.v2 .btn{border-radius:var(--radius);font-family:var(--font-sans);font-size:var(--text-label);letter-spacing:var(--tracking-label);padding:var(--space-2) var(--space-4);transition:background var(--transition-fast),color var(--transition-fast)}
.v2 .btn-ghost{background:transparent;color:var(--color-accent-gold);border:1px solid var(--color-accent-gold)}
.v2 .btn-ghost:hover{background:var(--color-accent-gold);color:var(--color-bg-dark)}

/* --- Navegacion: transparente sobre el hero, vidrio esmerilado al bajar.
   La primera declaracion de background (solida) es el respaldo: si el
   navegador no entiende color-mix, se queda con ella y la barra se ve
   solida en vez de rota. La segunda la pisa donde si se entiende.

   75% de opacidad y no 70%: a 70% el texto del menu sobre una foto muy
   clara se queda en 4,6:1 de contraste, al filo del minimo accesible
   para letra pequena (4,5:1). A 75% sube a 5,2:1 con margen. */
.v2 header{padding:var(--space-3) 0}
.v2 header.scrolled{
  background:var(--color-bg-dark);
  background:color-mix(in srgb, var(--color-bg-dark) 75%, transparent);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
  padding:var(--space-2) 0;
  border-bottom:1px solid var(--color-border-dark)
}

/* Navegadores sin vidrio esmerilado: fondo solido.
   Se pregunta por las dos formas (con y sin prefijo -webkit-) porque
   Safari durante anos solo entendio la version con prefijo. Preguntando
   solo por la version sin prefijo, Safari caeria aqui y perderia el
   efecto aunque si sabe hacerlo. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .v2 header.scrolled{background:var(--color-bg-dark)}
}

/* Por debajo de 1024px se desactiva: el desenfoque a pantalla completa
   es caro en moviles y se nota en el scroll. Vuelve el fondo solido. */
@media(max-width:1023px){
  .v2 header.scrolled{
    background:var(--color-bg-dark);
    -webkit-backdrop-filter:none;
    backdrop-filter:none
  }
}

/* ============================================================
   HERO - la caja y el medio. El titular y el ancho de la columna
   de texto los pone cada pagina, porque no coinciden.
   ============================================================ */
.v2 .hero{min-height:100svh;padding:0;display:flex;align-items:flex-end;position:relative;overflow:hidden;background:var(--color-bg-dark)}

/* Contenedor del medio del hero. Hoy aloja un <img>, y para poner un
   video basta con reemplazarlo por un <video> con la misma clase
   .hero-media__el, sin tocar este CSS.
   El 8% extra arriba y abajo es el margen que necesita el parallax
   para moverse sin dejar ver un borde vacio. Lo recorta el .hero. */
.v2 .hero-media{position:absolute;inset:-8% 0;z-index:0}
.v2 .hero-media__el{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;will-change:transform}

/* Degradado: oscurece arriba (legibilidad del menu) y abajo (el texto) */
.v2 .hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,rgba(15,15,17,.72) 0%,rgba(15,15,17,.18) 32%,rgba(15,15,17,.55) 68%,rgba(15,15,17,.94) 100%)}

.v2 .hero .label{color:var(--color-text-on-dark-muted);margin-bottom:var(--space-3)}
.v2 .hero h1 em{color:var(--color-accent-gold)}

/* ============================================================
   ENLACE DE TEXTO CON FLECHA
   Subrayado dorado que crece al pasar el cursor. La regla que lo
   activa al pasar por encima de una fila entera se queda en cada
   pagina, porque la fila se llama distinto en cada una.
   ============================================================ */
.v2 .link-flecha{display:inline-block;font-family:var(--font-sans);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-on-light);position:relative;padding-bottom:var(--space-1)}
.v2 .link-flecha::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--color-accent-gold);transition:width var(--transition-medium)}

/* ============================================================
   CTA FINAL - pausa visual, solo tipografia
   Comprimido: el relleno de --space-8 dejaba 256px de aire para
   195px de contenido. A --space-7 el bloque baja de 541 a 461px sin
   tocar el tamano del titular, que es el cierre de cada pagina.
   El margen bajo el H2 baja de --space-5 a --space-4.
   ============================================================ */
.v2 .cta-final{background:var(--color-bg-dark);border-top:1px solid var(--color-border-dark);padding:var(--space-7) 0;text-align:center}
.v2 .cta-final .label{color:var(--color-text-on-dark-muted);margin-bottom:var(--space-3)}
.v2 .cta-final h2{font-size:var(--text-h1);line-height:var(--leading-tight);color:var(--color-text-on-dark);max-width:20ch;margin:0 auto var(--space-4)}

/* ============================================================
   FOOTER
   ============================================================ */
.v2 footer{background:var(--color-bg-dark);border-top:1px solid var(--color-accent-gold);padding:var(--space-6) 0 var(--space-4)}
.v2 .foot{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:var(--space-6)}
.v2 .foot img{height:52px}
.v2 .foot-datos{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-3);font-family:var(--font-sans);font-size:var(--text-small);color:var(--color-text-on-dark-muted)}
.v2 .foot-datos a:hover{color:var(--color-accent-gold)}
.v2 .foot-links{gap:var(--space-3)}
.v2 .foot-links a{font-size:var(--text-label);letter-spacing:var(--tracking-label);color:var(--color-text-on-dark-muted)}
.v2 .foot-links a:hover{color:var(--color-accent-gold)}
.v2 .foot .social{gap:var(--space-1);margin-top:var(--space-3)}
.v2 .foot .social a{width:34px;height:34px;font-size:14px;border-color:var(--color-border-dark);color:var(--color-text-on-dark-muted)}
.v2 .foot .social a:hover{border-color:var(--color-accent-gold);color:var(--color-accent-gold);transform:none}
.v2 .foot small{color:var(--color-text-on-dark-muted);font-size:var(--text-label);letter-spacing:.06em}
.v2 .foot-cierre{grid-column:1/-1;border-top:1px solid var(--color-border-dark);padding-top:var(--space-3)}

/* ============================================================
   REVELADO AL ENTRAR EN PANTALLA
   La clase .anim la pone el JavaScript. Si el JS no carga, o si el
   visitante pidio menos movimiento, la clase nunca se agrega y todo
   el contenido se ve normal desde el primer momento.
   ============================================================ */
.v2.anim .rv{opacity:0;transform:translateY(var(--space-3))}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:880px){
  .v2 .foot{grid-template-columns:1fr;gap:var(--space-4)}
  /* El relleno de movil del CTA vivia repetido en home.css y en
     servicio.css. Ahora vive aqui, junto al resto del bloque, y de
     paso baja de --space-7 a --space-6. */
  .v2 .cta-final{padding:var(--space-6) 0}
}

/* ============================================================
   MENOS MOVIMIENTO - respeta prefers-reduced-motion
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  .v2 .rv{opacity:1!important;transform:none!important}
  .v2 .hero-media__el{transform:none!important}
}
