/* ============================================================
   STYLES.CSS — HERMANOS ALCARAZ TORROGLOSA
   ============================================================ */

:root {
  --azul: #00103A;
  --rojo: #DA291C;
  --blanco: #ffffff;
  --perla: #DFE3F1;
  --perla-dark: #c8cde3;
  --texto-dark: #00103A;
  --texto-mid: #3a4a6b;
  --font-main: 'Barlow', sans-serif;
  --font-cond: 'Barlow Condensed', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; background: var(--perla); }
body { font-family: var(--font-main); background: var(--perla); color: var(--texto-dark); overflow-x: hidden; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
ul { list-style: none; }

/* ── TOPBAR ── */
.topbar { background: #00103A; padding: 7px 0; }
.topbar-inner { max-width: 1400px; margin: 0 auto; padding: 0 2rem; display: flex; justify-content: flex-end; align-items: center; gap: 2rem; }
.topbar-item { font-size: 12px; color: rgba(255,255,255,0.7); display: flex; align-items: center; gap: 6px; transition: color 0.2s; }
.topbar-item:hover { color: #fff; }
.topbar-item .ti { font-size: 13px; }

/* ── HEADER ── */
.header { background: #00103A; border-bottom: 3px solid var(--rojo); position: sticky; top: 0; z-index: 1000; transition: box-shadow 0.3s; }
.header.scrolled { box-shadow: 0 4px 20px rgba(0,0,0,0.5); }
.header-inner { max-width: 1400px; margin: 0 auto; padding: 0 2rem; display: grid; grid-template-columns: 220px 1fr 220px; align-items: center; height: 75px; }
.logo { display: flex; align-items: center; }
.logo-img { height: 34px; width: auto; flex-shrink: 0; }
/* A partir de 1025px el menú ya no está apretado (ver mobile.css, que reduce
   el padding de los enlaces entre 769-1024px), así que aquí hay margen de
   sobra para dar a la columna del logo el ancho que realmente necesita
   (275px con la altura actual de 34px) sin robarle espacio al menú central.
   Por debajo de 1025px se mantienen los 220px originales a propósito. */
@media (min-width: 1025px) {
  .header-inner { grid-template-columns: 280px 1fr 280px; }
}

/* ── NAV ── */
.nav { justify-self: center; }
.nav-list { display: flex; align-items: center; justify-content: center; }
.nav-item { position: relative; }
.nav-item > a { display: flex; align-items: center; padding: 0 20px; height: 75px; font-family: 'Archivo Narrow', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.5px; color: var(--blanco); transition: color 0.2s; white-space: nowrap; text-transform: uppercase; }
.nav-item > a:hover { color: var(--rojo); }
.nav-chevron { display: none; }

/* DROPDOWN */
.dropdown { position: absolute; top: 100%; left: 0; background: var(--azul); border-top: 2px solid var(--rojo); min-width: 220px; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: all 0.22s; z-index: 100; }
.nav-item:hover > .dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown li > a { display: flex; justify-content: space-between; align-items: center; padding: 12px 18px; font-size: 12px; font-weight: 500; color: rgba(255,255,255,0.8); border-bottom: 1px solid rgba(255,255,255,0.07); transition: all 0.2s; }
.dropdown li > a:hover { color: #fff; background: rgba(255,255,255,0.06); padding-left: 24px; }

/* SUBDROPDOWN */
.subdropdown { position: absolute; left: 100%; top: 0; background: var(--azul); border-top: 2px solid var(--rojo); min-width: 200px; opacity: 0; visibility: hidden; transform: translateX(-6px); transition: all 0.22s; z-index: 101; }
.has-subdropdown:hover > .subdropdown { opacity: 1; visibility: visible; transform: translateX(0); }

/* HAMBURGER */
.hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; justify-self: end; position: relative; z-index: 1200; }
.hamburger span { display: block; width: 24px; height: 2px; background: #fff; transition: all 0.3s; border-radius: 2px; }
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.nav-close { display: none; }
.nav-overlay { display: none; }
.nav-footer { display: none; }

/* ── HERO ── */
.hero { position: relative; height: calc(100vh - 112px); min-height: 500px; overflow: hidden; background: #000; }
.hero-bg { position: absolute; inset: 0; }
.hero-video { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; transform: scale(1.15); transform-origin: center bottom; }
.hero-overlay { position: absolute; inset: 0; background: transparent; }
.hero-content { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; z-index: 2; padding: 2rem; }
.hero-title { font-family: var(--font-cond); font-size: clamp(28px, 4vw, 56px); font-weight: 800; color: #fff; letter-spacing: 0.05em; line-height: 1.1; text-shadow: 0 2px 20px rgba(0,0,0,0.4); margin-bottom: 2.5rem; overflow: hidden; }
.hero-title-line {
  display: block; opacity: 0; transform: translateY(100%);
  animation: heroLineIn 0.9s cubic-bezier(.22,.9,.32,1) forwards;
}
/* Retraso pensado para que el texto entre cuando el vídeo ya lleva un
   momento reproduciéndose (arranca solo, sin depender de JavaScript:
   así el texto siempre aparece, aunque el vídeo tarde, falle, o el
   navegador bloquee el autoplay). */
.hero-title-line:nth-child(1) { animation-delay: 1.1s; }
.hero-title-line:nth-child(2) { animation-delay: 1.33s; }
.hero-title-line:nth-child(3) { animation-delay: 1.56s; }
@keyframes heroLineIn {
  0%   { opacity: 0; transform: translateY(100%); }
  100% { opacity: 1; transform: translateY(0); }
}
.hero-cta { width: 48px; height: 48px; border: 2px solid rgba(255,255,255,0.5); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 22px; color: #fff; animation: bounce 2s infinite; }
.hero-cta-anim { opacity: 0; animation: bounce 2s infinite, heroCtaIn 0.7s ease forwards 2s; }
@keyframes heroCtaIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes bounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(8px)} }

/* ── SOMOS — TEXTO + CIFRAS INTEGRADO ── */
.somos { background: var(--perla); padding: 6rem 3rem; overflow: hidden; }
.somos-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: 1.1fr 0.9fr;
  gap: 5rem; align-items: center;
}

/* Estados de entrada por scroll: ocultos hasta que .somos lleva la clase .in-view */
.somos-eyebrow, .somos-claim, .somos-desc, .somos-cta, .somos-cifra {
  opacity: 0; transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(.22,.9,.32,1), transform 0.7s cubic-bezier(.22,.9,.32,1);
}
.somos.in-view .somos-eyebrow { opacity: 1; transform: translateY(0); transition-delay: 0.05s; }
.somos.in-view .somos-claim   { opacity: 1; transform: translateY(0); transition-delay: 0.15s; }
.somos.in-view .somos-desc    { opacity: 1; transform: translateY(0); transition-delay: 0.28s; }
.somos.in-view .somos-cta     { opacity: 1; transform: translateY(0); transition-delay: 0.4s; }
.somos.in-view .somos-cifra:nth-child(1) { opacity: 1; transform: translateY(0); transition-delay: 0.25s; }
.somos.in-view .somos-cifra:nth-child(2) { opacity: 1; transform: translateY(0); transition-delay: 0.4s; }
.somos.in-view .somos-cifra:nth-child(3) { opacity: 1; transform: translateY(0); transition-delay: 0.55s; }

/* Columna texto */
.somos-texto {}
.somos-eyebrow {
  font-family: 'Archivo Narrow', sans-serif;
  font-size: 10px; letter-spacing: 0.26em; color: var(--rojo);
  text-transform: uppercase; margin-bottom: 1.4rem;
  display: flex; align-items: center; gap: 10px;
}
.somos-eyebrow::before { content: ''; width: 24px; height: 1px; background: var(--rojo); transition: width 0.6s ease 0.3s; }
.somos.in-view .somos-eyebrow::before { width: 40px; }
.somos-claim {
  font-family: var(--font-cond); font-size: clamp(34px, 4vw, 54px);
  font-weight: 800; color: #00103A; line-height: 1.05;
  letter-spacing: 0.01em; margin-bottom: 1.8rem;
}
.somos-claim span { color: var(--rojo); position: relative; display: inline-block; }
.somos-desc {
  font-family: 'Archivo Narrow', sans-serif;
  font-size: 17px; color: var(--texto-mid); line-height: 1.85;
  max-width: 480px; margin-bottom: 2.2rem;
}
.somos-cta {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: 'Archivo Narrow', sans-serif; font-size: 12px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase; color: #00103A;
  border-bottom: 2px solid var(--rojo); padding-bottom: 8px;
  transition: gap 0.2s, opacity 0.7s cubic-bezier(.22,.9,.32,1), transform 0.7s cubic-bezier(.22,.9,.32,1);
}
.somos-cta:hover { gap: 16px; }
.somos-cta .ti { transition: transform 0.2s; }
.somos-cta:hover .ti { transform: translateX(4px); }

/* Columna cifras: tarjetas verticales apiladas */
.somos-cifras { display: flex; flex-direction: column; gap: 1rem; }
.somos-cifra {
  position: relative; background: #fff;
  border: 1px solid var(--perla-dark); border-radius: 6px;
  padding: 1.6rem 2rem; overflow: hidden;
  transition: opacity 0.7s cubic-bezier(.22,.9,.32,1), transform 0.25s ease, box-shadow 0.25s ease;
}
.somos-cifra:hover { transform: translateX(6px) !important; box-shadow: 0 8px 24px rgba(0,16,58,0.08); }
.somos-cifra-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.4rem; }
.somos-cifra-num {
  font-family: var(--font-cond); font-size: clamp(40px, 4vw, 56px);
  font-weight: 800; color: var(--rojo); line-height: 1; letter-spacing: -0.01em;
}
.somos-cifra-icon {
  font-size: 26px; color: var(--perla-dark); flex-shrink: 0;
  transition: color 0.25s ease;
  animation: somosFloat 3.4s ease-in-out infinite;
}
.somos-cifra:nth-child(2) .somos-cifra-icon { animation-delay: 0.5s; }
.somos-cifra:nth-child(3) .somos-cifra-icon { animation-delay: 1s; }
@keyframes somosFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
.somos-cifra:hover .somos-cifra-icon { color: var(--rojo); }
.somos-cifra-label {
  font-family: var(--font-cond); font-size: 15px; font-weight: 700;
  color: #00103A; text-transform: uppercase; letter-spacing: 0.04em;
}
.somos-cifra-bar {
  position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--rojo); transform: scaleY(0); transform-origin: top;
  transition: transform 0.35s ease;
}
.somos-cifra:hover .somos-cifra-bar { transform: scaleY(1); }

/* Tarjeta destacada: invierte colores */
.somos-cifra--highlight { background: #00103A; border-color: #00103A; }
.somos-cifra--highlight .somos-cifra-num { color: #fff; }
.somos-cifra--highlight .somos-cifra-label { color: rgba(255,255,255,0.85); }
.somos-cifra--highlight .somos-cifra-icon { color: rgba(255,255,255,0.3); }
.somos-cifra--highlight:hover .somos-cifra-icon { color: var(--rojo); }
.somos-cifra--highlight .somos-cifra-bar { background: var(--rojo); }

/* ── TARJETAS FLIP ── */
.sv-flip-section { background: var(--perla); padding: 40px 8px 60px; }
.sv-flip-label { font-family:'Archivo Narrow',sans-serif; font-size:10px; letter-spacing:0.26em; color:var(--rojo); text-transform:uppercase; padding: 0 0 1.5rem 8px; display:flex; align-items:center; gap:10px; }
.sv-flip-label::before { content:''; width:24px; height:1px; background:var(--rojo); }
.sv-cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.sv-flip-card { position:relative; aspect-ratio:4/3; cursor:pointer; perspective:1200px; border-radius:16px; }
.sv-flip-inner { position:relative; width:100%; height:100%; transform-style:preserve-3d; transition:transform 0.7s cubic-bezier(0.4,0,0.2,1); border-radius:16px; }
@media (hover: hover) {
  .sv-flip-card:hover .sv-flip-inner { transform:rotateY(180deg); }
}
.sv-flip-card.is-flipped .sv-flip-inner { transform:rotateY(180deg); }
.sv-flip-front, .sv-flip-back { position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden; border-radius:16px; overflow:hidden; }
.sv-flip-front { background:#00103A; }
.sv-flip-front img { width:100%; height:100%; object-fit:cover; display:block; }
.sv-flip-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,20,60,0.75) 0%,rgba(0,16,58,0.1) 50%,transparent 100%); }
.sv-flip-label-front { position:absolute; bottom:20px; left:22px; font-family:'Barlow Condensed',sans-serif; font-size:22px; font-weight:700; color:#fff; letter-spacing:0.04em; text-shadow:0 2px 8px rgba(0,0,0,0.4); }
.sv-flip-back { background:var(--azul); transform:rotateY(180deg); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:2.5rem; border:2px solid rgba(255,255,255,0.1); }
.sv-flip-back-title { font-family:'Barlow Condensed',sans-serif; font-size:28px; font-weight:700; color:#fff; margin-bottom:1rem; }
.sv-flip-back-text { font-size:14px; color:rgba(255,255,255,0.7); line-height:1.7; margin-bottom:1.5rem; }
.sv-flip-back-btn { border:1px solid rgba(255,255,255,0.4); color:#fff; padding:10px 24px; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; transition:all 0.2s; display:inline-block; }
.sv-flip-back-btn:hover { background:var(--rojo); border-color:var(--rojo); }
@media(max-width:768px){
  .sv-cards-grid { grid-template-columns:1fr; gap:2px; }
  .sv-flip-card { aspect-ratio:16/9; }
  .sv-flip-back { padding:1.6rem; }
  .sv-flip-back-title { font-size:22px; margin-bottom:0.6rem; }
  .sv-flip-back-text { font-size:13px; margin-bottom:1rem; }}

/* ── FOOTER ── */
.footer { background: #00103A; border-top: 3px solid var(--rojo); }
.footer-main {
  max-width: 1400px; margin: 0 auto;
  padding: 4rem 3rem;
  display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr;
  gap: 3rem; align-items: start;
}
.footer-logo-wrap { margin-bottom: 1.5rem; }
.footer-logo { height: 36px; width: auto; }
.footer-divider { width: 40px; height: 2px; background: var(--rojo); margin: 1rem 0 1.2rem; }
.footer-address { font-size: 12px; color: rgba(255,255,255,0.5); line-height: 2; font-style: normal; margin-bottom: 1.5rem; font-family: 'Archivo Narrow', sans-serif; }
.footer-social { display: flex; gap: 10px; }
.footer-social a { width: 32px; height: 32px; border: 1px solid rgba(255,255,255,0.2); display: flex; align-items: center; justify-content: center; font-size: 14px; color: rgba(255,255,255,0.5); transition: all 0.2s; border-radius: 2px; }
.footer-social a:hover { border-color: var(--rojo); color: var(--rojo); }
.footer-heading { font-family: 'Archivo Narrow', sans-serif; font-size: 13px; font-weight: 700; color: #fff; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 1rem; padding-bottom: 8px; border-bottom: 2px solid var(--rojo); display: inline-block; }
.footer-links { margin-top: 0.5rem; }
.footer-links li { margin-bottom: 10px; }
.footer-links a { font-family: 'Archivo Narrow', sans-serif; font-size: 13px; color: rgba(255,255,255,0.5); transition: color 0.2s; display: flex; align-items: center; gap: 6px; }
.footer-links a::before { content: ''; width: 0; height: 1px; background: var(--rojo); transition: width 0.2s; display: inline-block; }
.footer-links a:hover { color: #fff; }
.footer-links a:hover::before { width: 12px; }
.footer-nextgen { border-top: 1px solid rgba(255,255,255,0.08); padding: 1.5rem 3rem; max-width: 1400px; margin: 0 auto; }
.footer-nextgen p { font-family: 'Archivo Narrow', sans-serif; font-size: 11px; color: rgba(255,255,255,0.3); line-height: 1.8; text-align: center; }