:root{--ink:#183447;--ink-2:#234c62;--blue:#72aabd;--blue-light:#eaf3f6;--paper:#f7f9fa;--white:#fff;--text:#2e414d;--muted:#607480;--line:#d8e2e7;--accent:#c87044;--shadow:0 24px 70px rgba(16,45,61,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--text);font-family:Manrope,Arial,sans-serif;font-size:17px;line-height:1.65}a{color:inherit}.skip{position:absolute;left:-9999px;top:0}.skip:focus{left:1rem;top:1rem;z-index:99;background:var(--white);padding:.75rem 1rem}.shell{width:min(1180px,calc(100% - 48px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.header-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:flex;height:56px;overflow:hidden}.brand img{width:172px;height:auto;object-fit:contain;object-position:left center}.nav{display:flex;align-items:center;gap:1.75rem;font-size:.89rem;font-weight:600}.nav a{text-decoration:none}.nav a:hover{color:var(--ink-2)}.nav-cta{border:1px solid var(--ink);padding:.7rem 1rem}.menu-toggle{display:none;background:transparent;border:1px solid var(--ink);padding:.55rem .75rem;color:var(--ink);font:inherit}.hero{background:linear-gradient(120deg,#f5f9fa 0%,#fff 58%);padding:88px 0 96px;border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:72px;align-items:center}.eyebrow,.section-label,.panel-kicker{margin:0 0 1.25rem;color:var(--ink-2);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.hero h1,.section h2,.statement h2{font-family:"Source Serif 4",Georgia,serif;color:var(--ink);letter-spacing:-.035em}.hero h1{margin:0;max-width:830px;font-size:clamp(3rem,6vw,5.7rem);line-height:.98}.lead{max-width:730px;margin:2rem 0 0;font-size:1.2rem;color:var(--muted)}.hero-actions{display:flex;gap:1rem;margin-top:2.3rem;flex-wrap:wrap}.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:.8rem 1.25rem;border:1px solid var(--ink);font:inherit;font-size:.9rem;font-weight:700;text-decoration:none;cursor:pointer}.primary{background:var(--ink);color:var(--white)}.primary:hover{background:var(--ink-2)}.secondary{background:transparent;color:var(--ink)}.coverage{margin:1.5rem 0 0;color:var(--muted);font-size:.85rem}.hero-panel{background:var(--ink);color:var(--white);padding:2.2rem;box-shadow:var(--shadow)}.panel-kicker{color:var(--blue)}.hero-panel h2{margin:0 0 2rem;font-family:"Source Serif 4",Georgia,serif;font-size:2rem;line-height:1.1}.hero-panel ol{margin:0;padding:0;list-style:none}.hero-panel li{display:grid;grid-template-columns:44px 1fr;gap:.75rem;padding:1rem 0;border-top:1px solid rgba(255,255,255,.16);font-size:.92rem}.hero-panel li span{color:var(--blue)}.statement{padding:90px 0;background:var(--ink);color:var(--white)}.statement-grid{display:grid;grid-template-columns:240px 1fr;gap:60px}.statement .section-label{color:var(--blue)}.statement h2{color:var(--white);font-size:clamp(2.25rem,4vw,4rem);line-height:1.08;margin:0;max-width:850px}.statement p:last-child{max-width:760px;color:#c7d4da;font-size:1.1rem}.section{padding:105px 0}.section-heading{display:grid;grid-template-columns:240px 1fr;gap:60px;margin-bottom:56px}.section-heading h2,.sectors h2,.director h2,.contact h2{margin:0;font-size:clamp(2.3rem,4.5vw,4.3rem);line-height:1.05}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{padding:2rem;min-height:390px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}.service-card.featured{background:var(--blue-light)}.service-number,.method article span,.sector-list span{display:block;color:var(--accent);font-size:.8rem;font-weight:700;letter-spacing:.1em}.service-card h3,.method h3{margin:.8rem 0 1rem;color:var(--ink);font-size:1.45rem;line-height:1.25}.service-card p{color:var(--muted)}.service-card ul{padding-left:1.1rem;margin:1.2rem 0 0;font-size:.88rem}.service-card li{margin:.45rem 0}.method{background:var(--paper);border-block:1px solid var(--line)}.method-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.method article{padding:2rem 1.5rem 1rem 0;border-right:1px solid var(--line);min-height:245px}.method article+article{padding-left:1.5rem}.method article:last-child{border-right:0}.method p{font-size:.9rem;color:var(--muted)}.sectors-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.sector-list{border-top:1px solid var(--line)}.sector-list div{display:grid;grid-template-columns:55px 1fr;align-items:center;padding:1.35rem 0;border-bottom:1px solid var(--line);font-size:1.05rem;font-weight:600;color:var(--ink)}.director{background:var(--ink);color:var(--white)}.director-grid{display:grid;grid-template-columns:310px 1fr;gap:80px;align-items:center}.director-mark{aspect-ratio:1;display:grid;place-items:center;border:1px solid rgba(255,255,255,.28);font-family:"Source Serif 4",serif;font-size:6rem;color:var(--blue)}.director h2{color:var(--white)}.director .section-label{color:var(--blue)}.role{color:var(--blue);font-weight:700}.director-copy>p:not(.section-label):not(.role){max-width:750px;color:#c7d4da}.contact{background:var(--blue-light)}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.contact-copy>p:not(.section-label){color:var(--muted)}.contact-direct{display:grid;gap:.6rem;margin-top:2rem}.contact-direct a{font-weight:700;color:var(--ink)}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:var(--white);padding:2rem;box-shadow:var(--shadow)}.contact-form label{display:grid;gap:.45rem;font-size:.8rem;font-weight:700;color:var(--ink)}.contact-form label:nth-of-type(4),.contact-form label:nth-of-type(5),.contact-form .full,.form-note{grid-column:1/-1}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid #b9cbd4;border-radius:0;background:var(--white);padding:.85rem;font:inherit;font-size:.93rem;color:var(--text)}.contact-form textarea{resize:vertical}.form-note{margin:0;color:var(--muted);font-size:.76rem}footer{background:#102836;color:#c8d4da;padding:56px 0 24px}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px}.footer-grid strong{color:var(--white);font-size:1.35rem;letter-spacing:.08em}.footer-grid p{margin:.25rem 0;font-size:.82rem}.footer-grid div:last-child{display:grid;align-content:start;gap:.4rem}.footer-grid a{font-size:.85rem}.footer-bottom{display:flex;justify-content:space-between;gap:2rem;margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.14);font-size:.72rem}
@media(max-width:900px){.menu-toggle{display:block}.nav{position:absolute;inset:88px 0 auto;background:var(--white);border-bottom:1px solid var(--line);padding:1.5rem 24px;display:none;flex-direction:column;align-items:flex-start}.nav.open{display:flex}.hero{padding:60px 0}.hero-grid,.statement-grid,.section-heading,.sectors-grid,.director-grid,.contact-grid{grid-template-columns:1fr;gap:35px}.hero-panel{max-width:620px}.service-grid{grid-template-columns:1fr 1fr}.method-grid{grid-template-columns:1fr 1fr}.method article:nth-child(2){border-right:0}.director-mark{max-width:280px}.contact-form{grid-template-columns:1fr}.contact-form label{grid-column:1/-1}.section{padding:80px 0}.statement{padding:70px 0}}
@media(max-width:600px){body{font-size:16px}.shell{width:min(100% - 32px,1180px)}.header-inner{min-height:74px}.brand{height:48px}.brand img{width:150px}.nav{inset:74px 0 auto}.hero{padding:52px 0 65px}.hero h1{font-size:clamp(2.65rem,14vw,4rem)}.hero-actions{display:grid}.button{width:100%}.hero-panel{padding:1.6rem}.statement h2,.section-heading h2,.sectors h2,.director h2,.contact h2{font-size:2.45rem}.service-grid,.method-grid{grid-template-columns:1fr}.service-card{min-height:auto;padding:1.5rem}.method article,.method article+article{padding:1.5rem 0;border-right:0;border-bottom:1px solid var(--line);min-height:auto}.director-mark{max-width:210px}.contact-form{padding:1.25rem}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.section{padding:65px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.experience{background:#f2f6f8;border-top:1px solid var(--line)}
.experience-heading>div>p{max-width:850px;color:var(--muted);font-size:1rem}
.project-list{display:grid;gap:92px}
.project-case{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:56px;align-items:center}
.project-case.reverse .project-gallery{order:2}
.project-case.reverse .project-copy{order:1}
.project-gallery{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:400px 155px;gap:10px;min-width:0}
.project-gallery img{width:100%;height:100%;object-fit:cover;display:block;background:#dce6ea}
.project-gallery .project-main{grid-column:1/-1}
.project-copy{border-top:3px solid var(--ink);padding-top:1.5rem}
.project-index{color:var(--accent);font-size:.82rem;font-weight:700;letter-spacing:.12em}
.project-type{margin:1.1rem 0 .45rem;color:var(--ink-2);font-size:.78rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.project-copy h3{margin:0;color:var(--ink);font-family:"Source Serif 4",Georgia,serif;font-size:clamp(2.2rem,3.5vw,3.5rem);line-height:1.02;letter-spacing:-.035em}
.project-place{margin:.7rem 0 1.35rem;color:var(--accent);font-weight:700}
.project-copy>p:last-child{color:var(--muted)}
.portfolio-next{display:grid;grid-template-columns:240px 1fr;gap:60px;margin-top:92px;padding-top:34px;border-top:1px solid var(--line)}
.portfolio-next p:last-child{margin:0;color:var(--muted)}
@media(max-width:900px){.project-case,.portfolio-next{grid-template-columns:1fr;gap:35px}.project-case.reverse .project-gallery,.project-case.reverse .project-copy{order:initial}.project-list{gap:72px}}
@media(max-width:600px){.project-gallery{grid-template-rows:250px 105px;gap:6px}.project-copy h3{font-size:2.35rem}.project-list{gap:58px}.portfolio-next{margin-top:64px}}

/* Dirección visual técnico-editorial */
:root{--ink:#0b2838;--ink-2:#16485f;--blue:#8bb8c7;--blue-light:#e9f1f4;--paper:#f4f6f7;--text:#263b45;--muted:#60727b;--line:#cfdadd;--accent:#c96332;--shadow:0 30px 80px rgba(7,35,49,.18)}
body{background:#fbfcfc;color:var(--text)}
.shell{width:min(1240px,calc(100% - 64px))}
.site-header{background:rgba(251,252,252,.94);border-bottom-color:rgba(11,40,56,.14)}
.header-inner{min-height:82px}
.brand{height:60px}
.brand img{width:184px}
.nav{gap:1.5rem;font-size:.82rem;letter-spacing:.02em}
.nav-cta{background:var(--ink);color:#fff;border-color:var(--ink);padding:.75rem 1.15rem}
.nav-cta:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

.hero{position:relative;overflow:hidden;background:#f8fafb;padding:76px 0 0;border-bottom:0}
.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(22,72,95,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(22,72,95,.055) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to right,#000,transparent 70%);pointer-events:none}
.hero-grid{position:relative;grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);gap:58px;align-items:stretch}
.hero-copy{padding:38px 0 84px;position:relative;z-index:2}
.eyebrow,.section-label,.panel-kicker{color:var(--accent);font-size:.74rem;letter-spacing:.2em}
.hero h1{font-family:Manrope,Arial,sans-serif;max-width:760px;font-size:clamp(3.2rem,5.7vw,5.65rem);line-height:.96;font-weight:600;letter-spacing:-.065em}
.lead{max-width:680px;font-size:1.12rem;line-height:1.7;color:#536b76}
.button{min-height:54px;border-radius:0;letter-spacing:.015em;transition:background .2s,color .2s,border-color .2s}
.primary{background:var(--accent);border-color:var(--accent)}
.primary:hover{background:#a94820;border-color:#a94820}
.secondary:hover{background:var(--ink);color:#fff}
.hero-visual{position:relative;margin:0;min-height:610px;align-self:end;background:var(--ink);overflow:hidden}
.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(5,24,34,.82) 100%)}
.hero-visual img{width:100%;height:100%;min-height:610px;object-fit:cover;display:block;filter:saturate(.82) contrast(1.05)}
.hero-visual figcaption{position:absolute;z-index:2;left:32px;right:32px;bottom:30px;color:#fff;display:grid;gap:.35rem}
.hero-visual figcaption span{font-size:.7rem;text-transform:uppercase;letter-spacing:.18em;color:#b9d2da}
.hero-visual figcaption strong{max-width:430px;font-size:1.25rem;line-height:1.25}
.hero-stamp{position:absolute;z-index:3;top:28px;left:-28px;width:154px;height:154px;background:var(--accent);color:#fff;display:grid;align-content:center;justify-content:center;text-align:left;box-shadow:0 18px 50px rgba(8,30,41,.28)}
.hero-stamp strong{font-size:2.6rem;line-height:1}.hero-stamp span{font-size:.7rem;line-height:1.25;text-transform:uppercase;letter-spacing:.1em}
.hero-rail{position:relative;display:grid;grid-template-columns:repeat(5,1fr);background:var(--ink);color:#fff}
.hero-rail span{display:flex;gap:.7rem;align-items:center;padding:1.15rem 1.25rem;border-right:1px solid rgba(255,255,255,.13);font-size:.78rem;font-weight:600}
.hero-rail span:last-child{border-right:0}.hero-rail b{color:var(--blue);font-size:.7rem;letter-spacing:.1em}

.statement{padding:108px 0;background:var(--ink)}
.statement-grid{grid-template-columns:200px 1fr;gap:80px}
.statement h2{font-family:Manrope,Arial,sans-serif;font-weight:500;letter-spacing:-.055em;max-width:980px}
.statement p:last-child{border-left:2px solid var(--accent);padding-left:28px;margin-top:2rem}
.proof-strip{background:#102f40;color:#fff;border-top:1px solid rgba(255,255,255,.1)}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.proof-grid div{display:grid;gap:.25rem;padding:28px 30px;border-right:1px solid rgba(255,255,255,.12)}
.proof-grid div:last-child{border-right:0}.proof-grid strong{font-size:.92rem}.proof-grid span{font-size:.75rem;color:#a9c1cb}

.section{padding:118px 0}
.section-heading{grid-template-columns:200px 1fr;gap:80px;margin-bottom:66px}
.section-heading h2,.sectors h2,.director h2,.contact h2{font-family:Manrope,Arial,sans-serif;font-weight:500;letter-spacing:-.055em}
.service-grid{border:0;gap:1px;background:var(--line)}
.service-card{position:relative;border:0;min-height:410px;padding:34px 32px;background:#fff;overflow:hidden}
.service-card:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.service-card:hover:after{transform:scaleX(1)}
.service-card.featured{background:var(--ink);color:#fff}.service-card.featured h3{color:#fff}.service-card.featured p{color:#bbccd3}.service-card.featured li{color:#e5edf0}
.service-number{display:inline-grid;place-items:center;width:42px;height:42px;border:1px solid currentColor}
.service-card h3{font-size:1.55rem;margin:1.5rem 0 1rem}
.service-card ul{list-style:none;padding:0;margin-top:1.5rem}.service-card li{position:relative;padding-left:1.15rem}.service-card li:before{content:"";position:absolute;left:0;top:.7em;width:6px;height:1px;background:var(--accent)}

.method{background:#eef3f5}
.method-grid{border-top:2px solid var(--ink)}
.method article{position:relative;padding:34px 26px 22px 0;min-height:270px}
.method article:before{content:"";position:absolute;top:-6px;left:0;width:11px;height:11px;background:var(--accent)}
.method article+article{padding-left:26px}.method article+article:before{left:26px}
.method h3{font-size:1.65rem;margin-top:1.35rem}
.sectors{background:#fff}.sector-list div{padding:1.55rem 0;font-size:1rem}.sector-list span{color:var(--accent)}

.experience{background:#0c2a3a;color:#fff;border-top:0;position:relative;overflow:hidden}
.experience:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:80px 80px;pointer-events:none}
.experience>.shell{position:relative}.experience .section-label{color:#e68350}.experience-heading h2{color:#fff}.experience-heading>div>p{color:#afc2ca}.project-list{gap:116px}
.project-case{grid-template-columns:minmax(0,1.5fr) minmax(300px,.5fr);gap:64px}
.project-gallery{grid-template-rows:440px 150px;gap:8px}.project-gallery img{background:#173d50}.project-gallery img:not(.project-main){filter:saturate(.72)}
.project-copy{border-top:1px solid rgba(255,255,255,.35);padding-top:1.8rem}.project-type{color:var(--blue)}.project-copy h3{color:#fff;font-family:Manrope,Arial,sans-serif;font-weight:500}.project-place{color:#e68350}.project-copy>p:last-child{color:#b9cad1}
.portfolio-next{border-top-color:rgba(255,255,255,.2)}.portfolio-next p:last-child{color:#b9cad1}

.director{background:#f4f6f7;color:var(--text)}
.director-grid{grid-template-columns:350px 1fr;gap:100px}
.director-mark{position:relative;background:var(--ink);border:0;color:#fff;font-family:Manrope,Arial,sans-serif;font-weight:500;font-size:5rem;box-shadow:18px 18px 0 var(--accent)}
.director-mark:before,.director-mark:after{content:"";position:absolute;background:rgba(255,255,255,.18)}.director-mark:before{width:70%;height:1px;left:15%;top:18%}.director-mark:after{width:1px;height:70%;top:15%;left:18%}
.director h2{color:var(--ink)}.director .section-label{color:var(--accent)}.role{color:var(--ink-2)}.director-copy>p:not(.section-label):not(.role){color:var(--muted)}
.director-facts{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2rem}.director-facts span{border:1px solid #b8c8cf;padding:.5rem .7rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink)}

.contact{position:relative;background:#e6eef1}.contact:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.9%,rgba(22,72,95,.08) 50%,transparent 50.1%);pointer-events:none}
.contact-grid{position:relative}.contact-form{box-shadow:none;border-top:4px solid var(--accent);padding:2.4rem}.contact-direct a{font-size:1.05rem;text-decoration-thickness:1px;text-underline-offset:5px}
footer{background:#071f2c;padding-top:64px}

@media(max-width:1050px){.nav{gap:1rem}.hero-grid{grid-template-columns:1fr 420px;gap:36px}.hero h1{font-size:clamp(3rem,5.8vw,4.8rem)}.hero-visual,.hero-visual img{min-height:560px}.project-gallery{grid-template-rows:360px 130px}}
@media(max-width:900px){.shell{width:min(100% - 40px,1240px)}.hero{padding-top:40px}.hero-grid{grid-template-columns:1fr}.hero-copy{padding-bottom:24px}.hero-visual{min-height:430px}.hero-visual img{min-height:430px}.hero-stamp{left:20px;top:20px;width:125px;height:125px}.hero-rail{grid-template-columns:1fr 1fr}.hero-rail span{border-bottom:1px solid rgba(255,255,255,.13)}.hero-rail span:last-child{grid-column:1/-1}.proof-grid{grid-template-columns:1fr}.proof-grid div{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}.proof-grid div:last-child{border-bottom:0}.statement-grid,.section-heading{gap:36px}.project-case{grid-template-columns:1fr}.director-grid{gap:70px}.contact:before{display:none}}
@media(max-width:600px){.shell{width:min(100% - 28px,1240px)}.header-inner{min-height:70px}.brand{height:48px}.brand img{width:152px}.hero{padding-top:26px}.hero-copy{padding:18px 0 26px}.hero h1{font-size:clamp(2.7rem,13.5vw,4rem);line-height:.98}.lead{font-size:1rem}.hero-visual,.hero-visual img{min-height:360px}.hero-visual figcaption{left:20px;right:20px;bottom:20px}.hero-stamp{width:106px;height:106px}.hero-stamp strong{font-size:2rem}.hero-rail{width:100%;grid-template-columns:1fr}.hero-rail span,.hero-rail span:last-child{grid-column:auto}.statement,.section{padding:76px 0}.statement h2,.section-heading h2,.sectors h2,.director h2,.contact h2{font-size:2.25rem}.service-grid{gap:1px}.service-card{padding:28px 24px}.project-gallery{grid-template-rows:260px 100px}.director-grid{gap:48px}.director-mark{max-width:230px;box-shadow:10px 10px 0 var(--accent)}.contact-form{padding:1.35rem}}

/* Identidad RVR Ingeniería */
.brand.wordmark{height:auto;overflow:visible;align-items:center;gap:.75rem;text-decoration:none;color:var(--ink)}
.wordmark-main{font-size:2.15rem;line-height:1;font-weight:700;letter-spacing:-.08em;padding-right:.8rem;border-right:2px solid var(--accent)}
.wordmark-copy{display:grid;line-height:1.08}
.wordmark-copy strong{font-size:.88rem;text-transform:uppercase;letter-spacing:.13em}
.wordmark-copy small{margin-top:.32rem;font-size:.58rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap}
@media(max-width:600px){.brand.wordmark{height:auto;gap:.55rem}.wordmark-main{font-size:1.75rem;padding-right:.6rem}.wordmark-copy strong{font-size:.72rem}.wordmark-copy small{font-size:.48rem}}
