@import url('https://fonts.googleapis.com/css2?family=Barlow+Semi+Condensed:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap');

:root{
  --navy:#0F2A47;
  --navy-2:#16385E;
  --red:#C8202A;
  --ink:#1A1F26;
  --steel:#5B6670;
  --steel-light:#EEF1F3;
  --line:#D8DEE3;
  --white:#FFFFFF;
  --maxw:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'IBM Plex Sans',Arial,sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
  font-size:16px;
}
h1,h2,h3,.brandmark{
  font-family:'Barlow Semi Condensed',Arial,sans-serif;
  font-weight:600;
  color:var(--navy);
  line-height:1.15;
  margin:0;
}
h1{font-size:clamp(2.1rem,4vw,3.1rem); letter-spacing:.2px;}
h2{font-size:clamp(1.5rem,2.6vw,2rem);}
h3{font-size:1.15rem;}
p{margin:0 0 1rem; max-width:64ch;}
a{color:var(--navy);}
img{max-width:100%; display:block;}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}

/* ---------- Header ---------- */
.site-header{
  background:var(--navy);
  border-bottom:3px solid var(--red);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:16px; padding-bottom:16px;
}
.brandlink{display:flex; align-items:center; gap:10px; text-decoration:none;}
.brandlink svg{height:34px; width:auto;}
.brandlink .brandmark{color:#fff; font-size:1.35rem; letter-spacing:.3px;}
.brandlink .brandmark small{display:block; font-family:'IBM Plex Sans'; font-weight:500; font-size:.55rem; letter-spacing:2.5px; color:var(--red);}

nav.mainnav ul{list-style:none; display:flex; gap:28px; margin:0; padding:0;}
nav.mainnav a{
  color:#DCE4EC; text-decoration:none; font-size:.95rem; font-weight:500;
  padding:6px 2px; border-bottom:2px solid transparent;
}
nav.mainnav a:hover, nav.mainnav a.active{color:#fff; border-bottom-color:var(--red);}
.navtoggle{display:none; background:none; border:0; color:#fff; font-size:1.6rem; cursor:pointer;}

@media (max-width:840px){
  .navtoggle{display:block;}
  nav.mainnav{
    display:none; position:absolute; left:0; right:0; top:70px;
    background:var(--navy-2); border-bottom:3px solid var(--red); z-index:20;
  }
  nav.mainnav.open{display:block;}
  nav.mainnav ul{flex-direction:column; gap:0; padding:10px 28px 18px;}
  nav.mainnav li{border-bottom:1px solid rgba(255,255,255,.12);}
  nav.mainnav a{display:block; padding:12px 0;}
  .site-header{position:relative;}
}

/* ---------- Hero ---------- */
.hero{
  background:var(--white);
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.hero .wrap{
  display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:40px;
  padding-top:64px; padding-bottom:56px;
}
.hero .eyebrow{
  font-size:.85rem; color:var(--steel); margin-bottom:10px;
}
.hero h1{margin-bottom:18px;}
.hero p.lead{font-size:1.08rem; color:var(--steel); max-width:52ch;}
.hero-actions{display:flex; align-items:center; gap:22px; margin-top:26px; flex-wrap:wrap;}
.btn{
  display:inline-block; background:var(--red); color:#fff; text-decoration:none;
  font-family:'Barlow Semi Condensed',sans-serif; font-weight:600; font-size:1.05rem;
  letter-spacing:.3px; padding:13px 26px; border:none; cursor:pointer;
}
.btn:hover{background:#a71922;}
.btn.ghost{background:transparent; color:var(--navy); border:2px solid var(--navy); padding:11px 24px;}
.btn.ghost:hover{background:var(--navy); color:#fff;}
.regline{font-size:.82rem; color:var(--steel);}

.hero-mark{position:relative; display:flex; justify-content:center;}
.hero-mark svg{width:220px; height:220px;}

/* ---------- Fact strip ---------- */
.factstrip{border-bottom:1px solid var(--line);}
.factstrip .wrap{
  display:grid; grid-template-columns:repeat(4,1fr);
}
.factstrip .fact{
  padding:26px 24px; border-left:1px solid var(--line);
}
.factstrip .fact:first-child{border-left:none;}
.factstrip .fact .num{
  font-family:'Barlow Semi Condensed'; font-weight:700; color:var(--red); font-size:1.9rem; display:block;
}
.factstrip .fact p{margin:4px 0 0; font-size:.92rem; color:var(--steel); max-width:none;}

/* ---------- Section ---------- */
.section{padding:64px 0;}
.section.alt{background:var(--steel-light);}
.section-head{
  display:flex; align-items:baseline; gap:16px; margin-bottom:34px;
  border-bottom:2px solid var(--navy); padding-bottom:14px;
}
.section-head .idx{font-family:'Barlow Semi Condensed'; font-weight:700; color:var(--red); font-size:1.3rem; margin-right:16px;}
.section-head h2{flex:1;}
.section-intro{max-width:74ch; color:var(--steel); margin-bottom:8px;}

/* ---------- Definition list (services / sectors) ---------- */
.speclist{border-top:1px solid var(--line);}
.specrow{
  display:grid; grid-template-columns:260px 1fr; gap:28px;
  padding:26px 0; border-bottom:1px solid var(--line);
}
.specrow h3{color:var(--ink); font-family:'Barlow Semi Condensed'; font-weight:600; display:flex; align-items:center; gap:10px;}
.specrow h3 svg{flex:0 0 auto; width:26px; height:26px;}
.specrow p{margin:0; color:var(--steel);}
@media (max-width:700px){
  .specrow{grid-template-columns:1fr; gap:6px;}
}

/* ---------- Photo banner ---------- */
.photobanner{width:100%; height:320px; overflow:hidden; position:relative;}
.photobanner img{width:100%; height:100%; object-fit:cover; display:block;}
.photobanner .caption{
  position:absolute; left:0; right:0; bottom:0; background:rgba(15,42,71,.85);
  color:#fff; font-size:.82rem; padding:8px 28px;
}
.photogrid{display:grid; grid-template-columns:1fr 1fr; gap:2px; margin-top:10px;}
.photogrid figure{margin:0; overflow:hidden; height:220px;}
.photogrid img{width:100%; height:100%; object-fit:cover; display:block;}
.photogrid figcaption{font-size:.78rem; color:var(--steel); padding-top:6px;}
@media (max-width:700px){.photogrid{grid-template-columns:1fr;}}

/* ---------- Numbered process (real sequence) ---------- */
.steps{counter-reset:step; border-top:1px solid var(--line);}
.step{
  display:grid; grid-template-columns:64px 1fr; gap:22px;
  padding:24px 0; border-bottom:1px solid var(--line);
}
.step .stepnum{
  counter-increment:step;
  font-family:'Barlow Semi Condensed'; font-weight:700; color:var(--red); font-size:1.6rem;
}
.step .stepnum::before{content: counter(step, decimal-leading-zero);}
.step h3{margin-bottom:4px;}
.step p{color:var(--steel); margin:0;}

/* ---------- Diferenciadores ---------- */
.diffgrid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.diffcard{background:#fff; padding:26px;}
.diffcard h3{font-size:1.02rem; margin-bottom:8px;}
.diffcard p{color:var(--steel); margin:0; font-size:.95rem;}
@media (max-width:700px){.diffgrid{grid-template-columns:1fr;}}

/* ---------- Contact ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:52px;}
@media (max-width:800px){.contact-grid{grid-template-columns:1fr;}}
.infoblock{border-top:2px solid var(--navy); padding-top:18px; margin-bottom:22px;}
.infoblock dt{font-size:.78rem; letter-spacing:1px; color:var(--steel); margin-bottom:2px;}
.infoblock dd{margin:0 0 14px; font-size:1.02rem;}

form.contactform{display:grid; gap:16px;}
form.contactform label{display:block; font-size:.85rem; color:var(--steel); margin-bottom:5px;}
form.contactform input, form.contactform select, form.contactform textarea{
  width:100%; padding:11px 12px; border:1px solid var(--line); font-family:inherit; font-size:1rem;
  background:#fff; color:var(--ink);
}
form.contactform input:focus, form.contactform select:focus, form.contactform textarea:focus{
  outline:2px solid var(--red); outline-offset:1px; border-color:var(--red);
}
.form-row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:600px){.form-row2{grid-template-columns:1fr;}}
.formnote{font-size:.85rem; color:var(--steel); margin-top:2px;}

/* ---------- Legal pages ---------- */
.legal main .wrap{padding-top:48px; padding-bottom:64px; max-width:860px;}
.legal h1{margin-bottom:10px;}
.legal .updated{color:var(--steel); font-size:.9rem; margin-bottom:32px;}
.legal h2{font-size:1.25rem; margin-top:36px; margin-bottom:12px; border-bottom:1px solid var(--line); padding-bottom:8px;}
.legal dl.datos dt{font-weight:600; color:var(--navy); margin-top:10px;}
.legal dl.datos dd{margin:0 0 6px;}

/* ---------- Footer ---------- */
footer.sitefoot{background:var(--navy); color:#C9D3DC; padding:44px 0 26px; margin-top:0;}
footer.sitefoot .wrap{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:34px;}
footer.sitefoot h4{color:#fff; font-family:'Barlow Semi Condensed'; font-weight:600; font-size:1rem; margin-bottom:12px;}
footer.sitefoot p{color:#AFC0CE; font-size:.9rem; max-width:40ch;}
footer.sitefoot ul{list-style:none; margin:0; padding:0;}
footer.sitefoot li{margin-bottom:8px;}
footer.sitefoot a{color:#C9D3DC; text-decoration:none; font-size:.92rem;}
footer.sitefoot a:hover{color:#fff; text-decoration:underline;}
.footbottom{
  max-width:var(--maxw); margin:30px auto 0; padding:18px 28px 0; border-top:1px solid rgba(255,255,255,.15);
  font-size:.82rem; color:#93A5B5; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;
}
@media (max-width:800px){
  footer.sitefoot .wrap{grid-template-columns:1fr; gap:26px;}
  .hero .wrap{grid-template-columns:1fr;}
  .hero-mark{order:-1; margin-bottom:10px;}
  .hero-mark svg{width:130px; height:130px;}
  .factstrip .wrap{grid-template-columns:1fr 1fr;}
  .factstrip .fact:nth-child(2){border-left:none;}
  .factstrip .fact:nth-child(odd){border-left:none;}
}

/* ---------- Cookie banner ---------- */
#cookiebanner{
  position:fixed; left:0; right:0; bottom:0; background:var(--navy); color:#DCE4EC;
  padding:18px 24px; z-index:100; display:none; border-top:3px solid var(--red);
}
#cookiebanner.show{display:block;}
#cookiebanner .wrap{display:flex; align-items:center; gap:24px; flex-wrap:wrap; padding:0;}
#cookiebanner p{margin:0; font-size:.88rem; flex:1; min-width:240px; color:#DCE4EC;}
#cookiebanner a{color:#fff; text-decoration:underline;}
.cookiebtns{display:flex; gap:10px; flex-wrap:wrap;}
.cookiebtns button{
  font-family:'IBM Plex Sans'; font-size:.85rem; padding:9px 16px; cursor:pointer; border:1px solid #fff;
  background:transparent; color:#fff;
}
.cookiebtns button.primary{background:var(--red); border-color:var(--red);}

.skip-link{position:absolute; left:-999px; top:0; background:#fff; padding:10px; z-index:200;}
.skip-link:focus{left:10px; top:10px;}
