:root{
  --navy:#061a34;
  --navy-2:#0b294c;
  --blue:#0868d1;
  --blue-soft:#dbeafe;
  --ink:#0a1c36;
  --muted:#5d6878;
  --line:#dce4ed;
  --soft:#f4f7fa;
  --white:#fff;
  --header:84px;
  --shadow:0 22px 55px rgba(6,26,52,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 4px)}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button,input,textarea{font:inherit}
section[id]{scroll-margin-top:calc(var(--header) + 4px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:12px;top:-60px;z-index:999;background:#fff;padding:10px 14px;border:1px solid var(--line)}
.skip-link:focus{top:12px}

.site-header{height:var(--header);display:flex;align-items:center;justify-content:space-between;padding:8px 4vw;position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(220,228,237,.82)}
.brand img{width:315px;height:70px;object-fit:contain;object-position:left center}
.main-nav{display:flex;align-items:center;gap:28px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.045em}
.main-nav>a:not(.header-cta){position:relative;padding:29px 0 27px}
.main-nav>a:not(.header-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:18px;height:2px;background:var(--blue);transition:right .24s ease}
.main-nav>a:not(.header-cta):hover::after,.main-nav>a:not(.header-cta).active::after{right:0}
.header-cta,.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;padding:16px 22px;background:var(--navy);color:#fff;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.045em;border:0;cursor:pointer;transition:transform .24s ease,box-shadow .24s ease,background .24s ease}
.header-cta:hover,.button-primary:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(6,26,52,.22);background:var(--navy-2)}
.menu-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);background:#fff;padding:11px}
.menu-toggle span:not(.sr-only){display:block;height:2px;background:var(--navy);margin:5px 0;transition:.2s}

.hero{min-height:calc(100vh - var(--header));display:grid;grid-template-columns:44% 56%;overflow:hidden}
.hero-copy{position:relative;display:flex;flex-direction:column;justify-content:center;padding:84px 5vw 76px 5vw;overflow:hidden}
.hero-copy>*:not(.hero-mark){position:relative;z-index:2}
.hero-mark{position:absolute;width:min(78%,650px);left:-3%;top:50%;transform:translateY(-48%);opacity:.84;pointer-events:none}
.eyebrow{margin:0 0 14px;color:var(--blue);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.09em}
h1{font-size:clamp(46px,5vw,72px);line-height:1.02;letter-spacing:-.045em;margin:0 0 28px}
h1 span{color:var(--blue)}
.hero-lead{font-size:19px;color:var(--muted);max-width:610px;margin:0 0 34px}
.hero-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.text-link{font-size:13px;font-weight:800;color:var(--navy)}
.text-link span{color:var(--blue);margin-left:6px}
.hero-media{position:relative;min-height:660px;background-image:linear-gradient(90deg,rgba(255,255,255,.18),rgba(255,255,255,0) 20%),linear-gradient(rgba(8,40,74,.06),rgba(8,40,74,.08)),url("assets/hero-bridge-engineering.jpg");background-size:cover;background-position:center;clip-path:polygon(12% 0,100% 0,100% 100%,0 100%);filter:saturate(.86) brightness(.96)}
.hero-arc{position:absolute;width:96%;height:45%;left:-22%;top:38%;border:4px solid rgba(8,104,209,.72);border-left-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(-5deg)}
.hero-caption{position:absolute;right:4vw;bottom:28px;display:flex;gap:24px;color:white;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;text-shadow:0 1px 8px rgba(0,0,0,.25)}
.hero-caption span{padding-left:12px;border-left:2px solid var(--blue)}

.section{padding:78px 5vw}
.section-soft{background:var(--soft)}
.section-heading{max-width:650px}
.section-heading.centered{text-align:center;margin:0 auto 34px}
.section-heading h2,.contact-copy h2{font-size:clamp(34px,3.2vw,50px);line-height:1.13;letter-spacing:-.035em;margin:0 0 20px}
.section-heading p:not(.eyebrow),.contact-copy>p:not(.eyebrow){color:var(--muted);font-size:17px}
.philosophy{display:grid;grid-template-columns:34% 66%;gap:70px;align-items:start}
.value-grid{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid var(--line)}
.value-card{position:relative;padding:18px 28px 24px;border-right:1px solid var(--line);min-height:250px}
.value-number,.card-index{font-size:11px;color:#9aa8b8;font-weight:850;letter-spacing:.08em}
.value-card svg,.service-card svg,.specialty-card svg,.sector-card svg{width:50px;height:50px;fill:none;stroke:var(--blue);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;margin:38px 0 20px}
.value-card h3,.service-card h3,.specialty-card h3,.sector-card h3,.process-grid h3{font-size:15px;line-height:1.3;text-transform:uppercase;margin:0 0 10px}
.value-card p,.service-card p,.specialty-card p,.sector-card p,.process-grid p{font-size:14px;color:var(--muted);margin:0}
.service-card h3{margin-bottom:6px}

.branded{position:relative;overflow:hidden}
.branded>*:not(.section-mark){position:relative;z-index:2}
.section-mark{position:absolute;z-index:0;width:390px;opacity:.28;pointer-events:none}
.mark-left{left:-125px;bottom:-160px;transform:rotate(-5deg)}
.mark-right{right:-90px;top:12%;transform:rotate(4deg)}
.sectors-mark{bottom:-140px}

.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:1320px;margin:auto}
.service-card{position:relative;background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:12px;padding:20px 24px;min-height:185px;transition:.25s ease;overflow:hidden}
.service-card::after{content:"";position:absolute;width:145px;height:145px;border:1px solid rgba(8,104,209,.11);border-radius:50%;right:-58px;bottom:-72px}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#bfd2e8}
.service-card svg{width:42px;height:42px;margin:22px 0 15px}

.specialties{display:grid;grid-template-columns:31% 69%;gap:56px;align-items:start}
.specialty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.specialty-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:24px;min-height:225px;transition:.24s ease}
.specialty-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.specialty-card svg{margin:8px 0 24px}
.specialty-card svg.fire{stroke:#cc4139}

.sector-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.sector-card{position:relative;min-height:230px;padding:27px 23px;background:linear-gradient(145deg,#fff,#f1f5f9);border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:12px;overflow:hidden;transition:.25s ease}
.sector-card::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(8,104,209,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(8,104,209,.035) 1px,transparent 1px);background-size:25px 25px;mask-image:linear-gradient(to bottom,black,transparent 78%)}
.sector-card>*{position:relative;z-index:2}
.sector-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}
.sector-card svg{margin:10px 0 30px;width:58px;height:58px}

.process{padding:82px 5vw;background:linear-gradient(135deg,var(--navy),#0b2a4d);color:#fff;position:relative;overflow:hidden}
.process::after{content:"";position:absolute;width:680px;height:300px;border:2px solid rgba(63,151,239,.22);border-radius:50%;right:-180px;bottom:-200px}
.inverse .eyebrow{color:#88c1ff}
.inverse h2{color:#fff}
.process-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;position:relative;z-index:2}
.process-grid article{padding:25px;text-align:center;border-right:1px solid rgba(255,255,255,.16)}
.process-grid article:last-child{border-right:0}
.process-grid b{color:#87c1ff;font-size:13px}
.process-grid h3{color:#fff;margin-top:18px}
.process-grid p{color:#d5e1ec}

.contact-section{padding:96px 5vw;display:grid;grid-template-columns:40% 60%;gap:72px;background:#fff}
.contact-copy{align-self:center}
.contact-details{display:flex;flex-direction:column;gap:8px;margin-top:30px;font-weight:750}
.contact-details a{color:var(--blue)}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;background:var(--soft);padding:32px;border:1px solid var(--line);border-radius:14px}
.field{display:flex;flex-direction:column;gap:7px}
.field-full{grid-column:1/-1}
label{font-size:12px;text-transform:uppercase;font-weight:850;letter-spacing:.06em}
input,textarea{width:100%;border:1px solid #cbd6e2;background:#fff;padding:14px 15px;border-radius:6px;color:var(--ink);outline:none;transition:.2s}
input:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,104,209,.10)}
textarea{resize:vertical}
.form-note{font-size:12px;color:var(--muted);margin:0}

.footer{display:grid;grid-template-columns:1.4fr 1fr 1.2fr 1fr;gap:46px;padding:58px 5vw 26px;background:#06182f;color:#d7e2ec}
.footer-brand{display:flex;gap:20px;align-items:flex-start}
.footer-brand img{width:72px;height:72px;object-fit:contain}
.footer-brand strong{display:block;color:white;font-size:25px;letter-spacing:.24em}
.footer-brand span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:#9eb3c8}
.footer-brand p{font-size:14px;max-width:240px}
.footer-column{display:flex;flex-direction:column;gap:9px;font-size:13px}
.footer-column h3{color:white;text-transform:uppercase;font-size:12px;letter-spacing:.08em;margin:0 0 10px}
.footer-column a:hover{color:#8cc4ff}
.footer-bottom{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.13);padding-top:22px;display:flex;justify-content:space-between;font-size:12px;color:#9eb3c8}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}

@media(max-width:1180px){
  .main-nav{gap:15px;font-size:11px}
  .brand img{width:265px}
  .hero{grid-template-columns:1fr}
  .hero-media{clip-path:none;min-height:520px}
  .philosophy,.specialties,.contact-section{grid-template-columns:1fr}
  .value-grid{border-left:0}
  .sector-grid{grid-template-columns:repeat(3,1fr)}
  .footer{grid-template-columns:1.3fr 1fr 1fr}
  .footer-column:last-of-type{grid-column:2}
}
@media(max-width:820px){
  :root{--header:74px}
  .site-header{padding:7px 5vw}
  .brand img{width:230px;height:58px}
  .menu-toggle{display:block}
  .main-nav{display:none;position:absolute;top:var(--header);left:0;right:0;background:#fff;padding:22px 5vw 28px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line);box-shadow:0 16px 30px rgba(6,26,52,.10)}
  .main-nav.open{display:flex}
  .main-nav>a:not(.header-cta){padding:8px 0}
  .main-nav>a:not(.header-cta)::after{bottom:2px}
  .header-cta{width:100%}
  .hero-copy{padding:64px 6vw 54px}
  .hero-media{min-height:410px}
  .hero-caption{display:none}
  .section{padding:72px 6vw}
  .value-grid{grid-template-columns:1fr 1fr}
  .value-card{border-bottom:1px solid var(--line)}
  .service-grid,.specialty-grid{grid-template-columns:1fr 1fr}
  .sector-grid{grid-template-columns:1fr 1fr}
  .process-grid{grid-template-columns:1fr}
  .process-grid article{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}
  .contact-section{padding:72px 6vw}
  .footer{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
  .footer-column:last-of-type{grid-column:auto}
}
@media(max-width:520px){
  .hero-actions{align-items:stretch;flex-direction:column}
  .button{width:100%}
  .hero-media{min-height:320px}
  .hero-mark{width:95%;left:-12%}
  .value-grid,.service-grid,.specialty-grid,.sector-grid{grid-template-columns:1fr}
  .value-card{border-right:0}
  .contact-form{grid-template-columns:1fr;padding:24px}
  .field-full{grid-column:auto}
  .footer{grid-template-columns:1fr}
  .footer-brand,.footer-bottom{grid-column:auto}
  .footer-bottom{flex-direction:column;gap:6px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}


/* Ajustes v4.1: logotipo más visible y capacidades más compactas */
#servicios.section{padding-top:62px;padding-bottom:66px}
#servicios .section-heading p:not(.eyebrow){margin-bottom:0}
@media(min-width:821px){
  #servicios .service-grid{grid-auto-rows:1fr}
  #servicios .service-card{display:flex;flex-direction:column;justify-content:flex-start}
}
