@font-face { font-family:'Montserrat'; font-weight:400; font-style:normal; font-display:swap; src:url('/Scripts/Fuentes/montserrat-400.woff2') format('woff2'); }
@font-face { font-family:'Montserrat'; font-weight:500; font-style:normal; font-display:swap; src:url('/Scripts/Fuentes/montserrat-500.woff2') format('woff2'); }
@font-face { font-family:'Montserrat'; font-weight:600; font-style:normal; font-display:swap; src:url('/Scripts/Fuentes/montserrat-600.woff2') format('woff2'); }
@font-face { font-family:'Montserrat'; font-weight:700; font-style:normal; font-display:swap; src:url('/Scripts/Fuentes/montserrat-700.woff2') format('woff2'); }
@font-face { font-family:'Montserrat'; font-weight:800; font-style:normal; font-display:swap; src:url('/Scripts/Fuentes/montserrat-800.woff2') format('woff2'); }

:root{
    --fx-black:#15110d;
    --fx-black-soft:#1e1812;
    --fx-red:#d81f2c;
    --fx-red-light:#e4626b;
    --fx-white:#ffffff;
    --fx-gray-50:#f7f5f2;
    --fx-gray-100:#efeae3;
    --fx-gray-600:#6b6459;
    --fx-gray-700:#4a453d;
    --shadow:0 10px 30px rgba(21,17,13,.12);
    --shadow-lg:0 20px 60px rgba(21,17,13,.18);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',Arial,sans-serif;color:var(--fx-gray-700);background:var(--fx-white);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:1180px;margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-weight:700;color:var(--fx-black);line-height:1.2}

/* Header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:200;background:linear-gradient(180deg,rgba(21,17,13,.92) 0%,rgba(21,17,13,.75) 70%,rgba(21,17,13,0) 100%);transform:translateY(-100%);transition:transform .35s cubic-bezier(.22,.61,.36,1);padding-bottom:1.5rem}
.site-header.is-visible{transform:translateY(0)}
.header-inner{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:76px}
.logo{display:inline-flex;align-items:center}
.logo-img{height:52px;width:auto}
.main-nav ul{display:flex;gap:2.25rem;list-style:none}
.main-nav a{color:rgba(255,255,255,.85);font-size:.9rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;transition:color .15s}
.main-nav a:hover,.main-nav a.active{color:var(--fx-red-light)}

/* Hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;background:linear-gradient(150deg,rgba(21,17,13,.94) 10%,rgba(21,17,13,.55) 60%,rgba(21,17,13,.25) 100%),url('/Scripts/Imagenes/hero-instalaciones-2.jpg') center/cover no-repeat}
.hero .container{position:relative;z-index:2;padding-top:4rem;padding-bottom:4rem}
.hero-eyebrow{display:inline-block;color:var(--fx-red-light);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;margin-bottom:1.25rem}
.hero h1{color:var(--fx-white);font-size:clamp(2.2rem,5vw,3.6rem);max-width:820px;margin-bottom:1.5rem}
.hero h1 em{font-style:normal;color:var(--fx-red)}
.hero p.lead{color:rgba(255,255,255,.82);font-size:1.15rem;max-width:640px;margin-bottom:2.25rem}
.hero-stats{display:flex;gap:2.5rem;flex-wrap:wrap;margin-top:3rem}
.hero-stats .stat .num{color:var(--fx-red);font-size:2rem;font-weight:800}
.hero-stats .stat .lbl{color:rgba(255,255,255,.7);font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}

.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 1.75rem;border-radius:2px;font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:.03em;transition:all .15s}
.btn-primary{background:var(--fx-red);color:var(--fx-white)}
.btn-primary:hover{background:var(--fx-red-light)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.6);color:var(--fx-white)}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap}

/* Section basics */
section{padding:5.5rem 0}
.section-alt{background:var(--fx-gray-50)}
.section-eyebrow{display:block;color:var(--fx-red);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;margin-bottom:.75rem}
.section-title{font-size:clamp(1.8rem,3.4vw,2.6rem);max-width:720px;margin-bottom:1rem}
.section-sub{color:var(--fx-gray-600);max-width:680px;font-size:1.05rem;margin-bottom:3rem}

/* Servicios / venta directa */
.servicios-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem}
.servicio-card{position:relative;display:block;height:280px;border-radius:8px;overflow:hidden;color:var(--fx-white);text-decoration:none;isolation:isolate}
.servicio-card .card-img{position:absolute;inset:0;z-index:0}
.servicio-card .card-img img{width:100%;height:100%;object-fit:cover;filter:brightness(.72);transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.servicio-card:hover .card-img img{transform:scale(1.06)}
.servicio-card::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.8) 100%)}
.servicio-card .card-body{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;height:100%;padding:1.5rem 1.75rem}
.servicio-card .sector{color:var(--fx-red-light);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem}
.servicio-card h3{color:var(--fx-white);font-size:1.3rem;margin-bottom:.5rem}
.servicio-card .link{display:inline-flex;align-items:center;gap:.5rem;color:var(--fx-white);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
.servicio-card .link .arrow{color:var(--fx-red);transition:transform .25s ease}
.servicio-card:hover .link .arrow{transform:translateX(5px)}

/* Nuestras marcas */
.marcas-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:1rem}
.marca-badge{display:flex;align-items:center;justify-content:center;background:var(--fx-white);border:1px solid var(--fx-gray-100);border-radius:8px;padding:1.5rem;height:110px}
.marca-badge img{max-width:100%;max-height:100%;object-fit:contain}
@media (max-width:900px){ .marcas-grid{grid-template-columns:repeat(3,1fr)} }
@media (max-width:560px){ .marcas-grid{grid-template-columns:repeat(2,1fr)} }

/* Intro */
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
.intro-image img{border-radius:6px;box-shadow:var(--shadow-lg)}
.intro-text p{margin-bottom:1.1rem;color:var(--fx-gray-700)}
.intro-stats{display:flex;gap:2.5rem;margin-top:2rem}
.intro-stats .n{font-size:1.7rem;font-weight:800;color:var(--fx-red)}
.intro-stats .l{font-size:.82rem;color:var(--fx-gray-600);text-transform:uppercase;letter-spacing:.02em}

/* Grid simple (no mosaico) para /empresas — misma tarjeta, tamaño uniforme */
.empresas-list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.empresas-list-grid .empresa-card{height:340px}
@media (max-width:900px){ .empresas-list-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .empresas-list-grid{grid-template-columns:1fr} }

/* Empresas grid — mosaico a pantalla completa, tamaños desiguales, efecto "vivo" */
.empresas-grid-section{background:var(--fx-black);padding:0;min-height:100vh;height:100vh;display:flex;align-items:center;overflow:hidden}
.empresas-grid-section .container{position:relative;max-width:none;margin:0;padding:0;width:100%;height:100%;display:flex;align-items:center}
.empresas-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    grid-template-rows:repeat(3,1fr);
    gap:2px;
    width:100%;
    height:100%;
}
/* Fénix Actividades (hub) siempre fijo en el centro exacto: fila 2 de 3, columna 3 de 5.
   El resto de posiciones ("slot-1".."slot-8") las reparte JS al azar entre las 8 empresas
   en cada carga de página — mismo tamaño de hueco, empresa distinta cada vez. */
.empresas-grid .ga-hub{grid-area:2/3/3/4}
.empresas-grid .slot-1{grid-area:1/1/3/3}
.empresas-grid .slot-2{grid-area:1/3/2/4}
.empresas-grid .slot-3{grid-area:1/4/2/5}
.empresas-grid .slot-4{grid-area:1/5/2/6}
.empresas-grid .slot-5{grid-area:2/4/3/6}
.empresas-grid .slot-6{grid-area:3/1/4/2}
.empresas-grid .slot-7{grid-area:3/2/4/4}
.empresas-grid .slot-8{grid-area:3/4/4/6}
.empresa-card{position:relative;display:block;min-width:0;height:100%;overflow:hidden;background:#0a0a0a;color:var(--fx-white);text-decoration:none;isolation:isolate;opacity:0;transform:scale(1.08);animation:fx-tile-in .9s cubic-bezier(.22,.61,.36,1) forwards}
@keyframes fx-tile-in{to{opacity:1;transform:scale(1)}}
.empresa-card:nth-of-type(1){animation-delay:.05s}
.empresa-card:nth-of-type(2){animation-delay:.12s}
.empresa-card:nth-of-type(3){animation-delay:.19s}
.empresa-card:nth-of-type(4){animation-delay:.26s}
.empresa-card:nth-of-type(5){animation-delay:.33s}
.empresa-card:nth-of-type(6){animation-delay:.4s}
.empresa-card:nth-of-type(7){animation-delay:.47s}
.empresa-card:nth-of-type(8){animation-delay:.54s}
.empresa-card:nth-of-type(9){animation-delay:.61s}
.empresa-card:nth-of-type(10){animation-delay:.68s}
.empresa-card .card-stretch{position:absolute;inset:0;z-index:1}
/* El logo del centro NUNCA cambia (mismo logo, mismo tamaño, mismo elemento)
   esté el menú abierto o cerrado — solo cambia el texto de debajo. */
.hub-toggle__icon{position:relative;height:min(15vw,150px);width:min(15vw,150px)}
.grid-hub__logo{position:absolute;top:50%;left:50%;height:100%;width:auto;max-width:none;opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0deg);transition:opacity .4s ease,transform .45s cubic-bezier(.22,.61,.36,1)}
.hub-toggle__burger{position:absolute;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;opacity:0;transform:translate(-50%,-50%) scale(.5) rotate(-90deg);transition:opacity .4s ease,transform .45s cubic-bezier(.22,.61,.36,1)}
.hub-toggle__burger span{display:block;width:min(11vw,110px);height:7px;border-radius:4px;background:var(--fx-white)}
.hub-toggle__burger span:nth-child(2){background:var(--fx-red)}
.hub-toggle:hover .grid-hub__logo{opacity:0;transform:translate(-50%,-50%) scale(.5) rotate(90deg)}
.hub-toggle:hover .hub-toggle__burger{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0deg)}
.grid-hub__cta{display:inline-flex;align-items:center;gap:.5rem;color:var(--fx-white);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;padding-bottom:.4rem;border-bottom:2px solid var(--fx-red)}
.empresa-card .card-img{position:absolute;inset:0;z-index:0;overflow:hidden}
.empresa-card .card-img img{width:100%;height:100%;object-fit:cover;object-position:center;filter:brightness(.7);transform:scale(1.12);animation:fx-kenburns 24s ease-in-out infinite alternate;transition:filter .4s ease}
@keyframes fx-kenburns{from{transform:scale(1.12) translate(0,0)}to{transform:scale(1.22) translate(-1.5%,-1.5%)}}
.empresa-card:hover .card-img img{filter:brightness(.4)}
.empresa-card::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.85) 100%);transition:background .4s ease}
.empresa-card:hover::before{background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.92) 100%)}
.empresa-card .card-body{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;height:100%;padding:1.5rem 1.75rem;pointer-events:none}
.empresa-card .card-body a{pointer-events:auto}
.empresa-card .sector{color:rgba(255,255,255,.8);font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;margin-top:.5rem;display:inline-flex;align-items:center;gap:.5rem}
.empresa-card h3{color:var(--fx-white);font-size:clamp(1.1rem,1.6vw,1.7rem);margin:0;padding-bottom:.35rem;border-bottom:2px solid var(--fx-red);display:inline-block;transition:transform .4s cubic-bezier(.22,.61,.36,1)}
.empresa-card:hover h3{transform:translateY(-2px)}
.empresa-card .card-reveal{max-height:0;opacity:0;overflow:hidden;transform:translateY(8px);transition:max-height .5s cubic-bezier(.22,.61,.36,1),opacity .35s ease,transform .4s cubic-bezier(.22,.61,.36,1),margin-top .4s ease;margin-top:0}
.empresa-card:hover .card-reveal{max-height:280px;opacity:1;transform:translateY(0);margin-top:.85rem}
.empresa-card .card-reveal p{font-size:.85rem;line-height:1.5;color:rgba(255,255,255,.88);margin:0 0 .75rem;max-width:40ch}
.empresa-card .card-contactos{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}
.empresa-card .card-contacto{font-size:.78rem;line-height:1.4;color:rgba(255,255,255,.82)}
.empresa-card .card-contacto .direccion{display:block;color:rgba(255,255,255,.65)}
.empresa-card .card-contacto .tel{display:inline-flex;align-items:center;gap:.35rem;color:var(--fx-white);font-weight:700}
.empresa-card .card-contacto .tel:hover{color:var(--fx-red-light)}
.empresa-card .link{display:inline-flex;align-items:center;gap:.5rem;color:var(--fx-white);font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;padding-top:.35rem;border-top:1px solid rgba(255,255,255,.3)}
.empresa-card .link .arrow{color:var(--fx-red);transition:transform .25s ease}
.empresa-card:hover .link .arrow{transform:translateX(5px)}

/* Recogida del mosaico: al pasar el ratón por el hub central (.ga-hub), cada
   tarjeta (foto incluida) se encoge hacia el cuadro central — el origen de
   cada una apunta hacia el hub para que el movimiento parezca ir hacia él.
   El menú que aparece después NO reutiliza este tamaño/posición: es su
   propia rejilla uniforme (.menu-overlay), independiente del mosaico. */
.empresas-grid [data-tile]{transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s ease}
.slot-1{transform-origin:100% 100%}
.slot-2{transform-origin:50% 100%}
.slot-3{transform-origin:0% 100%}
.slot-4{transform-origin:0% 100%}
.slot-5{transform-origin:0% 50%}
.slot-6{transform-origin:100% 0%}
.slot-7{transform-origin:50% 0%}
.slot-8{transform-origin:0% 0%}

/* Rejilla del menú: 3x3 uniforme, superpuesta a toda la sección, con una foto
   por sección. Aparece/desaparece con su propio zoom desde el centro. */
/* Punto de detección fijo del hub: siempre presente y siempre por encima de
   todo (mosaico y menú), para que abrir/cerrar sea un simple toggle estable
   sin depender de qué elemento visual esté debajo en cada momento. */
.hub-toggle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20%;height:33.34%;z-index:25;border:none;padding:1rem;margin:0;cursor:pointer;appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;text-align:center;background:radial-gradient(circle at 62% 68%,#9b2fc4 0%,#5a1c78 22%,#241040 45%,#0d0614 68%,var(--fx-black) 100%)}
.menu-overlay{position:absolute;inset:0;z-index:10;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;opacity:0;transform:scale(.05);transform-origin:50% 50%;pointer-events:none;transition:transform .45s cubic-bezier(.22,.61,.36,1),opacity .3s ease}
.empresas-grid-section.show-menu .menu-overlay{opacity:1;transform:scale(1);pointer-events:auto}
/* Celdas del menú: fondo claro y el texto llenando el hueco (nada de fotos
   aquí, el foco está en que se lea rápido qué es cada sección). */
.menu-cell{position:relative;display:flex;text-decoration:none;text-align:center;background-size:cover;background-position:center;overflow:hidden;isolation:isolate}
.menu-cell__glass{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;background:rgba(247,245,242,.86);backdrop-filter:blur(38px) saturate(160%);-webkit-backdrop-filter:blur(38px) saturate(160%);transition:background .25s ease}
.menu-cell:hover .menu-cell__glass{background:rgba(247,245,242,.72)}
.menu-cell__label{font-weight:800;font-size:clamp(1rem,1.8vw,1.35rem);line-height:1.2;color:var(--fx-black);display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center}
.menu-cell .arrow{color:var(--fx-red);font-weight:800;transition:transform .25s ease}
.menu-cell:hover .arrow{transform:translateX(5px)}
.menu-cell-spacer{background:var(--fx-black)}

/* Galería con crossfade controlado por JS (ver footer.php): una clase
   .is-active por foto, transición de opacidad — nunca dos fotos calculando
   porcentajes de keyframe, nunca un hueco a negro. El primer <img> ya sale
   con .is-active desde el propio HTML para que se vea bien desde el primer
   fotograma, sin esperar a que el JS arranque. */
.empresa-card .card-img--gallery img{position:absolute;inset:0;opacity:0;transition:opacity 2.2s ease;animation:fx-kenburns 24s ease-in-out infinite alternate}
.empresa-card .card-img--gallery img.is-active{opacity:1}
@media (max-width:900px){
    .empresas-grid-section{min-height:auto;height:auto;padding:5rem 0;display:block;overflow:visible}
    .empresas-grid-section .container{max-width:1440px;margin:0 auto;padding:0 1.25rem;height:auto;display:block}
    .empresas-grid{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:220px;height:auto}
    .empresa-card .card-img img{animation:none;transform:scale(1)}
    .empresa-card .card-img--gallery img{animation:none}
    .empresas-grid .slot-1{grid-area:span 2 / span 2}
    .empresas-grid [class*="slot-"],.empresas-grid .ga-hub{grid-area:span 1 / span 1}
    .empresas-grid .slot-1{grid-area:span 2 / span 2}
    .empresa-card .card-reveal{max-height:280px;opacity:1;transform:translateY(0);margin-top:.75rem}
    .empresa-card::before{background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.88) 100%)}
    .servicios-grid{grid-template-columns:1fr}
}

/* Nuestra historia — timeline con scroll-reveal */
.historia-timeline{position:relative;max-width:760px;margin:0 auto;padding-left:2.5rem}
.historia-timeline::before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--fx-gray-100)}
.historia-item{position:relative;padding-bottom:3rem;opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,.61,.36,1)}
.historia-item.is-visible{opacity:1;transform:translateY(0)}
.historia-item::before{content:"";position:absolute;left:-2.5rem;top:.3rem;width:14px;height:14px;border-radius:50%;background:var(--fx-red);box-shadow:0 0 0 4px var(--fx-white),0 0 0 5px var(--fx-gray-100)}
.historia-item:last-child{padding-bottom:0}
.historia-item .year{color:var(--fx-red);font-weight:800;font-size:1.4rem;margin-bottom:.35rem;display:block}
.historia-item h4{font-size:1.15rem;margin-bottom:.4rem}
.historia-item p{color:var(--fx-gray-600);font-size:.95rem;max-width:60ch}

/* Footer */
.site-footer{background:var(--fx-black);color:rgba(255,255,255,.85);padding-top:4.5rem}
.footer-title{color:var(--fx-white);font-size:1.6rem;margin-bottom:2.25rem}
.visitanos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem 1.75rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.12)}
.visitanos-card h4{color:var(--fx-red-light);font-size:1.02rem;margin-bottom:.6rem}
.visitanos-card h4 a:hover{text-decoration:underline}
.visitanos-card .direccion{color:rgba(255,255,255,.65);font-size:.88rem;margin-bottom:.5rem}
.visitanos-card .telefonos{font-size:.88rem;color:rgba(255,255,255,.85)}
.visitanos-card .telefonos a{color:var(--fx-white);font-weight:600}
.visitanos-card .telefonos a:hover{color:var(--fx-red-light)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:2rem 24px 2.5rem}
.footer-logo{height:34px;width:auto}
.footer-legal{font-size:.8rem;color:rgba(255,255,255,.55)}
.footer-links{display:flex;gap:1.5rem}
.footer-links a{font-size:.8rem;color:rgba(255,255,255,.6)}
.footer-links a:hover{color:var(--fx-red-light)}

/* Ficha de empresa */
.empresa-hero{position:relative;min-height:60vh;display:flex;align-items:flex-end;background-size:cover;background-position:center}
.empresa-hero--logo{background:radial-gradient(circle at 30% 40%,#2a2015 0%,var(--fx-black) 70%)}
.empresa-hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,17,13,.35) 0%,rgba(21,17,13,.94) 100%)}
.empresa-hero--logo .empresa-hero__scrim{background:none}

/* Empresas sin foto propia verificada: logo centrado sobre fondo oscuro, nunca una foto ajena */
.empresa-card--logo .card-logo-bg{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at center,#241d15 0%,var(--fx-black) 75%);padding:15%}
.empresa-card--logo .card-logo-bg img{max-width:70%;max-height:60%;object-fit:contain;filter:drop-shadow(0 0 20px rgba(0,0,0,.5));transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.empresa-card--logo:hover .card-logo-bg img{transform:scale(1.08)}
.empresa-card--logo::before{background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.75) 100%)}
.empresa-hero__content{position:relative;z-index:2;padding-bottom:3.5rem;width:100%}
.empresa-breadcrumb{font-size:.85rem;color:rgba(255,255,255,.65);margin-bottom:1.5rem}
.empresa-breadcrumb a{color:var(--fx-red-light);font-weight:600}
.empresa-breadcrumb a:hover{text-decoration:underline}
.empresa-breadcrumb .sep{margin:0 .5rem;color:rgba(255,255,255,.4)}
.empresa-hero__logo{height:60px;background:var(--fx-white);display:inline-flex;align-items:center;padding:.5rem 1.1rem;border-radius:6px;margin-bottom:1.5rem;box-shadow:var(--shadow-lg)}
.empresa-hero__logo img{max-height:44px;width:auto}
.empresa-hero h1{color:var(--fx-white);font-size:clamp(2rem,4.5vw,3.2rem);margin-bottom:0}

.empresa-body{padding:4.5rem 0}
.empresa-body__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:start}
.empresa-body p.lead{font-size:1.1rem;color:var(--fx-gray-700);line-height:1.75;margin-bottom:1.5rem}

.official-callout{background:var(--fx-black);color:var(--fx-white);border-radius:12px;padding:2.25rem;position:relative;overflow:hidden}
.official-callout::before{content:"";position:absolute;top:-40%;right:-20%;width:220px;height:220px;background:radial-gradient(circle,rgba(216,31,44,.35) 0%,rgba(216,31,44,0) 70%)}
.official-callout__badge{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.5rem;color:var(--fx-red-light);font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}
.official-callout__badge::before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--fx-red);color:var(--fx-white);font-size:.7rem;font-weight:800}
.official-callout h3{position:relative;z-index:1;color:var(--fx-white);font-size:1.35rem;margin-bottom:.6rem}
.official-callout p{position:relative;z-index:1;color:rgba(255,255,255,.75);font-size:.92rem;margin-bottom:1.5rem}
.official-callout .btn{position:relative;z-index:1;width:100%;justify-content:center;background:var(--fx-red);color:var(--fx-white)}
.official-callout .btn:hover{background:var(--fx-red-light)}

.info-callout{background:var(--fx-gray-50);border:1px solid var(--fx-gray-100);border-radius:12px;padding:2.25rem}
.info-callout__badge{display:inline-flex;align-items:center;gap:.5rem;color:var(--fx-red);font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}
.info-callout h3{font-size:1.2rem;margin-bottom:.75rem}
.info-callout ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.info-callout li{display:flex;gap:.6rem;font-size:.92rem;color:var(--fx-gray-700)}
.info-callout li b{color:var(--fx-black);min-width:90px;flex-shrink:0}
.info-callout .btn{margin-top:1.5rem;width:100%;justify-content:center}

.empresa-otras{margin-top:3rem;padding-top:3rem;border-top:1px solid var(--fx-gray-100)}
.empresa-otras h4{font-size:1rem;color:var(--fx-gray-600);margin-bottom:1.25rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}
.empresa-otras__grid{display:flex;gap:.75rem;flex-wrap:wrap}
.empresa-otras__grid a{font-size:.85rem;font-weight:600;color:var(--fx-black);background:var(--fx-gray-50);border:1px solid var(--fx-gray-100);padding:.55rem 1rem;border-radius:20px;transition:background .15s}
.empresa-otras__grid a:hover{background:var(--fx-gray-100)}

/* Formularios (contacto / trabaja con nosotros) */
.form-alert{padding:1rem 1.25rem;border-radius:6px;margin-bottom:1.5rem;font-weight:600;font-size:.92rem}
.form-alert.ok{background:#e5f5ea;color:#1e6b3a}
.form-alert.err{background:#fbe9e7;color:#a3341c}
.form-card{display:flex;flex-direction:column;gap:1.15rem;background:var(--fx-white);padding:2.25rem;border-radius:12px;box-shadow:var(--shadow)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-field label{display:block;font-weight:600;margin-bottom:.4rem;font-size:.88rem;color:var(--fx-black)}
.form-field input,.form-field select,.form-field textarea{width:100%;padding:.8rem .9rem;border:1px solid var(--fx-gray-100);border-radius:6px;font-family:inherit;font-size:.95rem;background:var(--fx-white);color:var(--fx-gray-700)}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--fx-red);outline-offset:1px}
.form-honeypot{position:absolute;left:-9999px}
.form-captcha-opts{display:flex;flex-wrap:wrap;gap:.6rem}
.form-captcha-opt{display:flex;align-items:center;gap:.5rem;border:1px solid var(--fx-gray-100);border-radius:20px;padding:.55rem 1.1rem;font-size:.9rem;color:var(--fx-gray-700);cursor:pointer;transition:border-color .15s,background .15s}
.form-captcha-opt input{width:auto;margin:0}
.form-captcha-opt:hover{border-color:var(--fx-red)}
.form-captcha-opt:has(input:checked){border-color:var(--fx-red);background:var(--fx-gray-50);color:var(--fx-black);font-weight:600}
.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-align:center;border:2px dashed var(--fx-gray-100);border-radius:10px;padding:2rem 1rem;cursor:pointer;color:var(--fx-gray-600);transition:border-color .15s,background .15s}
.dropzone:hover,.dropzone.is-dragover{border-color:var(--fx-red);background:var(--fx-gray-50)}
.dropzone__icon{color:var(--fx-red)}
.dropzone__text{font-size:.9rem;font-weight:600}
.dropzone input[type="file"]{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}

/* Trabaja con nosotros: ofertas y prácticas en acordeón (sin fotos genéricas de stock) */
.job-acc-list{display:flex;flex-direction:column;gap:.85rem}
.job-acc{background:var(--fx-white);border:1px solid var(--fx-gray-100);border-radius:10px;overflow:hidden}
.job-acc[open]{border-color:var(--fx-red)}
.job-acc__head{list-style:none;cursor:pointer;display:flex;align-items:center;gap:1.1rem;padding:1.15rem 1.4rem;-webkit-tap-highlight-color:transparent}
.job-acc__head::-webkit-details-marker{display:none}
.job-acc__badge{flex-shrink:0;background:var(--fx-gray-50);color:var(--fx-red);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;padding:.4rem .8rem;border-radius:20px;white-space:nowrap}
.job-acc__badge--formacion{background:rgba(216,31,44,.1)}
.job-acc__main{flex:1;min-width:0}
.job-acc__title{display:block;font-weight:700;font-size:1.05rem;color:var(--fx-black)}
.job-acc__meta{display:block;color:var(--fx-gray-600);font-size:.82rem;margin-top:.2rem}
.job-acc__chevron{flex-shrink:0;color:var(--fx-red);transition:transform .25s ease}
.job-acc__chevron svg{display:block;width:20px;height:20px}
.job-acc[open] .job-acc__chevron{transform:rotate(180deg)}
.job-acc__body{padding:0 1.4rem 1.6rem;border-top:1px solid var(--fx-gray-100)}
.job-acc__gancho{color:var(--fx-black);font-size:.95rem;font-style:italic;font-weight:600;margin:1.1rem 0 .6rem}
.job-acc__body p{color:var(--fx-gray-600);font-size:.92rem;line-height:1.6}
.job-acc__reqs{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:1rem 0 1.3rem}
.job-acc__reqs li{background:var(--fx-gray-50);color:var(--fx-black);font-size:.78rem;padding:.4rem .85rem;border-radius:20px}
@media (max-width:560px){
    .job-acc__head{position:relative;flex-wrap:wrap;padding:1rem 2.6rem 1rem 1rem;gap:.5rem .8rem}
    .job-acc__badge{padding:.35rem .6rem;font-size:.6rem;order:-1}
    .job-acc__main{flex-basis:100%}
    .job-acc__chevron{position:absolute;top:1.1rem;right:1rem}
    .job-acc__body{padding:0 1rem 1.3rem}
}
/* Texto legal largo (política de privacidad / medio ambiente) */
.legal-text{max-width:800px;padding:3rem 24px 5rem}
.legal-text h3{font-size:1.15rem;margin:2.2rem 0 .8rem}
.legal-text p{color:var(--fx-gray-700);margin-bottom:1rem}
.legal-text ul{margin:0 0 1rem;padding-left:1.3rem;color:var(--fx-gray-700)}
.legal-text li{margin-bottom:.5rem}
.legal-text a{color:var(--fx-red);font-weight:600}
.form-rgpd{display:flex;gap:.6rem;align-items:flex-start;font-size:.82rem;color:var(--fx-gray-600);line-height:1.5}
.form-rgpd input{margin-top:.2rem;width:auto}
.form-rgpd a{color:var(--fx-red);font-weight:600}
.form-submit{border:none;cursor:pointer;align-self:flex-start}
.side-bullets{list-style:none;display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}
.side-bullets h4{margin-bottom:.3rem;font-size:1rem}
.side-bullets p{color:var(--fx-gray-600);font-size:.92rem}
.side-note{padding:1.5rem;background:var(--fx-gray-50);border-radius:8px}
.side-note h4{margin-bottom:.5rem;font-size:1rem}
.side-note p{color:var(--fx-gray-600);font-size:.92rem}

/* Ofertas de empleo */
.empleo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:1rem}
.empleo-card{background:var(--fx-white);border:1px solid var(--fx-gray-100);border-radius:10px;padding:1.75rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.9rem}
.empleo-card-tipo{display:inline-flex;align-self:flex-start;background:var(--fx-gray-50);color:var(--fx-red);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;padding:.3rem .7rem;border-radius:20px}
.empleo-card h3{font-size:1.15rem;margin:.5rem 0 0}
.empleo-card-empresa{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--fx-gray-600)}
.empleo-card-empresa svg{flex-shrink:0;color:var(--fx-red)}
.empleo-card p.resumen{color:var(--fx-gray-600);font-size:.92rem}
.empleo-card-req{list-style:none;display:flex;flex-direction:column;gap:.4rem}
.empleo-card-req li{position:relative;padding-left:16px;font-size:.85rem;color:var(--fx-gray-600)}
.empleo-card-req li::before{content:"";position:absolute;left:0;top:.45em;width:6px;height:6px;border-radius:50%;background:var(--fx-red)}
.empleo-card-cta{margin-top:auto;font-weight:700;font-size:.85rem;color:var(--fx-black);display:inline-flex;align-items:center;gap:.4rem;padding-top:.6rem;border-top:1px solid var(--fx-gray-100)}

@media (max-width:900px){
    .main-nav{display:none}
    .intro-grid{grid-template-columns:1fr;gap:2rem}
    .empresas-grid{grid-template-columns:repeat(2,1fr)}
    .visitanos-grid{grid-template-columns:repeat(2,1fr)}
    .empresa-body__grid{grid-template-columns:1fr}
    .form-row{grid-template-columns:1fr}
    .empleo-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
    .empresas-grid{grid-template-columns:1fr}
    .visitanos-grid{grid-template-columns:1fr}
    .hero-stats{gap:1.5rem}
    .footer-bottom{flex-direction:column;align-items:flex-start}
}
