/* =========================================================
   Ohmion Ingeniería — hoja de estilos
   Réplica fiel del diseño original (Wix) en código propio
   ========================================================= */

/* ---------- Tipografía autoalojada (sin llamadas a Google = RGPD) ---------- */
@font-face{font-family:"Montserrat";font-style:normal;font-weight:300;font-display:swap;src:url("../fonts/montserrat-latin-300-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/montserrat-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/montserrat-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/montserrat-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:900;font-display:swap;src:url("../fonts/montserrat-latin-900-normal.woff2") format("woff2")}

:root{
  --azul:#01358C;
  --azul-oscuro:#012a70;
  --gris-claro:#F7F7F7;
  --gris-oscuro:#474747;
  --pizarra:#373B4D;
  --input:#EFEFF4;
  --blanco:#fff;
  --ancho:980px;
  --alto-header:100px;
  --font:"Montserrat",Arial,Helvetica,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font);font-size:16px;line-height:1.4;color:var(--azul);background:var(--blanco);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4,p,ul{margin:0}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;color:var(--azul);padding:10px 14px;z-index:1000}
.skip-link:focus{left:10px;top:10px}
.container{width:100%;max-width:var(--ancho);margin:0 auto}
strong,.fw-bold{font-weight:700}

/* ---------- Cabecera ---------- */
.site-header{position:sticky;top:0;z-index:100;background:var(--azul);height:var(--alto-header)}
.site-header .container{height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 0 0 79px}
.logo img{width:173px;height:56px}
.main-nav ul{list-style:none;display:flex;padding:0}
.main-nav a{display:block;padding:0 12px;line-height:50px;font-size:15px;font-weight:400;color:#fff;text-decoration:none;transition:opacity .2s}
.main-nav a:hover,.main-nav a:focus-visible{opacity:.7}
.nav-toggle{display:none;background:none;border:0;padding:10px;cursor:pointer}
.nav-toggle span{display:block;width:28px;height:3px;background:#fff;margin:5px 0;border-radius:2px;transition:transform .25s,opacity .25s}

/* ---------- Bloques con imagen + velo de color (estilo Wix) ---------- */
.media{position:relative;overflow:hidden;color:#fff}
.media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.media--pizarra{background:var(--pizarra)}
.media--azul{background:var(--azul)}
.media .o3{opacity:.3}
.media .o7{opacity:.7}
.media__content{position:relative;z-index:1}
.titulo-xl{font-weight:900;font-size:80px;line-height:1.1;color:#fff;letter-spacing:0}

/* ---------- INICIO ---------- */
.home-split{display:grid;grid-template-columns:1fr 1fr}
.home-split .media{min-height:767px;display:flex;align-items:flex-start}
.home-split .media__content{width:100%;max-width:490px;padding:164px 29px 0}
.home-split .media:nth-child(2) .media__content{padding-left:29px}
.home-split h2{font-weight:900;font-size:79px;line-height:1.23;margin-left:-15px;white-space:nowrap}
.home-split p{font-size:18px;line-height:1.4;font-weight:400;margin-top:31px;max-width:415px}
.home-split p+p{margin-top:22px}
.home-split .left .media__content{margin-left:auto}
.home-split .media__content{display:flex;flex-direction:column;align-items:flex-start;min-height:469px}
.home-split .media__content .btn{margin-top:auto}
.btn{display:inline-block;background:var(--azul);color:#fff;text-decoration:none;font-weight:600;font-size:16px;line-height:40px;height:40px;padding:0 37px;transition:background .2s}
.btn:hover,.btn:focus-visible{background:var(--azul-oscuro)}
.home-split .btn{display:table;margin:40px 0 0 145px;min-width:142px;text-align:center;padding:0}

/* ---------- QUIÉNES SOMOS ---------- */
.split{display:grid;grid-template-columns:482fr 498fr;background:var(--gris-claro)}
.split--gap{gap:15px;background:#fff}
.split .media{min-height:629px;display:flex;align-items:center}
.split .media .media__content{padding:0 30px}
.split__text{background:var(--gris-claro);display:flex;flex-direction:column;justify-content:center;padding:40px 0 40px 15px}
.split__text-inner{max-width:483px}
.titulo-l{font-weight:900;font-size:30px;line-height:1.4;color:var(--azul)}
.texto{font-size:16px;line-height:1.4;text-align:justify}
.split__text .titulo-l+.texto{margin-top:25px}

.mvv{display:grid;grid-template-columns:repeat(3,1fr);min-height:423px}
.mvv article{padding:48px 3px 40px;text-align:center}
.mvv article:nth-child(1){background:var(--gris-claro);color:var(--azul)}
.mvv article:nth-child(2){background:var(--gris-oscuro);color:#fff}
.mvv article:nth-child(3){background:var(--azul);color:#fff}
.mvv img{width:34px;height:31px;margin:0 auto}
.mvv h3{font-weight:900;font-size:30px;line-height:1.2;margin-top:30px}
.mvv p{margin-top:55px;font-size:14px;line-height:1.4;text-align:justify}
.mvv article:nth-child(3) p{font-size:16px}
.mvv-wrap{max-width:var(--ancho);margin:0 auto}

/* ---------- SERVICIOS ---------- */
.banda{min-height:222px;display:flex;align-items:center;justify-content:center;text-align:center}
.banda .titulo-xl{padding:20px}
.servicio{background:var(--gris-claro);padding:63px 8px 90px}
.servicio .container{padding:0 8px}
.servicio p{font-size:16px;line-height:1.4;text-align:justify}
.servicio p+p{margin-top:25px}
.servicio ul{margin:22px 0 0;padding-left:29px;font-size:16px;line-height:1.4}
.servicio ul ul{margin:0;padding-left:29px;list-style:circle}
.servicio .intro-lista{margin-top:22px;text-align:left}
.servicio ul+.intro-lista{margin-top:22px}
.servicio .intro-lista+ul{margin-top:0}

/* ---------- PROYECTOS ---------- */
.proy-intro .split__text-inner{max-width:465px;padding-left:9px}
.proy-intro .texto{line-height:1.6}
.proy-listas{display:grid;grid-template-columns:482fr 483fr;gap:15px;margin-top:10px}
.proy-col{padding:43px 25px 50px;color:#fff}
.proy-col--gris{background:var(--gris-oscuro)}
.proy-col--azul{background:var(--azul);padding-left:25px;padding-right:5px}
.proy-col h2{font-weight:600;font-size:18px;text-align:center;line-height:1.3}
.proy-col ul{margin-top:45px;padding-left:20px;font-size:14px;line-height:1.4}
.proy-col--azul ul{columns:2;column-gap:28px}
.proy-col li{break-inside:avoid}

/* ---------- CONTACTO ---------- */
.split--contacto .media{min-height:678px}
.contacto-datos{padding-left:53px}
.contacto-datos .titulo-l{margin-bottom:30px}
.contacto-datos .persona{font-weight:600;font-size:18px;line-height:1.6;margin:0 0 30px 11px}
.contacto-datos ul{list-style:none;padding:0 0 0 11px}
.contacto-datos li{display:flex;align-items:center;gap:37px;font-size:16px;line-height:1.6;margin-bottom:25px}
.contacto-datos li svg{flex:0 0 26px;width:26px;height:26px;fill:var(--azul)}
.contacto-datos a{text-decoration:none}
.contacto-datos a:hover{text-decoration:underline}

/* ---------- TRABAJA CON NOSOTROS ---------- */
.split--empleo .media{min-height:700px}
.split--empleo .titulo-xl{font-size:79px}
.form-empleo{max-width:440px;padding:38px 0 30px 37px}
.form-empleo h2{font-weight:600;font-size:25px;line-height:1.25;margin:0 0 48px -6px}
.form-grid{display:grid;grid-template-columns:187px 187px;column-gap:30px;row-gap:21px}
.campo label{display:block;font-size:14px;line-height:1;margin-bottom:6px}
.campo input{width:100%;height:50px;border:0;border-radius:25px;background:var(--input);padding:0 20px;font:inherit;font-size:15px;color:var(--pizarra);outline:none;transition:box-shadow .2s}
.campo input:focus{box-shadow:0 0 0 2px var(--azul)}
.campo-archivo{margin-top:22px}
.archivo-btn{display:inline-flex;align-items:center;gap:10px;height:53px;width:187px;justify-content:center;border-radius:27px;background:var(--input);color:var(--pizarra);font-weight:300;font-size:17px;cursor:pointer}
.archivo-btn:hover{background:#e4e4ec}
.archivo-btn svg{width:13px;height:13px;fill:var(--pizarra)}
.campo-archivo input[type=file]{position:absolute;opacity:0;width:1px;height:1px}
.archivo-ayuda{font-size:12px;opacity:.7;color:var(--pizarra);margin-top:6px}
.archivo-nombre{font-size:13px;margin-top:4px;color:var(--pizarra)}
.check-privacidad{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.4;margin-top:20px;color:var(--pizarra)}
.check-privacidad input{margin-top:2px;accent-color:var(--azul)}
.btn-pill{display:block;margin:24px 0 0 139px;width:126px;height:44px;border:0;border-radius:22px;background:var(--azul);color:#fff;font:inherit;font-weight:600;font-size:16px;cursor:pointer;transition:background .2s}
.btn-pill:hover{background:var(--azul-oscuro)}
.form-ok{margin-top:18px;font-size:15px;font-weight:600;color:var(--azul)}
.form-error{margin-top:18px;font-size:14px;color:#b00020}
.hp{position:absolute;left:-9999px}

/* ---------- Páginas legales ---------- */
.legal{background:var(--gris-claro);padding:60px 16px 80px}
.legal .container{max-width:860px}
.legal h1{font-weight:900;font-size:44px;line-height:1.15;margin-bottom:30px}
.legal h2{font-weight:700;font-size:20px;margin:34px 0 10px}
.legal p,.legal li{font-size:15px;line-height:1.6;text-align:justify;color:#1d2a44}
.legal p+p{margin-top:12px}
.legal ul{padding-left:22px;margin-top:8px}
.legal table{width:100%;border-collapse:collapse;font-size:14px;margin-top:12px;color:#1d2a44}
.legal th,.legal td{border:1px solid #d5d9e3;padding:8px 10px;text-align:left;vertical-align:top}
.legal th{background:#e8ecf4;color:var(--azul)}
.pendiente{background:#fff3c4;padding:0 4px}

/* ---------- Pie ---------- */
.site-footer{background:var(--azul);color:#fff;padding:48px 0 49px;margin-top:0}
.footer-top{display:grid;grid-template-columns:344px 323px 1fr;min-height:274px}
.footer-marca{display:flex;align-items:center;gap:28px;padding-left:4px}
.footer-marca .simbolo{width:99px;height:92px}
.footer-marca .logo-pie{width:176px;height:57px}
.footer-titulo{font-weight:900;font-size:14px;line-height:1.2;letter-spacing:0}
.footer-contacto ul{list-style:none;padding:0;margin-top:40px}
.footer-contacto li{display:flex;align-items:flex-start;gap:20px;font-size:13px;line-height:1.4;font-weight:300}
.footer-contacto li+li{margin-top:30px}
.footer-contacto li:last-child{margin-top:12px}
.footer-contacto svg{flex:0 0 18px;width:18px;height:18px;fill:#fff;margin-top:-1px}
.footer-contacto a{text-decoration:none}
.footer-contacto a:hover{text-decoration:underline}
.footer-legal ul{list-style:none;padding:0;margin-top:36px;font-size:13px;line-height:1.4;font-weight:300}
.footer-legal li a{text-decoration:none}
.footer-legal li a:hover{text-decoration:underline}
.footer-legal .copy{font-size:11px;line-height:1.6;font-weight:300;margin-top:28px;max-width:270px}
.footer-legal .copy a{text-decoration:none}
.footer-subvencion{font-size:13px;line-height:1.4;font-weight:300;padding:28px 5px 0}
.footer-fondos{margin:19px auto 0;width:810px;max-width:100%}
.btn-cookies-pie{background:none;border:0;color:#fff;font:inherit;font-size:13px;font-weight:300;padding:0;cursor:pointer}
.btn-cookies-pie:hover{text-decoration:underline}

/* ---------- Banner de cookies (réplica del de Wix) ---------- */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:500;background:#fff;box-shadow:-8px -7px 20px 0 rgba(0,0,0,.1);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:#000;display:none}
.cookie-banner.is-visible{display:block}
.cookie-banner__inner{position:relative;max-width:1200px;margin:0 auto;padding:20px 50px 20px 20px;display:flex;align-items:center;gap:24px}
.cookie-banner p{font-size:14px;line-height:1.5;flex:1}
.cookie-banner p a{color:#000;text-decoration:underline}
.cookie-banner__btns{display:flex;gap:12px;flex-shrink:0}
.cookie-btn{min-width:120px;height:34px;padding:0 18px;font:inherit;font-size:14px;cursor:pointer;border:1px solid #000;background:#fff;color:#000;transition:opacity .2s}
.cookie-btn:hover{opacity:.75}
.cookie-btn--dark{background:#000;color:#fff}
.cookie-close{position:absolute;top:10px;right:12px;width:28px;height:28px;border:0;background:none;cursor:pointer;padding:0}
.cookie-close svg{width:16px;height:16px}

.cookie-modal{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;padding:16px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:#000}
.cookie-modal.is-visible{display:flex}
.cookie-modal__box{background:#fff;max-width:560px;width:100%;max-height:90vh;overflow:auto;padding:28px 28px 24px;position:relative}
.cookie-modal h2{font-size:20px;font-weight:700;margin-bottom:10px}
.cookie-modal>div>p{font-size:14px;line-height:1.5;margin-bottom:16px}
.cookie-cat{border-top:1px solid #e3e3e3;padding:14px 0}
.cookie-cat__head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.cookie-cat h3{font-size:15px;font-weight:700}
.cookie-cat p{font-size:13px;line-height:1.5;margin-top:6px;color:#444}
.switch{position:relative;width:44px;height:24px;flex-shrink:0}
.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:#ccc;border-radius:12px;cursor:pointer;transition:background .2s}
.switch span::before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}
.switch input:checked+span{background:#000}
.switch input:checked+span::before{transform:translateX(20px)}
.switch input:disabled+span{opacity:.5;cursor:not-allowed}
.switch input:focus-visible+span{outline:2px solid var(--azul);outline-offset:2px}
.cookie-modal__btns{display:flex;justify-content:flex-end;gap:12px;margin-top:18px;flex-wrap:wrap}

/* ---------- 404 ---------- */
.error404{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--gris-claro);padding:60px 16px;gap:24px}
.error404 h1{font-weight:900;font-size:70px;line-height:1}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1000px){
  .site-header .container{padding:0 20px}
  .main-nav a{padding:0 8px;font-size:14px}
  .footer-top{grid-template-columns:1fr 1fr 1fr;padding:0 20px;gap:20px}
  .footer-marca{flex-direction:column;align-items:flex-start;gap:16px}
  .footer-subvencion{padding:28px 20px 0}
}
@media (max-width:900px){
  :root{--alto-header:80px}
  .logo img{width:140px;height:auto}
  .nav-toggle{display:block}
  .main-nav{position:fixed;top:var(--alto-header);left:0;right:0;bottom:0;background:var(--azul);transform:translateX(100%);transition:transform .3s;overflow:auto}
  .main-nav.is-open{transform:none}
  .main-nav ul{flex-direction:column;padding:20px 0}
  .main-nav a{font-size:20px;line-height:56px;padding:0 28px;border-bottom:1px solid rgba(255,255,255,.12)}
  .nav-open .nav-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .nav-open .nav-toggle span:nth-child(2){opacity:0}
  .nav-open .nav-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  body.nav-open{overflow:hidden}

  .titulo-xl,.split--empleo .titulo-xl{font-size:clamp(46px,12vw,72px)}
  .home-split{grid-template-columns:1fr}
  .home-split .media{min-height:560px}
  .home-split .media__content,.home-split .media:nth-child(2) .media__content{max-width:none;padding:110px 24px 60px}
  .home-split h2{font-size:clamp(50px,13vw,79px);margin-left:-4px;white-space:normal}
  .home-split .media__content{min-height:0}
  .home-split .media__content .btn{margin:36px auto 0}
  .split--empleo .media__content{padding:0 20px!important}

  .split,.split--gap{grid-template-columns:1fr;gap:0}
  .split .media{min-height:420px}
  .split__text{padding:48px 20px}
  .split__text-inner{max-width:none}
  .mvv{grid-template-columns:1fr}
  .mvv article{padding:44px 24px}
  .mvv p{margin-top:24px}

  .servicio{padding:44px 12px 60px}
  .proy-listas{grid-template-columns:1fr;gap:0;margin-top:0}
  .proy-intro .split__text-inner{padding-left:0}
  .contacto-datos{padding-left:0}
  .contacto-datos li{gap:18px;word-break:break-word}
  .form-empleo{padding:0;max-width:none}
  .form-grid{grid-template-columns:1fr 1fr;column-gap:16px}
  .btn-pill{margin:24px auto 0}

  .footer-top{grid-template-columns:1fr;gap:40px;min-height:0}
  .footer-marca{flex-direction:row;align-items:center}
  .footer-legal .copy{max-width:none}

  .cookie-banner__inner{flex-direction:column;align-items:stretch;padding:28px 20px 20px}
  .cookie-banner__btns{flex-wrap:wrap}
  .cookie-btn{flex:1}
}
@media (max-width:480px){
  .form-grid{grid-template-columns:1fr}
  .proy-col--azul ul{columns:1}
  .legal h1{font-size:34px}
  .footer-marca .simbolo{width:70px;height:auto}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
