@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700;900&family=Inter:wght@300;400;500;600;700&display=swap');

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --primary-red: #DC143C;
    --dark-red: #8B0000;
    --neon-red: #FF073A;
    --black: #000000;
    --dark-gray: #0a0a0a;
    --light-gray: #1a1a1a;
}

body {
    font-family: 'Inter', sans-serif;
    color: #fff;
    background: var(--black);
    overflow-x: hidden;
}


/* Partículas de fondo */
.particles {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
}

.particle {
    position: absolute;
    width: 2px;
    height: 2px;
    background: var(--primary-red);
    border-radius: 50%;
    opacity: 0.3;
    animation: float 20s infinite;
}

/* Letra acentuada en rojo neón */
.accent {
    color: var(--neon-red);
    text-shadow: 0 0 12px var(--neon-red), 0 0 28px var(--neon-red);
}

/* Ajustes para que no se rompa el efecto glitch */
.glitch {
    position: relative;
}

.glitch .accent {
    position: relative;
    z-index: 1;
    /* queda por encima de los ::before/::after del glitch */
}


@keyframes float {

    0%,
    100% {
        transform: translate(0, 0);
        opacity: 0;
    }

    50% {
        opacity: 0.5;
    }
}

/* Header futurista */
header {
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
    background: #fff;
    backdrop-filter: blur(20px) saturate(180%);
    border-bottom: 1px solid rgba(220, 20, 60, 0.2);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 3000;
}

header.scrolled {
    background: rgba(255, 255, 255, 0.707);
    border-bottom: 1px solid rgba(220, 20, 60, 0.5);
    box-shadow: 0 10px 40px rgba(220, 20, 60, 0.3);
}

nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.2rem 5%;
    max-width: 1600px;
    margin: 0 auto;
}

.logo {
    font-family: 'Orbitron', sans-serif;
    font-size: 2rem;
    font-weight: 900;
    color: #fff;
    letter-spacing: 4px;
    position: relative;
    text-shadow: 0 0 20px var(--neon-red), 0 0 40px var(--neon-red);
    animation: pulse 3s ease-in-out infinite;
}

.img-logo {
    width: 200px;
    height: auto;
}

.imghexa {
    width: 350px;
    height: auto;
}

.sector-tag {
    text-align: center;
}

@keyframes pulse {

    0%,
    100% {
        text-shadow: 0 0 20px var(--neon-red), 0 0 40px var(--neon-red);
    }

    50% {
        text-shadow: 0 0 30px var(--neon-red), 0 0 60px var(--neon-red), 0 0 80px var(--neon-red);
    }
}

.nav-links {
    display: flex;
    gap: 2rem;
    /* un poco menos de espacio */
    list-style: none;
}

.nav-links a {
    display: inline-block;
    color: #000000;
    text-decoration: none;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: .5px;
    padding: .6rem 1rem;
    border-radius: 10px;
    transition: background .25s ease, color .25s ease, transform .15s ease;
    text-shadow: none;
    /* evita halo borroso sobre fondo oscuro */
    position: relative;
    /* mantiene compatibilidad */
    overflow: visible;
    /* evita recortes raros */
}

/* ELIMINAR por completo estos bloques viejos:
.nav-links a::before { ... }
.nav-links a:hover::before { ... }
*/

.nav-links a:hover {
    background: rgba(220, 20, 60, .18);
    /* highlight suave */
    color: #130606;
    transform: translateY(-1px);
}

/* Opcional: estado activo (si querés marcar la sección actual) */
.nav-links a.active {
    background: rgba(220, 20, 60, .28);
    border: 1px solid rgba(220, 20, 60, .45);
}


/* Hero Section Futurista */
.hero {
    height: 100vh;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: radial-gradient(ellipse at center, #1a0000 0%, #000000 70%);
}

.hero-bg {
    position: absolute;
    width: 100%;
    height: 100%;
    background:
        linear-gradient(45deg, transparent 30%, rgba(220, 20, 60, 0.05) 50%, transparent 70%),
        linear-gradient(-45deg, transparent 30%, rgba(220, 20, 60, 0.05) 50%, transparent 70%);
    background-size: 100px 100px;
    animation: bgMove 20s linear infinite;
    opacity: 0.3;
}

@keyframes bgMove {
    0% {
        background-position: 0 0, 0 0;
    }

    100% {
        background-position: 100px 100px, -100px -100px;
    }
}

/* Lluvia roja global */
.rain-lines {
    position: fixed;
    inset: 0;
    /* top/right/bottom/left: 0 */
    pointer-events: none;
    /* no bloquea clicks */
    z-index: 2;
    /* sobre fondos y secciones; debajo del header (1000) */
    overflow: hidden;
}

.rain-lines .line {
    position: absolute;
    top: -100%;
    width: 1px;
    height: 300%;
    /* más alta para entrar/salir suave */
    background: linear-gradient(180deg, transparent, var(--primary-red), transparent);
    opacity: .18;
    animation: lineMove 4s linear infinite;
}

@keyframes lineMove {
    0% {
        transform: translateY(-100%);
    }

    100% {
        transform: translateY(100%);
    }
}

/* un poco más sutil en móviles */
@media (max-width: 768px) {
    .rain-lines .line {
        opacity: .12;
        width: 1px;
    }
}


.hero-content {
    position: relative;
    z-index: 10;
    text-align: center;
    max-width: 1200px;
    padding: 2rem;
}

.glitch {
    font-family: 'Orbitron', sans-serif;
    font-size: 6rem;
    font-weight: 900;
    color: #fff;
    position: relative;
    margin-bottom: 1rem;
    letter-spacing: 8px;
    animation: glitchText 3s infinite;
}

@keyframes glitchText {

    0%,
    90%,
    100% {
        transform: translate(0);
    }

    20% {
        transform: translate(-2px, 2px);
    }

    40% {
        transform: translate(-2px, -2px);
    }

    60% {
        transform: translate(2px, 2px);
    }

    80% {
        transform: translate(2px, -2px);
    }
}

.glitch::before,
.glitch::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.glitch::before {
    animation: glitchBefore 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite;
    color: var(--neon-red);
    z-index: -1;
}

.glitch::after {
    animation: glitchAfter 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite;
    color: cyan;
    z-index: -2;
}

@keyframes glitchBefore {

    0%,
    100% {
        clip-path: inset(0 0 0 0);
        transform: translate(0);
    }

    20% {
        clip-path: inset(0 0 70% 0);
        transform: translate(-5px, 5px);
    }

    40% {
        clip-path: inset(70% 0 0 0);
        transform: translate(-5px, -5px);
    }

    60% {
        clip-path: inset(0 0 30% 0);
        transform: translate(5px, 5px);
    }

    80% {
        clip-path: inset(30% 0 0 0);
        transform: translate(5px, -5px);
    }
}

@keyframes glitchAfter {

    0%,
    100% {
        clip-path: inset(0 0 0 0);
        transform: translate(0);
    }

    20% {
        clip-path: inset(30% 0 0 0);
        transform: translate(3px, -3px);
    }

    40% {
        clip-path: inset(0 0 70% 0);
        transform: translate(3px, 3px);
    }

    60% {
        clip-path: inset(70% 0 0 0);
        transform: translate(-3px, -3px);
    }

    80% {
        clip-path: inset(0 0 30% 0);
        transform: translate(-3px, 3px);
    }
}

.subtitle {
    font-size: 1.8rem;
    color: var(--neon-red);
    margin-top: 2rem;
    margin-bottom: 2rem;
    letter-spacing: 4px;
    text-transform: uppercase;
    font-weight: 600;
    animation: fadeInUp 1s ease 0.3s both;
}

.hero-description {
    font-size: 1.3rem;
    color: rgba(255, 255, 255, 0.7);
    max-width: 900px;
    margin: 0 auto 3rem;
    line-height: 1.8;
    animation: fadeInUp 1s ease 0.5s both;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.cta-container {
    display: flex;
    gap: 2rem;
    justify-content: center;
    animation: fadeInUp 1s ease 0.7s both;
}

.btn-futuristic {
    position: relative;
    padding: 1.5rem 3rem;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    overflow: hidden;
    transition: all 0.3s ease;
    font-family: 'Orbitron', sans-serif;
}

.btn-primary-hero {
    background: var(--primary-red);
    color: #fff;
    clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
    box-shadow: 0 0 20px rgba(220, 20, 60, 0.5), inset 0 0 20px rgba(255, 255, 255, 0.1);
}

.btn-primary-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.5s ease;
}

.btn-primary-hero:hover::before {
    left: 100%;
}

.btn-primary-hero:hover {
    box-shadow: 0 0 40px var(--neon-red), inset 0 0 30px rgba(255, 255, 255, 0.2);
    transform: translateY(-3px);
}

.btn-secondary-hero {
    background: transparent;
    color: #fff;
    border: 2px solid var(--primary-red);
    clip-path: polygon(0% 0%, 90% 0%, 100% 100%, 10% 100%);
    position: relative;
}

.btn-secondary-hero::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: var(--primary-red);
    transition: width 0.4s ease;
    z-index: -1;
}

.btn-secondary-hero:hover::after {
    width: 100%;
}

.btn-secondary-hero:hover {
    border-color: var(--neon-red);
    box-shadow: 0 0 30px rgba(220, 20, 60, 0.5);
    transform: translateY(-3px);
}

/* Sección de stats flotante */
.floating-stats {
    position: relative;
    bottom: auto;
    left: auto;
    transform: none;
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: center;
    margin-top: 2rem;
    /* separa de los botones */
    z-index: 2;
}

.stat-float {
    text-align: center;
    padding: 2rem;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(220, 20, 60, 0.3);
    border-radius: 10px;
    clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
    transition: all 0.3s ease;
}

.stat-float:hover {
    border-color: var(--neon-red);
    box-shadow: 0 10px 30px rgba(220, 20, 60, 0.5);
    transform: translateY(-10px);
}

.stat-number {
    font-family: 'Orbitron', sans-serif;
    font-size: 3rem;
    font-weight: 900;
    color: var(--neon-red);
    text-shadow: 0 0 20px var(--neon-red);
}

.stat-label {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.7);
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-top: 0.5rem;
}

/* Servicios con diseño hexagonal */
.services-section {
    padding: 8rem 5%;
    position: relative;
    background: linear-gradient(180deg, #000 0%, #0a0000 50%, #000 100%);
}

.section-header {
    text-align: center;
    margin-bottom: 6rem;
    position: relative;
}

.section-title-main {
    font-family: 'Orbitron', sans-serif;
    font-size: 2rem;
    font-weight: 900;
    color: #fff;
    margin-bottom: 1rem;
    letter-spacing: 4px;
    position: relative;
    display: inline-block;
}

/* ===== TÍTULOS: subrayado único grande ===== */
.section-header {
  text-align: center;
}

.section-title-main{
  position: relative;
  display: inline-block;     /* necesitamos el ancho del texto */
  padding-bottom: .35rem;    /* espacio para la línea */
}

/* ÚNICA línea inferior, centrada y más ancha que el título */
.section-title-main::after{
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -4px;              /* separarla un poquito del texto */
  height: 3px;
  width: 110%;               /* 20% más ancha que el texto */
  max-width: 700px;          /* límite por si el título es enorme */
  background: var(--primary-red);
  border-radius: 999px;
  box-shadow: 0 0 14px rgba(220,20,60,.55);  /* glow sutil */
}

/* Opcional: en móviles hacela un poco más corta y fina */
@media (max-width: 600px){
  .section-title-main::after{
    width: 110%;
    height: 2px;
  }
}


.section-subtitle {
    font-size: 1.3rem;
    color: rgba(255, 255, 255, 0.6);
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

.services-hexagon-grid {
    display: grid;
    /* en vez de 3 columnas, hacé 2 y que se ajusten al contenido */
    grid-template-columns: repeat(2, max-content);
    gap: 3rem;

    max-width: 1400px;
    margin: 0 auto;

    /* centra todo en la pantalla */
    min-height: 100vh;
    /* ocupa el alto de la ventana */
    place-content: center;
    /* centra vertical y horizontal */
}

.service-hex {
    position: relative;
    aspect-ratio: 1;
    background: linear-gradient(135deg, rgba(220, 20, 60, 0.1), rgba(0, 0, 0, 0.9));
    border: 2px solid rgba(220, 20, 60, 0.3);
    clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    overflow: hidden;
}

.service-hex::before {
    content: '';
    position: absolute;
    inset: -2px;
    background: linear-gradient(45deg, var(--primary-red), var(--neon-red), var(--primary-red));
    clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
    opacity: 0;
    transition: opacity 0.5s ease;
    z-index: -1;
}

.service-hex:hover::before {
    opacity: 1;
    animation: none;
    /* cancelar el arcoíris */
    background: #8B0000;
    /* rojo oscuro (blood red) */
}


@keyframes rotateGradient {
    0% {
        filter: hue-rotate(0deg);
    }

    100% {
        filter: hue-rotate(360deg);
    }
}

.service-hex:hover {
    transform: translateY(-20px) rotateX(10deg);
    border-color: var(--neon-red);
    box-shadow: 0 30px 60px rgba(220, 20, 60, 0.4);
}

.service-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 3rem;
    text-align: center;
}

.service-icon-hex {
    font-size: 4rem;
    filter: drop-shadow(15px 15px 40px #fff);
    animation: float-icon 3s ease-in-out infinite;
}

@keyframes float-icon {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

.service-title {
    font-family: 'Orbitron', sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: #fff;
    margin-top: -70px;
    margin-bottom: 1rem;
    letter-spacing: 2px;
}

.service-description {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.6;
}

/* About con efecto parallax */
.about-section {
    padding: 8rem 5%;
    position: relative;
    background: #000;
    overflow: hidden;
}

.about-container {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6rem;
    align-items: center;
}

.about-visual {
    position: relative;
    height: 600px;
}

/* --- Anillos rojos gigantes detrás de las fotos --- */
.about-visual {
    position: relative;
}

/* Las fotos van por encima */
.photo-card {
    position: relative;
    z-index: 1;
}

/* Los anillos quedan detrás y no interfieren con clics */
.visual-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    border: 3px solid var(--primary-red);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: rotate 32s linear infinite;
    pointer-events: none;
    z-index: 0;
    /* detrás de .photo-card */
    opacity: .45;
    /* un poco más sutil */
}

/* tamaños MUCHO más grandes y escalables por viewport */
.visual-circle:nth-child(1) {
    width: min(90vmin, 1100px);
    height: min(90vmin, 1100px);
}

.visual-circle:nth-child(2) {
    width: min(70vmin, 900px);
    height: min(70vmin, 900px);
    animation-delay: -6s;
}

.visual-circle:nth-child(3) {
    width: min(52vmin, 680px);
    height: min(52vmin, 680px);
    animation-delay: -12s;
}

/* si querés que giren más lento en móvil */
@media (max-width: 768px) {
    .visual-circle {
        animation-duration: 44s;
        opacity: .35;
    }
}


@keyframes rotate {
    from {
        transform: translate(-50%, -50%) rotate(0deg);
    }

    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

.center-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: 'Orbitron', sans-serif;
    font-size: 3rem;
    font-weight: 900;
    color: var(--neon-red);
    text-shadow: 0 0 30px var(--neon-red), 0 0 60px var(--neon-red);
}

.about-content h2 {
    font-family: 'Orbitron', sans-serif;
    font-size: 3.5rem;
    font-weight: 900;
    color: #fff;
    margin-bottom: 2rem;
    letter-spacing: 3px;
}

.about-content p {
    font-size: 1.2rem;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.9;
    margin-bottom: 1.5rem;
}

.about-features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    margin-top: 3rem;
}

.feature-item {
    padding: 5px;
    background: linear-gradient(135deg, rgba(220, 20, 60, 0.1), rgba(0, 0, 0, 0.5));
    border: 1px solid rgba(220, 20, 60, 0.3);
    border-radius: 10px;
    transition: all 0.3s ease;
}

.feature-item:hover {
    border-color: var(--neon-red);
    box-shadow: 0 10px 30px rgba(220, 20, 60, 0.3);
    transform: translateX(10px);
}

.feature-icon {
    font-size: 2.5rem;
    margin-bottom: 1rem;
}

.feature-title {
    font-family: 'Orbitron', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--neon-red);
    margin-bottom: 0.5rem;
}

.feature-text {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.6);
}

/* Contacto futurista */
.contact-section {
    padding: 8rem 5%;
    background: radial-gradient(ellipse at center, #1a0000 0%, #000000 70%);
    position: relative;
}

.contact-grid {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6rem;
}

.contact-info-panel {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.info-card {
    padding: 2.5rem;
    background: rgba(0, 0, 0, 0.7);
    border: 1px solid rgba(220, 20, 60, 0.3);
    border-left: 4px solid var(--primary-red);
    backdrop-filter: blur(10px);
    transition: all 0.3s ease;
    clip-path: polygon(0 0, 95% 0, 100% 50%, 95% 100%, 0 100%);
}

.info-card:hover {
    border-color: var(--neon-red);
    box-shadow: 0 10px 40px rgba(220, 20, 60, 0.4);
    transform: translateX(10px);
}

.info-icon {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, var(--primary-red), var(--neon-red));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    margin-bottom: 1.5rem;
    clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
    box-shadow: 0 10px 30px rgba(220, 20, 60, 0.5);
}

.info-title {
    font-family: 'Orbitron', sans-serif;
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--neon-red);
    margin-bottom: 0.8rem;
    letter-spacing: 2px;
}

.info-text {
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.7);
}

.contact-form-panel {
    background: rgba(0, 0, 0, 0.7);
    padding: 3rem;
    border: 1px solid rgba(220, 20, 60, 0.3);
    backdrop-filter: blur(10px);
    clip-path: polygon(0 0, 100% 0, 100% 95%, 95% 100%, 0 100%);
}

.form-group-futuristic {
    margin-bottom: 2rem;
    position: relative;
}

.form-group-futuristic label {
    display: block;
    font-family: 'Orbitron', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--primary-red);
    margin-bottom: 0.8rem;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.form-group-futuristic input,
.form-group-futuristic textarea {
    width: 100%;
    padding: 1.2rem;
    background: rgba(0, 0, 0, 0.5);
    border: 2px solid rgba(220, 20, 60, 0.3);
    color: #fff;
    font-size: 1rem;
    transition: all 0.3s ease;
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%);
}

.form-group-futuristic input:focus,
.form-group-futuristic textarea:focus {
    outline: none;
    border-color: var(--neon-red);
    box-shadow: 0 0 20px rgba(220, 20, 60, 0.5), inset 0 0 20px rgba(220, 20, 60, 0.1);
    background: rgba(220, 20, 60, 0.05);
}

.form-group-futuristic textarea {
    resize: vertical;
    min-height: 150px;
}

.submit-btn {
    width: 100%;
    padding: 1.5rem;
    font-family: 'Orbitron', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    background: var(--primary-red);
    color: #fff;
    border: none;
    cursor: pointer;
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 15px), calc(100% - 15px) 100%, 0 100%);
    transition: all 0.3s ease;
    box-shadow: 0 10px 30px rgba(220, 20, 60, 0.4);
}

.submit-btn:hover {
    background: var(--neon-red);
    box-shadow: 0 15px 40px rgba(220, 20, 60, 0.6);
    transform: translateY(-3px);
}

/* Footer */
footer {
    background: #000;
    padding: 4rem 5%;
    border-top: 2px solid var(--primary-red);
    position: relative;
}

.footer-content {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 4rem;
}

.footer-brand h3 {
    font-family: 'Orbitron', sans-serif;
    font-size: 2rem;
    font-weight: 900;
    color: var(--neon-red);
    margin-bottom: 1rem;
    text-shadow: 0 0 20px var(--neon-red);
}

.footer-brand p {
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.8;
    margin-bottom: 2rem;
}

.social-links-footer {
    display: flex;
    gap: 1rem;
}

.social-link {
    width: 50px;
    height: 50px;
    background: rgba(220, 20, 60, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
    color: var(--primary-red);
    font-size: 1.5rem;
    transition: all 0.3s ease;
    border: 1px solid rgba(220, 20, 60, 0.3);
}

.social-link:hover {
    background: var(--primary-red);
    color: #fff;
    transform: translateY(-5px) rotate(45deg);
    box-shadow: 0 10px 30px rgba(220, 20, 60, 0.5);
}

.footer-section h4 {
    font-family: 'Orbitron', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 1.5rem;
    letter-spacing: 2px;
}

.footer-links {
    list-style: none;
}

.footer-links li {
    margin-bottom: 1rem;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    transition: all 0.3s ease;
    position: relative;
    padding-left: 15px;
}

.footer-links a::before {
    content: '▸';
    position: absolute;
    left: 0;
    color: var(--primary-red);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.footer-links a:hover {
    color: var(--neon-red);
    padding-left: 20px;
}

.footer-links a:hover::before {
    opacity: 1;
}

.footer-bottom {
    margin-top: 4rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(220, 20, 60, 0.3);
    text-align: center;
    color: rgba(255, 255, 255, 0.5);
}

/* Scroll indicator */
.scroll-indicator {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    animation: bounce 2s infinite;
    cursor: pointer;
    z-index: 10;
}

@keyframes bounce {

    0%,
    100% {
        transform: translateX(-50%) translateY(0);
    }

    50% {
        transform: translateX(-50%) translateY(-10px);
    }
}

.scroll-indicator span {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.9rem;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.scroll-arrow {
    width: 30px;
    height: 50px;
    border: 2px solid var(--primary-red);
    border-radius: 15px;
    position: relative;
}

.scroll-arrow::before {
    content: '';
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 6px;
    background: var(--primary-red);
    border-radius: 50%;
    animation: scrollDot 2s infinite;
}

@keyframes scrollDot {
    0% {
        top: 10px;
        opacity: 1;
    }

    100% {
        top: 30px;
        opacity: 0;
    }
}

/* Responsive */
@media (max-width: 1200px) {
    .glitch {
        font-size: 4rem;
    }

    .services-hexagon-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .floating-stats {
        gap: 2rem;
    }
}

@media (max-width: 968px) {
    .nav-links {
        display: none;
    }

    .glitch {
        font-size: 3rem;
    }

    .services-hexagon-grid,
    .about-container,
    .contact-grid,
    .footer-content {
        grid-template-columns: 1fr;
    }

    .floating-stats {
        flex-direction: column;
        gap: 1rem;
    }

}

/* ====== HERO — ajustes responsive ====== */

/* Altura y respiración seguras en mobile + margen por header fijo */
:root {
    --header-h: clamp(56px, 8vw, 96px);
}

.hero {
    min-height: 100svh;
    /* corrige barras de navegador móvil */
    padding: calc(var(--header-h) + 2rem) 6% 120px;
}

/* Contenedor centrado y con límites sanos */
.hero-content {
    max-width: 1100px;
    margin-inline: auto;
    padding-inline: 1rem;
}

/* Tipografías fluidas y sin desbordes del glitch */
.glitch {
    font-size: clamp(2.4rem, 9vw, 6rem);
    letter-spacing: clamp(2px, 1.2vw, 8px);
    line-height: 1.05;
    word-break: break-word;
    overflow-wrap: anywhere;
    /* evita overflow horizontal */
}

.glitch::before,
.glitch::after {
    /* recortamos los pseudo-elementos para que no “sangren” a los costados */
    clip-path: inset(0 0 0 0);
}

/* Subtítulo y descripción fluidos */
.subtitle {
    font-size: clamp(1rem, 3.5vw, 1.8rem);
    letter-spacing: clamp(1px, .6vw, 4px);
    margin-bottom: clamp(1rem, 4vw, 2rem);
}

.hero-description {
    font-size: clamp(.98rem, 2.6vw, 1.3rem);
    line-height: 1.7;
    max-width: 68ch;
    margin: 0 auto clamp(1.25rem, 5vw, 3rem);
    padding-inline: .25rem;
}

/* CTA: se adaptan y nunca se apilan raro */
.cta-container {
    flex-wrap: wrap;
    gap: clamp(.75rem, 3vw, 2rem);
}

.btn-futuristic {
    padding: clamp(.9rem, 2.8vw, 1.5rem) clamp(1.2rem, 4vw, 3rem);
    font-size: clamp(.9rem, 2.8vw, 1.1rem);
}

/* Stats flotantes escalables */
.floating-stats {
    gap: clamp(.75rem, 2.5vw, 2rem);
    margin-top: clamp(1rem, 4vw, 2rem);
}

.stat-float {
    padding: clamp(1rem, 3.5vw, 2rem);
}

.stat-number {
    font-size: clamp(1.6rem, 7vw, 3rem);
}

/* Scroll indicator más chico en mobile (o escondido en pantallas muy chicas) */
.scroll-indicator {
    bottom: clamp(1rem, 4vw, 2rem);
}

.scroll-arrow {
    width: 26px;
    height: 44px;
}

@media (max-width: 420px) {
    .scroll-indicator {
        display: none;
    }
}

/* Líneas del fondo más livianas en mobile para performance y limpieza */
@media (max-width: 768px) {
    .line {
        opacity: .12;
        width: 1px;
    }

    .hero-lines {
        opacity: .7;
    }

    /* si preferís, directamente ocultalas:
  .hero-lines{ display:none; }
  */
}

/* Breakpoint tablet: título más compacto y padding superior extra si el header es alto */
@media (max-width: 992px) {
    .hero {
        padding-top: calc(var(--header-h) + 2.5rem);
    }
}

/* Breakpoint phone: todo en columna cómoda */
@media (max-width: 600px) {
    .glitch {
        letter-spacing: clamp(1px, .8vw, 3px);
    }

    .cta-container {
        justify-content: center;
    }

    .btn-futuristic {
        width: 100%;
        max-width: 420px;
    }

    .floating-stats {
        flex-direction: column;
    }
}

/* Pequeños retoques a efectos para que no mareen en pantallas chicas */
@media (max-width: 480px) {
    .glitch {
        animation-duration: 4s;
    }

    .glitch::before,
    .glitch::after {
        opacity: .55;
    }
}

/* ===== Overrides para que los 2 sectores entren “above the fold” ===== */

/* menos padding en la sección y compensación por header fijo */
.services-section {
    padding: calc(var(--header-h) + 1rem) 5% clamp(2rem, 4vw, 3rem);
}

/* títulos y subtítulo más compactos SOLO en la sección de sectores */
.services-section .section-header {
    margin-bottom: clamp(1rem, 3vw, 2rem);
}

.services-section .section-title-main {
    font-size: clamp(1.1rem, 2.2vw, 1.6rem);
    letter-spacing: 2px;
}

.services-section .subtitle {
    font-size: clamp(.9rem, 2.2vw, 1.1rem);
    max-width: 60ch;
    margin: 0 auto clamp(1rem, 3vw, 1.5rem);
}

/* grid centrado sin forzar altura completa y con menos espacio */
.services-hexagon-grid {
    /* antes: repeat(2, max-content) + min-height:100vh */
    grid-template-columns: repeat(2, minmax(180px, 280px));
    gap: clamp(1rem, 3vw, 2rem);
    min-height: auto;
    /* quita el “pantallazo completo” */
    place-content: center;
    /* sigue centrado */
    margin-bottom: 25px;
}

/* tamaño del hex: más chico y consistente */
.service-hex {
    width: clamp(180px, 26vw, 280px);
}

/* contenido interno más compacto */
.service-content {
    padding: clamp(1rem, 2.5vw, 1.75rem);
}

/* icono / imagen dentro del hex (reduce fuerte) */
.imghexa {
    width: clamp(140px, 18vw, 220px);
    height: auto;
}

/* título del hex más pequeño y sin levantar tanto */
.service-title {
    font-size: clamp(.9rem, 2.2vw, 1.1rem);
    margin-top: -20px;
    /* antes -70px */
    margin-bottom: .5rem;
    letter-spacing: 1px;
}

/* en pantallas muy chicas, apilar y mantenerlos visibles */
@media (max-width: 640px) {
    .services-hexagon-grid {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .service-hex {
        width: clamp(200px, 60vw, 300px);
    }
}

/* --- Galería en "Nosotros" (columna izquierda) --- */
.about-visual {
    /* Quita la altura fija y el posicionamiento decorativo */
    position: relative;
    height: auto;

    display: grid;
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    grid-auto-rows: auto;
    gap: 1.2rem;
    align-content: start;
}

/* Tarjeta de foto */
.photo-card {
    border: 2px solid rgba(220, 20, 60, .6);
    border-radius: 14px;
    overflow: hidden;
    background: #0b0000;
    box-shadow: 0 0 0 3px rgba(220, 20, 60, .15) inset;
}


/* Layout: 1 grande arriba, 1 grande en el medio y 2 chicas abajo */
.photo-xl {
    grid-column: 1 / -1;
    aspect-ratio: 16/9;
}

.photo-lg {
    grid-column: 1 / -1;
    aspect-ratio: 16/9;
}

.photo-sm {
    aspect-ratio: 4/3;
}

/* Aseguramos que la columna de fotos no quede demasiado angosta en desktop */
@media (min-width: 992px) {
    .about-container {
        grid-template-columns: minmax(520px, 1fr) 1fr;
        /* +ancho para fotos, texto a la derecha */
        gap: 4rem;
    }
}

/* En móvil apilamos todo y evitamos solapes */
@media (max-width: 968px) {
    .about-visual {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }

    .photo-xl,
    .photo-lg,
    .photo-sm {
        grid-column: 1;
    }
}

/* ===== Modal NASIT ===== */
/* ===== MODAL SECTOR ===== */
.modal-overlay {
    position: fixed;
    inset: 0;
    display: none;
    /* se muestra con .is-open */
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .75);
    backdrop-filter: blur(2px);
    padding-top: calc(var(--header-h) + 16px);   
    z-index: 2000;
}

.modal-overlay.is-open {
    display: flex;
}

.modal-dialog {
    position: relative;
    /* para la X */
    display: flex;
    flex-direction: column;
    width: min(96vw, 1100px);
    max-height: calc(100vh - (var(--header-h) + 26px)); /* que no se corte por abajo */
    background: #070707;
    border: 2px solid rgba(220, 20, 60, .9);
    box-shadow: 0 0 0 2px rgba(220, 20, 60, .25) inset, 0 0 48px rgba(220, 20, 60, .35);
    border-radius: 18px;
    overflow: hidden;
    animation: modalIn .28s ease-out;
}

@keyframes modalIn {
    from {
        transform: translateY(10px) scale(.98);
        opacity: 0;
    }

    to {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
}

.modal-header {
    flex: 0 0 auto;
    padding: 18px 24px;
    background: linear-gradient(180deg, rgba(220, 20, 60, .15), rgba(0, 0, 0, 0));
    border-bottom: 1px solid rgba(220, 20, 60, .35);
}

.modal-title {
    font-family: 'Orbitron', sans-serif;
    font-weight: 900;
    letter-spacing: 2px;
    font-size: clamp(1.2rem, 2.4vw, 1.6rem);
    color: #fff;
    text-shadow: 0 0 16px rgba(220, 20, 60, .6);
}

.modal-body {
    flex: 1 1 auto;
    overflow: auto;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    /* texto | fotos */
    gap: 22px;
    padding: 22px 24px 28px;
}

.modal-text p {
    font-size: 1.06rem;
    line-height: 1.8;
    color: rgba(255, 255, 255, .86);
}

.modal-gallery {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    align-content: start;
}

.modal-photo {
    margin: 0;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(220, 20, 60, .55);
    box-shadow: 0 0 0 3px rgba(220, 20, 60, .18) inset;
    background: #0b0000;
}

.modal-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 16/9;
}

.modal-close {
    position: absolute;
    top: 10px;
    right: 12px;
    font-size: 20px;
    line-height: 1;
    background: rgba(220, 20, 60, .18);
    color: #fff;
    border: 1px solid rgba(220, 20, 60, .55);
    border-radius: 10px;
    padding: 8px 10px;
    cursor: pointer;
    transition: transform .15s ease, background .2s ease, box-shadow .2s ease;
}

.modal-close:hover {
    background: rgba(220, 20, 60, .28);
    box-shadow: 0 0 18px rgba(220, 20, 60, .45);
    transform: translateY(-1px);
}

/* Responsive */
@media (max-width: 900px) {
    .modal-body {
        grid-template-columns: 1fr;
    }
}

/* título inline arriba del texto, columna izquierda */
.modal-inline-title {
    font-family: 'Orbitron', sans-serif;
    font-weight: 900;
    letter-spacing: 2px;
    font-size: clamp(1.2rem, 2.4vw, 1.6rem);
    color: #fff;
    text-shadow: 0 0 16px rgba(220, 20, 60, .6);
    margin: 4px 0 10px;
    /* separa del texto */
    border-bottom: 1px solid rgba(220, 20, 60, .35);
    padding-bottom: 8px;
}

/* Botón hamburguesa: oculto en desktop */
.hamburger {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(220, 20, 60, .4);
    border-radius: 10px;
    background: rgba(220, 20, 60, .1);
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
}

.hamburger:hover {
    box-shadow: 0 0 16px rgba(220, 20, 60, .35);
    transform: translateY(-1px);
}

.hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: #000;
    /* texto del header sobre fondo blanco */
    margin: 3px 0;
    transition: transform .25s ease, opacity .2s ease;
}

/* Backdrop del panel */
.nav-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .45);
    backdrop-filter: blur(1px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
    z-index: 2000;
}

.nav-backdrop.show {
    opacity: 1;
    pointer-events: auto;
}

/* Móvil: el UL se convierte en panel lateral */
@media (max-width: 968px) {
    .hamburger {
        display: inline-flex;
    }

    /* anula tu "display:none" previo */
    .nav-links {
        position: fixed;
        top: 0;
        right: 0;
        height: 100vh;
        width: min(86vw, 360px);
        padding: calc(var(--header-h) + 12px) 24px 24px;
        background: #0a0a0a;
        border-left: 1px solid rgba(220, 20, 60, .35);
        box-shadow: -12px 0 40px rgba(220, 20, 60, .25);
        display: flex;
        flex-direction: column;
        gap: 10px;
        transform: translateX(100%);
        transition: transform .28s ease;
        z-index: 1200;
    }

    .nav-links.is-open {
        transform: translateX(0);
    }

    .nav-links a {
        color: #fff;
        font-weight: 700;
        padding: .9rem 0;
        border-bottom: 1px dashed rgba(220, 20, 60, .25);
    }

    .nav-links li:last-child a {
        border-bottom: 0;
    }

    /* opcional: animación de la X en el botón */
    .hamburger.is-open span:nth-child(1) {
        transform: translateY(5px) rotate(45deg);
    }

    .hamburger.is-open span:nth-child(2) {
        opacity: 0;
    }

    .hamburger.is-open span:nth-child(3) {
        transform: translateY(-5px) rotate(-45deg);
    }
}

/* Botón hamburguesa */
.hamburger {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(220, 20, 60, .4);
    border-radius: 10px;
    background: rgba(220, 20, 60, .06);
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
}

.hamburger:hover {
    box-shadow: 0 0 16px rgba(220, 20, 60, .35);
    transform: translateY(-1px);
}

/* 3 líneas usando 1 barra + ::before/::after (más estable en móviles) */
.hamburger .bar {
    position: relative;
    width: 22px;
    height: 2px;
    background: #111;
}

.hamburger .bar::before,
.hamburger .bar::after {
    content: "";
    position: absolute;
    left: 0;
    width: 22px;
    height: 2px;
    background: #111;
    transition: transform .25s ease, opacity .2s ease;
}

.hamburger .bar::before {
    transform: translateY(-6px);
}

.hamburger .bar::after {
    transform: translateY(6px);
}

/* Estado abierto: convertir en "X" */
.hamburger.is-open .bar {
    background: transparent;
}

.hamburger.is-open .bar::before {
    transform: rotate(45deg);
}

.hamburger.is-open .bar::after {
    transform: rotate(-45deg);
}

/* Mostrar solo en móvil */
@media (max-width:968px) {
    .hamburger {
        display: inline-flex;
    }
}

/* === Hover limpio dentro del panel lateral (móvil) === */
@media (max-width: 968px) {
    .nav-links {
        /* ya lo tenés como panel fijo */
    }

    .nav-links li {
        list-style: none;
    }

    .nav-links a {
        display: block;
        /* ocupar todo el ancho */
        width: 100%;
        padding: .9rem 12px;
        /* un poco de respiro lateral */
        border-bottom: 1px dashed rgba(220, 20, 60, .25);
        border-radius: 0;
        /* sin pastilla redondeada */
        color: #fff;
        font-weight: 700;
        transform: none !important;
        /* por si quedó una regla previa */
    }

    .nav-links li:last-child a {
        border-bottom: 0;
    }

    .nav-links a:hover,
    .nav-links a:focus-visible {
        background: rgba(220, 20, 60, 0.14);
        /* franja completa */
        color: #fff;
        transform: none;
        /* no se mueven */
        outline: none;
    }
}

/* Centrar todo el bloque de SECTORES */
.services-section .section-header,
.services-section .subtitle,
.sector-tag {
    text-align: center;
}

/* Centrar las tarjetas dentro del grid */
.services-hexagon-grid {
    justify-items: center;
    /* centra cada hexágono en su celda */
}

/* --- SOLO MÓVIL: dar más aire arriba al título --- */
@media (max-width: 968px) {

    /* antes: padding-top: calc(var(--header-h) + 1rem) */
    .services-section {
        padding-top: calc(var(--header-h) + 3rem);
        /* empuja el título más abajo */
    }

    /* un pelín más de espacio extra si lo querés aún más abajo */
    .services-section .section-header {
        margin-top: .5rem;
    }
}

@media (max-width: 968px) {
    .modal-overlay {
        align-items: flex-start;
        /* antes: calc(var(--header-h) + 12px) */
        padding-top: calc(var(--header-h) + 22px);
        /* ↓ baja ~10px más */
    }

    .modal-dialog {
        width: min(96vw, 1100px);
        margin: 0 12px;
        /* antes: calc(100vh - (var(--header-h) + 24px)) */
        max-height: calc(100vh - (var(--header-h) + 34px));
        /* compensa el +10px extra */
        border-radius: 16px;
    }
}

/* === FIX móvil: "Sobre Nosotros" cortado =============================== */
@media (max-width: 600px) {

    /* que no recorte nada y que dé aire por el header fijo */
    .about-section {
        overflow: visible;
        /* <— antes: hidden */
        padding: calc(var(--header-h) + 1.25rem) 6% 3.5rem;
    }

    /* 1 sola columna y huecos más chicos */
    .about-container {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    /* galería en columna, sin forzar alturas raras */
    .about-visual {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }

    /* se mantienen proporcionadas */

    /* un poco de padding lateral para que el texto no toque bordes */
    .about-content {
        padding-inline: .5rem;
    }

    /* título fluido, que rompa línea y no desborde */
    .about-content h2 {
        font-size: clamp(1.6rem, 9vw, 2.2rem);
        line-height: 1.1;
        word-break: break-word;
        overflow-wrap: anywhere;
        text-wrap: balance;
        margin-bottom: 1rem;
    }

    /* párrafos un toque más compactos en móvil */
    .about-content p {
        font-size: clamp(1rem, 3.6vw, 1.1rem);
        line-height: 1.7;
    }
}

/* opcional: si querés que en tablets ya se “afine” el grid de fotos */
@media (max-width: 768px) {
    .about-visual {
        grid-template-columns: 1fr;
    }
}

/* === GALERÍA "Sobre Nosotros" — FIX móvil/tablet === */
@media (max-width: 768px) {

    /* La grilla NO impone alto mínimo a las filas */
    .about-visual {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
        /* <- antes: minmax(180px, auto) */
    }

    /* Los contenedores NO fuerzan relación de aspecto */
    .photo-xl,
    .photo-lg,
    .photo-sm {
        aspect-ratio: auto;
        /* <- antes 16/9 o 4/3 */
    }

    /* La imagen se ajusta completa y NO se recorta */
    .photo-card img {
        width: 100%;
        height: auto;
        /* <- antes: 100% */
        object-fit: contain;
        /* <- antes: cover */
        display: block;
    }

    /* Evita que algo quede "cortado" por el overflow del section */
    .about-section {
        overflow: visible;
        /* <- antes: hidden */
        padding: calc(var(--header-h) + 1.25rem) 6% 3.5rem;
    }
}

/* Desktop por defecto: llenar el contenedor sin bandas */
@media (min-width: 769px) {
    .photo-card img {
        height: 100%;
        object-fit: cover;
    }
}

/* Móvil/Tablet: que NO recorte ni estire */
@media (max-width: 768px) {
    .about-visual {
        max-width: 90%;
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }

    .about-content {
        max-width: 90%;
    }

    .about-features {
        max-width: 90%;
    }

    .photo-xl,
    .photo-lg,
    .photo-sm {
        aspect-ratio: auto;
    }

    .photo-card img {
        display: block;
        width: 100%;
        height: auto;
        /* no se estira */
        object-fit: contain;
        /* no recorta */
    }

    .about-section {
        overflow: visible;
        padding: calc(var(--header-h) + 1.25rem) 6% 3.5rem;
    }
}

/* Desktop: recién acá llenamos el contenedor y podemos recortar bonito */
@media (min-width: 769px) {
    .photo-card img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}

.modal-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.modal-gallery .modal-img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  object-fit: cover;
}
